diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..859bf46 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +.DS_store diff --git a/ddr/(Timing)WindowAdjust/DDRWindowAdjust.exe b/ddr/(Timing)WindowAdjust/DDRWindowAdjust.exe new file mode 100644 index 0000000..0934aaf Binary files /dev/null and b/ddr/(Timing)WindowAdjust/DDRWindowAdjust.exe differ diff --git a/ddr/(Timing)WindowAdjust/readme b/ddr/(Timing)WindowAdjust/readme new file mode 100644 index 0000000..16aac84 --- /dev/null +++ b/ddr/(Timing)WindowAdjust/readme @@ -0,0 +1,37 @@ +A small utility I put together to adjust the timing window frame placement in DDR games. + +It requires .NET 4.0 to run. I've been using it on both Windows 7 x64 and Windows XP x86. I haven't done a ton of testing but it works. + + +Why: + +I found myself having to adjust the window for various reasons (adjustments for input method, type of monitor, etc) and figured a nice quick and dirty app would be nice. + + +How it works: + +Drag a game data file into the application window. If it is a valid game data file for a supported mix, it will detect the mix and the current window offset. + +Then you can simply adjust the slider and hit save. Moving it to the left, earlier, makes the window sooner (so you'd essentially be stepping late before use) Moving the slider to the right, later, makes the window later (so you'd have been stepping early before use). + + +Supported mixes: +DDR 5th +DDRMAX +DDRMAX2 +DDR EXTREME +DS EuroMIX2 +DDR X (us) +DDR X2 (jp) +DDR X3 vs. 2ND MIX + + +NOTES: +This does NOT adjust the audio video sync. This only adjust at what time intervals the game assigns different step values. In principle, this caters towards visual players instead of those who focus solely on the audio. + +This does NOT change, nor support the ability to change, the size of the timing window. It only shifts it back and forth. + +When using it with 573 data (game.dat), I cannot guarantee proper behavior if you shift the window more than a few frames. IIRC the games start acting weird if you shift them a lot (for example, to the point where the entire marv window is now later than "on time; aka 0 frame offset) would have been). + +This can be ran from the command line as well to help facilitate possible scripting. +DDRWindowAdjust.exe [-B] GAMEFILE NEW_OFFSET diff --git a/ddr/2013 (Timing)WindowAdjust/DDRWindowAdjust_2013.exe b/ddr/2013 (Timing)WindowAdjust/DDRWindowAdjust_2013.exe new file mode 100644 index 0000000..a44fd14 Binary files /dev/null and b/ddr/2013 (Timing)WindowAdjust/DDRWindowAdjust_2013.exe differ diff --git a/ddr/2013 (Timing)WindowAdjust/readme b/ddr/2013 (Timing)WindowAdjust/readme new file mode 100644 index 0000000..e38d50f --- /dev/null +++ b/ddr/2013 (Timing)WindowAdjust/readme @@ -0,0 +1,5 @@ +Disclaimer: I did not create this. 99% of the credit for this tool goes to daydensteve. He created the original but he has not been around for about a month. If he requests that I remove this so he can re-release his own copy I will. + +I started the decompile on the original .exe provided by daydensteve and got a ton of help from atomriot who eventually recompiled this and got it working with DDR 2013. I have tested it and it works. + +Refer to this http://bemaniso.ws/torrents.php?id=3973 if you want more information on the original exe and how it works. diff --git a/ddr/573 digital Audio encrypt, decrypt beta/573a.jar b/ddr/573 digital Audio encrypt, decrypt beta/573a.jar new file mode 100644 index 0000000..e2ca818 Binary files /dev/null and b/ddr/573 digital Audio encrypt, decrypt beta/573a.jar differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/DDREDITZ.zip b/ddr/DDR 573 digital arcade edit tools/EDITS/DDREDITZ.zip new file mode 100644 index 0000000..6399664 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/DDREDITZ.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/001.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/001.mcs new file mode 100644 index 0000000..5e1fa60 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/001.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/002.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/002.mcs new file mode 100644 index 0000000..b5777c0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/002.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/003.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/003.mcs new file mode 100644 index 0000000..3453181 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/003.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/004.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/004.mcs new file mode 100644 index 0000000..08851f1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/004.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/005.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/005.mcs new file mode 100644 index 0000000..dea952b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/005.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/006.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/006.mcs new file mode 100644 index 0000000..a2673f5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/006.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/007.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/007.mcs new file mode 100644 index 0000000..4c61b35 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/007.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/008.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/008.mcs new file mode 100644 index 0000000..858093c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/008.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/009.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/009.mcs new file mode 100644 index 0000000..4b72378 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/009.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/010.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/010.mcs new file mode 100644 index 0000000..8adbfc7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/010.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/011.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/011.mcs new file mode 100644 index 0000000..44ee9c6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/011.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/012.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/012.mcs new file mode 100644 index 0000000..9c5ab53 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/012.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/013.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/013.mcs new file mode 100644 index 0000000..8349981 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/013.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/014.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/014.mcs new file mode 100644 index 0000000..08c7217 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/014.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/015.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/015.mcs new file mode 100644 index 0000000..18202bb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/015.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/016.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/016.mcs new file mode 100644 index 0000000..91d854f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/016.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/017.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/017.mcs new file mode 100644 index 0000000..11a83df Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/017.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/018.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/018.mcs new file mode 100644 index 0000000..abac7e9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/018.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/019.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/019.mcs new file mode 100644 index 0000000..9a7fda8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/019.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/020.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/020.mcs new file mode 100644 index 0000000..a889512 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/020.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/021.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/021.mcs new file mode 100644 index 0000000..cacffe5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/021.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/022.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/022.mcs new file mode 100644 index 0000000..f37086b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/022.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/023.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/023.mcs new file mode 100644 index 0000000..7c3eaae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/023.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/024.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/024.mcs new file mode 100644 index 0000000..a53b6e1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/024.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/025.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/025.mcs new file mode 100644 index 0000000..3bde7fd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/025.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/026.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/026.mcs new file mode 100644 index 0000000..1f1fe03 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/026.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/027.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/027.mcs new file mode 100644 index 0000000..9932ec9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/027.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/028.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/028.mcs new file mode 100644 index 0000000..c1d3b6b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/028.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/029.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/029.mcs new file mode 100644 index 0000000..8c4c1bb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/029.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/030.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/030.mcs new file mode 100644 index 0000000..97adaf5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/030.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/031.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/031.mcs new file mode 100644 index 0000000..d426a52 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/031.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/032.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/032.mcs new file mode 100644 index 0000000..e0fd27a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/032.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/033.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/033.mcs new file mode 100644 index 0000000..e774d57 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/033.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/034.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/034.mcs new file mode 100644 index 0000000..15ff879 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/034.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/035.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/035.mcs new file mode 100644 index 0000000..05a22cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/035.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/036.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/036.mcs new file mode 100644 index 0000000..4140ff0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/036.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/037.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/037.mcs new file mode 100644 index 0000000..bdab029 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/037.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/038.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/038.mcs new file mode 100644 index 0000000..fd8297c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/038.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/039.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/039.mcs new file mode 100644 index 0000000..9bdd09f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/039.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/040.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/040.mcs new file mode 100644 index 0000000..893c639 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/040.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/041.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/041.mcs new file mode 100644 index 0000000..8ff6b82 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/041.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/042.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/042.mcs new file mode 100644 index 0000000..f9fbdcb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/042.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/043.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/043.mcs new file mode 100644 index 0000000..f211e2e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/043.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/044.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/044.mcs new file mode 100644 index 0000000..581c90c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/044.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/045.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/045.mcs new file mode 100644 index 0000000..2537882 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/045.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/046.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/046.mcs new file mode 100644 index 0000000..988c6c2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/046.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/047.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/047.mcs new file mode 100644 index 0000000..a10c1b5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/047.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/048.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/048.mcs new file mode 100644 index 0000000..f04d11f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/048.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/049.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/049.mcs new file mode 100644 index 0000000..95b866c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/049.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/050.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/050.mcs new file mode 100644 index 0000000..01bf1a0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/050.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/051.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/051.mcs new file mode 100644 index 0000000..6759860 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/051.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/052.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/052.mcs new file mode 100644 index 0000000..144a9ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/052.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/053.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/053.mcs new file mode 100644 index 0000000..c458c69 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/053.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/054.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/054.mcs new file mode 100644 index 0000000..b0f8709 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/054.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/055.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/055.mcs new file mode 100644 index 0000000..d289d4b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/055.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/056.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/056.mcs new file mode 100644 index 0000000..d7d3aeb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/056.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/057.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/057.mcs new file mode 100644 index 0000000..b5b492f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/057.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/058.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/058.mcs new file mode 100644 index 0000000..94329ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/058.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/059.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/059.mcs new file mode 100644 index 0000000..b0c0a99 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/059.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/060.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/060.mcs new file mode 100644 index 0000000..e18cf3b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/060.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/061.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/061.mcs new file mode 100644 index 0000000..1ecce16 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/061.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/062.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/062.mcs new file mode 100644 index 0000000..88f153e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/062.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/063.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/063.mcs new file mode 100644 index 0000000..40a3d4a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/063.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/064.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/064.mcs new file mode 100644 index 0000000..6b882ba Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/064.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/065.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/065.mcs new file mode 100644 index 0000000..1610a90 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/065.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/066.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/066.mcs new file mode 100644 index 0000000..818565f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/066.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/067.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/067.mcs new file mode 100644 index 0000000..880b376 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/067.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/068.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/068.mcs new file mode 100644 index 0000000..037ae74 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/068.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/069.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/069.mcs new file mode 100644 index 0000000..f96a319 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/069.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/070.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/070.mcs new file mode 100644 index 0000000..afb93cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/070.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/071.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/071.mcs new file mode 100644 index 0000000..a0d58ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/071.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/072.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/072.mcs new file mode 100644 index 0000000..90997a1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/072.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/073.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/073.mcs new file mode 100644 index 0000000..8b16411 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/073.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/074.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/074.mcs new file mode 100644 index 0000000..578822a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/074.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/075.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/075.mcs new file mode 100644 index 0000000..8aca111 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/075.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/076.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/076.mcs new file mode 100644 index 0000000..4dbf15d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/076.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/077.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/077.mcs new file mode 100644 index 0000000..87d3554 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/077.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/078.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/078.mcs new file mode 100644 index 0000000..1267ee0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/078.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/079.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/079.mcs new file mode 100644 index 0000000..73e14fe Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/079.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/080.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/080.mcs new file mode 100644 index 0000000..9978dcf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/080.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/081.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/081.mcs new file mode 100644 index 0000000..f251774 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/081.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/082.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/082.mcs new file mode 100644 index 0000000..7b6ae6f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/082.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/083.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/083.mcs new file mode 100644 index 0000000..0769988 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/083.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/084.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/084.mcs new file mode 100644 index 0000000..26713db Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/084.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/085.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/085.mcs new file mode 100644 index 0000000..adb17e2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/085.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/086.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/086.mcs new file mode 100644 index 0000000..2a4dea8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/086.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/087.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/087.mcs new file mode 100644 index 0000000..71eece4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/087.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/088.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/088.mcs new file mode 100644 index 0000000..d05a477 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/088.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/089.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/089.mcs new file mode 100644 index 0000000..ba4bc55 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/089.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/090.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/090.mcs new file mode 100644 index 0000000..3865bce Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/090.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/091.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/091.mcs new file mode 100644 index 0000000..f81cca0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/091.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/092.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/092.mcs new file mode 100644 index 0000000..2ba9a0a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/092.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/093.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/093.mcs new file mode 100644 index 0000000..b408551 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/093.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/094.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/094.mcs new file mode 100644 index 0000000..13e2629 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/094.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/095.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/095.mcs new file mode 100644 index 0000000..fbaa9ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/095.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/096.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/096.mcs new file mode 100644 index 0000000..9693bb3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/096.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/097.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/097.mcs new file mode 100644 index 0000000..e1ae874 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/097.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/098.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/098.mcs new file mode 100644 index 0000000..5bb1b8a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/098.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/099.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/099.mcs new file mode 100644 index 0000000..90aba5b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/099.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/100.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/100.mcs new file mode 100644 index 0000000..0b927d0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/100.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/101.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/101.mcs new file mode 100644 index 0000000..0960852 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/101.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/102.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/102.mcs new file mode 100644 index 0000000..a9296a5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/102.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/103.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/103.mcs new file mode 100644 index 0000000..bcf76d4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/103.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/104.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/104.mcs new file mode 100644 index 0000000..641cd92 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/104.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/105.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/105.mcs new file mode 100644 index 0000000..03148c9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/105.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/106.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/106.mcs new file mode 100644 index 0000000..9f8c16e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/106.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/107.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/107.mcs new file mode 100644 index 0000000..befb181 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/107.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/108.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/108.mcs new file mode 100644 index 0000000..18e01ff Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/108.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/109.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/109.mcs new file mode 100644 index 0000000..2d4529e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/109.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/110.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/110.mcs new file mode 100644 index 0000000..f3cb85a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/110.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/111.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/111.mcs new file mode 100644 index 0000000..c16c377 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/111.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/112.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/112.mcs new file mode 100644 index 0000000..bd5e21f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/112.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/113.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/113.mcs new file mode 100644 index 0000000..33655bd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/113.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/114.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/114.mcs new file mode 100644 index 0000000..633adf6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/114.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/115.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/115.mcs new file mode 100644 index 0000000..11d593a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/115.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/116.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/116.mcs new file mode 100644 index 0000000..e014656 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/116.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/117.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/117.mcs new file mode 100644 index 0000000..13c3997 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/117.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/118.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/118.mcs new file mode 100644 index 0000000..eb425b6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/118.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/119.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/119.mcs new file mode 100644 index 0000000..b12e54d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/119.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/120.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/120.mcs new file mode 100644 index 0000000..bbbbaef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/120.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/121.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/121.mcs new file mode 100644 index 0000000..8977a55 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/121.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/122.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/122.mcs new file mode 100644 index 0000000..a25b592 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/122.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/123.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/123.mcs new file mode 100644 index 0000000..203953d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/123.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/124.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/124.mcs new file mode 100644 index 0000000..84a86b1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/124.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/125.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/125.mcs new file mode 100644 index 0000000..87bfdcd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/125.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/126.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/126.mcs new file mode 100644 index 0000000..7ffd988 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/126.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/127.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/127.mcs new file mode 100644 index 0000000..bfd3888 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/127.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/128.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/128.mcs new file mode 100644 index 0000000..0504217 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/128.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/129.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/129.mcs new file mode 100644 index 0000000..b1c50ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/129.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/130.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/130.mcs new file mode 100644 index 0000000..55327da Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/130.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/131.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/131.mcs new file mode 100644 index 0000000..8304ce8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/131.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/132.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/132.mcs new file mode 100644 index 0000000..7ec8234 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/132.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/133.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/133.mcs new file mode 100644 index 0000000..faffc8d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/133.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/134.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/134.mcs new file mode 100644 index 0000000..f01c511 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/134.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/135.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/135.mcs new file mode 100644 index 0000000..1006963 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/135.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/136.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/136.mcs new file mode 100644 index 0000000..8eebdb9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/136.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/137.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/137.mcs new file mode 100644 index 0000000..1ac530b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/137.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/138.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/138.mcs new file mode 100644 index 0000000..b3c840b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/138.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/139.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/139.mcs new file mode 100644 index 0000000..42306cc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/139.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/140.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/140.mcs new file mode 100644 index 0000000..1cd5055 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/140.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/141.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/141.mcs new file mode 100644 index 0000000..cdc83bf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/141.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/142.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/142.mcs new file mode 100644 index 0000000..5ef5213 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/142.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/143.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/143.mcs new file mode 100644 index 0000000..12b7602 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/143.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/144.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/144.mcs new file mode 100644 index 0000000..1aed0ea Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/144.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/145.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/145.mcs new file mode 100644 index 0000000..9521d82 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/145.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/146.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/146.mcs new file mode 100644 index 0000000..d4bb786 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/146.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/147.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/147.mcs new file mode 100644 index 0000000..e3c116e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/147.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/148.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/148.mcs new file mode 100644 index 0000000..98f5222 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/148.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/149.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/149.mcs new file mode 100644 index 0000000..bc452ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/149.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/150.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/150.mcs new file mode 100644 index 0000000..daf43ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/150.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/151.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/151.mcs new file mode 100644 index 0000000..bd4ff71 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/151.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/152.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/152.mcs new file mode 100644 index 0000000..55acb24 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/152.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/153.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/153.mcs new file mode 100644 index 0000000..d2af24d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/153.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/154.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/154.mcs new file mode 100644 index 0000000..4a473a6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/154.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/155.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/155.mcs new file mode 100644 index 0000000..100bcf8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/155.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/156.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/156.mcs new file mode 100644 index 0000000..a6fc4d1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/156.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/157.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/157.mcs new file mode 100644 index 0000000..2ad3df7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/157.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/158.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/158.mcs new file mode 100644 index 0000000..8fe854e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/158.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/159.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/159.mcs new file mode 100644 index 0000000..c0284b6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/159.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/160.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/160.mcs new file mode 100644 index 0000000..edd6132 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/160.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/161.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/161.mcs new file mode 100644 index 0000000..64e8a8c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/161.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/162.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/162.mcs new file mode 100644 index 0000000..a3cfa11 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/162.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/163.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/163.mcs new file mode 100644 index 0000000..93e0479 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/163.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/164.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/164.mcs new file mode 100644 index 0000000..6df1426 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/164.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/165.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/165.mcs new file mode 100644 index 0000000..f798da1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/165.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/166.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/166.mcs new file mode 100644 index 0000000..baa6791 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/166.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/167.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/167.mcs new file mode 100644 index 0000000..25052a0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/167.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/168.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/168.mcs new file mode 100644 index 0000000..e8ac6cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/168.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/169.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/169.mcs new file mode 100644 index 0000000..602811d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/169.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/170.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/170.mcs new file mode 100644 index 0000000..713aa8c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/170.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/171.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/171.mcs new file mode 100644 index 0000000..d88345a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/171.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/172.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/172.mcs new file mode 100644 index 0000000..b1411a5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/172.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/173.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/173.mcs new file mode 100644 index 0000000..8523e40 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/173.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/174.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/174.mcs new file mode 100644 index 0000000..23d6aaf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/174.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/175.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/175.mcs new file mode 100644 index 0000000..4eb3261 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/175.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/176.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/176.mcs new file mode 100644 index 0000000..ee031fb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/176.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/177.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/177.mcs new file mode 100644 index 0000000..a616a15 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/177.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/178.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/178.mcs new file mode 100644 index 0000000..39168fb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/178.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/179.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/179.mcs new file mode 100644 index 0000000..2db40e9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/179.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/180.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/180.mcs new file mode 100644 index 0000000..a5f7233 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/180.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/181.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/181.mcs new file mode 100644 index 0000000..2dc0ca1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/181.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/182.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/182.mcs new file mode 100644 index 0000000..ad9962d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/182.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/183.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/183.mcs new file mode 100644 index 0000000..4514e32 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/183.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/184.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/184.mcs new file mode 100644 index 0000000..9ff863d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/184.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/185.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/185.mcs new file mode 100644 index 0000000..95658ba Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/185.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/186.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/186.mcs new file mode 100644 index 0000000..41a804f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/186.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/187.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/187.mcs new file mode 100644 index 0000000..3a44a0d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/187.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/188.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/188.mcs new file mode 100644 index 0000000..f960f37 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/188.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/189.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/189.mcs new file mode 100644 index 0000000..07f1446 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/189.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/190.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/190.mcs new file mode 100644 index 0000000..b8305c9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/190.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/191.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/191.mcs new file mode 100644 index 0000000..7c7784c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/191.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/192.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/192.mcs new file mode 100644 index 0000000..0e06285 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/192.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/193.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/193.mcs new file mode 100644 index 0000000..1d34517 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/193.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/194.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/194.mcs new file mode 100644 index 0000000..19ef85c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/194.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/195.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/195.mcs new file mode 100644 index 0000000..468294a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/195.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/196.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/196.mcs new file mode 100644 index 0000000..ac54b52 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/196.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/197.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/197.mcs new file mode 100644 index 0000000..482eac9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/197.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/198.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/198.mcs new file mode 100644 index 0000000..f73c4fa Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/198.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/199.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/199.mcs new file mode 100644 index 0000000..ea7a672 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/199.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/200.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/200.mcs new file mode 100644 index 0000000..cb74cb6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/200.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/201.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/201.mcs new file mode 100644 index 0000000..ad57273 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/201.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/202.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/202.mcs new file mode 100644 index 0000000..b1d277e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/202.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/203.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/203.mcs new file mode 100644 index 0000000..0f9a9a4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/203.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/204.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/204.mcs new file mode 100644 index 0000000..968856a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/204.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/205.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/205.mcs new file mode 100644 index 0000000..35dfd3d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/205.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/206.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/206.mcs new file mode 100644 index 0000000..c7956f8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/206.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/207.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/207.mcs new file mode 100644 index 0000000..513cf90 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/207.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/208.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/208.mcs new file mode 100644 index 0000000..f9ff7ee Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/208.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/209.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/209.mcs new file mode 100644 index 0000000..3f4f586 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/209.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/210.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/210.mcs new file mode 100644 index 0000000..ab9060e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/210.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/211.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/211.mcs new file mode 100644 index 0000000..44915ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/211.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/212.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/212.mcs new file mode 100644 index 0000000..f6e0fc6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/212.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/213.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/213.mcs new file mode 100644 index 0000000..76a04a7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/213.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/214.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/214.mcs new file mode 100644 index 0000000..fdd0e63 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/214.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/215.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/215.mcs new file mode 100644 index 0000000..be194b2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/215.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/216.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/216.mcs new file mode 100644 index 0000000..bca28d9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/216.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/217.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/217.mcs new file mode 100644 index 0000000..b79ef9c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/217.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/218.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/218.mcs new file mode 100644 index 0000000..9b5d747 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/218.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/219.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/219.mcs new file mode 100644 index 0000000..6426935 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/219.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/220.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/220.mcs new file mode 100644 index 0000000..6fc8a70 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/220.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/221.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/221.mcs new file mode 100644 index 0000000..f37c35b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/221.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/222.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/222.mcs new file mode 100644 index 0000000..d8ef4e6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/222.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/223.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/223.mcs new file mode 100644 index 0000000..ed9c052 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/223.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/224.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/224.mcs new file mode 100644 index 0000000..3c47d72 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/224.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/225.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/225.mcs new file mode 100644 index 0000000..f42514d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/225.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/226.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/226.mcs new file mode 100644 index 0000000..9d349e5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/226.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/227.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/227.mcs new file mode 100644 index 0000000..7b6e12a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/227.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/228.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/228.mcs new file mode 100644 index 0000000..3e6e0a1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/228.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/229.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/229.mcs new file mode 100644 index 0000000..a8834de Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/229.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/230.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/230.mcs new file mode 100644 index 0000000..00c4ba6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/230.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/231.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/231.mcs new file mode 100644 index 0000000..cbf7ba4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/231.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/232.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/232.mcs new file mode 100644 index 0000000..ed7134b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/232.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/233.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/233.mcs new file mode 100644 index 0000000..cc317eb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/233.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/234.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/234.mcs new file mode 100644 index 0000000..ff25c98 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/234.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/235.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/235.mcs new file mode 100644 index 0000000..1327978 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/235.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/236.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/236.mcs new file mode 100644 index 0000000..cd2c421 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/236.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/237.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/237.mcs new file mode 100644 index 0000000..ca41d3c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/237.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/238.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/238.mcs new file mode 100644 index 0000000..94c33c3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/238.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/239.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/239.mcs new file mode 100644 index 0000000..0108fa8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/239.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/240.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/240.mcs new file mode 100644 index 0000000..3ef450e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/240.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/241.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/241.mcs new file mode 100644 index 0000000..046c04a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/241.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/242.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/242.mcs new file mode 100644 index 0000000..9d0ab76 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/242.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/243.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/243.mcs new file mode 100644 index 0000000..b6b2abf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/243.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/244.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/244.mcs new file mode 100644 index 0000000..b23b8d8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/244.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/245.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/245.mcs new file mode 100644 index 0000000..738592f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/245.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/246.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/246.mcs new file mode 100644 index 0000000..15b851e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/246.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/247.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/247.mcs new file mode 100644 index 0000000..0c9e9f8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/247.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/248.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/248.mcs new file mode 100644 index 0000000..83e2658 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/248.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/249.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/249.mcs new file mode 100644 index 0000000..cc34ab3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/249.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/250.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/250.mcs new file mode 100644 index 0000000..626c469 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/250.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/251.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/251.mcs new file mode 100644 index 0000000..234473d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/251.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/252.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/252.mcs new file mode 100644 index 0000000..2bd8053 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/252.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/253.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/253.mcs new file mode 100644 index 0000000..183af1a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/253.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/254.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/254.mcs new file mode 100644 index 0000000..55177fd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/254.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/255.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/255.mcs new file mode 100644 index 0000000..d4d9f88 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/255.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/256.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/256.mcs new file mode 100644 index 0000000..4f0dee9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/256.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/257.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/257.mcs new file mode 100644 index 0000000..226a1ad Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/257.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/258.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/258.mcs new file mode 100644 index 0000000..043ec2b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/258.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/259.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/259.mcs new file mode 100644 index 0000000..5676c44 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/259.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/260.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/260.mcs new file mode 100644 index 0000000..5e9fea3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/260.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/261.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/261.mcs new file mode 100644 index 0000000..4a8d1b6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/261.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/262.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/262.mcs new file mode 100644 index 0000000..108cac4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/262.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/263.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/263.mcs new file mode 100644 index 0000000..41f46ce Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/263.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/264.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/264.mcs new file mode 100644 index 0000000..74f5bcd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/264.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/265.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/265.mcs new file mode 100644 index 0000000..639679b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/265.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/266.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/266.mcs new file mode 100644 index 0000000..7623193 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/266.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/267.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/267.mcs new file mode 100644 index 0000000..bb80fb4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/267.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/268.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/268.mcs new file mode 100644 index 0000000..eb38d43 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/268.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/269.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/269.mcs new file mode 100644 index 0000000..948db16 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/269.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/270.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/270.mcs new file mode 100644 index 0000000..3de09de Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/270.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/271.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/271.mcs new file mode 100644 index 0000000..a0c659a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/271.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/272.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/272.mcs new file mode 100644 index 0000000..a613b4e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/272.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/273.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/273.mcs new file mode 100644 index 0000000..8512817 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/273.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/Edit List.txt b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/Edit List.txt new file mode 100644 index 0000000..49f5768 --- /dev/null +++ b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/273EditsPack/Edit List.txt @@ -0,0 +1,307 @@ +--------------------------------------------------------------------------------------- +Song Title: Edit Name Feet File # Type Rating/Update +--------------------------------------------------------------------------------------- + +.59 - .69 - 10 - 026.mcs - Single +.59 - .59% - 10 - 080.mcs - Single +1998 - 1985 - 08 - 185.mcs - Single +1998 - 20040550 - 09 - 272.mcs - Single Added +5.1.1. - 9.1.1. - 07 - 221.mcs - Single +5.1.1. - AMBIENT - 07 - 155.mcs - Single +A (for EXTREME) - A-XTREME - 10 - 067.mcs - Single OK +A (for EXTREME) - BMNIRLRA - 13 - 118.mcs - Single +Absolute - CLUELESS - 10 - 048.mcs - Single +Absolute - PRUDENCE - 08 - 181.mcs - Single +Afronova - SUPRNOVA - 11 - 023.mcs - Single +Afronova - TEH 'FRO - 10 - 025.mcs - Single +Afronova Primeval - IT'SEVIL - 09 - 092.mcs - Single +Afronova Primeval - LIONSUKI - 09 - 094.mcs - Single +Afronova Primeval - PRIMAL - 09 - 096.mcs - Double +After the Game of Love - FOREPLAY - 09 - 005.mcs - Single +After the Game of Love - INTRCRSE - 10 - 006.mcs - Single +Air - PASSGAS - 07 - 186.mcs - Single +AM-3P - C3PO - 09 - 069.mcs - Single +AM-3P - MP3 - 10 - 013.mcs - Single +AM-3P (303 BASSMIX) - MP303 - 08 - 152.mcs - Single +AM-3P (AM EAST Mix) - EASTMP3 - 09 - 060.mcs - Double +B4U - B4ME - 11 - 028.mcs - Single +B4U - IIDXVER. - 10 - 032.mcs - Single ***** +B4U (B4 ZA BEAT MIX) - ONZABEAT - 10 - 151.mcs - Single +B4U (B4 ZA BEAT MIX) - PHATBEAT - 09 - 246.mcs - Single +Baby Baby Gimme Your Love - LOTTALUV - 10 - 035.mcs - Single +bag - FULOFAIR - 06 - 187.mcs - Single +be in my paradise - TOOSLOW - 08 - 222.mcs - Single +Be Lovin - LOVESALL - 10 - 273.mcs - Single +Break Down! - BREAKUP! - 07 - 210.mcs - Single +Break Down! - WINGDING - 09 - 247.mcs - Single +Brilliant 2U - BRLTMIND - 09 - 211.mcs - Single +Brilliant 2U (K.O.G G3 Mix) - NOTSMART - 09 - 248.mcs - Single +Brilliant 2U (Orchestra-Groove) - CONCERTO - 07 - 223.mcs - Single +Broken my Heart - Dance Dance Revolution 5th Mix Data Bank
TitleAuthorCommentBlockDiffStyleStepsVACJMCS
.59TOMOKAZU-MƒŒƒxƒ‹‚S“I1-01☆1.5DOUBLE182168115624TENG_101.mcs
.59SINOMIYA.Y•sˆÀ‚ðŠ´‚¶‚³‚¹‚é1-02☆5.3SINGLE4195062665823TENG_102.mcs
.59YASUHIRO.Oƒ}ƒjƒAƒbƒN‚ÌƒŠƒƒCƒNƒo[ƒWƒ‡ƒ“1-03☆4.7SINGLE3554052264914TENG_103.mcs
.59A.NAOKI‚lD‹g“c@ìF@D‚o‚t‚q‚`1-04☆4.2DOUBLE3152702003933TENG_104.mcs
.59???_01‰¹‚Ƀm‚Á‚ĉº‚³‚¢B1-05☆4.4SINGLE3793372415413TENG_105.mcs
.59TADASHI.UMISHIMA‚¢‚¢Š´‚¶‚łł«‚½‚ÆŽv‚¢‚Ü‚·1-06☆4.5SINGLE348405221547TENG_106.mcs
.59T.Hirano‚«‚傤‚à‚æ‚­ƒqƒl‚Ă܂·2-01☆7.1SINGLE3514052234393TENG_201.mcs
.59T.TAMAIƒNƒŠƒA‚ÌŒÀŠE‚É’§íHH2-02☆5.5SINGLE4005402546027TENG_202.mcs
.59S.ADACHI’Pƒ‚È’†‚É‚à’š”J‚³ƒAƒŠI2-03☆4.9SINGLE3805402415715TENG_203.mcs
.59KEISUKE.S“dŽqƒsƒAƒm‰¹‚̂Ƃ¨‚èEEEB2-04☆5.4SINGLE3775402405629TENG_204.mcs
.59O.YAMAMOTOƒsƒAƒm•”•ª‚ª‹S‚©‚àiоj2-05☆5.7SINGLE3123711984651TENG_205.mcs
.59JUN O.u|‚g‚h‚l‚l‚d‚k|v‘«‚X3-01☆5.5SINGLE3513712235239.59__301.mcs
.59WATANABE JUNu’n–v‚ƌĂñ‚Å‚­‚¾‚³‚¢i‹êÎj3-02☆6.1SINGLE4875403106433.59__302.mcs
.59TAKEHIRO-O‚f‚T‚X@’n–‚Ö‚Æ‚¢‚´‚È‚¤ŽÒ3-03☆4.6SINGLE3284052085012.59__303.mcs
.59F.ATHUSHI‰ó‚êŒnˆê•àŽè‘O‚Å‚·B3-04☆5.0SINGLE3824052435616.59__304.mcs
.59N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-05☆5.7SINGLE4485402856328.59__305.mcs
.59Y.KAZAMAKIˆÓŠO‚É“¥‚݈Ղ¢‚©‚ƃeƒ“ƒSƒN3-06☆4.9SINGLE3395402155217.59__306.mcs
.59Yosuke Morita’n–‚Å‚·@‰¹‚ɇ‚Á‚ĂȂ¢‚©‚à3-07☆5.5SINGLE3644052314937.59__307.mcs
.59NAOyuki-Tachihara‚Ü‚¸‚͋ȂɊµ‚ê‚Ü‚µ‚傤B3-08☆4.5SINGLE430506273592.59__308.mcs
.59Ryohei Seki‚Q‚c‚wF‚ð‹­’²B—¼‘«ŒðŒÝ‚ʼnÂB3-09☆5.0SINGLE3724382365517.59__309.mcs
.59T.TSUKAMOTO‚a‚l‚ªŒ³‚Å‚·B4-01☆4.0SINGLE363337231507.59__401.mcs
.59TUBASA.S‹È‚ɇ‚킹‚Ä‚¨‚ǂ낤I4-02☆4.2SINGLE3423372175013.59__402.mcs
.59???_07ƒƒCƒ“ƒƒ‚É‚»‚炸‚É‚P‚U•ªI4-03☆4.6SINGLE3233372054328.59__403.mcs
.59Jun T.ƒsƒAƒm‚ɇ‚킹‚Ä‚ÌƒŠƒYƒ€B4-04☆5.2SINGLE3634052315028.59__404.mcs
.59H.OIKAWAƒr[ƒ}ƒj‚Á‚Û‚­‚µ‚Ü‚µ‚½B4-05☆6.0SINGLE4195402666141.59__405.mcs
.59Daisuke K.‚P‚U•ª‘ꂪőå‚Ì“Á’¥B‚k‚–D‚W4-06☆5.8SINGLE2914721854054.59__406.mcs
.59K.TAKEMURA˜A‘Å‚ªƒLƒcƒC‚ÆŽv‚í‚ê‚Ü‚·B4-07☆5.0SINGLE4525402875711.59__407.mcs
.59SAEKO.TƒVƒ“ƒOƒ‹•ˆ–Ê‚ªD‚«‚Åì‚è‚Ü‚µ‚½B4-08☆4.4DOUBLE3264052074410.59__408.mcs
.59???_09™~‚Ri‹T“I“ïˆÕ“xj4-09☆5.4SINGLE4495402856320.59__409.mcs
.59S.Okano‘S‘Ì“I‚ɃŒƒxƒ‹‚Í’á‚߂ł·B4-10☆5.2SINGLE4065402585622.59__410.mcs
.59K.GOTOU‹È‚ɇ‚Á‚½•ˆ–Ê5-01☆5.1SINGLE3585402275222TENG_501.mcs
.59SoichI InabA‚±‚̃Xƒeƒbƒv‚Í–ü‚³‚ê‚Ü‚·5-02☆3.9SINGLE2832701803328TENG_502.mcs
.59URABE HIROKI‚Ü‚³‚É“V‘I5-03☆2.9DOUBLE2212021401339TENG_503.mcs
.59OKAMOTO Taishiu“Vޱi‚Ä‚ñ‚¶‚­jv‚Ɠǂ݂܂·B5-04☆4.4SINGLE3003031913038TENG_504.mcs
.59Satoru Hata_‚Ì–¼‚Ì‚à‚Æ‚ɹ‰Ì‚Æ‹¤‚É•‘‚¦B5-05☆5.3SINGLE4714722996114TENG_505.mcs
.59YASUSHI.FÀ‚«‚Ü‚·‚©H6-01☆5.2SINGLE4014722555620.59__601.mcs
.59K.Kinugawa‚±‚Ì‹ÈD‚«‚Ȃ̂łd‚c‚h‚s‚µ‚Ü‚µ‚½6-02☆4.8DOUBLE3624722305017.59__602.mcs
.59M.TOKUMOTO–îˆó‚ªƒMƒbƒVƒŠi‚S‚S‚SƒRj6-03☆5.3SINGLE4445402825819.59__603.mcs
.59Yuki IchikawaŽ©•ª‚Ì“¥‚Ý‚½‚©‚Á‚½•ˆ–ʂł·B6-04☆5.7SINGLE4284382726030.59__604.mcs
.59N_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆4.7SINGLE402540255568TENG_701.mcs
.59Ryosuke.T‚Q‚T‚X7-02☆6.4SINGLE4245402706054TENG_702.mcs
.59Yasunobu Okuda‚Æ‚±‚ë‚Ç‚±‚ë‚É‚ ‚é‚P‚U•ª‚É’ˆÓB7-03☆5.5SINGLE3394052154739TENG_703.mcs
.59RYO SAKAI‚©‚È‚µ‚¢‚æB7-04☆4.8SINGLE3235062054419TENG_704.mcs
.59TAKEDA.SYOUHEIƒr[ƒ}ƒjƒeƒCƒXƒg7-05☆6.1SINGLE4515402876141TENG_705.mcs
.59TOMOFUMI YOSHIDA‰¹Šy‚ɇ‚킹‚ÄB7-06☆6.1COUPLE358/3584052275055TENG_706.mcs
.59SEIJI TOUMA‚RŽžŠÔˆÈã‚©‚¯‚Äì‚Á‚½B7-07☆5.2SINGLE3644052315027TENG_707.mcs
.59TATSURO SAKAGUCHI‚Q‚c‚w‚Ì•ˆ–ʂɇ‚킹‚Ă܂·B7-08☆5.1SINGLE485540308658TENG_708.mcs
.59SATOSHI M.­‚µ‚¸‚•ςí‚Á‚Ă܂·B7-09☆4.8SINGLE3493372225326TENG_709.mcs
.59Toshiro Ohtsukaƒ€ƒY‚¢‚Å‚·8-01☆4.6SINGLE3473372205122TENG_801.mcs
.59K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-02☆4.3SINGLE3323372114220TENG_802.mcs
.59K.ItouŽ€A’n–8-03☆6.3SINGLE4695402986342TENG_803.mcs
1,2,3,4,007TOMOKAZU-M‚PA‚QA‚RAƒŒƒxƒ‹‚S1-01☆1.5DOUBLE137175992211234_101.mcs
1,2,3,4,007Takashi.K“¥‚Ý•ûŠo‚¦‚邯‹CŽ‚¿‚ª‚¢‚¢1-02☆5.2SINGLE30831522445461234_102.mcs
1,2,3,4,007YASUHIRO.Oƒ}ƒjƒAƒbƒN‚ÌƒŠƒƒCƒNƒo[ƒWƒ‡ƒ“1-03☆4.3SINGLE22728016540321234_103.mcs
1,2,3,4,007A.NAOKI‚lD‹g“c@ìF‚f‚q‚`‚s‚`‚m1-04☆4.9DOUBLE28128020434541234_104.mcs
1,2,3,4,007YAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚T2-01☆4.4SINGLE26428019638381234_201.mcs
1,2,3,4,007HAJIME.I‚Ú‚æ‚ñìF‹È‚Ì•µˆÍ‹C‚»‚̂܂܂É2-02☆4.4SINGLE30031521841271234_202.mcs
1,2,3,4,007KEISUKE.S‚P”Ô—x‚è‚â‚·‚¢‚©‚à2-03☆4.2SINGLE30031521841221234_203.mcs
1,2,3,4,007M.IWAKURA“¯Žž“¥‚ݨƒXƒLƒbƒvB“ï“x‚W’ö“xB2-04☆4.9SINGLE27231519844411234_204.mcs
1,2,3,4,007FUMIHIRO ISHIWATAƒvƒŒÃìB‹CŠy‚ɃXƒeƒbƒvI2-05☆4.7SINGLE25828018841441234_205.mcs
1,2,3,4,007TAKEHIRO-O‚j‚d‚q‚n‚t‚`‚bI@‚a‚…@‚†‚•‚ނނ™3-01☆4.1SINGLE27728020143251234_301.mcs
1,2,3,4,007K.WAKAKI‚©‚­‚ß‚¢‚̃gƒV3-02☆3.9SINGLE21528015631281234_302.mcs
1,2,3,4,007Kei.UŠX‚ł܂í‚Á‚Ä‚­‚¾‚³‚¢B5-01☆4.2SINGLE26728019443281234_501.mcs
1,2,3,4,007F.KATOU‚r‚r‚q‚ŃMƒƒƒ‰ƒŠ[‚𕦂©‚¹‚ëI5-02☆3.7DOUBLE3003152185051234_502.mcs
1,2,3,4,007K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-03☆3.5SINGLE3303152404611234_503.mcs
1,2,3,4,007S.SATAKE‰½‚Å‚·‚©H‚±‚ê‚ÍiÎj6-01☆7.7SINGLE374560272541021234_601.mcs
1,2,3,4,007SHIGERU ARAI‚Ç‚±‚©‚Éu‚P‚Q‚R‚Sv‚ªB6-02☆3.7SINGLE1232108924431234_602.mcs
1,2,3,4,007K.KinugawaŒã”¼‚͉¡Œü‚¢‚Ä“¥‚߂܂·B6-03☆3.1DOUBLE2832802064031234_603.mcs
1,2,3,4,007SATOSHI HORIUCHIƒTƒr‚Ì•”•ª‚ª‹È‚ÆEEE‚Ç‚¤‚æ7-01☆4.7SINGLE24228017642431234_701.mcs
1,2,3,4,007HIROSHI.M‚¿‚å‚Á‚Æ‚µ‚½—V‚Ñ•ˆ–Ê8-01☆7.1SINGLE28145520454871234_801.mcs
20,NOVEMBERN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆5.3SINGLE260487256632020NO_301.mcs
20,NOVEMBERTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-02☆5.1SINGLE28548728069920NO_302.mcs
20,NOVEMBERMasato T.‚±‚̋Ȃɂ͂±‚̃Xƒeƒbƒv‚Æ‚¢‚¤Š´‚¶B4-01☆5.2SINGLE269487264562120NO_401.mcs
20,NOVEMBERHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆5.1SINGLE264390260651520NO_402.mcs
20,NOVEMBERRyosuke.T‚Q‚PA‚i‚‚Ž‚•‚‚’‚™7-01☆5.2SINGLE30842230367920N__701.mcs
20,NOVEMBER(D.D.R. version)TAKEHIRO-O‚f‚d‚c‚t‚k‚c@”E‘Ï—Í‘ª’è‘•’u3-01☆7.0SINGLE267520263657220NOD301.mcs
20,NOVEMBER(D.D.R. version)SoichI InabA–ü‚µŒn‚ÈŠ´‚¶‚Ăǂ¤‚¼5-01☆2.2SINGLE136162134104220N_D501.mcs
20,NOVEMBER(D.D.R. version)S.SATAKE–¼‹È‚Ȃ̂É`6-01☆6.2SINGLE269520265584820N_D601.mcs
20,NOVEMBER(D.D.R. version)RYO SAKAIƒ`ƒ‡[ƒ€ƒYƒC‚µ‚³B7-01☆4.9SINGLE29552029066520NDD701.mcs
20,NOVEMBER(D.D.R. version)INAGAKI KEIsuke‚Ù‚Æ‚ñ‚Ç‚¨Î‚¢B7-02☆4.5SINGLE173292170473020NDD702.mcs
20,NOVEMBER(D.D.R. version)Fumihiro Ibuki‚ӂ‚¤I7-03☆4.2SINGLE207292204581720NDD703.mcs
20,NOVEMBER(D.D.R. version)Toshiro OhtsukaŠÈ’P‚Å‚·8-01☆3.5SINGLE17629217350420NDD801.mcs
20,NOVEMBER(D.D.R. version)Shimamoto Satoshi‰‚d‚c‚h‚si‚P”N‘Oj8-02☆5.6SINGLE187520190583520NDD802.mcs
20.Novermber(another version)J.GOUKE‹È‚É‚ ‚킹‚ÄB2-01☆4.7SINGLE190325187642120NC2201.mcs
22 DUNKY.IMAI–îˆó‚Ì–³‚¢Š‚łǂ¤–£‚¹‚é‚©H2-01☆2.6DOUBLE106168105172922DC1201.mcs
22 DUNK(another version)J.GOUKE‚ ‚¦‚ăAƒiƒU[‚Ì•û‚ðB2-01☆4.3SINGLE184269182542622DC2201.mcs
5.1.1.J.GOUKE‰‚߂Ăłà‚n‚j‚Ȃ悤‚ÉB2-01☆2.0SINGLE64126672610511C1201.mcs
5.1.1.Y.SAKAI‹È’²‚ɇ‚킹‚Ä—Ž‚¿’…‚¢‚½•ˆ–Ê2-02☆2.7SINGLE1362021433110511C1202.mcs
5.1.1.H.TARUMI‹È‚ðŠy‚µ‚݂Ȃª‚çƒvƒŒƒC‚µ‚Ä—~‚µ‚¢2-03☆5.2SINGLE1932772035151511C1203.mcs
5.1.1.K.Komenoi–ü‚µŒnƒXƒeƒbƒvIH4-01☆3.8SINGLE1422271493928511__401.mcs
5.1.1.H.OIKAWA–Z‚µ‚¢‚Å‚·B4-02☆6.3SINGLE2084042185557511__402.mcs
5.1.1.t.mizuno‚¨‚¿‚‚¢‚ÄB4-03☆2.0SINGLE8217686320511__403.mcs
5.1.1.SoichI InabA–ü‚³‚ê‚Ä‚­‚¾‚³‚¢5-01☆3.4SINGLE1292021354419511__501.mcs
AFRONOVATakashi.K‚Ђ˂肪‘½‚¢‚̂Ō‹\‹êí‚·‚é1-01☆6.1SINGLE4064003023951AFRO_101.mcs
AFRONOVAT.MURATA“¯Žž‚ӂ݂ɒˆÓB1-02☆6.2SINGLE3544002643072AFRO_102.mcs
AFRONOVAYASUHIRO.O“¯Žž“¥‚݂̂ ‚ß‚ ‚ç‚ê1-03☆6.5SINGLE3464002582884AFRO_103.mcs
AFRONOVASOUSHIN.KŒ‹\–Ê”’‚¢‚à‚̂ɂȂè‚Ü‚µ‚½1-04☆4.2SINGLE2664001982620AFRO_104.mcs
AFRONOVAYAMADA HIDETOSHIƒTƒ‹‚炵‚³‚ð’Ç‹‚µ‚Ü‚µ‚½1-05☆5.8SINGLE2674001992173AFRO_105.mcs
AFRONOVAY_TATE‰ÌŽŒH‚É’‰ŽÀ‚Èì‚è‚Å‚·B1-06☆5.9SINGLE3185002404352AFRO_106.mcs
AFRONOVAmurai mitsuruŠy‚µ‚¢ƒŠƒYƒ€‚ɂł«‚Ă܂·B1-07☆5.0SINGLE3544002643925AFRO_107.mcs
AFRONOVASINOMIYA.YƒPƒ`ƒƒ‚Ý‚½‚¢1-08☆5.4SINGLE4446003314520AFRO_108.mcs
AFRONOVAEIJI O.•”•ª“I‚ɉö‚µ‚¢‚Å‚·1-09☆6.1SINGLE3566002653464AFRO_109.mcs
AFRONOVASHIBATA JUNICHIƒrƒ~ƒ‡ƒE‚ɃYƒŒ‚Ä‚¢‚Ü‚·B1-10☆5.7SINGLE4818003584720AFRO_110.mcs
AFRONOVATADASHI.UMISHIMA‹È‚ɇ‚Á‚½Š´‚¶‚Å‚·1-11☆6.8SINGLE4025003004174AFRO_111.mcs
AFRONOVAT.TAMAI“‚³‚Ì’†‚ÉŠy‚µ‚³—L‚èB2-01☆5.4SINGLE4454003324421AFRO_201.mcs
AFRONOVAY.SAKAI‰“‚¢‚̂łW•ª‚Í‚¨‚³‚¦‹C–¡2-02☆6.0DOUBLE28135020911122AFRO_202.mcs
AFRONOVAY.IMAIˆÕ‚µ‚ßB‰SŽÒŒü‚¯‚Å‚·2-03☆2.7SINGLE175250130542AFRO_203.mcs
AFRONOVA???_02”æ‚ê‚Ü‚·‚S2-04☆5.5SINGLE3704002763244AFRO_204.mcs
AFRONOVASUGAWARA TAKASHI‘Ì—ÍŸ•‰‚Ìì•i‚Å‚·B2-05☆7.4SINGLE4036003004393AFRO_205.mcs
AFRONOVAK.SUGAI‚r‚g‚o‚`‚e‚q‚O‚P^‚X2-06☆6.0SINGLE3644002713557AFRO_206.mcs
AFRONOVAKOUICHI TAKEUCHIƒXƒLƒbƒvƒXƒLƒbƒvƒ‰ƒ“ƒ‰ƒ“ƒ‰ƒ“3-01☆5.6SINGLE4364503254229AFRO_301.mcs
AFRONOVAY.ISHIDA‚¢‚â‚Æ‚¢‚¤‚Ù‚Ç’µ‚щñ‚ê‚Ü‚·B3-02☆6.7DOUBLE29735022116177AFRO_302.mcs
AFRONOVAK.WAKAKIƒƒCƒhƒAƒtƒ3-03☆4.4SINGLE2513501872336AFRO_303.mcs
AFRONOVAM.Yamamotoˆê•”ƒIƒtƒBƒVƒƒƒ‹‚ªŽc‚Á‚Ä‚é3-04☆5.7SINGLE3584002673946AFRO_304.mcs
AFRONOVAYosuke Moritaˆê”Ôʼn‚Éì‚Á‚½ƒGƒfƒBƒbƒg3-05☆6.0SINGLE4004002984246AFRO_305.mcs
AFRONOVAT.TSUKAMOTOƒmƒoƒmƒoƒmƒoƒmƒoƒmƒo`4-01☆5.1SINGLE4034003004518AFRO_401.mcs
AFRONOVATUBASA.S‚¿‚å‚Á‚ƃ€ƒYƒJƒVƒCB4-02☆3.7SINGLE2733502031238AFRO_402.mcs
AFRONOVAT.NAGSAKiƒgƒŠƒbƒN‚¶‚ᕨ‘«‚è‚È‚¢lŒü‚¯B4-03☆6.1SINGLE3534002632869AFRO_403.mcs
AFRONOVAT.NAGSAKi‹Ö’f‚Ì••ˆ–Ê‚»‚Ì‚QB4-04☆5.3SINGLE4744003534711AFRO_404.mcs
AFRONOVAY.KAWABE‚P‰ñ‚µ‚©ƒNƒŠƒA‚µ‚½‚±‚Æ‚ª‚È‚¢4-05☆6.9SINGLE6008004475614AFRO_405.mcs
AFRONOVAJun T.‚³‚¯‚Ѻ‚ÉŽO˜A•„B4-06☆5.5SINGLE4386003264424AFRO_406.mcs
AFRONOVAT.YASUDA“ü‚肽‚­‚È‚è‚Ü‚·‚Ë4-07☆4.7SINGLE4004002983613AFRO_407.mcs
AFRONOVADaisuke K.ŒöŽ®‚l‚r‚oŠg’£B‚k‚–D‚X{4-08☆6.7DOUBLE3734002783284AFRO_408.mcs
AFRONOVAK.TAKEMURAƒXƒLƒbƒv“ü‚ê‚Ü‚µ‚½B4-09☆6.4SINGLE3974002964259AFRO_409.mcs
AFRONOVAHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-10☆6.0SINGLE3384002523461AFRO_410.mcs
AFRONOVA???_09™~‚T4-11☆6.5SINGLE4476503334453AFRO_411.mcs
AFRONOVAY.TSUDA‚Ù‚Æ‚ñ‚Ç‚ª˜A‘łł·B5-01☆6.1SINGLE4096503054349AFRO_501.mcs
AFRONOVAHIDEAKI.O‚ [‚ ‚ [5-02☆5.3COUPLE408/4084003043926AFRO_502.mcs
AFRONOVAMITHUTOSHI NAKATA’†‹‰ŽÒŒü‚¯‚©‚ÈH6-01☆5.8SINGLE3694002753849AFRO_601.mcs
AFRONOVAToshihide Fujita‹CŽ‚¿—Ç‚­“¥‚ñ‚Å‚ËI6-02☆5.1DOUBLE3854002874421AFRO_602.mcs
AFRONOVAYASUNORI.Uƒ}ƒWƒ€ƒY‚Å‚·B6-03☆5.8DOUBLE3854002873746AFRO_603.mcs
AFRONOVAYASUNORI.UÅŒã‚ÅŽ€‚·B6-04☆6.0SINGLE3584002673263AFRO_604.mcs
AFRONOVAT.NAOYA‚v‚`‚q‚m‚h‚m‚f6-05☆5.4SINGLE4214003144028AFRO_605.mcs
AFRONOVATAIGA.O‚RƒŒƒ“ƒvBƒŠƒYƒ€‚Í‚¿‚á‚ñ‚Æ•·‚¢‚Ä7-01☆5.8SINGLE2706002042372AFRO_701.mcs
AFRONOVAKAZUYUKI K.‚P‚U•ª‚ÌƒŠƒYƒ€‚Å‚æ‚è‚“ï“x‚É7-02☆6.5SINGLE3984502974064AFRO_702.mcs
AFRONOVAT.HanadalŠÔHŠw‚ð’Ç‹‚µ‚Ü‚µ‚½7-03☆6.4SINGLE4004002983862AFRO_703.mcs
AFRONOVARYOHEI.T & KENICHI.TƒWƒƒƒ“ƒv‘½‚­‚Ä”æ‚ê‚é‚©‚ÈH7-04☆5.8SINGLE3224002402763AFRO_704.mcs
AFRONOVARYO SAKAIƒ€ƒ€ƒ€ƒ€ƒ€B7-05☆0.6SINGLE1132008400AFRO_705.mcs
AFRONOVASEIJI TOUMA‚ ‚ñ‚Üi•à‚È‚¢EEE7-06☆6.2SINGLE4234503154149AFRO_706.mcs
AFRONOVAFumihiro Ibukiƒ„ƒoƒC‚­‚炢ŋ­B7-07☆6.3SINGLE4376003264844AFRO_707.mcs
AFRONOVA???_21–Ú‰Ÿ‚µ—ûK—p‚Å‚·B΂¦‚Ü‚·B7-08☆6.0SINGLE3488002597036AFRO_708.mcs
AFRONOVAYUJI.OŽjãÅ‘¬‚̃XƒeƒbƒvH7-09☆5.9SINGLE3285502442866AFRO_709.mcs
AFRONOVAD.fujisaki‚Ƃɂ©‚­˜A‘ÅI‘Ì—Í–½I7-10☆5.8SINGLE4614003444526AFRO_710.mcs
AFRONOVAF.ATHUSHI“‚¢‚¯‚Ç‘S•”ŒðŒÝ‚Å“¥‚߂܂·B7-11☆5.9SINGLE3894002903748AFRO_711.mcs
AFRONOVAK.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.6SINGLE4264003174230AFRO_801.mcs
AFRONOVAHAJIME.I‚Ú‚æ‚ñìF‚Q‚̃}ƒjƒŒƒxƒ‹‚É8-02☆4.5SINGLE3223502402734AFRO_802.mcs
AFRONOVAKOHEI.Tºƒlƒ^‚ɇ‚킹‚Ä“¥‚ÞƒCƒ`ƒIƒV‹ÈB8-03☆4.5SINGLE232500173499AFRO_803.mcs
AFRONOVA PRIMEVAL???_03‚ß‚´‚¹‚T‚O‚PƒXƒeƒbƒvII3-01☆5.3SINGLE5014003174124AFROP301.mcs
AFRONOVA PRIMEVALA.NAOKI‚f‚‚”‚”‚‚ŽìF‚`‚k‚k“¯Žž3-02☆7.1SINGLE26840016919268AFROP302.mcs
AFRONOVA PRIMEVALRYOSUKE TAKASHIMA‘«‰^‚Ñ‚ðl‚¦‚È‚¢‚Æs‚«Ž~‚Ü‚è3-03☆6.1SINGLE4854003064051AFROP303.mcs
AFRONOVA PRIMEVALY.SAKAI‚W•ª‘ꂪ؂蔲‚¯‚ç‚ê‚ê‚ÎcB3-04☆6.2SINGLE4404002783961AFROP304.mcs
AFRONOVA PRIMEVALY.SAKAI•Ê‚d‚c‚h‚s‚Ì‚Uƒpƒlƒ‹ƒo[ƒWƒ‡ƒ“3-05☆6.3SOLO4544002874061AFROP305.mcs
AFRONOVA PRIMEVAL???_05ƒŠƒƒ“ƒo[ƒXƒeƒbƒv‚R”­–ÚƒFI3-06☆6.3SINGLE4534002863267AFROP306.mcs
AFRONOVA PRIMEVALTOMOKAZU-M‚u‚‰‚–‚IƒAƒtƒI4-01☆6.1DOUBLE4446502814352AFROP401.mcs
AFRONOVA PRIMEVALT.HIRASAWAŒ´‹È•—4-02☆6.1SINGLE4214002663066AFROP402.mcs
AFRONOVA PRIMEVALT.TSUKAMOTO‘«‚P‚OB”æ‚ê‰Ê‚Ă܂·c4-03☆5.4SINGLE4644002934626AFROP403.mcs
AFRONOVA PRIMEVALY.KAWABE‚R‚’‚„‚Ì‚à‚Ì‚ð‚‚¯‚Ă݂½4-04☆5.9SINGLE4184002643159AFROP404.mcs
AFRONOVA PRIMEVALT.YASUDAƒoƒiƒi@ƒoƒiƒi4-05☆5.7SINGLE5304003354327AFROP405.mcs
AFRONOVA PRIMEVALt.mizuno‚Í‚°‚µ‚¢‚Å‚·iÎj4-06☆5.4SINGLE4524002863636AFROP406.mcs
AFRONOVA PRIMEVALNatsumi.Kobayashi‚ ‚܂肱‚ê‚ÍŽ©M‚È‚¢‚Å‚·5-01☆6.0SOLO4905003104144AFROP501.mcs
AFRONOVA PRIMEVALSEIJI W.‚¢‚«‚È‚èŽn‚Ü‚é‚̂ŗv’ˆÓ5-02☆6.5SINGLE4534002864165AFROP502.mcs
AFRONOVA PRIMEVALH.KondohŒƒƒ€ƒYI‚X{{5-03☆6.5DOUBLE4274002704070AFROP503.mcs
AFRONOVA PRIMEVALSatoru HataŽçŒì›“V‚Á‚Ä•·‚±‚¦‚È‚¢‚©H5-04☆8.4SINGLE52160032944120AFROP504.mcs
AFRONOVA PRIMEVALHIGASHI SENSHIROU‚‚©‚ê‚Ü‚·B5-05☆5.8SINGLE5444503444428AFROP505.mcs
AFRONOVA PRIMEVALHIROAKI.MATSUUCHI“‚¢‚Å‚·B6-01☆6.1SINGLE5114003234046AFROP601.mcs
AFRONOVA PRIMEVAL???_15ƒtƒ‹ƒRƒ“ƒ{‚͓‚¢‚Å‚µ‚傤B6-02☆6.8SINGLE4698002964275AFROP602.mcs
AFRONOVA PRIMEVALS.SATAKE‚±‚ê‚Å‚àŠÈ’P‚É‚µ‚Ü‚µ‚½B6-03☆8.1SINGLE6057503825181AFROP603.mcs
AFRONOVA PRIMEVALKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-04☆4.4COUPLE198/19820012510110AFROP604.mcs
AFRONOVA PRIMEVALK.KiNOSHITA’§í‚µ‚ª‚¢‚Ì‚ ‚éƒV[ƒPƒ“ƒX6-05☆5.9SOLO3764002373558AFROP605.mcs
AFRONOVA PRIMEVALMITHUTOSHI NAKATA‚©‚È‚èƒCƒCŠ´‚¶B6-06☆6.3SINGLE4424002794358AFROP606.mcs
AFRONOVA PRIMEVALMichitaka Kimuraƒ{ƒbƒXƒB`•ƒIƒbƒTƒ“•‚«‚Þ‚ç6-07☆7.0SINGLE4395502774682AFROP607.mcs
AFRONOVA PRIMEVALTAKEO.UŒ©‚ëI‚±‚ꂪŒ´Žn‚Ì‚o‚n‚v‚d‚q‚¾I6-08☆6.6SINGLE4154002623679AFROP608.mcs
AFRONOVA PRIMEVALTAKEO.U‚`‚k‚k@‚o‚d‚q‚e‚d‚b‚ss‚¯‚éH6-09☆5.8SINGLE3963502502971AFROP609.mcs
AFRONOVA PRIMEVALYASUNORI.U‚Ý‚ñ‚ȂŃWƒƒƒ“ƒvI6-10☆6.2SINGLE4434002803861AFROP610.mcs
AFRONOVA PRIMEVALYASUNORI.U‚â‚肪‚¢‚ª‚ ‚è‚Ü‚·B6-11☆6.3DOUBLE4524502863566AFROP611.mcs
AFRONOVA PRIMEVALYASUNORI.U‚`‚e‚q‚n‚Ì‹SB6-12☆6.6SINGLE4244002683580AFROP612.mcs
AFRONOVA PRIMEVALNOBUTAKA TSUTSUMI‚ƂĂà‚‚©‚ê‚Ü‚·B6-13☆6.0SINGLE5014503175237AFROP613.mcs
AFRONOVA PRIMEVALTAKESHI MATSUMOTO‚¿‚å‚Á‚Æ‚â‚炵‚¢ã‚ɂ‚©‚ê‚éc7-01☆5.0SINGLE4416502794520AFROP701.mcs
AFRONOVA PRIMEVALT.HanadaƒAƒtƒAƒpƒ[ƒAƒbƒvI7-02☆6.5COUPLE470/4706502974263AFROP702.mcs
AFRONOVA PRIMEVALN.NAGANO‹È‚ɂ̂Á‚ÄŠy‚µ‚ñ‚ʼnº‚³‚¢B7-03☆6.6SINGLE4174002633579AFROP703.mcs
AFRONOVA PRIMEVALRYO.N.‘Ì—ÍŽg‚¢‚Ü‚·B7-04☆6.6SINGLE4454002814071AFROP704.mcs
AFRONOVA PRIMEVALF.ATHUSHIˆÚ“®‚ª‚¯‚Á‚±‚¤ƒLƒcƒC‚Å‚·B7-05☆5.8DOUBLE4324002733847AFROP705.mcs
AFRONOVA PRIMEVALK.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.5SINGLE4744003003933AFROP801.mcs
AFRONOVA PRIMEVAL???_22‹ŒƒAƒtƒ‚È•ˆ–ÊB„’è‚k‚u‚Xª8-02☆6.8SINGLE4695502963678AFROP802.mcs
AFRONOVA PRIMEVALShimamoto Yuuki‚Þ‚¸‚¢‚¯‚Ç‚â‚Á‚Ä‚­‚ê8-03☆5.5SINGLE5064003204625AFROP803.mcs
AFTER THE GAME OF LOVETOMOKAZU-MƒEƒQ[II1-01☆7.1DOUBLE3334202365782AFTE_101.mcs
AFTER THE GAME OF LOVETakashi.KƒŠƒYƒ€‚ɇ‚킹‚½ƒXƒeƒbƒvB1-02☆5.9SINGLE2893152055167AFTE_102.mcs
AFTER THE GAME OF LOVEYAMADA HIDETOSHI‚r‚r‚qŠ´Šo‚łǂ¤‚¼1-03☆5.2SINGLE2472101754176AFTE_103.mcs
AFTER THE GAME OF LOVEmurai mitsuru‚k‚–‚Ì’á‚¢ƒAƒtƒ^[‚ª‚k‚–‚•‚B1-04☆4.0SINGLE2752881955016AFTE_104.mcs
AFTER THE GAME OF LOVEEIJI O.‹l‚Ü‚Á‚Ă܂·1-05☆5.3SINGLE2973152105248AFTE_105.mcs
AFTER THE GAME OF LOVEY.SAKAIƒIƒtƒBƒVƒƒƒ‹‚æ‚è­‚µ‚“ï“x2-01☆3.2SINGLE2452101734015ATGOL201.mcs
AFTER THE GAME OF LOVET.Ochiail–¼‚ł͂ ‚è‚Ü‚¹‚ñB2-02☆3.9SINGLE263341186641ATGOL202.mcs
AFTER THE GAME OF LOVEYUKI Yokota”÷–­‚È“_‚ð“Ë‚­Š´‚¶2-03☆2.4SINGLE231210163351ATGOL203.mcs
AFTER THE GAME OF LOVEFUMIHIRO ISHIWATAƒvƒŒÃìBƒTƒr‚ðŒˆ‚ß‚ëI2-04☆3.7SINGLE2032621443423ATGOL204.mcs
AFTER THE GAME OF LOVEJUN O.u‚k‚h‚d‚a‚d‚k‚d‚hv‘«‚W3-01☆4.6SINGLE2954202095610ATGL_301.mcs
AFTER THE GAME OF LOVEWATANABE JUNƒƒJƒŠƒdƒ‰ƒT‚m‚D‚PH3-02☆6.1SINGLE3393932405651ATGL_302.mcs
AFTER THE GAME OF LOVEN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-03☆4.3SINGLE235393166631ATGL_303.mcs
AFTER THE GAME OF LOVEYASUHIRO.O—x‚ê‚邿‚¤‚Éì‚è‚Ü‚µ‚½3-04☆4.2DOUBLE2392361694037ATGL_304.mcs
AFTER THE GAME OF LOVEY.KAZAMAKIƒIƒŠƒIƒ“‚Æ‚©‚̃AƒŒ‚Å‚·ƒlB3-05☆6.1SINGLE3142622225385ATGL_305.mcs
AFTER THE GAME OF LOVERYOSUKE TAKASHIMA‚P‚U•ª‚̈ړ®—v’ˆÓ3-06☆5.5DOUBLE3034202156030ATGL_306.mcs
AFTER THE GAME OF LOVEKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-07☆1.8SINGLE1642101161212ATGL_307.mcs
AFTER THE GAME OF LOVEMIO.S’·X‚Æ‚W•ª“¥‚Ý‚ª‘±‚«‚Ü‚·B4-01☆4.3SINGLE2732621934830AFTE_401.mcs
AFTER THE GAME OF LOVEH.Kondoh‚W5-01☆4.8DOUBLE3003152125034ATGOL501.mcs
AFTER THE GAME OF LOVESATOSHI.H‚P‚Q•ª‚ðŽg‚Á‚½Ž©Mì5-02☆5.8SINGLE3403152416255ATGOL502.mcs
AFTER THE GAME OF LOVEKeisuke OgiwaraŽ„‚ÌD‚«‚È‚r‚r‚q•ˆ–Ê‚ðc6-01☆5.4SINGLE3134202226026ATGOL601.mcs
AFTER THE GAME OF LOVEKENGO NAKAMURA‚ä‚Á‚­‚è‚ȋȂÁ‚Ä‚d‚c‚h‚s‚µ‚â‚·‚¢6-02☆4.3SINGLE2682621904732ATGOL602.mcs
AFTER THE GAME OF LOVEYuki Ichikawaƒ‰ƒXƒ{ƒX‹‰‚Ì“ïˆÕ“xB6-03☆7.1SINGLE3614202566474ATGOL603.mcs
AFTER THE GAME OF LOVEKAZUHITO TSUBOTAƒƒƒE‚ȋȒ²‚É‚»‚®‚í‚È‚¢•ˆ–ÊB7-01☆6.2SINGLE2912882065977AFTE_701.mcs
AFTER THE GAME OF LOVEYOSHIHIKO MOTOYASUŽ©ŒÈƒ}ƒ“‚Å‚·B7-02☆6.1SINGLE2693411905465AFTE_702.mcs
AFTER THE GAME OF LOVESATOSHI M.ˆÓŠO‚ƃYƒŒ‚Ä‚éEEEH7-03☆4.3SINGLE2182361544536AFTE_703.mcs
AFTER THE GAME OF LOVED KYUTOKU‚±‚Ì‹ÈA‘åD‚«‚Å‚·7-04☆3.0SINGLE186236132444AFTE_704.mcs
AFTER THE GAME OF LOVEKOHEI.T‚Ü‚½[‚è‚¢‚«‚Ü‚µ‚傤B8-01☆3.7SINGLE206288146623AFTE_801.mcs
AM-3PSOUSHIN.K‚¢‚â[‚¢‚¢‹È‚¾1-01☆3.4SINGLE1982601694110AM3P_101.mcs
AM-3PYAMADA HIDETOSHI‚R‚’‚„‚r‚r‚q‚X‹È‚Ì•ˆ–Ê‚ð‚l‚h‚w1-02☆5.9SINGLE2483572125456AM3P_102.mcs
AM-3PYAMADA HIDETOSHIˆê•”ƒXƒ‰ƒCƒh‚ðŽg‚Á‚ĉº‚³‚¢1-03☆5.6DOUBLE2584552204742AM3P_103.mcs
AM-3PJ.GOUKE”¼•ª‚­‚ç‚¢— ‚Å‚·2-01☆5.2SINGLE1902601626248AM3P_201.mcs
AM-3PHIROKI TAKAHASHIƒIƒtƒBƒVƒƒƒ‹•ˆ–ʂ̃AƒŒƒ“ƒW‚Å‚·B2-02☆6.0SINGLE2483252125269AM3P_202.mcs
AM-3PY.IMAIƒTƒr‚ÌŠA‚ ‚È‚½‚È‚ç‚Ç‚¤“¥‚ÞH2-03☆4.0SINGLE1932601654026AM3P_203.mcs
AM-3PH.TARUMI–Ú—§‚½‚È‚¢‰¹‚ðE‚¦‚é‚©‚ªŒˆ‚ߎè2-04☆6.1SINGLE2344222004856AM3P_204.mcs
AM-3PYUKI Yokota‹@ŠB“I‰¹º‚ª‚¢‚¢Š´‚¶2-05☆3.3SINGLE265260226419AM3P_205.mcs
AM-3PTAKEHIRO-O‚a‚k‚t‚s‚r‚o‚t‚q@ŒŒ­Šó–]‘3-01☆6.8SINGLE2934552505969AM3P_301.mcs
AM-3PTakahiro.H‘«‚V‚­‚ç‚¢3-02☆4.9SINGLE2082271784757AM3P_302.mcs
AM-3PSHiNiCHi SAiTHOØ–¾I—¹Bƒtƒ@ƒ“‚É•ù‚°‚Ü‚·B4-01☆4.2DOUBLE2502922135518AM3P_401.mcs
AM-3P???_07‚`‚l|‚R‚o‚ð‚à‚Á‚Æ‚â‚낤I4-02☆6.5SINGLE3214222745857AM3P_402.mcs
AM-3PSAEKO.TƒVƒ“ƒOƒ‹•ˆ–ÊŠo‚¦‚Ä‚¢‚Ü‚·H4-03☆4.8DOUBLE2612922235037AM3P_403.mcs
AM-3PYuto Jijiwa‚l‚`‚m‚h‚`‚b³‹K”Å5-01☆4.5SINGLE2273571945513AM-3P501.mcs
AM-3POKAMOTO Taishi•Б«‚Å“¥‚ñ‚¾‚Ù‚¤‚ªŠy‚©‚àccB5-02☆3.6SINGLE286260244537AM-3P502.mcs
AM-3PKatsuhiko Kinoshita“‚·‚¬‚È‚¢‚悤‚É5-03☆3.7SINGLE2042601745013AM-3P503.mcs
AM-3PKEIGO.H‚r‚h‚m‚f‚k‚d@ƒEƒHƒ“ƒ`ƒ…[I5-04☆4.8SINGLE2683252295428AM-3P504.mcs
AM-3PKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-05☆4.5DOUBLE2442922084930AM-3P505.mcs
AM-3PHIGASHI SENSHIROU‚â‚Á‚ĉº‚³‚¢B5-06☆4.9DOUBLE2953902525316AM-3P506.mcs
AM-3PYASUSHI.FŠÈ’P‚Å`‚·II6-01☆5.9SINGLE2643902255647AM3P_601.mcs
AM-3P???_17‚P‚U•ª‘½‚µI’ˆÓI6-02☆5.1SINGLE3344222856312AM3P_602.mcs
AM-3PT.NAOYA‚c‚d‚m‚f‚d‚q6-03☆6.4SINGLE3193902735657AM3P_603.mcs
AM-3PYuki Ichikawaƒ_ƒuƒ‹‚̃Vƒ“ƒOƒ‹”ÅB6-04☆7.0SINGLE3514223006363AM3P_604.mcs
AM-3PYuki IchikawaƒNƒŠƒA‚µ‚½‚ç•ñ‚ðBiƒ}ƒej6-05☆7.1DOUBLE3554223036367AM3P_605.mcs
AM-3PTAKU YAMAMOTOʼn‚Ì•”•ª‚ª•ςł·‚©‚¢H7-01☆5.8SINGLE2144551835345AM3P_701.mcs
AM-3PT.Hanada‚ ‚éƒRƒ}ƒ“ƒh‚ªEEEH7-02☆6.4SINGLE2853902435759AM3P_702.mcs
AM-3PKAZUHITO TSUBOTA’†”Õ‚ª­‚µƒLƒcƒC‚©‚àB7-03☆5.3SINGLE2593252215444AM3P_703.mcs
AM-3PDAISUKE KAMISAKA‚P‚U•ª‚𑽂߂Ɏg‚¢‚Ü‚µ‚½B7-04☆4.7SINGLE2503902135016AM3P_704.mcs
AM-3PK.KAWASEƒƒŠ‚Æ—Ç‚­‚Å‚«‚½•ˆ–Ê‚©‚ÈIH7-05☆5.0SINGLE2523252155035AM3P_705.mcs
AM-3PF.ATHUSHI‰ó‚êŒn‚Å‚·B7-06☆5.7SINGLE3123902675437AM3P_706.mcs
AM-3PHAJIME.I‚Ú‚æ‚ñìF•sŽv‹c‚ÈƒŠƒYƒ€8-01☆4.4SINGLE2342922005423AM3P_801.mcs
AM-3PKOHEI.TƒRƒ“ƒVƒ…[ƒ}‘æ‚R•”B8-02☆5.4SINGLE2754222355528AM3P_802.mcs
B4UTakashi.Kƒ‰ƒbƒv‚̘A‘łƃTƒr‚Ì‚P‚U•ª‚ªƒEƒŠ1-01☆5.8SINGLE4215032815435B4U__101.mcs
B4UT.MURATA‚Ƃɂ©‚­ƒm‚Á‚ĉº‚³‚¢B1-02☆6.6SINGLE3684652504970B4U__102.mcs
B4UKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-03☆4.9DOUBLE3673872454921B4U__103.mcs
B4UKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-04☆5.6DOUBLE4143872765930B4U__104.mcs
B4UYASUHIRO.O—x‚邱‚Æ‚ªo—ˆ‚é‚d‚c‚h‚s‚Å‚·1-05☆5.8SINGLE2763101843382B4U__105.mcs
B4USOUSHIN.Kƒ„ƒx[‚æƒRƒŒƒ„ƒx[‚æiÎj1-06☆5.2SINGLE4196202806315B4U__106.mcs
B4UYAMADA HIDETOSHI‰”N‚Ì‚r‚r‚q“I1-07☆6.0SINGLE3633872424159B4U__107.mcs
B4Umurai mitsuru‚k‚–‚XˆÈã‚̓‚³B1-08☆6.2SINGLE4355812905944B4U__108.mcs
B4UHIROKI.NŒã”¼‚܂ł̗͑͟•‰‚Å‚·B1-09☆4.9SINGLE4163482785819B4U__109.mcs
B4USHINTARO MICHIHIRO‘Ì—Í‚ª‚¢‚è‚Ü‚·B1-10☆4.1SINGLE4003102674215B4U__110.mcs
B4USHOTA,SAITOH.ƒQ[ƒ€«‚ðdŽ‹‚µ‚Ä‚¢‚Ü‚·B1-11☆5.8SINGLE3394652264152B4U__111.mcs
B4UH.KAWAKAMIƒJƒƒZƒ“Ž‚Æ‚Ì‹¤“¯ŠJ”­B1-12☆5.6DOUBLE3745422494441B4U__112.mcs
B4USINOMIYA.Y‚m‚`‚n‚j‚hƒTƒCƒR[1-13☆6.0COUPLE439/4504262935837B4U__113.mcs
B4UKEISUKE.M”M‚¢‚º‚a‚S‚tI1-14☆7.1SINGLE33438722341100B4U__114.mcs
B4UMASAYA.TAGUTU‘«‚Å‚à‚Å‚«‚邯Žv‚¢‚Ü‚·1-15☆5.2SINGLE3693482463943B4U__115.mcs
B4UA.NAOKI‚f‚‚”‚”‚‚ŽìF‚a‚S‚t‚S‚t1-16☆5.6DOUBLE3113102073572B4U__116.mcs
B4U???_01‘娂̕û‚É‚â‚Á‚Ä‚à‚ç‚¢‚½‚¢‚ÈB1-17☆4.9SINGLE4094652735811B4U__117.mcs
B4UT.Hirano“r’†‚Ƀf[ƒ^–¼‚̈Ӗ¡‚ªH2-01☆6.7SINGLE4003872675072B4U__201.mcs
B4UT.TAMAIƒŠƒYƒ€‚ÌŒÀŠE‚É’§íB2-02☆5.5SINGLE4704653146017B4U__202.mcs
B4UY.SAKAI“ïˆÕ“x‚â‚â‚Ђ©‚¦‚ß2-03☆4.7SINGLE2853101903046B4U__203.mcs
B4UYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚Q2-04☆4.9SINGLE3853482575523B4U__204.mcs
B4UHAJIME.I‚Ú‚æ‚ñìFƒIƒtƒBƒVƒƒƒ‹‚ðŒ³‚É2-05☆4.6SINGLE3223872154516B4U__205.mcs
B4U???_02‚T‚”‚ˆ‚Ì‚a‚S‚tƒƒ“ƒO”Å‚Á‚Û‚¢H2-06☆5.0SINGLE3803872535222B4U__206.mcs
B4USUGAWARA TAKASHI‘«•„‚ª‚R‚X‚S‚à‚ ‚é—Íì‚Å‚·B2-07☆5.4SINGLE3943482635238B4U__207.mcs
B4US.ADACHIƒŠƒYƒ€@‚†‚’‚‚@ƒr[ƒgƒ}ƒjƒA2-08☆6.7SINGLE4905423276546B4U__208.mcs
B4UKEISUKE.S‘ƒRƒ“ƒ{‚T‚V‚R‚̊댯“x‚m‚D‚PI2-09☆6.6SINGLE5735423826724B4U__209.mcs
B4UKEISUKE.S‚T‚V‚R‚a‚S‚tI‚æ‚è‚̓}ƒV‚©‚È`2-10☆6.0SINGLE4064262715146B4U__210.mcs
B4UO.YAMAMOTO‚m‚d‚n‚j‚hƒVƒŠ[ƒYW‘嬂ł·B2-11☆6.8SINGLE3644262435474B4U__211.mcs
B4UK.TAKEMURA‚©‚È‚è‚ÌŽ©Mì‚Å‚·B2-12☆5.3SINGLE4455032976214B4U__212.mcs
B4UM.IWAKURAƒGƒ“ƒhƒ‹ƒtƒBƒ“•ª”åB“ï“x‚X’ö“xB2-13☆4.6SINGLE432387288585B4U__213.mcs
B4UH.TARUMIƒCƒ“ƒgƒ‚ƃTƒr‚ÌƒŠƒYƒ€‚ª‚­‚¹‚à‚Ì2-14☆6.5SINGLE4134262766054B4U__214.mcs
B4UJUN O.u‚a‚d‚k‚h‚d‚e‚S‚tv‘«‚W3-01☆6.1SINGLE3943872635350B4U__301.mcs
B4UWATANABE JUN“¯ƒlƒ^‘½”EEEIH3-02☆8.4SINGLE5755813846684B4U__302.mcs
B4UWATANABE JUN™X‚ÉA™X‚ÉEEE3-03☆5.3SINGLE4485422996214B4U__303.mcs
B4UKoichi Nakayama‚k‚n‚m‚f@‚u‚…‚’D‚Åì‚Á‚½‚çc3-04☆4.4SINGLE443426296570B4U__304.mcs
B4UF.ATHUSHI‘«Šµ‚炵‚ÉB3-05☆5.7SINGLE3483482324061B4U__305.mcs
B4UF.ATHUSHI‰ó‚êŒn‚̋ɒvB‘•ˆ”‚T‚P‚UII3-06☆5.0SINGLE516620344581B4U__306.mcs
B4UF.ATHUSHI‘«Šµ‚炵‚ÉB3-07☆5.5DOUBLE3413482274251B4U__307.mcs
B4UN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-08☆7.8SINGLE5295423536774B4U__308.mcs
B4UK.TAKEMURA‚à‚Ì‚·‚²‚­”æ‚ê‚Ü‚·B3-09☆5.5SINGLE522542348697B4U__309.mcs
B4UTOMOHIRO NAKAIƒ‰ƒbƒv•”•ª‚̃mƒŠ‚É–½‚ð‚©‚¯‚ëI3-10☆6.4SINGLE5475813657024B4U__310.mcs
B4UDAISUKE MATSUDAƒTƒr‚ðƒrƒV‚Á‚ÆŒˆ‚߂ĂËI3-11☆4.9SINGLE3573482385822B4U__311.mcs
B4UDAISUKE MATSUDA‹È‚̃mƒŠ‚ð‘Ì‘S‘̂Ŋ´‚¶‚Ä‚ËI3-12☆3.9SINGLE2613481743017B4U__312.mcs
B4UY.ISHIDA‚Ȃ‚©‚µ‚¢ƒXƒeƒbƒv‚ªo‚Ä‚«‚Ü‚·B3-13☆2.4SINGLE233271155929B4U__313.mcs
B4UK.WAKAKI‚‘‚•‚‰‚ƒ‚‹‚Œ‚™@‚u3-14☆4.5SINGLE2573101712941B4U__314.mcs
B4UM.Yamamoto‚aC‚aC‚aC‚a‚S‚tI3-15☆6.5SINGLE4064262716156B4U__315.mcs
B4UTAKESHI.NUMAOƒ€ƒYƒJƒVƒC‚Å‚·B3-16☆5.9SINGLE5004653346621B4U__316.mcs
B4U???_05‚m‚•|‚n‚gIƒVƒŠ[ƒY’†ˆê”Ô‚«‚‚¢3-17☆6.3SINGLE4884653266038B4U__317.mcs
B4UYosuke Moritaˆê”Ô—Í‚ð“ü‚ꂽƒGƒfƒBƒbƒg3-18☆6.9SINGLE4154652775371B4U__318.mcs
B4UNAOyuki-Tachihara‚T‚V‚R‚Ì‚R‚–ÚBƒNƒZ‚ðŒ©”²‚­‚ׂµ3-19☆5.9SINGLE573581382687B4U__319.mcs
B4UT.HIRASAWA“‚­‚È‚Á‚¿‚á‚Á‚½‚©H4-01☆5.3SINGLE3173482113553B4U__401.mcs
B4UT.HIRASAWAŒy‰õ‚Éi‚ÆŒ¾‚Á‚Ă銄‚É‚ÍHj4-02☆4.7DOUBLE2863481912051B4U__402.mcs
B4UT.TSUKAMOTO‘«‚P‚QB‚¢‚¢o—ˆ‚Å‚·B4-03☆5.0SINGLE493542329701B4U__403.mcs
B4UY.KAWABE‚Q‚c‚w•—@ƒm[ƒg”‚T‚T‚T4-04☆6.1SINGLE5555423706517B4U__404.mcs
B4UT.YASUDA‚í‚©‚è‚â‚·‚¢‚Å‚·‚Ë4-05☆5.2SINGLE4105422745321B4U__405.mcs
B4UD.OSHIMA‚l‚`‚m‚h‚`‚b‚ðƒŒƒxƒ‹ƒAƒbƒvI4-06☆5.7SINGLE4324652884835B4U__406.mcs
B4UH.OIKAWA‚±‚̋ȂƂĂàD‚«‚Å‚·B4-07☆8.1SINGLE5286203526785B4U__407.mcs
B4Um.suzukiƒ‰ƒXƒg‚É’–ÚI4-08☆6.6SINGLE3653482434983B4U__408.mcs
B4UT.FukazawaFiÄ‚«‹ï‡j‚ÌŒ©‹É‚ß‚ªd—vB4-09☆6.3SINGLE3425422285062B4U__409.mcs
B4UKouki.U‹P‚«‚æ‰i‰“‚ÉI4-10☆5.2SINGLE4254262845618B4U__410.mcs
B4UMIO.SƒG[ƒŒƒ“‚³`‚ñi‚sQ‚sj4-11☆5.3SINGLE4115422746618B4U__411.mcs
B4U???_08ƒŒƒxƒ‹‚XA‚‚Ȃ°‚Ü‚·‚©H4-12☆5.4DOUBLE3413482274250B4U__412.mcs
B4U???_09™~‚T4-13☆8.5SINGLE5305813546797B4U__413.mcs
B4US.Okano–{“–‚ɉ¹‚ðŠ´‚¶‚é—l‚È‹C‚ª‚µ‚Ü‚·4-14☆5.5SINGLE525581350715B4U__414.mcs
B4U???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆5.6SINGLE2583871724445B4U__501.mcs
B4UHAJIME M.ƒXƒNƒ‰ƒbƒ`‚ŃWƒƒƒ“ƒv˜A‘±5-02☆4.8SINGLE3283482194232B4U__502.mcs
B4UYuto Jijiwaʼn‚ÅÅŒã‚Ì‚Uƒpƒlƒ‹‚Å‚·B5-03☆5.8SOLO4334262896030B4U__503.mcs
B4UK.GOTOUˆê”ÔŽèŠÔ‚©‚¯‚½‹È5-04☆5.0SINGLE4183872796014B4U__504.mcs
B4UD.KAWABATAƒgƒŠƒbƒN‚ł͂à‚Ì‘«‚è‚È‚¢l‚Ö5-05☆3.5SINGLE2633481752016B4U__505.mcs
B4UDAISUKE.H‹P‚­ƒXƒeƒbƒv‚ðEEE5-06☆5.5SINGLE4143872765429B4U__506.mcs
B4UURABE HIROKI’´ƒIƒXƒXƒII5-07☆5.3SINGLE3774262515127B4U__507.mcs
B4UABE TaTsuMa‚¿‚å[ƒ€ƒYƒC‚Å‚·B5-08☆4.7SINGLE413542276566B4U__508.mcs
B4UF.KATOUˆ«‹S‚点‚ÂI‹†‹É‚Ì‚r‚r‚q‚Å‚·B5-09☆6.2SINGLE5165423446428B4U__509.mcs
B4UT.MAMIYA‚Ђ½‚·‚ç‰ñ“]‚µ‚Ü‚­‚Á‚Ä‚­‚¾‚³‚¢B5-10☆5.1SINGLE3023482013944B4U__510.mcs
B4UKATSUHIKO KOBAYASHIŽŽ—û‚ÍŽ„‚½‚¿‚̈¤‚ð”R‚¦ã‚ª‚点‚é5-11☆6.3SINGLE3963872645756B4U__511.mcs
B4UTomoyuki Takahashi‹C‡‚Åæ‚èØ‚Á‚ĉº‚³‚¢B5-12☆5.1SINGLE3945422635519B4U__512.mcs
B4U???_13ƒtƒ‹ƒRƒ“ƒ{‚ŃNƒŠƒA‚Å‚«‚½‚çÅ‚I5-13☆6.3SINGLE4884653266236B4U__513.mcs
B4UK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-14☆4.6SINGLE432387288518B4U__514.mcs
B4UMits-hide Obata“ü‚ê‘Ö‚í‚êI‚æ[‚­Œ¤‹†‚µ‚Ä‚Ë5-15☆8.4COUPLE299/35242619965185B4U__515.mcs
B4UKazuhiko Chiba‚biŽ€j‚S‚tA‚È‚ñ‚Ä‚ËB5-16☆6.1SINGLE3565422374260B4U__516.mcs
B4USatoru HataƒR[ƒhƒVƒAƒƒZƒTƒNƒ‰ƒTƒN5-17☆7.6SINGLE5565423716861B4U__517.mcs
B4UKatsuhiko Kinoshita—x‚è‚â‚·‚¢5-18☆4.4SINGLE2453101632542B4U__518.mcs
B4USATOSHI.HŽ©Mì‚Á‚·I‚â‚Á‚Ă݂ĉº‚³‚¢B5-19☆6.0SINGLE4675033125635B4U__519.mcs
B4UJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆6.5SINGLE4625423086146B4U__601.mcs
B4UHIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·B6-02☆4.5SINGLE3033102022547B4U__602.mcs
B4UYASUSHI.F‚aC‚aC‚aC‚a‚S‚t`II6-03☆5.6SINGLE4905423276814B4U__603.mcs
B4UKeisuke OgiwaraŽ„‚̃Cƒ`ƒIƒV•—‚Å‚·i“ä6-04☆4.6SINGLE3383482253827B4U__604.mcs
B4US.SATAKE‚݂Ȃ³‚ñ‚²ˆê‚ÉI‚c‚c‚qI6-05☆5.8SINGLE2913871945048B4U__605.mcs
B4UYOSHiHiKO KAJiYA‚k‚h‚s‚s‚k‚d‚Ƃ͈Ⴂ‚Ü‚·I6-06☆0.4SINGLE1381559201B4U__606.mcs
B4UYOSHiHiKO KAJiYA‚¢‚Â‚à‚Æ‚͈Ⴄ‹C•ª‚Å6-07☆5.4SINGLE3023482014350B4U__607.mcs
B4UYOSHiHiKO KAJiYA‚Uƒpƒlƒ‹’†‹‰ŽÒŒü‚¯H6-08☆4.5SOLO2301551530196B4U__608.mcs
B4UYOSHiHiKO KAJiYAƒTƒr‚É’–Ú‚µ‚Ä‚­‚¾‚³‚¢6-09☆4.9DOUBLE3763482514628B4U__609.mcs
B4UKENJI ENDAƒTƒrˆÈŠO‚Í‚»‚ê‚قǂłàc6-10☆5.0SINGLE4353482905721B4U__610.mcs
B4UMITHUTOSHI NAKATAˆêŒ¾‚ŃAƒz‚Å‚·B6-11☆8.1SINGLE43950329358110B4U__611.mcs
B4UMITHUTOSHI NAKATAƒtƒ‹ƒRƒ“ƒ{o—ˆ‚é‚©‚ÈH6-12☆5.6SINGLE4495033005923B4U__612.mcs
B4UMichitaka Kimura‚Q‚c‚w‚ÌƒŠƒYƒ€‚Å‚·6-13☆7.2SINGLE5745423836643B4U__613.mcs
B4UToshihide FujitaƒTƒr‚ª‚¾‚ñ‚¾‚ñEEE6-14☆4.7DOUBLE3373872254915B4U__614.mcs
B4UT.NAOYA‚v‚`‚q‚m‚h‚m‚f6-15☆6.3SINGLE4114652745951B4U__615.mcs
B4UH.KAWAKAMI‚`‚j‚kŽ‚Ìì•iB6-16☆4.9SINGLE3393482264731B4U__616.mcs
B4UKENGO NAKAMURAŽ©•ª‚È‚è‚ɋȂɇ‚킹‚Ü‚µ‚½6-17☆5.1SINGLE4503873005515B4U__617.mcs
B4UM.TOKUMOTOŠî–{“I‚ɃƒƒfƒB[‚Æ“¯‚¶ƒŠƒYƒ€6-18☆6.3SINGLE4445422965052B4U__618.mcs
B4UH.MATSUDAŠy‚µ‚­ì‚Á‚½‚‚à‚èB6-19☆6.0SINGLE4053872705545B4U__619.mcs
B4U???_19‚º‚Ђâ‚Á‚Ă݂Ă­‚¾‚³‚¢B6-20☆5.9SINGLE5185423466618B4U__620.mcs
B4UYuki IchikawaƒNƒŠƒA‚͉”\‚Å‚·BÅ‹­B6-21☆6.6SINGLE5545423707227B4U__621.mcs
B4UYuki IchikawaÅ‚‚̃Cƒ`ƒIƒVI‚º‚Ђº‚ÐI6-22☆6.4SINGLE4684653126641B4U__622.mcs
B4UN_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆6.5SINGLE5495813666528B4U__701.mcs
B4URyosuke.T‚c‚c‚qII7-02☆5.8SINGLE5075423386817B4U__702.mcs
B4UDAISUKE KAMISAKA‚±‚ê‚à‘«‚W“ü–åŽÒ‚ÉB7-03☆4.3SINGLE3513482343422B4U__703.mcs
B4URYO SAKAIƒŠƒYƒ€‚ɂ̂Á‚ĂĂ¢‚¢‚æ‚ËB7-04☆5.3SINGLE3313482214843B4U__704.mcs
B4UNIGHTMARE‚æ‚­‚í‚©‚ç‚È‚¢•ˆ–ʂł·7-05☆6.0SINGLE4445032965240B4U__705.mcs
B4UTOMOFUMI YOSHIDA‘Ì—Í‚ªŽ‚½‚È‚¢‚©‚àB7-06☆6.9COUPLE425/4255422845968B4U__706.mcs
B4UY.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-07☆5.5SINGLE565581377691B4U__707.mcs
B4UTATSURO SAKAGUCHIƒ{[ƒJƒ‹‚̺‚ɇ‚킹‚Ä‚¢‚Ü‚·B7-08☆5.8SINGLE4945423306820B4U__708.mcs
B4UTATSURO SAKAGUCHIã‹L‚Æ“¯‚¶BiŒŠj‚Å‚·BiÎj7-09☆6.5SINGLE5325813557031B4U__709.mcs
B4UN.NAGANO‹È‚ɇ‚킹‚ÄŠy‚µ‚ñ‚ʼnº‚³‚¢B7-10☆5.8SINGLE3243102163477B4U__710.mcs
B4UN.NAGANO‰ÌŽŒ’Ê‚è‚ɃWƒƒƒ“ƒv‚µ‚½‚肵‚Ü‚·B7-11☆5.3DOUBLE3483482323850B4U__711.mcs
B4URYO.N.¡‰ñ‚̃Cƒ`ƒIƒV‚Å‚·I7-12☆5.1SINGLE4484652995712B4U__712.mcs
B4USATOSHI M.‚à‚¤ˆê‚‚̂a‚S‚tB7-13☆6.0SINGLE4224652825938B4U__713.mcs
B4UD KYUTOKU•ω»‚Æi‰»‚Ì‚d‚c‚h‚s‚Å‚·7-14☆5.0SINGLE3553872375022B4U__714.mcs
B4UD.fujisakiƒIƒtƒBƒVƒƒƒ‹‚̉ü‘¢”ÅB7-15☆5.4SINGLE3113482074547B4U__715.mcs
B4UToshiro OhtsukaŽw‚Å‚â‚Á‚Ä‚­‚¾‚³‚¢8-01☆4.6SINGLE429426286564B4U__801.mcs
B4UW.Shiomi‚Q‚c‚w‚Ì•ˆ–Ê‚ÅAƒŒƒbƒcƒ_ƒ“ƒX8-02☆5.9SINGLE5325423557015B4U__802.mcs
B4UW.Shiomi‚Q‚c‚w‚Ì•ˆ–Ê‚¾‚ª‚¿‚å‚Á‚Æ­‚È‚¢H8-03☆5.3DOUBLE503503336686B4U__803.mcs
B4UTOSHIMITU.KURITA㋉ŽÒŒü‚¯@‚¨‚·‚·‚ß8-04☆4.5SINGLE400387267547B4U__804.mcs
B4UY.SAWADA—x‚ê‚邯Šy‚µ‚¢‚Å‚·B8-05☆5.2DOUBLE3723482484738B4U__805.mcs
B4UKAN.UƒmƒbƒL[‚Ì‚«‚Ì‚«EEE8-06☆4.7SINGLE3523482355122B4U__806.mcs
B4UKeisuke Omori‚c‚c‚q‚̋Ȃ̒†‚ňê”ÔD‚«‚Á‚·I8-07☆7.6SINGLE3995032666492B4U__807.mcs
B4UHIROSHI.MÅŒã‚ɉB‚µ•¶ŽšB8-08☆7.3SINGLE4075422726580B4U__808.mcs
B4UK.Itouƒm[ƒRƒƒ“ƒgEEE8-09☆7.8SINGLE4655813106090B4U__809.mcs
B4U???_22ƒXƒLƒbƒv‘½—p‚Ŋ댯B„’è‚k‚u‚Xª8-10☆5.1SINGLE4054652704424B4U__810.mcs
B4UShimamoto Yuuki­‚µ‚¾‚¯‚¨‚à‚ë‚¢8-11☆4.9DOUBLE3763872515119B4U__811.mcs
B4UShimamoto Yuukiu‚l‚`‚s‚q‚h‚wv‚Æ“¯‚¶8-12☆5.5SINGLE4535423026121B4U__812.mcs
BABY BABY GIMME YOUR LOVEA.NAOKI‚f‚‚”‚”‚‚ŽìFƒXƒ‰ƒCƒh‚ð‹ìŽgI1-01☆4.2DOUBLE2812881985022BABY_101.mcs
BABY BABY GIMME YOUR LOVEYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚U2-01☆5.1SINGLE2652161874964BBGYL201.mcs
BABY BABY GIMME YOUR LOVEH.TARUMI‚Ü‚Á‚½‚è‚Æƒn[ƒh‚É2-02☆5.2SINGLE2563121807531BBGYL202.mcs
BABY BABY GIMME YOUR LOVE???_03ƒ\ƒEƒ‹ƒXƒeƒbƒvì‚è‚Ü‚µ‚½B3-01☆4.3SINGLE2463361685016BABY_301.mcs
BABY BABY GIMME YOUR LOVEY.ISHIDA—D‰ë‚É‘ê‚ð“¥‚ÝØ‚Á‚ĉº‚³‚¢B3-02☆5.0SINGLE420384288738BABY_302.mcs
BABY BABY GIMME YOUR LOVESAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-03☆4.8COUPLE227/2272881606929BABY_303.mcs
BABY BABY GIMME YOUR LOVEKouki.U‚Æ‚±‚Æ‚ñ‡‚킹‚½4-01☆4.0SINGLE2012641376014BABY_401.mcs
BABY BABY GIMME YOUR LOVEHatamoto YoheiŽ„‚Ì‘«‚ł͓ž’ê‚Å‚«‚Ü‚¹‚ñB4-02☆5.0SINGLE2313361587821BABY_402.mcs
BABY BABY GIMME YOUR LOVEKei.U­‚µƒIƒŠƒIƒ“‚ÉŽ—‚Ă邩‚àB5-01☆4.1SINGLE2462881685117BBGYL501.mcs
BABY BABY GIMME YOUR LOVE???_13‚P‚‚P‚‚̖îˆó‚ÉW’†‚µ‚悤I5-02☆3.2SINGLE228240156554BBGYL502.mcs
BABY BABY GIMME YOUR LOVEKeisuke Ogiwara‰‚ß‚Äì‚Á‚½ƒ_ƒuƒ‹•ˆBƒŒƒxƒ‹‚P6-01☆1.0DOUBLE849657023BBGYL601.mcs
BABY BABY GIMME YOUR LOVEKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-02☆3.5COUPLE94/94192641556BBGYL602.mcs
BABY BABY GIMME YOUR LOVENAOTO M.ƒnƒCƒŒƒxƒ‹‚ȃXƒeƒbƒv‚É‚µ‚Ü‚µ‚½B6-03☆4.8SINGLE369384260689BBGYL603.mcs
BABY BABY GIMME YOUR LOVETAKU YAMAMOTOŽ©•ª‚ªˆê”ÔŠy‚µ‚ß‚½ƒXƒeƒbƒv7-01☆3.8SINGLE1621921144332BABY_701.mcs
BABY BABY GIMME YOUR LOVED KYUTOKU‚±‚Ì‹ÈA‘åD‚«‚Å‚·7-02☆2.8SINGLE162168114508BABY_702.mcs
BABY BABY GIMME YOUR LOVEK.IKEMOTO‘«~‚V‚­‚ç‚¢‚Å‚·8-01☆3.7SINGLE1932161323531BABY_801.mcs
BABY BABY GIMME YOUR LOVEY.SAWADAŒðŒÝ‚ÉB‚ ‚­‚Ü‚ÅB8-02☆3.0DOUBLE2321921594313BABY_802.mcs
BABY BABY GIMME YOUR LOVE???_22–§W‚µ‚½•ˆ–ʂł·B„’è‚k‚u‚Wª8-03☆5.2SINGLE2462881685348BABY_803.mcs
BAD GIRLSYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.7SINGLE2272751924740BADG_101.mcs
BAD GIRLSJ.GOUKEÅŒã‚Ì•û‚̘A‘łɒˆÓB2-01☆3.5SINGLE1622441373422BADG_201.mcs
BAD GIRLSHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE2072751754427BADG_401.mcs
BAD GIRLSTAIGA.Ou‚Ù‚Æ‚ñ‚Çv‚W•ªB‚¾‚Ü‚³‚ê‚é‚ÈB7-01☆3.4SINGLE280244237489BADG_701.mcs
BAD GIRLSYUJI.O‚±‚ꌋ\‚¢‚¢Š´‚¶H7-02☆3.9SINGLE2052441744426BADG_702.mcs
Be in my paradiseH.KAWAKAM΂­‚Á‚½‚â‚ÂB1-01☆6.4SINGLE2412521806490BEIN_101.mcs
Be in my paradiseY.ISHIDA‚l‚`‚m‚h‚`‚b‹È‚̇ŠÔ‚ɂǂ¤‚¼B3-01☆3.7SINGLE1992521495910BIMP_301.mcs
Be in my paradiseH.OIKAWAŒ©‚¦‚½‚ç‚·‚²‚¢‚Å‚·B4-01☆5.3SINGLE1642521236256BEIN_401.mcs
been so longSHOTA,SAITOH.‚Ü‚Á‚½‚è‚Æ“®‚¯‚镈–ʂł·B1-01☆3.0SINGLE1681921263318BEEN_101.mcs
been so longFUMIHIRO ISHIWATAƒvƒŒÃìB‚æ‚èAƒ_ƒ“ƒTƒuƒ‹‚É2-01☆3.4SINGLE1982161535511BEEN_201.mcs
been so longRyohei Sekiw‚k‚h‚r‚`•wl‚ƈêxiÎj3-01☆4.0SINGLE2132401545920BEEN_301.mcs
been so longT.NAGSAKi‚|‚†‚Œ‚‚̋Ȃ©‚ç‚P‚Â4-01☆5.6SINGLE19019213832102BEEN_401.mcs
been so longYOSHIKI MURATAˆê–é’ЃPƒfìƒbƒ^4-02☆3.4SINGLE1731921255117BEEN_402.mcs
been so longRYU.O‚u‚h‚u‚` ‚|‚†‚Œ‚III5-01☆3.9SINGLE1762641325018BSLC2501.mcs
been so longKATSUHIKO KOBAYASHIŠÃ‚¢‰Ìº‚ÉŒ‚¢‚µ‚ê‚Ä5-02☆4.7SINGLE2322641745936BSLC2502.mcs
BEGINNING-OF-LIFEY.IMAI•‚—VŠ´‚Ì‚ ‚郊ƒYƒ€‚ɂȂÁ‚Ă܂·2-01☆4.2SINGLE1331651175741BEGIN201.mcs
BEGINNING-OF-LIFEY.KAZAMAKI‚p‚t‚`‚c‚q‚`™‘f“G3-01☆4.4SINGLE2452752174929BEGI_301.mcs
BEGINNING-OF-LIFEKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆5.0COUPLE162/1651921433875BOLC1601.mcs
BOOM BOOM DOLLARYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.9DOUBLE2022701894052BOOM_101.mcs
BOOM BOOM DOLLARH.KAWAKAMIŒÂl“I‚ÉD‚«‚È‹ÈB1-02☆5.2DOUBLE2132701994458BOOM_102.mcs
BOOM BOOM DOLLARKazuki.Koushi‚k‚u‚RF’ö‚æ‚¢“®‚«‚̃Xƒeƒbƒv1-03☆2.8SINGLE1262021181337BOOM_103.mcs
BOOM BOOM DOLLARK.SUGAI‚r‚g‚o‚a‚a‚c‚O‚P^‚U2-01☆4.1SINGLE1872701752937BB$__201.mcs
BOOM BOOM DOLLARTAKAHIRO.M—x‚è‚â‚·‚­ì‚è‚Ü‚µ‚½3-01☆0.8SINGLE119135111012BOOM_301.mcs
BOOM BOOM DOLLARTAKAHIRO.M‚W•ª‚Ì—’‚ª‘Ò‚Á‚Ä‚¢‚éc3-02☆3.6SINGLE2352702204014BOOM_302.mcs
BOOM BOOM DOLLARK.KomenoiƒXƒeƒbƒvIƒXƒeƒbƒvI4-01☆2.7SINGLE201270188301BOOM_401.mcs
BOOM BOOM DOLLARtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-02☆5.8SINGLE2663712497138BOOM_402.mcs
BOOM BOOM DOLLARDAISUKE A.— ”‚É’ˆÓII6-01☆4.4SINGLE1793371673031BB$__601.mcs
BOOM BOOM DOLLAR???_16”~‚³‚ñŒ©‚Ä‚é`H6-02☆4.3SINGLE2542702384827BB$__602.mcs
BOOM BOOM DOLLAR???_18ƒeƒLƒg[‚ÉŠy‚µ‚ñ‚ʼnº‚³‚¢B6-03☆4.7SINGLE1633371524131BB$__603.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)TOMOKAZU-M‚Ô‚ñB‚Ô‚ñB‚Ô‚ñB1-01☆2.5DOUBLE220339190161BOOMK101.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)YASUHIRO.OƒXƒLƒbƒv‚ð’†S‚Éì‚Á‚Ă܂·1-02☆4.7SINGLE345424299449BOOMK102.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)YAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-03☆5.7SINGLE2643822283359BOOMK103.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)T_YAMADAH•v‚µ‚Ä“¥‚ñ‚Å‚­‚¾‚³‚¢I1-04☆4.9DOUBLE3153822735814BOOMK104.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)TAKENAKA TAKAHIROuƒuƒ“ƒuƒ“EEEv‚ð‚ ‚í‚¹‚ÄB2-01☆4.5SINGLE3053392643625BB$K_201.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)Y.SAKAI‘Ì—ÍŸ•‰‚Å‚·2-02☆4.2DOUBLE356339308552BB$K_202.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)MASAHIRO.Y“‚¢‚Å‚·iŽ©•ª‚Ìì‚Á‚½’†‚Å‚Íj2-03☆4.0DOUBLE295339261458BB$K_203.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)K.SUGAI‚r‚g‚o‚a‚a‚j‚O‚P^‚W2-04☆4.7SINGLE3093392674225BB$K_204.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)KOMOGUCHI.YƒTƒr‚Ì•”•ª‚̓XƒLƒbƒv‚Å2-05☆4.0SINGLE328382284411BB$K_205.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)JUN O.u‚k|‚y‚`‚m‚R‚O‚Ov‘«‚W3-01☆5.1SINGLE3003392605034BOOMK301.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)K.TAKEMURA‚»‚̂܂ñ‚ÜB3-02☆5.4SINGLE3134242715027BOOMK302.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìFŠñ‚¹“ç3-03☆4.1DOUBLE334339289437BOOMK303.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)SHiNiCHi SAiTHO‚±‚̋Ȃ̌ƒ‚µ‚³‚ð‚»‚±‚Ȃ킸‚ÉB4-01☆4.6DOUBLE340382294545BOOMK401.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)Y.KAWABE‚c‚o‚͂ǂ¤‚µ‚Ä‚à“‚­‚È‚é4-02☆6.1DOUBLE3725093224839BOOMK402.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)SEIJI W.“‚³‚æ‚èƒmƒŠdŽ‹5-01☆4.8SINGLE3013392614925BB$G3501.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)T.MAMIYAŽ©•ª‚È‚è‚̉ðŽß‚Å“Z‚߂Ă݂܂µ‚½B5-02☆4.2SINGLE2433392102136BB$G3502.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)SHINYA.KƒIƒtƒBƒVƒƒƒ‹D‚«‚Í”ä‚ׂĂ݂Ä5-03☆4.5SINGLE350424303463BB$G3503.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)DAISUKE A.u‚a‚n‚n‚l@‚g‚n‚ov‚̃AƒŒƒ“ƒW”Å6-01☆4.8SINGLE2623392274132BB$G3601.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)???_18ˆê•”ƒ€ƒYƒC‚©‚àEEE6-02☆5.8SINGLE2273821965346BB$G3602.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)KENGO NAKAMURAI”Õ‚Í‘«‚ª‚‚邱‚Æ‚¤‚¯‚ ‚¢6-03☆6.2SINGLE3554673074649BB$G3603.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)M.TOKUMOTOŒ©Ï‚à‚è6-04☆4.4SINGLE3473393004413BB$G3604.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)KAZUHITO TSUBOTAŒðŒÝ“¥‚݂͂¿‚å‚Á‚Æ‚«‚‚¢‚©‚àH7-01☆5.0SINGLE3003392604733BOOMK701.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)TOMOFUMI YOSHIDA•’ʂȓ‚³‚Å‚·B7-02☆5.7SINGLE3176792745533BOOMK702.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)N.NAGANOƒXƒLƒbƒv‚ð“ü‚ê‚Ă݂܂µ‚½B7-03☆5.3DOUBLE2733392362862BOOMK703.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)T.OGINO‘«‚ł͖³—‚Å‚·Žè‚Å‚â‚è‚Ü‚µ‚傤B8-01☆6.9SINGLE3756373255559BOOMK801.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)TOSHIMITU.KURITA㋉ŽÒŒü‚¯8-02☆4.3SINGLE326382282475BOOMK802.mcs
BOOM BOOM DOLLAR(K.O.G G3 MIX)Y.SAWADA“÷‘Ì‚¢‚À‚߂ł·B8-03☆4.3DOUBLE347382300492BOOMK803.mcs
BOYSYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆5.6SINGLE2332761864371BOYS_101.mcs
BOYSTAKENAKA TAKAHIRO­‚µ‘–‚è‚Ü‚·B2-01☆2.6SINGLE1892071511527BOYS_201.mcs
BOYSKubota Mamoru— ‚É’ˆÓ‚µ‚Ü‚µ‚傤2-02☆3.9SINGLE2032411622543BOYS_202.mcs
BOYSHAJIME.I‚Ú‚æ‚ñìF‚³‚ç‚É‚“ïˆÕ“x‚Ö2-03☆6.5SINGLE3273792626759BOYS_203.mcs
BOYSTAKAHIRO.M‚W•ª‚ª‘½‚¢3-01☆2.9SINGLE2092071672916BOYS_301.mcs
BOYSHIROSHI TAKENOUCHIƒŒƒxƒ‹‚V4-01☆3.9SINGLE2112761693327BOYS_401.mcs
BOYSHIROSHI TAKENOUCHIƒŒƒxƒ‹‚V4-02☆3.8DOUBLE2072761663126BOYS_402.mcs
BOYSK.Komenoi©‚ȃXƒeƒbƒv‚Ç‚¤‚Å‚·‚©H4-03☆1.9SINGLE157172125733BOYS_403.mcs
BOYSDaisuke K.ׂ©‚¢‚W•ª‚ª’†SB‚k‚–D‚U4-04☆3.6SINGLE2332411862731BOYS_404.mcs
BOYSHAJIME M.‚Ƃт͂˂銴‚¶‚Å5-01☆2.9SINGLE197241158365BOYS_501.mcs
BOYS(EURO MIX)YAMADA HIDETOSHIƒAƒNƒZƒ“ƒg‚P‚U•ª1-01☆5.3SINGLE3563882424534BOYSE101.mcs
BOYS(EURO MIX)A.NAOKI‚lD‹g“c@ìF‚r‚d‚h‚r‚x‚t‚m1-02☆6.0DOUBLE2933491993674BOYSE102.mcs
BOYS(EURO MIX)S.ADACHI‹È‚Ƀmƒb‚ĘA‘±‚P‚U•ª“¥‚ÝI2-01☆6.7SINGLE4865433316546BOYSE201.mcs
BOYS(EURO MIX)K.TAKEMURA‚P‚U•ª˜A‘Å‚ªƒLƒcƒC‚Å‚·B2-02☆6.7SINGLE4544653096451BOYSE202.mcs
BOYS(EURO MIX)M.IWAKURA‘«’É‚¢B“ï“x‚X’ö“xB2-03☆5.7SINGLE3914652715334BOYSE203.mcs
BOYS(EURO MIX)TAKEHIRO-O‚n‚k‚c•‚m‚d‚v{@V‹Œ•ˆ–ʂ̗Z‡3-01☆5.6SINGLE4774653246119BOYSE301.mcs
BOYS(EURO MIX)???_04‚k‚–‚P‚PD^‚l‚`‚q‚j3-02☆5.2SINGLE477543324618BOYSE302.mcs
BOYS(EURO MIX)SAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-03☆5.4COUPLE334/3343492275837BOYSE303.mcs
BOYS(EURO MIX)Takahiro.H‘«‚WD‚T‚­‚ç‚¢3-04☆5.0SINGLE3513882395123BOYSE304.mcs
BOYS(EURO MIX)T.TSUKAMOTOƒmƒŠƒmƒŠƒXƒeƒbƒv‚Å‚·B4-01☆4.3SINGLE384349261576BOYSE401.mcs
BOYS(EURO MIX)m.suzuki‘S‚‚Ȃ¬‚Å‚T‚O‚OƒRƒ“ƒ{I4-02☆5.6SINGLE5004653406115BOYSE402.mcs
BOYS(EURO MIX)???_09™~‚T4-03☆7.3SINGLE5565823786647BOYSE403.mcs
BOYS(EURO MIX)SEIJI W.™X‚É–Z‚µ‚­‚È‚Á‚Ä‚¢‚«‚Ü‚·5-01☆6.3SINGLE3463882355460BOYSE501.mcs
BOYS(EURO MIX)Y.TSUDA‚±‚ꂪ‰Œ©‚Ń~ƒX‚È‚µ‚È‚çƒXƒSƒCI5-02☆5.5SINGLE4765043246316BOYSE502.mcs
BOYS(EURO MIX)KEITA.IƒIƒtƒBƒVƒƒƒ‹‚æ‚肨‚à‚µ‚ë‚¢H5-03☆5.7COUPLE366/3663492495250BOYSE503.mcs
BOYS(EURO MIX)Satoru Hata“ŒŽÅŒb”ü‚͈«–‚‚Ɖ»‚·B5-04☆6.4SINGLE4546213096344BOYSE504.mcs
BOYS(EURO MIX)JUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.7SINGLE4155042826029BOYSE601.mcs
BOYS(EURO MIX)HIROAKI.MATSUUCHI­‚µ‚¨‹C‚É“ü‚è6-02☆3.9SINGLE2932711992436BOYSE602.mcs
BOYS(EURO MIX)MITHUTOSHI NAKATAˆÓŠO‚Æ–Ê”’‚¢‚©‚àEEEB6-03☆6.5SINGLE4604653136445BOYSE603.mcs
BOYS(EURO MIX)K.Kinugawa‚©‚È‚è“‚¢‚Å‚·B‹C‡B6-04☆5.0DOUBLE3843882616115BOYSE604.mcs
BOYS(EURO MIX)KAZUYUKI K.‚c‚l‚w•—@ŽEl‚a‚n‚x‚r7-01☆5.8SINGLE4414653005930BOYSE701.mcs
BOYS(EURO MIX)TOMOFUMI YOSHIDA’n’c‘¾“¥‚Ý‚µ‚©‚ ‚è‚Ü‚¹‚ñB7-02☆6.0COUPLE500/5004653406422BOYSE702.mcs
BOYS(EURO MIX)Norihiro KitamuraŽžX—ˆ‚é‚P‚U•ª‚ðŒ©Ø‚ê‚ê‚Î7-03☆4.3DOUBLE410388284541BOYSE703.mcs
BOYS(EURO MIX)K.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.0SINGLE4293882925713BOYSE801.mcs
BOYS(EURO MIX)KOHEI.T‹¶‹C‚¶‚Ý‚½•ˆ–ʂɗ§‚¿Œü‚©‚¦I8-02☆4.9SINGLE484465329622BOYSE802.mcs
BOYS(EURO MIX)???_22‚P‚U•ª‘½—p‚Ŋ댯B„’è‚k‚u‚Xª8-03☆4.6SINGLE437504297543BOYSE803.mcs
BRILLIANT 2UYAMADA HIDETOSHI— ‰¹Šî’²1-01☆5.6SINGLE2724872263947BRIL_101.mcs
BRILLIANT 2UYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-02☆5.8SINGLE2533372103078BRIL_102.mcs
BRILLIANT 2UYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚bŠ´Šo‚łǂ¤‚¼1-03☆5.7DOUBLE2503372082974BRIL_103.mcs
BRILLIANT 2UYAMADA HIDETOSHI–^ƒ}ƒj•ˆ–ʂ̉e‹¿‚ªEEEB1-04☆4.9DOUBLE2823372353939BRIL_104.mcs
BRILLIANT 2UHIROKI.N‘«‚W‚Å‚·‚ª‚»‚±‚܂ł͂Ȃ¢‚Å‚·B1-05☆4.3SINGLE278375231527BRIL_105.mcs
BRILLIANT 2USHOTA,SAITOH.–³‹@Ž¿‚Æ—L‹@Ž¿‚̬‡B1-06☆4.3SINGLE2063001711950BRIL_106.mcs
BRILLIANT 2UA.NAOKI‚lD‹g“c@ìF‚c@@@‚q1-07☆5.2DOUBLE2082621732186BRIL_107.mcs
BRILLIANT 2UTADASHI.UMISHIMA—x‚è‚É‚­‚¢‚Å‚·1-08☆7.4SINGLE29260024344101BRIL_108.mcs
BRILLIANT 2UY.SAKAI‚s‚q‚h‚b‚j‘²‹Æ`‚l‚`‚m‚h‚`‚b“ü–å2-01☆4.3SINGLE2263001882443B2U__201.mcs
BRILLIANT 2USUGAWARA TAKASHI’†”Õ‚ÌƒŠƒYƒ€•”•ª‚ªƒ|ƒCƒ“ƒg‚Å‚·B2-02☆5.3SINGLE2933752445331B2U__202.mcs
BRILLIANT 2UO.YAMAMOTO‚±‚ê‚Å‚àƒXƒ}[ƒg‰»‚µ‚Ă܂·iоj2-03☆6.4SINGLE2783752315764B2U__203.mcs
BRILLIANT 2UK.TAKEMURA‚a‚S‚t‚ÉŽ—‚Ä‚¢‚Ü‚·B2-04☆6.2SINGLE3336002775647B2U__204.mcs
BRILLIANT 2UKOSE FƒiƒIƒL2-05☆3.8DOUBLE2333001943022B2U__205.mcs
BRILLIANT 2UJUN O.u‚x‚d‚k‚v‚s‚`‚h‚kv‘«‚W3-01☆5.7SINGLE3063752555938BRIL_301.mcs
BRILLIANT 2UWATANABE JUN‚±‚ê‚à“¯ƒlƒ^‘½”EEEIH3-02☆5.5SINGLE3194502654832BRIL_302.mcs
BRILLIANT 2USATOSHI ARIGA‚r‚s‚rI‘æ“ñ’eBi‰»ÅIŒ`‘Ô3-03☆5.6SINGLE2805622334343BRIL_303.mcs
BRILLIANT 2UKoichi Nakayama‚Q‚Ž‚„‚q‚…‚l‚h‚w‚ª‚łĂ·‚®ì¬3-04☆5.2COUPLE280/2803372335040BRIL_304.mcs
BRILLIANT 2UM.Yamamoto‰¹‡‚킹3-05☆5.3SINGLE2683752234738BRIL_305.mcs
BRILLIANT 2UTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-06☆5.9SINGLE3303752755643BRIL_306.mcs
BRILLIANT 2UKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-07☆2.6SINGLE1752251451423BRIL_307.mcs
BRILLIANT 2UT.HIRASAWA¥”ñƒtƒ‹ƒRƒ“ƒ{‚ðI4-01☆4.2SINGLE1842621532350BRIL_401.mcs
BRILLIANT 2UT.HIRASAWA˜A‘±“¯Žž“¥‚Ý‚ªƒLƒcƒCEEE4-02☆4.5DOUBLE1802621502359BRIL_402.mcs
BRILLIANT 2UHIDEAKI KANEDAƒŠƒYƒ€‚Éæ‚ê‚Ζâ‘è–³‚µ4-03☆6.2SINGLE2903002415773BRIL_403.mcs
BRILLIANT 2UMIO.S‚P‚U•ª“¥‚Ý‚ª‘‚¦‚Ă܂·B4-04☆5.7SINGLE2366001963157BRIL_404.mcs
BRILLIANT 2U???_10ƒAƒiƒU[‘«‚T‚­‚ç‚¢H5-01☆4.6SINGLE2203001832355B2U__501.mcs
BRILLIANT 2USoichI InabA¡“ú‚Í‚²‚Ü‚ð‚·‚é5-02☆4.6SINGLE2242621863054B2U__502.mcs
BRILLIANT 2UT.MAMIYA‚È‚é‚ׂ­‰ñ“]‚µ‚Ü‚­‚Á‚Ä‚­‚¾‚³‚¢B5-03☆4.3SINGLE1992621651764B2U__503.mcs
BRILLIANT 2UTomoyuki Takahashi‚P‚U•ª‚Í‚±‚¤’u‚­‚Ì‚ª³‰ðB5-04☆3.6SINGLE273300227505B2U__504.mcs
BRILLIANT 2UKazuhiko Chibâ͂«‚‚©‚Á‚½‚ñ‚¾‚¯‚ǂ˂¥EEE5-05☆5.1SINGLE2376001972743B2U__505.mcs
BRILLIANT 2USHINYA.KŽÖ‘«H‚¢‚¦‚¢‚¦c5-06☆4.3SINGLE2853372374716B2U__506.mcs
BRILLIANT 2UKEIGO.H‚r‚h‚m‚f‚k‚d@ƒEƒHƒ“ƒ`ƒ…[I5-07☆4.8SINGLE2583372154232B2U__507.mcs
BRILLIANT 2UKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-08☆4.7DOUBLE2543372113833B2U__508.mcs
BRILLIANT 2U???_15ƒtƒ‹ƒRƒ“ƒ{‚µ‚ĉº‚³‚¢B6-01☆4.3DOUBLE2313001923730B2U__601.mcs
BRILLIANT 2US.SATAKE‚Q‚c‚w“I—v‘f‚Ü‚ñ‚³‚¢‚Å‚·6-02☆8.5SINGLE37560031252123B2U__602.mcs
BRILLIANT 2UKENJI ENDAƒTƒr‚̃Xƒeƒbƒv‚É’ˆÓI6-03☆6.6SINGLE3186002655364B2U__603.mcs
BRILLIANT 2UKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-04☆4.3DOUBLE2463002052839B2U__604.mcs
BRILLIANT 2UKENGO NAKAMURAuŒðŒÝ‚É“¥‚ß‚év‚ðƒ‚ƒbƒg[‚É6-05☆5.1SINGLE3206002665319B2U__605.mcs
BRILLIANT 2UM.TOKUMOTOŠy‚µ‚­—x‚è‚Ü‚µ‚傤6-06☆5.5SINGLE2623372183361B2U__606.mcs
BRILLIANT 2UH.Yamaguchi‰‚Ìì•i‚È‚ñ‚ÅA‚à‚¤–Y‚ê‚Ü‚µ‚½6-07☆5.8SINGLE2616002173953B2U__607.mcs
BRILLIANT 2UTATSURO SAKAGUCHIE‚T‚X‚Æ“¯‚¶‚­‚Q‚c‚w‚̈ȉº“¯•¶B7-01☆5.3SINGLE2986002485427BRIL_701.mcs
BRILLIANT 2UN.NAGANO‚¿‚å‚Á‚Æ‚¾‚¯u‚a‚S‚tv‚Ý‚½‚¢‚ÉB7-02☆4.7DOUBLE2723002263443BRIL_702.mcs
BRILLIANT 2UD KYUTOKU— ‘Å‚¿‚ªƒƒCƒ“‚Å‚·7-03☆4.9SINGLE2643752195323BRIL_703.mcs
BRILLIANT 2UTOSHIMITU.KURITA㋉ŽÒŒü‚¯8-01☆4.9SINGLE2523372104037BRIL_801.mcs
BRILLIANT 2UHIROSHI.M‚m‚`‚n‚j‚h—lA‚΂ñ‚´‚¢I8-02☆5.4SINGLE2816002344435BRIL_802.mcs
BRILLIANT 2U(club version)N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆5.8SINGLE2646002195442BRILC301.mcs
BRILLIANT 2U(Orchestra Groove)YAMADA HIDETOSHI‚l‚`‚m‚h‚`‚bŠ´Šo‚łǂ¤‚¼1-01☆4.9DOUBLE2643002205634BRILO101.mcs
BRILLIANT 2U(Orchestra Groove)HIROKI.N‘«‚W‚Å‚·‚ª‚»‚±‚܂ł͂Ȃ¢‚Å‚·B1-02☆5.1SINGLE2803752335228BRILO102.mcs
BRILLIANT 2U(Orchestra Groove)SHOTA,SAITOH.–³‹@Ž¿‚Æ—L‹@Ž¿‚̬‡B1-03☆3.4SINGLE2052621702523BRILO103.mcs
BRILLIANT 2U(Orchestra Groove)KEISUKE.M”÷–­‚É·‚Ì‚ ‚镈–ÊB1-04☆5.1COUPLE283/2793752354133BRILO104.mcs
BRILLIANT 2U(Orchestra Groove)Y.IMAIŠX‚É‚P‚U•ªB’ˆÓ2-01☆4.2DOUBLE1963001632639B2UOG201.mcs
BRILLIANT 2U(Orchestra Groove)K.SUGAI‚r‚g‚o‚a‚Q‚O‚O‚P^‚W2-02☆5.6SINGLE2403002004764B2UOG202.mcs
BRILLIANT 2U(Orchestra Groove)O.YAMAMOTO‹È‘S‘Ì‚ð‚Æ‚ç‚¦‚Ă݂½‚©‚Á‚½‚Ì‚Åc2-03☆5.6SINGLE2503752084846B2UOG203.mcs
BRILLIANT 2U(Orchestra Groove)K.TAKEMURA‚Ü‚ ‚Ü‚ ‚Å‚·B2-04☆7.1SINGLE2763752305590B2UOG204.mcs
BRILLIANT 2U(Orchestra Groove)???_03‚±‚̋ȑåD‚«‚Å‚·i‚±‚Ì‚u‚…‚’‚ªj3-01☆4.1SINGLE2673002224321BRILO301.mcs
BRILLIANT 2U(Orchestra Groove)M.Yamamoto‰¹‡‚킹3-02☆4.6SINGLE2613002174832BRILO302.mcs
BRILLIANT 2U(Orchestra Groove)TAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-03☆5.6SINGLE3306002755631BRILO303.mcs
BRILLIANT 2U(Orchestra Groove)T.HIRASAWA‚P‚U•ª‚Í‚¿‚å‚Á‚Æ‘‚ß‚É4-01☆4.7SINGLE1933001602652BRILO401.mcs
BRILLIANT 2U(Orchestra Groove)T.HIRASAWA‰^“®—Ê–L•x4-02☆4.2DOUBLE1873001551946BRILO402.mcs
BRILLIANT 2U(Orchestra Groove)HIDEAKI KANEDA‹CŠy‚Ƀtƒ‹ƒRƒ“ƒ{‚ð‚Ç‚¤‚¼4-03☆5.4SINGLE3213372675140BRILO403.mcs
BRILLIANT 2U(Orchestra Groove)HIROSHI TAKENOUCHIƒŒƒxƒ‹‚V4-04☆3.9SINGLE2063001713025BRILO404.mcs
BRILLIANT 2U(Orchestra Groove)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆5.1SINGLE3213372675529BRILO405.mcs
BRILLIANT 2U(Orchestra Groove)KEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-01☆4.6DOUBLE2163001804036B2UOG501.mcs
BRILLIANT 2U(Orchestra Groove)T.FUJIWARA— ‚̉¹‚ɇ‚킹‚½‚Æ‚©EEE6-01☆5.6SINGLE2283751905342B2UOG601.mcs
BRILLIANT 2U(Orchestra Groove)SHIGERU ARAI“ï“x‚P‚É‚µ‚Ă݂܂µ‚½B6-02☆0.0SINGLE671125500B2UOG602.mcs
BRILLIANT 2U(Orchestra Groove)???_19‰‚ß‚Äì‚Á‚½‚d‚c‚h‚sB6-03☆6.1SINGLE3175622645248B2UOG603.mcs
BRILLIANT 2U(Orchestra Groove)TAIGA.OƒŠƒYƒ€‚¾‚¯B7-01☆2.7SINGLE193300164197BRILO701.mcs
BRILLIANT 2U(Orchestra Groove)KAZUHITO TSUBOTA‚a‚S‚t‚Ì•ˆ–Ê‚ðŽQl‚É‚µ‚Ä‚¢‚Ü‚·B7-02☆5.4SINGLE2793372324746BRILO702.mcs
BRILLIANT 2U(Orchestra Groove)DAISUKE KAMISAKA“¥‚݂Â炢‚Å‚·B7-03☆4.0SINGLE2713002254616BRILO703.mcs
BRILLIANT 2U(Orchestra Groove)TAKEDA.SYOUHEI‚P‚o‚͉¹‚ɇ‚킹A‚Q‚o‚Í‚r‚r‚q7-04☆6.6COUPLE310/2623002584795BRILO704.mcs
BRILLIANT 2U(Orchestra Groove)SATOSHI HORIUCHI‚¤‚Ü‚­‚Ȃ肽‚¢l‚Ö‚Ç‚¤‚¼7-05☆4.2SINGLE2173001804026BRILO705.mcs
BRILLIANT 2U(Orchestra Groove)K.KAWASEŽ©MìA‚º‚Ђo‚k‚`‚x‚µ‚ĉº‚³‚¢B7-06☆4.9SINGLE2573002145239BRILO706.mcs
BRILLIANT 2U(Orchestra Groove)YOSHIHIKO MOTOYASUƒ^ƒbƒv‚̃Cƒ[ƒW‚ÅB7-07☆6.3SINGLE3105252584959BRILO707.mcs
BRILLIANT 2U(Orchestra Groove)TATSURO SAKAGUCHIƒI[ƒPƒXƒgƒ‰‚炵‚­ì‚è‚Ü‚µ‚½B7-08☆5.2SINGLE2786002315524BRILO708.mcs
BRILLIANT 2U(Orchestra Groove)Toshiro OhtsukaƒJƒbƒR‚æ‚­‚ÄD‚«8-01☆3.9SINGLE2293001905012BRILO801.mcs
BRILLIANT 2U(Orchestra Groove)HAJIME.I‚Ú‚æ‚ñìFƒgƒŠ‚ƃ}ƒj‚Ì’†ŠÔ8-02☆5.2SINGLE2233001853262BRILO802.mcs
BRILLIANT 2U(Orchestra Groove)KOHEI.TƒiƒIƒLƒ}ƒ“ƒZ[I8-03☆6.5SINGLE2473752053685BRILO803.mcs
BROKEN MY HEARTK.TAKEMURA‚¯‚Á‚±‚¤‚¢‚¢ƒfƒL‚©‚ÆB2-01☆6.2SINGLE4084402515552BROKE201.mcs
BROKEN MY HEART???_03‚a‚q‚n‚j‚d‚m@‚l‚x@‚r‚s‚d‚o3-01☆5.6SOLO4106402485038BROK_301.mcs
BROKEN MY HEARTA.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚d‚q‚t‚l‚d‚q‚n3-02☆5.8SINGLE3153201943081BROK_302.mcs
BROKEN MY HEARTY.KAZAMAKI‚»‚ë‚»‚ëƒgƒ‰ƒ“ƒX˜Hü‚Å‚·‚©‚ËH3-03☆5.5SINGLE3353202064258BROK_303.mcs
BROKEN MY HEARTY.SAKAI‚l‚`‚m‚h‚`‚b‚æ‚èŠÈ’PB3-04☆4.8SINGLE2983201834038BROK_304.mcs
BROKEN MY HEART???_04‚k‚–‚VD^‚l‚`‚q‚j3-05☆4.9SINGLE3143201934737BROK_305.mcs
BROKEN MY HEARTN.KAZUMA‚±‚¾‚í‚è‚̃_ƒuƒ‹‚Å‚·B3-06☆5.2DOUBLE4184402574926BROK_306.mcs
BROKEN MY HEARTTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-07☆5.8SINGLE3973602445249BROK_307.mcs
BROKEN MY HEARTT.HIRASAWA‚‚¢‚‚¢ì‚Á‚Ä‚µ‚Ü‚Á‚½4-01☆4.8SINGLE3153201943046BROK_401.mcs
BROKEN MY HEARTHIDEAKI KANEDA‘½•ªÅ‰‚Ì•”•ª‚ªƒ„ƒ}‚Å‚·4-02☆7.2SINGLE3714002285192BROK_402.mcs
BROKEN MY HEARTtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-03☆5.8SINGLE4184802575140BROK_403.mcs
BROKEN MY HEART???_09™~‚T4-04☆8.3SINGLE5706403515897BROK_404.mcs
BROKEN MY HEARTHAJIME M.‚Q‚c‚wH5-01☆5.1SINGLE4003602465526BROKE501.mcs
BROKEN MY HEARTHIROKI.N‚¢‚«‚È‚èŽn‚Ü‚è‚Ü‚·B‹C‚ð‚‚¯‚Ä5-02☆5.3SINGLE3423202104649BROKE502.mcs
BROKEN MY HEARTF.KATOU‚±‚ꂪ‚Å‚«‚ê‚΂r‚r‚q‚̯‚¾I5-03☆6.9SINGLE4166402565377BROKE503.mcs
BROKEN MY HEARTT.MAMIYA’·”N’g‚߂Ă«‚½•ˆ–Ê‚ª¡‚±‚±‚ÉI5-04☆5.4SINGLE3093201904455BROKE504.mcs
BROKEN MY HEARTKATSUHIKO KOBAYASHI°‚ð‚à‘Å‚¿Ó‚¯5-05☆7.0SINGLE3813202345698BROKE505.mcs
BROKEN MY HEART???_13‚æ‚­‰¹‚ð•·‚¢‚ÄAƒRƒc‚ð‚‚©‚à‚¤I5-06☆6.5SINGLE4294802685162BROKE506.mcs
BROKEN MY HEARTKatsuhiko KinoshitaƒTƒr‚ªŽã‚¢‚©‚à5-07☆4.2SINGLE3063201884121BROKE507.mcs
BROKEN MY HEARTS.Fujisawaƒm[ƒRƒƒ“ƒgEEE5-08☆3.1SINGLE2692401652123BROKE508.mcs
BROKEN MY HEARTYASUSHI.FŽv‚Á‚½‚æ‚è‹È‘¬‚¢‚Å‚·‚Ëiо6-01☆5.3SINGLE4744802925521BROKE601.mcs
BROKEN MY HEART???_15‚l‚`‚m‚h‚`‚b•—‚Éì‚è‚Ü‚µ‚½B6-02☆5.2SINGLE3543202184447BROKE602.mcs
BROKEN MY HEARTS.SATAKE‚o‚`‚t‚k‚`@‚s‚d‚q‚q‚x‚Ì‹C•ª‚Å6-03☆6.4SINGLE3576402195761BROKE603.mcs
BROKEN MY HEARTHiroki Inoueƒm[ƒRƒƒ“ƒgEEE6-04☆5.5SOLO5306403215817BROKE604.mcs
BROKEN MY HEARTHiroki Inoueƒm[ƒRƒƒ“ƒgEEE6-05☆5.6SINGLE5306403265819BROKE605.mcs
BROKEN MY HEARTNAOTO M.‚±‚̋Ȃ͂±‚̃Xƒeƒbƒv‚Å‚µ‚åI6-06☆5.3SINGLE4053602494638BROKE606.mcs
BROKEN MY HEARTTAKEO.UŠy‚µ‚ñ‚Å‚o‚k‚`‚x‚µ‚Ä‚ËB6-07☆5.7SINGLE3593602214553BROKE607.mcs
BROKEN MY HEARTTAKEO.U‚g‚d‚`‚q‚s‚ð‰ó‚³‚ê‚È‚¢‚悤‚É‚ËB6-08☆5.8SINGLE3703602274954BROKE608.mcs
BROKEN MY HEARTYASUNORI.U‚³‚Ÿ‚r‚s‚d‚o•‚i‚`‚l‚oI6-09☆5.7SINGLE4003602465544BROKE609.mcs
BROKEN MY HEARTH.KAWAKAMI‚Ó‚´‚¯‚Ă܂·B6-10☆6.0SINGLE2776003265731BROKE610.mcs
BROKEN MY HEARTH.Yamaguchi‚Ü‚¾ƒQ[ƒZƒ“‚ÅŽÀŒ±‚µ‚ĂȂ¢iоj6-11☆5.7SINGLE3573602194456BROKE611.mcs
BROKEN MY HEARTTAKESHI MATSUMOTO‚¸‚ê‚͉ƒë—p‚ɇ‚킹‚Ä‚ ‚è‚Ü‚·B7-01☆5.7SINGLE4314802655733BROK_701.mcs
BROKEN MY HEARTT.HanadaŽ_Œ‡‚Å‚·BS‘Ÿ”j‚èII7-02☆5.8COUPLE469/4696402885832BROK_702.mcs
BROKEN MY HEARTN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»B7-03☆7.1SINGLE5496403385761BROK_703.mcs
BROKEN MY HEARTNIGHTMAREƒr[ƒ}ƒj‚c‚wƒo[ƒWƒ‡ƒ“‚Å‚·7-04☆7.4SINGLE4816402965288BROK_704.mcs
BROKEN MY HEARTD KYUTOKU‚â‚â“‚¢‚Å‚·7-05☆3.5SINGLE2422401494516BROK_705.mcs
BROKEN MY HEARTK.HIRAKAWA‹È‚Ç‚¨‚è‚Éì‚Á‚Ă݂܂µ‚½7-06☆4.6SINGLE410560252499BROK_706.mcs
BROKEN MY HEARTF.ATHUSHI“Á‚ɂȂµ7-07☆6.1SINGLE3514802164262BROK_707.mcs
BROKEN MY HEARTK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.8SINGLE3903202404235BROK_801.mcs
BROKEN MY HEARTKeisuke OmoriƒJƒbƒR—Ç‚­ì‚è‚Ü‚µ‚½8-02☆6.9SINGLE3514802166075BROK_802.mcs
BROKEN MY HEART???_22‰ÌŽŒ‚̃eƒ“ƒ|dŽ‹B„’è‚k‚u‚W8-03☆5.5SINGLE3613602224647BROK_803.mcs
BUMBLE BEES.NIHEI‚a‚`‚r‚h‚b‚¾‚¯‚ł͊ȒP‚¾‚Á‚½‚©‚ç1-01☆3.0SINGLE235275172344BUMB_101.mcs
BUMBLE BEEYAMADA HIDETOSHI‚`‚m‚n‚s‚g‚d‚q‚̕ʂu‚…‚’D1-02☆4.9SINGLE2442411793069BUMB_102.mcs
BUMBLE BEET_YAMADAƒgƒŠƒbƒL[‚ÉŽdã‚°‚Ă݂܂µ‚½1-03☆4.3DOUBLE2783102045120BUMB_103.mcs
BUMBLE BEEmurai mitsuru‚æ‚è“‚³‚ð‚à‚Æ‚ß‚½Œ‹‰ÊB1-04☆6.6SINGLE3013442204786BUMB_104.mcs
BUMBLE BEESHOTA,SAITOH.‹È‚ɇ‚킹‚½ƒXƒeƒbƒvB1-05☆3.8SINGLE2243101643416BUMB_105.mcs
BUMBLE BEEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚o‚q‚h‚s‚s‚h1-06☆4.3DOUBLE2552751872943BUMB_106.mcs
BUMBLE BEEHIROAKI.TƒXƒLƒbƒv‚ªƒƒCƒ“‚ł₳‚µ‚߂ł·B1-07☆4.2SINGLE2743102014719BUMB_107.mcs
BUMBLE BEEHIROAKI.T‚r‚s‚x‚k‚d|‚d‚l‚ªŒ³B‚â‚â“B1-08☆4.8SINGLE2713101985532BUMB_108.mcs
BUMBLE BEE???_01ƒGƒfƒBƒbƒgƒXƒeƒbƒv‰SŽÒ—p‚Å‚·1-09☆4.7SINGLE2613101914335BUMB_109.mcs
BUMBLE BEETAKENAKA TAKAHIROƒXƒLƒbƒv•˜A‘ł̌ðŒÝ‚Å‚·B2-01☆4.6SINGLE2633101934433BUMB_201.mcs
BUMBLE BEEK.SUGAI‚r‚g‚o‚a‚t‚l‚O‚P^‚V2-02☆4.2SINGLE2722411993639BUMB_202.mcs
BUMBLE BEEKOMOGUCHI.YƒXƒLƒbƒv‚Å‚·‚ª—x‚è‚É‚­‚¢‚©‚à2-03☆4.7SINGLE2853442094626BUMB_203.mcs
BUMBLE BEEFUMIHIRO ISHIWATAƒvƒŒÃìB‚Í‚Ë‚é‚æ‚¤‚É2-04☆4.4SINGLE2332751703340BUMB_204.mcs
BUMBLE BEEKoichi Nakayama‰Ì‚ƃƒƒfƒB‚ɇ‚킹‚Äì¬3-01☆5.5COUPLE316/3163102314856BUMB_301.mcs
BUMBLE BEETSUJI JUNNYAƒXƒLƒbƒv‚͉ñ‚낤IOQO3-02☆3.9SINGLE3003102244712BUMB_302.mcs
BUMBLE BEEYASUHIRO.OƒŠƒYƒ€’Ê‚è‚É»ì3-03☆4.6SINGLE2903102124135BUMB_303.mcs
BUMBLE BEEK.WAKAKI‚·‚¸‚µ‚¢Š‚ ‚‚¢3-04☆2.8SINGLE1592411161819BUMB_304.mcs
BUMBLE BEESAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-05☆4.1COUPLE249/2492751824325BUMB_305.mcs
BUMBLE BEEKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-06☆1.8SINGLE179241131717BUMB_306.mcs
BUMBLE BEETakahiro.HƒXƒLƒbƒv—L3-07☆3.9SINGLE2732752004122BUMB_307.mcs
BUMBLE BEET.HIRASAWAƒTƒr‚Å‚®‚é‚®‚éiHj4-01☆3.9SINGLE2422751773229BUMB_401.mcs
BUMBLE BEET.NAGSAKi‘¦È•ˆ–Ê‚»‚Ì‚Q4-02☆5.7SINGLE2593101904665BUMB_402.mcs
BUMBLE BEEN.MIMURAƒ}ƒjƒAƒbƒN‚Ì‚¿‚å‚¢‹Ã‚背ƒxƒ‹4-03☆3.9SINGLE272310199548BUMB_403.mcs
BUMBLE BEE???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆3.4SINGLE2302411681936BUMB_501.mcs
BUMBLE BEEHAJIME M.ƒIƒtƒBƒVƒƒƒ‹‚ÆŽ—‚Ä‚é—l‚ÅH5-02☆3.2SINGLE2222751622516BUMB_502.mcs
BUMBLE BEEYuto Jijiwa‚R‚’‚„{‚ªo‚é‘O‚Éì‚è‚Ü‚µ‚½B5-03☆4.9SINGLE2392751754052BUMB_503.mcs
BUMBLE BEED.KAWABATA‚±‚Á‚¿‚à‰SŽÒŒü‚«5-04☆2.2SINGLE1911721401035BUMB_504.mcs
BUMBLE BEETetsuya S.‘u‚â‚©‚È–ü‚µŒn‚̃Xƒeƒbƒv‚Å‚·5-05☆2.9COUPLE190/1902061391145BUMB_505.mcs
BUMBLE BEEYUUSUKE.M‚»‚Ì‹C‚ɂȂê‚Α«‚Å‚à‚Å‚«‚é5-06☆4.4SINGLE354413259534BUMB_506.mcs
BUMBLE BEEHIDEAKI.O‚¨‹C‚É“ü‚è‚̈ê‹ÈA‚¨ŽŽ‚µ‚ ‚ê5-07☆4.3COUPLE266/2662751954232BUMB_507.mcs
BUMBLE BEEM.HANABUSA‚r‚d‚u‚d‚q‚d‚ł͂Ȃ¢‚Å‚·6-01☆4.6SINGLE2982752184139BUMB_601.mcs
BUMBLE BEE???_18‚S‚”‚ˆ‚̃}ƒjƒAƒbƒN‚ÆŽ—‚Ä‚éH6-02☆4.2SINGLE2353101724222BUMB_602.mcs
BUMBLE BEEN_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆4.5SINGLE3433442515117BUMB_701.mcs
BUMBLE BEETAKU YAMAMOTOƒoƒ“ƒuƒ‹‹†‹É‘Ô7-02☆5.5SINGLE2973442174948BUMB_702.mcs
BUMBLE BEEKotaro KagawaŠy‚µ‚¢‹È‚ÍŠy‚µ‚­B7-03☆4.0SINGLE3093102264912BUMB_703.mcs
BUMBLE BEEYOSHIHIKO MOTOYASU‚»‚Ì–¼‚Ì’Ê‚è‚̃vƒŒƒT[ƒhB7-04☆6.2SINGLE2532751854394BUMB_704.mcs
BUMBLE BEEFumihiro Ibuki‚©‚ñ‚½‚ñI7-05☆4.0SINGLE2642751934322BUMB_705.mcs
BUMBLE BEEShin-ichi Miyazakiƒ‰ƒXƒg‚ÅlŠÔ‚Ì‘Ìp‚ÌŒÀŠE‚É’§íI7-06☆4.7SINGLE3004482204418BUMB_706.mcs
BUMBLE BEE???_21‚¤‚Ü‚­‹È‚ɇ‚Á‚Ä‚¢‚Ü‚·B7-07☆5.7SINGLE2784132044845BUMB_707.mcs
BUMBLE BEERYO.N.‚È‚©‚È‚©ƒ€ƒY‚¢‚Å‚·B7-08☆5.6SINGLE3403442494949BUMB_708.mcs
BURNIN' THE FLOORTakashi.K‚¢‚¢Š´‚¶‚̃Xƒeƒbƒv‚ª‚Å‚«‚Ü‚µ‚½1-01☆5.6SINGLE3763482645046BURN_101.mcs
BURNIN' THE FLOORKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-02☆5.4DOUBLE3453872435431BURN_102.mcs
BURNIN' THE FLOORYAMADA HIDETOSHI— ‰¹Šî’²1-03☆4.9SINGLE3083102173846BURN_103.mcs
BURNIN' THE FLOORSHINTARO MICHIHIRO’†‚Ìã‚Æ‚¢‚Á‚½‚©‚ñ‚¶‚Å‚·B1-04☆3.6SINGLE331310233399BURN_104.mcs
BURNIN' THE FLOORH.KAWAKAMIƒI[ƒ‹‚W•ªB1-05☆3.7SINGLE436310307500BURN_105.mcs
BURNIN' THE FLOORMASAYA.TAGUTU‚½‚Ô‚ñ‚Å‚«‚Ü‚·1-06☆5.7SINGLE3613102545059BURN_106.mcs
BURNIN' THE FLOORA.NAOKI‚f‚‚”‚”‚‚ŽìF‚c‚`‚h‚g‚t‚m‚j‚`1-07☆5.0DOUBLE3013102123453BURN_107.mcs
BURNIN' THE FLOORK.HAYASE‚P‚U•ª‚𑽗p‚µ‚½‹Éˆ«ƒXƒeƒbƒvB1-08☆5.9SINGLE4544653195332BURN_108.mcs
BURNIN' THE FLOORT.HiranoŽEl“IƒXƒeƒbƒvI’´ŠëŒ¯II2-01☆6.1SINGLE4164262935643BURN_201.mcs
BURNIN' THE FLOORMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-02☆5.5SINGLE2613101835353BURN_202.mcs
BURNIN' THE FLOORYOU.W–G‚¦‚邿‚¤‚É—x‚è‹¶‚¦I2-03☆4.5SINGLE3343102354526BURN_203.mcs
BURNIN' THE FLOORKEISUKE.Sì‚é‚̂ނ¸‚©‚µ‚©‚Á‚½`2-04☆5.9SINGLE3413482404659BURN_204.mcs
BURNIN' THE FLOORO.YAMAMOTO‚S•ª“¥‚Ý‚ð‘厖‚É‚µ‚Ă܂·B2-05☆5.5SINGLE3223482265145BURN_205.mcs
BURNIN' THE FLOORH.TARUMI— ‘Å‚¿‚ª‹CŽ‚¿‚æ‚­‚©‚“‚¢2-06☆6.2SINGLE3683872596248BURN_206.mcs
BURNIN' THE FLOORFUMIHIRO ISHIWATAƒvƒŒÃìBƒTƒr‚Å”ò‚Ú‚¤2-07☆4.8SINGLE3043102145430BURN_207.mcs
BURNIN' THE FLOORTAKEHIRO-O‚m‚d‚w‚s@‚h‚rI@ŽŸ¢‘ã‚Ö‚Ì“¹3-01☆5.4SINGLE3494262455131BURN_301.mcs
BURNIN' THE FLOORF.ATHUSHI‘«Šµ‚炵‚ÉB3-02☆4.8SINGLE3433482414628BURN_302.mcs
BURNIN' THE FLOOR???_03‚Q‚c‚w‚u‚…‚’ƒXƒeƒbƒv3-03☆5.2SINGLE3656202575621BURN_303.mcs
BURNIN' THE FLOORN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-04☆6.3SINGLE3473482446659BURN_304.mcs
BURNIN' THE FLOORK.WAKAKI‚j‚`‚y‚t‚v‚h‚c‚d3-05☆2.3SINGLE188155132050BURN_305.mcs
BURNIN' THE FLOORM.Yamamoto‚±‚ê‚àƒmƒŠƒmƒŠô3-06☆5.0SINGLE3413482405229BURN_306.mcs
BURNIN' THE FLOORTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-07☆5.6SINGLE4003872815332BURN_307.mcs
BURNIN' THE FLOORRyohei Seki’EEƒJƒj•ˆ–ÊB‰E‰¶‰‚ŃEƒH`3-08☆6.0DOUBLE3043482146355BURN_308.mcs
BURNIN' THE FLOORT.HIRASAWA‚Ç‚±‚©‚ÅŒ©‚½‚±‚Æ‚ ‚éH4-01☆4.5SINGLE3163102223239BURN_401.mcs
BURNIN' THE FLOORT.HIRASAWAŌゾ‚¯c4-02☆3.2DOUBLE2502321761342BURN_402.mcs
BURNIN' THE FLOORJUN.K”R‚¦‚ë”R‚¦‚ë4-03☆4.8SINGLE2523101773644BURN_403.mcs
BURNIN' THE FLOORHIDEAKI KANEDAX‚É–ÒX‚µ‚­4-04☆6.7SINGLE3183872245773BURN_404.mcs
BURNIN' THE FLOORKIMISHIMA TAKUROƒWƒƒƒ“ƒv‚ª‚«‚‚¢B4-05☆5.7SINGLE2853102005259BURN_405.mcs
BURNIN' THE FLOORY.KAWABE— ‘Å‚¿‚΂Á‚©‚è4-06☆5.8SINGLE2783101956557BURN_406.mcs
BURNIN' THE FLOORD.OSHIMAŽ©MìA‚º‚Б«‚ŃvƒŒƒC‚µ‚Ä‚­‚êI4-07☆4.9SINGLE443465312565BURN_407.mcs
BURNIN' THE FLOORKouki.UƒJƒ“ƒ^ƒ“‚·‚¬‚½4-08☆5.8SINGLE3073872165744BURN_408.mcs
BURNIN' THE FLOORtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-09☆5.2SINGLE3953872785622BURN_409.mcs
BURNIN' THE FLOORMIO.SD‚݂̕ˆ–ʂɂµ‚Ü‚µ‚½B4-10☆4.9SINGLE3083102174638BURN_410.mcs
BURNIN' THE FLOOR???_08ƒŒƒxƒ‹‚P‚OA㋉ŽÒŒü‚¯4-11☆5.2DOUBLE3353482364243BURN_411.mcs
BURNIN' THE FLOOR???_09™~‚S4-12☆6.8SINGLE4724653325951BURN_412.mcs
BURNIN' THE FLOOR???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆4.7SINGLE2063101453642BURN_501.mcs
BURNIN' THE FLOORHAJIME M.‚à‚¦‚‚«‚ĉº‚³‚¢5-02☆4.1SINGLE274348193643BURN_502.mcs
BURNIN' THE FLOORHIROKI.NƒiƒCƒX‚Èo—ˆ‚Å‚·B5-03☆4.7SINGLE3553482505418BURN_503.mcs
BURNIN' THE FLOORY.TSUDA­‚µ‚΂©‚è“¥‚݂ɂ­‚­‚È‚Á‚Ä‚¢‚éB5-04☆4.2SOLO3663102574516BURN_504.mcs
BURNIN' THE FLOORYuto JijiwaƒTƒr‚ª­‚µ‚«‚‚߂ł·5-05☆5.3SINGLE3043872145530BURN_505.mcs
BURNIN' THE FLOORK.GOTOU‹È‚̃Xƒs[ƒh‚É‚±‚Ì•ˆ–Ê‚ÍEE5-06☆5.6SINGLE3733482625046BURN_506.mcs
BURNIN' THE FLOORURABE HIROKI‚m‚`‚n‚j‚hÅ‚`I5-07☆4.3SINGLE360387253496BURN_507.mcs
BURNIN' THE FLOORF.KATOU–󂵂Äu”R‚¦‚ë‚r‚r‚qv‚Å‚·B5-08☆6.6SINGLE3433872415669BURN_508.mcs
BURNIN' THE FLOORKATSUHIKO KOBAYASHIr‚ê‹¶‚¤‰Î‰Š‚Ég‚ð‚䂾‚Ë‚ë5-09☆6.4SINGLE3643872565560BURN_509.mcs
BURNIN' THE FLOORTomoyuki Takahashi‚P‚O‚O“ÄŒ»‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B5-10☆4.6SINGLE2512711766031BURN_510.mcs
BURNIN' THE FLOORSATOSHI.HŠÔ‘t‚ª‚·‚²‚¢‚Å‚·5-11☆6.3SINGLE4054652855848BURN_511.mcs
BURNIN' THE FLOOR???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-01☆4.0DOUBLE3643102564114BURN_601.mcs
BURNIN' THE FLOORS.SATAKE‚܂ǂ킳‚ê‚È‚¢‚悤‚É6-02☆6.5SINGLE3386202386158BURN_602.mcs
BURNIN' THE FLOOR???_16‚P‚U•ªo‚Ü‚­‚èEEE6-03☆6.1SINGLE3345032356047BURN_603.mcs
BURNIN' THE FLOORMITHUTOSHI NAKATA–¼‹È‚¾‚æ‚ËB6-04☆6.6SINGLE2993482105777BURN_604.mcs
BURNIN' THE FLOORToshihide Fujita”äŠr“IŠy‚©‚àB6-05☆4.7DOUBLE3053872145514BURN_605.mcs
BURNIN' THE FLOORK.KinugawaV‚µ‚¢h“n‚èh‚ð–ÚŽw‚µ‚Ü‚µ‚½B6-06☆4.5DOUBLE3363102364030BURN_606.mcs
BURNIN' THE FLOORNOBUTAKA TSUTSUMIŠÈ’PH6-07☆3.4SINGLE259310182348BURN_607.mcs
BURNIN' THE FLOORYuki Ichikawa“ïˆÕ“x•Šy‚µ‚³I6-08☆6.2SINGLE4214652965943BURN_608.mcs
BURNIN' THE FLOOR???_20‚Q‚l‚h‚wH7-01☆5.2SINGLE3663872575125BURN_701.mcs
BURNIN' THE FLOORSATOSHI HORIUCHIƒmƒŒƒ‹HƒmƒŒƒiƒCH7-02☆5.0SINGLE3373872375122BURN_702.mcs
BURNIN' THE FLOORSEIJI.H‚½A‘½•ªƒJƒiƒVƒCEEE7-03☆5.3SINGLE3015032125327BURN_703.mcs
BURNIN' THE FLOORNorihiro Kitamura‚»‚±‚܂Ōƒ‚µ‚­‚È‚¢‚Å‚·7-04☆4.5DOUBLE3743482634715BURN_704.mcs
BURNIN' THE FLOORY.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-05☆4.9SINGLE3523482485722BURN_705.mcs
BURNIN' THE FLOORTATSURO SAKAGUCHIƒf[ƒ^–¼‚Ç‚¨‚è7-06☆6.5SINGLE3546202496159BURN_706.mcs
BURNIN' THE FLOORRYO.N.ŠÈ’P‚Å‚·‚ªAŠy‚µ‚߂܂·B7-07☆5.9SINGLE3893872744947BURN_707.mcs
BURNIN' THE FLOORD KYUTOKU”R‚¦·‚鉊‚̂悤‚É—x‚낤7-08☆4.5SINGLE2563101875224BURN_708.mcs
BURNIN' THE FLOORD.fujisaki“¥‚Ý‚²‚½‚¦—L‚èI‚¾‚ÆŽv‚¢‚Ü‚·B7-09☆5.2SINGLE4655423275710BURN_709.mcs
BURNIN' THE FLOORK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.4SINGLE3093102173731BURN_801.mcs
BURNIN' THE FLOOR???_22ƒIƒŠƒWƒiƒ‹{‚ÈŠ´‚¶B„’è‚k‚u‚Wª8-02☆4.6SINGLE3583102524728BURN_802.mcs
butterflyM.MOCHIDUKIƒXƒgƒbƒv@ƒAƒ“ƒh@ƒ_ƒbƒVƒ…1-01☆3.1SINGLE1992361452126BUTT_101.mcs
butterflyKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-02☆4.5DOUBLE2752692013346BUTT_102.mcs
butterflyYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚bŠ´Šo‚łǂ¤‚¼1-03☆4.8SINGLE3243032374340BUTT_103.mcs
butterflyY_TATE‚P‚o‘¤”Þ—‚Q‚o‘¤”ÞŽ‚łǂ¤‚¼B1-04☆3.9COUPLE190/1682691393130BUTT_104.mcs
butterflySHINTARO MICHIHIRO‰ƒGƒfƒBƒbƒgì•i‚Å‚·B1-05☆3.8SINGLE2992692193820BUTT_105.mcs
butterflyA.NAOKI‚lD‹g“c@ìF‚c‚n‚rD‚j‚n‚h1-06☆4.6DOUBLE2863032093938BUTT_106.mcs
butterflyY.IMAI’±‚̂悤‚É”ü‚µ‚­‰ñ‚è‚Ü‚µ‚傤2-01☆3.7SINGLE1962691431642BFLY_201.mcs
butterflySUGAWARA TAKASHIŽ©•ª‚̉Šú‚Ì ‚Ìì•i‚Å‚·B2-02☆4.5SINGLE2712361983255BFLY_202.mcs
butterflyK.SUGAI‚r‚g‚o‚a‚t‚s‚O‚Q^‚W2-03☆5.5SINGLE21616815818171BFLY_203.mcs
butterflyK.SUGAI‚r‚g‚o‚a‚t‚s‚O‚P^‚S^‚S•ª‚Ì‚Ý2-04☆4.3SINGLE1641341200164BFLY_204.mcs
butterflyKOSE Fƒ`ƒ‡ƒE‚̂悤‚É2-05☆3.9DOUBLE2682691963328BFLY_205.mcs
butterflySATOSHI ARIGA‚r‚s‚rI‘æˆê’eB3-01☆3.7SINGLE2232691632629BUTT_301.mcs
butterflyN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-02☆5.5SINGLE4604043376012BUTT_302.mcs
butterflyM.YamamotoƒXƒLƒbƒv’ˆÓ3-03☆4.4SINGLE3063032244527BUTT_303.mcs
butterflyT.HIRASAWAʼn‚Ì‚d‚c‚h‚s4-01☆3.0SINGLE2542361863212BUTT_401.mcs
butterflyT.NAGSAKi—ûK—p‚Å‚·B4-02☆2.8SINGLE176134129070BUTT_402.mcs
butterflyT.NAGSAKi‚Ç‚±‚©‚ÅŒ©‚½•ˆ–Ê‚ªcB4-03☆0.2SINGLE17413412700BUTT_403.mcs
butterflyY.KAWABE“¯‚¶‚­‚j‚d‚mŽ‚Æ‚Ì‹¤“¯ì‚Å‚·4-04☆2.3SINGLE200269146826BUTT_404.mcs
butterflyN.MIMURA‰ùŒÃŽå‹`‚ÅB‰ñ‚Á‚ĉñ‚Á‚Ä’µ‚Ë‚Ä4-05☆4.0SINGLE2713371983317BUTT_405.mcs
butterflytakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-06☆6.3SINGLE4094382995745BUTT_406.mcs
butterflyDaisuke K.“¯Žž“¥‚Ý‚R˜A‘Å‚ª“Á’¥B‚k‚–D‚V4-07☆5.0SINGLE2742692003759BUTT_407.mcs
butterflyHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-08☆4.4SINGLE2722691993938BUTT_408.mcs
butterflyHAJIME M.‰Ì‚¢‚È‚ª‚炾‚Æã‚©‚݂܂·5-01☆2.7SINGLE236269173360BUTT_501.mcs
butterflySEIJI W.ŠÔ‘t‚ʼnñ‚Á‚ĉº‚³‚¢5-02☆5.1SINGLE2953372164542BUTT_502.mcs
butterflySatoru Hata‹M•û‚É’‰ŽÀ‚Èl‚Í‚¢‚Ü‚·‚©HB5-03☆7.2SINGLE5305393886543BUTT_503.mcs
butterflyKEIGO.H‚r‚h‚m‚f‚k‚d@ƒTƒ“ƒJƒN5-04☆3.5SINGLE2372361734018BUTT_504.mcs
butterflyDAISUKE A.‚P‚U•ª‚̂Ƃ±‚ë‚Í‚½‚Ô‚ñƒm‚ê‚Ü‚·6-01☆4.2SINGLE2442691783140BUTT_601.mcs
butterflyS.kentaro‚`‚h‚x‚`@‚l‚h‚w6-02☆1.9SINGLE160134117042BUTT_602.mcs
butterflyNAOTO M.‚¿‚å‚Á‚ƃAƒŒƒ“ƒW‚µ‚Ă݂܂µ‚½B6-03☆5.1SINGLE3473372544637BUTT_603.mcs
butterflyT.HanadaƒAƒCƒ„ƒCƒ„[7-01☆5.2SINGLE2812692063469BUTT_701.mcs
butterflyINAGAKI KEIsuke’†‹‰ŽÒŒü‚¯B7-02☆3.1SINGLE2062361511049BUTT_702.mcs
butterflyKouzou.N‹†‹É‚Ì•s–ù‰õ7-03☆4.5SINGLE1662021216836BUTT_703.mcs
butterflyKouzou.NƒTƒr‚Ì•”•ª‚Í”½•œ‰¡’µ‚Ñ7-04☆4.1DOUBLE1842691341074BUTT_704.mcs
butterflyFumihiro Ibuki‚Ü‚¬‚ç‚킵‚¢`I7-05☆3.9SINGLE2762692023625BUTT_705.mcs
butterflyN.NAGANOu‚a‚Q‚t{‚a‚S‚tv‚ªƒRƒ“ƒZƒvƒgB7-06☆4.8SINGLE2773032033545BUTT_706.mcs
butterflyD.fujisaki–­‚É‚¢‚â‚炵‚¢•ˆ–ÊB7-07☆4.1SINGLE3383032474715BUTT_707.mcs
butterflyK.MASIMA”ò‚Ԃ悤‚É—x‚낤B8-01☆4.8SINGLE2622691923554BUTT_801.mcs
butterfly(UPSWING MIX)M.MOCHIDUKI‚¢‚‚©‚Ç‚±‚©‚ÅŒ©‚½•ˆ–Ê1-01☆3.0SINGLE222255165451BUTTU101.mcs
butterfly(UPSWING MIX)YAMADA HIDETOSHI—E‹C‚ðo‚µ‚ĉñ‚낤I1-02☆5.5SINGLE2943402192473BUTTU102.mcs
butterfly(UPSWING MIX)T_YAMADAŠÔ‘t•”•ª‚ª“ïI1-03☆6.4SINGLE3855102874461BUTTU103.mcs
butterfly(UPSWING MIX)TAKENAKA TAKAHIROŒy‰õ‚ÉEEE‘–‚Á‚ÄI2-01☆4.7SINGLE3773402813926BFLYU201.mcs
butterfly(UPSWING MIX)Kubota Mamoru‚±‚̃Xƒs[ƒh‚Å“¯Žž“¥‚Ý‚W•ª2-02☆4.4SINGLE2573401912240BFLYU202.mcs
butterfly(UPSWING MIX)T.Ochiai’†‹‰ŽÒ‚È‚ç‚Å‚«‚Ä“–‘RIH2-03☆4.3SINGLE3313402463224BFLYU203.mcs
butterfly(UPSWING MIX)HAJIME.I‚Ú‚æ‚ñìF‚‘¬ƒXƒLƒbƒv‚ ‚è‚Ü‚·2-04☆5.0SINGLE3633402703639BFLYU204.mcs
butterfly(UPSWING MIX)K.SUGAI‚r‚g‚o‚a‚t‚o‚O‚Q^‚V2-05☆5.2SINGLE3263402433647BFLYU205.mcs
butterfly(UPSWING MIX)K.SUGAI‚r‚g‚o‚a‚t‚o‚O‚P^‚V2-06☆4.9SINGLE3023402253640BFLYU206.mcs
butterfly(UPSWING MIX)H.BANDO‚cVƒ}ƒjo‚é‘O‚©‚çì‚Á‚Ä‚½‚æB2-07☆6.1SINGLE4695523495925BFLYU207.mcs
butterfly(UPSWING MIX)YUSUKE.K‚©‚È‚è‚Í‚¸‚ê‚Ă܂·3-01☆5.3SINGLE3243402414345BUTTU301.mcs
butterfly(UPSWING MIX)Y.SAKAI‘Ì‚ð‚Ђ˂éꊂª‘½‚¢‚Å‚·B3-02☆5.2DOUBLE3413402543548BUTTU302.mcs
butterfly(UPSWING MIX)Yosuke Morita‚W•ª‚ª‚¸‚Á‚Æ‘±‚«‚Ü‚·3-03☆4.7SINGLE4183403114816BUTTU303.mcs
butterfly(UPSWING MIX)Takahiro.H‘«‚V‚Â3-04☆4.5SINGLE2642971963638BUTTU304.mcs
butterfly(UPSWING MIX)T.HIRASAWAVƒ}ƒjƒAƒbƒN•ˆ–ʂƎ—‚Ä‚éc4-01☆4.4SINGLE3112972312744BUTTU401.mcs
butterfly(UPSWING MIX)HIROSHI TAKENOUCHIƒŒƒxƒ‹‚T4-02☆3.0SINGLE201170149069BUTTU402.mcs
butterfly(UPSWING MIX)N.MIMURA”½ŽË_Œo•‘Ì—ÍŸ•‰BŠÔ‹È‚ªŽR‚Å‚·4-03☆6.1SINGLE4295103195038BUTTU403.mcs
butterfly(UPSWING MIX)Kei.U‚Ƃɂ©‚­ƒXƒLƒbƒv‚ª‚łĂ«‚Ü‚·B5-01☆4.4SINGLE3573822663813BUTTU501.mcs
butterfly(UPSWING MIX)SEIJI W.‘Ì—ÍŸ•‰iÎj5-02☆6.8SINGLE3845522865070BUTTU502.mcs
butterfly(UPSWING MIX)YUUSUKE.M‚P‚U•ª‚Ì‚P“ü‚ꂽ5-03☆6.1COUPLE339/3393822523369BUTTU503.mcs
butterfly(UPSWING MIX)KEITA.I‘«‚ŃvƒŒƒC‚·‚鎞‚Í‚²’ˆÓ‰º‚³‚¢5-04☆4.5COUPLE451/451340336496BUTTU504.mcs
butterfly(UPSWING MIX)T.MAMIYA“¯Žž“¥‚݂̃‰ƒCƒgƒo[ƒWƒ‡ƒ“‚Å‚·B5-05☆4.6SINGLE1901701410190BUTTU505.mcs
butterfly(UPSWING MIX)KAWAKITA MASAYA‹É‚ß‚½l‚Ì‚½‚߂̃GƒfƒBƒbƒg‚Å‚·I6-01☆6.2SINGLE4183823114551BUTTU601.mcs
butterfly(UPSWING MIX)M.Ooebesu‹Œƒ}ƒjƒAƒbƒN‚æ‚è‚Í“ïB‚P‚U•ªƒiƒV6-02☆5.0DOUBLE2972972212565BUTTU602.mcs
butterfly(UPSWING MIX)KENJI ENDA‘Ì—ÍŸ•‰I6-03☆5.4SINGLE4013822995722BUTTU603.mcs
butterfly(UPSWING MIX)N_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆5.7SINGLE4645103465121BUTTU701.mcs
butterfly(UPSWING MIX)INAGAKI KEIsukeEEE΂Á‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢B7-02☆6.5SINGLE4696803495442BUTTU702.mcs
butterfly(UPSWING MIX)TOMOFUMI YOSHIDA‚©‚È‚è“‚¢‚Å‚·B7-03☆5.5SINGLE4003822984336BUTTU703.mcs
CAFEA.NAOKI‚lD‹g“c@ìF‚j‚`‚s‚b‚g‚n|‚d3-01☆4.0DOUBLE2592571853730CAFE_301.mcs
CAFEY.KAZAMAKI“ïˆÕ“x‚Q‚Å‚·EEE3-02☆0.9SINGLE9912870015CAFE_302.mcs
CAFEABE TaTsuMa‚¢‚¢Š´‚¶‚ɂł«‚Ü‚µ‚½B5-01☆5.2SINGLE2683861914435CAFE_501.mcs
CAFEMITHUTOSHI NAKATA‰B‚ꂽ–¼‹È‚Å‚·B6-01☆5.9SINGLE2543861815050CAFE_601.mcs
CAFED KYUTOKUƒJƒtƒF‚ðˆù‚݂‚—x‚낤B7-01☆5.1SINGLE2243541605033CAFE_701.mcs
CAFEK.IKEMOTO‘«~‚V‚­‚ç‚¢‚Å‚·8-01☆3.6SINGLE2412571723024CAFE_801.mcs
CAN'T STOP FALLIN' IN LOVEK.TAKEMURAŽ©•ª“I‚ɂ͖ž‘«B3-01☆6.2SINGLE3563872465555CANT_301.mcs
CAN'T STOP FALLIN' IN LOVEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚y‚n‚j‚j‚n‚m@‚k3-02☆5.5SINGLE3303102284061CANT_302.mcs
CAN'T STOP FALLIN' IN LOVETAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-03☆6.0SINGLE4113872845444CANT_303.mcs
CAN'T STOP FALLIN' IN LOVEHIDEAKI KANEDAŒöŽ®ƒf[ƒ^‚ð­‚µ‰ü—Çi‰üˆ«Hj4-01☆6.4SINGLE3363482325771CANT_401.mcs
CAN'T STOP FALLIN' IN LOVEYOSHIKI MURATAƒfƒLƒ‹ƒƒPƒiƒCƒˆIIi‹tƒMƒŒj4-02☆5.3SINGLE3644262514629CANT_402.mcs
CAN'T STOP FALLIN' IN LOVE???_09™~‚Si‹T“I“ïˆÕ“xj4-03☆6.7SINGLE5336203686634CANT_403.mcs
CAN'T STOP FALLIN' IN LOVE???_10‘ƒLƒƒƒ“ƒXƒg‚ðƒpƒNƒŠ‹C–¡iÎj5-01☆5.4SINGLE2813871944043CSFIL501.mcs
CAN'T STOP FALLIN' IN LOVEHAJIME M.ƒ†[ƒƒŠƒYƒ€{ƒ{[ƒJƒ‹5-02☆5.4SINGLE2973872055333CSFIL502.mcs
CAN'T STOP FALLIN' IN LOVEHIROKI.Nʼn‚Ì‚P‚U•ª‚ÌŠ‚ª“‚¢‚©‚ÈH5-03☆5.6SINGLE3654262525534CSFIL503.mcs
CAN'T STOP FALLIN' IN LOVET.MAMIYA‘«‚Ì“¥‚ݑւ¦‘½‚µB‚Ó‚Ÿ‚¢‚Æ‚ÁI5-04☆5.7SINGLE3873872675934CSFIL504.mcs
CAN'T STOP FALLIN' IN LOVEKATSUHIKO KOBAYASHIŽ~‚܂邱‚Ƃ̂Ȃ¢ˆ¤5-05☆6.8SINGLE3533872446071CSFIL505.mcs
CAN'T STOP FALLIN' IN LOVEYASUSHI.F‚d‚t‚q‚nÅ‚`II6-01☆6.0SINGLE3925032716736CANT_601.mcs
CAN'T STOP FALLIN' IN LOVE???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆4.9DOUBLE3353872314027CANT_602.mcs
CAN'T STOP FALLIN' IN LOVES.SATAKE–l‚È‚è‚ÉŠÈ’P‚É‚µ‚Ü‚µ‚½6-03☆6.8SINGLE3175422195772CANT_603.mcs
CAN'T STOP FALLIN' IN LOVEMITHUTOSHI NAKATA‚m‚`‚n‚j‚hÅ‚I6-04☆6.8SINGLE3094262135574CANT_604.mcs
CAN'T STOP FALLIN' IN LOVEKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-05☆5.5DOUBLE3423872364740CANT_605.mcs
CAN'T STOP FALLIN' IN LOVEM.HANABUSAƒ{[ƒJƒ‹‚É‚ ‚킹‚邯EEE6-06☆5.6SINGLE3303872285437CANT_606.mcs
CAN'T STOP FALLIN' IN LOVEH.MATSUDA—Ç‚­o—ˆ‚½•û‚©‚ÈH6-07☆6.3SINGLE4425033055844CANT_607.mcs
CAN'T STOP FALLIN' IN LOVETAKESHI MATSUMOTO‚Í‚¶‚߂ƃ‰ƒXƒg‚ÍŠµ‚êII7-01☆6.3SINGLE3774652606051CSFIL701.mcs
CAN'T STOP FALLIN' IN LOVEN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»B7-02☆7.4SINGLE4556203147169CSFIL702.mcs
CAN'T STOP FALLIN' IN LOVED KYUTOKUŒ‹\“‚¢‚Å‚·7-03☆4.3SINGLE2132321474936CSFIL703.mcs
CAN'T STOP FALLIN' IN LOVEW.Shiomi‚Q‚c‚w‚ÌƒŠƒYƒ€‚Åì‚Á‚Ă܂·8-01☆5.6SINGLE4105812836723CSFIL801.mcs
CAN'T STOP FALLIN' IN LOVEW.Shiomi‚Q‚c‚w‚ÌƒŠƒYƒ€‚Åì‚Á‚Ă܂·8-02☆4.9DOUBLE3893482695721CSFIL802.mcs
CAN'T STOP FALLIN' IN LOVEShimamoto Yuukiƒm[ƒRƒƒ“ƒgEEE8-03☆6.1SINGLE3804652625348CSFIL803.mcs
CAN'T STOP FALLIN' IN LOVEH.MURATAº‚ɇ‚킹‚½‚Ì‚ªƒ|ƒCƒ“ƒgB8-04☆5.3SINGLE3053102114453CSFIL804.mcs
CAPTAIN JACK(GRANDALE REMIX)TOMOKAZU-M¶‰E‘ÎÌIH1-01☆4.6DOUBLE2443821812238CAPT_101.mcs
CAPTAIN JACK(GRANDALE REMIX)YASUHIRO.Oƒ‰ƒXƒg‚ª‚P‚U•ª‚̃‰ƒbƒVƒ…‚Å‚·1-02☆5.9SINGLE3846792865338CAPT_102.mcs
CAPTAIN JACK(GRANDALE REMIX)SOUSHIN.KƒWƒƒƒbƒN‚©‚ç‚̓RƒŒ‚ðƒZƒŒƒNƒg1-03☆5.4SINGLE524679390600CAPT_103.mcs
CAPTAIN JACK(GRANDALE REMIX)YAMADA HIDETOSHI‚`‚m‚n‚s‚g‚d‚q‚̕ʂu‚…‚’D1-04☆6.2SINGLE3114672313471CAPT_104.mcs
CAPTAIN JACK(GRANDALE REMIX)T_YAMADAŒðŒÝ‚É“¥‚Þ‚É‚ÍAƒeƒNƒjƒbƒN‚ª•K—v1-05☆4.7DOUBLE387467288507CAPT_105.mcs
CAPTAIN JACK(GRANDALE REMIX)T_YAMADA‚P‚U•ª‚ªŽU‚ç‚΂Á‚Ä‚¢‚銴‚¶1-06☆5.3SINGLE3854672875420CAPT_106.mcs
CAPTAIN JACK(GRANDALE REMIX)SINOMIYA.Y‚i‚`‚b‚jII1-07☆4.9SINGLE398467296588CAPT_107.mcs
CAPTAIN JACK(GRANDALE REMIX)A.NAOKI‚lD‹g“c@ìF‚n‚x‚`‚a‚t‚m@‚i1-08☆7.1SINGLE22933917037117CAPT_108.mcs
CAPTAIN JACK(GRANDALE REMIX)K.HAYASE’†`㋉ŽÒ‚ւ̃XƒeƒbƒvƒAƒbƒvB1-09☆4.5SINGLE3113392314621CAPT_109.mcs
CAPTAIN JACK(GRANDALE REMIX)Y.SAKAI‚Ù‚Ú‘S‚Ä‚ªŽRê2-01☆5.1DOUBLE3574672665419CAPT_201.mcs
CAPTAIN JACK(GRANDALE REMIX)Y.SAKAII”Õ‚ªƒ„ƒ}ê2-02☆5.2SINGLE3574672665420CAPT_202.mcs
CAPTAIN JACK(GRANDALE REMIX)???_02ˆÓŠO‚ƃmƒŠ‚â‚·‚¢2-03☆5.6SINGLE3503822604542CAPT_203.mcs
CAPTAIN JACK(GRANDALE REMIX)SUGAWARA TAKASHIu޾‘–v‚ªƒe[ƒ}‚Å‚·B2-04☆5.6SINGLE3733822784144CAPT_204.mcs
CAPTAIN JACK(GRANDALE REMIX)K.SUGAI‚r‚g‚o‚b‚i‚f‚O‚P^‚V2-05☆5.3SINGLE2973392214745CAPT_205.mcs
CAPTAIN JACK(GRANDALE REMIX)KOSE F‹S‚Å‚·2-06☆5.8DOUBLE3713822765441CAPT_206.mcs
CAPTAIN JACK(GRANDALE REMIX)TOMOHIRO NAKAI‚l‚`‚m‚h‚`‚b•ˆ–ʂ̔­“WŒ`B3-01☆6.9SINGLE4604673425655CAPT_301.mcs
CAPTAIN JACK(GRANDALE REMIX)Jun T.‰ÌŽŒ’Ê‚è‚̃XƒeƒbƒvB4-01☆5.4SINGLE4604243425512CAPT_401.mcs
CAPTAIN JACK(GRANDALE REMIX)Y.KAWABEƒ^ƒCƒgƒ‹’Ê‚è‚̃LƒƒƒvƒWƒƒ‚Uì–Ú4-02☆5.9DOUBLE4704673505821CAPT_402.mcs
CAPTAIN JACK(GRANDALE REMIX)H.OIKAWA‚©‚Á‚±‚¢‚¢‚Å‚·‚æ‚ËB4-03☆6.8SINGLE4165093105659CAPT_403.mcs
CAPTAIN JACK(GRANDALE REMIX)TAISHI K.‚b‚`‚o‚s‚`‚h‚m@‚i‚`‚b‚jƒoƒ“ƒUƒC4-04☆5.4SINGLE4004242985222CAPT_404.mcs
CAPTAIN JACK(GRANDALE REMIX)???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆4.4SINGLE2533391882634CAPT_501.mcs
CAPTAIN JACK(GRANDALE REMIX)Kazuhiko Chiba‚f‚n‚nEEE5-02☆5.2SINGLE2913822164036CAPT_502.mcs
CAPTAIN JACK(GRANDALE REMIX)Keisuke OgiwaraÅŒã‚Ì‚P‚U•ª‚ªƒ~ƒ\6-01☆4.2SINGLE351552261491CAPT_601.mcs
CAPTAIN JACK(GRANDALE REMIX)KENGO NAKAMURA‚r‚r‚q‚Æ‚Í‘ÎÆ“I‚É‘S–Ê‚W•ª6-02☆4.7SINGLE3133392334230CAPT_602.mcs
CAPTAIN JACK(GRANDALE REMIX)???_19ƒeƒ“ƒ|‘‚¢‚©‚ç‚‚炢‚©‚ÈEEE6-03☆7.1SINGLE5345943985838CAPT_603.mcs
CAPTAIN JACK(GRANDALE REMIX)Yuki IchikawaƒRƒŒ‚àƒCƒ`ƒIƒVB‚º‚ÐB6-04☆6.6SINGLE3864242875260CAPT_604.mcs
CAPTAIN JACK(GRANDALE REMIX)RYOHEI.T & KENICHI.TŽèê—pBŽ„‚Í‘«‚ł͖³—‚Å‚·B7-01☆7.3SINGLE4264673175378CAPT_701.mcs
CAPTAIN JACK(GRANDALE REMIX)Kotaro KagawauÅ‹ßA–Z‚µ‚­‚ÄEEEBv7-02☆5.9SINGLE3914242915339CAPT_702.mcs
CAPTAIN JACK(GRANDALE REMIX)SEIJI TOUMAˆê‰ñ‚Í‚â‚Á‚Ă݂Ă­‚êI7-03☆5.7SINGLE4535093375917CAPT_703.mcs
CAPTAIN JACK(GRANDALE REMIX)RYO.N.ƒtƒ‰ƒ“ƒL[‚̺‚ɇ‚킹‚Ü‚µ‚½B7-04☆6.8SINGLE4214673135360CAPT_704.mcs
CAT'S EYE(Ventra Mix)YUSUKE.K‚P‚U•ª‚ð‚¿‚å‚Á‚Æ‚¾‚¯‘½‚­‚µ‚Ü‚µ‚½3-01☆5.7SINGLE3563572475645CATS_301.mcs
CAT'S EYE(Ventra Mix)K.TAKEMURA‚¨‹C‚É“ü‚è‚Å‚·B3-02☆5.5SINGLE4254362956520CATS_302.mcs
CAT'S EYE(Ventra Mix)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚à‚Á‚±‚è3-03☆4.6DOUBLE2743171902944CATS_303.mcs
CAT'S EYE(Ventra Mix)KAZUYUKI.S‚Ë‚±‚̂悤‚ȃXƒeƒbƒv‚ðì‚è‚Ü‚µ‚½4-01☆6.1SINGLE4013172794770CATS_401.mcs
CAT'S EYE(Ventra Mix)TUBASA.S‚¨‚«‚É‚¢‚èI4-02☆4.6SINGLE3233572244920CATS_402.mcs
CAT'S EYE(Ventra Mix)S.KUROYANAGI‚P‚U•ª‚Ì‹S‚Å‚·5-01☆4.9SINGLE475436330583CATSI501.mcs
CAT'S EYE(Ventra Mix)ABE TaTsuMa‚P”Ô‘åD‚«‚È‚±‚̋ȂÅI5-02☆5.1SINGLE3584362496614CATSI502.mcs
CAT'S EYE(Ventra Mix)SHINYA.KƒJƒj‚͂Ȃ¢‚æ`BŠy‚µ‚ßI5-03☆5.1DOUBLE3193572224834CATSI503.mcs
CAT'S EYE(Ventra Mix)HIGASHI SENSHIROU‚¯‚Á‚±‚¤‚¢‚¢B5-04☆5.7SINGLE4064762825333CATSI504.mcs
CAT'S EYE(Ventra Mix)S.SATAKE‚È‚º‚©‹ƒ‚¢‚Ă܂·6-01☆6.0SINGLE4765953315730CATS_601.mcs
CAT'S EYE(Ventra Mix)T.FUJIWARAƒ_ƒuƒ‰[”ŒNIƒNƒŠƒA‚·‚é‚ׂµB6-02☆6.4DOUBLE3735952595854CATS_602.mcs
CAT'S EYE(Ventra Mix)MITHUTOSHI NAKATA‚±‚ꂼƒ†[ƒƒr[ƒgB6-03☆6.2SINGLE3614362515950CATS_603.mcs
CAT'S EYE(Ventra Mix)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-04☆4.3DOUBLE3243572255011CATS_604.mcs
CAT'S EYE(Ventra Mix)Toshihide Fujita—d‚µ‚­‚ËB6-05☆4.7DOUBLE2993572085320CATS_605.mcs
CAT'S EYE(Ventra Mix)TAKEO.UƒmƒŠƒmƒŠ‚Å‚o‚k‚`‚x‚¾‚ºB6-06☆5.5SINGLE3473962415633CATS_606.mcs
CAT'S EYE(Ventra Mix)N_Watanabe‚u‚‚ƒ‚‚Œ‚ɇ‚킹‚½ƒXƒeƒbƒvB7-01☆5.8SINGLE3784762635837CATS_701.mcs
CAT'S EYE(Ventra Mix)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆5.5SINGLE3493572435638CATS_801.mcs
CAT'S EYE(Ventra Mix)HAJIME.I‚Ú‚æ‚ñìFƒeƒNƒjƒJƒ‹‚É8-02☆5.3SINGLE3373962344931CATS_802.mcs
celebrateY.IMAI‰ñ‚ê‚Ü‚·B‚Ȃ߂炩‚ɂǂ¤‚¼2-01☆4.3SINGLE1892671432550CLBRT201.mcs
celebrateN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆4.9SINGLE2104341595318CELE_301.mcs
celebratetakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-01☆4.5SINGLE2693002044430CELE_401.mcs
celebrateMits-hide Obataƒrƒuƒ‰[ƒg‚ð‘«‚Å•\Œ»EEE5-01☆5.3DOUBLE3354342545127CELC1501.mcs
CELEBRATE NITEKoichi Nakayama‚c‚r‚s‚j‚c‚Å쬂µ‚½‚à‚Ì‚ðˆÚA3-01☆6.0SINGLE3554322785244CELEN301.mcs
CELEBRATE NITEA.NAOKI‚lD‹g“c@ìF‚Ђ˃‰[•KŒ©II3-02☆3.6DOUBLE316288247534CELEN302.mcs
CELEBRATE NITEY.KAZAMAKI”à•‚܂Á‚Ä—~‚µ‚¢‚Å‚·‚æƒlB3-03☆4.1SINGLE2803242193620CELEN303.mcs
CELEBRATE NITEY.ISHIDAŒ³‚Ì•ˆ–Ê‚æ‚è‚â‚â“‚­‚µ‚Ü‚µ‚½B3-04☆4.5SINGLE342504267564CELEN304.mcs
CELEBRATE NITETAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-05☆4.8SINGLE388504303556CELEN305.mcs
CELEBRATE NITEJUN.K‚Ƃт܂·4-01☆3.0DOUBLE217288169259CELEN401.mcs
CELEBRATE NITEHIDEAKI KANEDAƒXƒeƒbƒv”z’u‚ɂ͂ ‚é‹K‘¥‚ª4-02☆5.3SINGLE3113602435433CELEN402.mcs
CELEBRATE NITEDaisuke K.‚W•ª‚R˜A‚ÅŒy‚â‚©‚ÉB‚k‚–D‚W4-03☆4.8DOUBLE3013602353929CELEN403.mcs
CELEBRATE NITES.Okano’·‚¢ŠÔ••ˆó‚³‚ê‚Ä‚¢‚Ü‚µ‚½B4-04☆5.3SINGLE457576357653CELEN404.mcs
CELEBRATE NITEURABE HIROKI‚Ü‚ ‚Ü‚ ‚Å‚·B5-01☆4.7SINGLE3414322674812CNITE501.mcs
CELEBRATE NITEKatsuhiko Kinoshita‚±‚̋Ȃ炵‚¢H5-02☆4.3SINGLE2213601732334CNITE502.mcs
CELEBRATE NITET.Hirano‚¿‚å‚Á‚Æ‚¾‚¯ƒ_ƒCƒiƒ}ƒCƒg6-01☆5.2SINGLE3664322865220CNITE601.mcs
CELEBRATE NITEMITHUTOSHI NAKATA’†X“‚¢‚©‚àEEEB6-02☆5.4SINGLE2793242185149CNITE602.mcs
CELEBRATE NITE???_17”s–³íEEE6-03☆6.3SINGLE3553962785353CNITE603.mcs
CELEBRATE NITEM.HANABUSAjI6-04☆5.5SINGLE2963242314556CNITE604.mcs
CELEBRATE NITETAKEO.U¬—‚µ‚È‚¢‚悤‚É‚ËB6-05☆4.0SINGLE310360242447CNITE605.mcs
CELEBRATE NITETAKESHI MATSUMOTO‚‚©‚ê‚Ü‚·BBBBB7-01☆5.3SINGLE406504318688CELEN701.mcs
CELEBRATE NITEN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B7-02☆6.0SINGLE3945763086529CELEN702.mcs
CELEBRATE NITEN.NAGANO’µ‚ñ‚¾‚è‹ì‚¯‚½‚èŠy‚µ‚ñ‚ʼnº‚³‚¢B7-03☆4.2DOUBLE2972882323928CELEN703.mcs
CELEBRATE NITED KYUTOKU‚Ђ˂è‚È‚ñ‚Ä–³‚¢‚Å‚·7-04☆4.2SINGLE2473241934618CELEN704.mcs
CELEBRATE NITEY.TAKEUCHI‚c‚x‚m‚`‚l‚h‚s‚d@‚q‚`‚u‚d‚à‚Ç‚«8-01☆5.2SINGLE3325042604626CELEN801.mcs
CLUB TOROPICANATOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆2.9DOUBLE2051951511833CLUBT401.mcs
CLUB TOROPICANAA.NAOKI‚f‚‚”‚”‚‚ŽìF‚v‚`‚h‚g‚`5-01☆4.4DOUBLE2572601893742CLTRO501.mcs
CLUB TOROPICANATAKESHI MATSUMOTO‚Ü‚í‚ç‚È‚¢‚Ƃł«‚Ü‚¹‚ñ7-01☆3.3DOUBLE310292229442CLUBT701.mcs
CONGA FEELINGA.NAOKI‚f‚‚”‚”‚‚ŽìF‚j‚`‚j‚`‚n3-01☆4.4DOUBLE3133892264313CONG_301.mcs
CONGA FEELINGRYOSUKE TAKASHIMA‚í‚©‚è‚â‚·‚­‚È‚Á‚½‚ÆŽv‚¤B3-02☆7.0SINGLE4515193256458CONG_302.mcs
CONGA FEELINGN.KAZUMA‰ÌŽŒ‚É‚ ‚킹‚Ü‚µ‚½B—Ç‚¢‚Å‚·B3-03☆4.6SINGLE300389216648CONG_303.mcs
CONGA FEELINGJUN.K‚R4-01☆4.3SINGLE2404221733910CONGA401.mcs
CONGA FEELINGKei.UƒTƒr‚Ì‚P‚U•ª‚É’ˆÓ5-01☆5.2SINGLE3193892304830CONGA501.mcs
CONGA FEELINGABE TaTsuMau‚»‚ñ‚ȃRƒ“ƒK`‚ `‚ÅA‚¢‚¢‚âv5-02☆4.8SINGLE2763241995231CONGA502.mcs
CONGA FEELINGK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-03☆3.5DOUBLE362292261501CONGA503.mcs
CONGA FEELINGSatoru Hata•s‹C–¡‚ȃXƒeƒbƒv\¬B5-04☆5.8SINGLE3825192756828CONGA504.mcs
CONGA FEELING???_17ƒŠƒYƒ€dŽ‹I6-01☆5.9SINGLE3833892766238CONGA601.mcs
CONGA FEELINGTAKEO.Uƒtƒ‹ƒRƒ“ƒ{–ÚŽw‚¹I6-02☆6.6SINGLE3593892595466CONGA602.mcs
CONGA FEELINGH.KAWAKAMI‹È‚ɇ‚킹‚ÄB6-03☆5.9SINGLE3865192786135CONGA603.mcs
CONGA FEELINGW.ShiomiƒRƒ“ƒKƒŠƒYƒ€‚É•¹‚¹‚ÄH8-01☆5.1SINGLE3353892415720CONGA801.mcs
CONGA FEELINGW.ShiomiƒRƒ“ƒKƒŠƒYƒ€‚É•¹‚¹‚ÄH8-02☆4.7DOUBLE3523892545512CONGA802.mcs
CUTIE CHASERTakashi.KÅŒã‚̃Xƒeƒbƒv‚ªƒL‚܂邯‘u‰õ‚Å‚·1-01☆4.9SINGLE3242522435046CUTI_101.mcs
CUTIE CHASERYAMADA HIDETOSHI‚a‚`‚r‚h‚b‚©‚çì‚è‚Ü‚µ‚½1-02☆6.5SINGLE26825220139114CUTI_102.mcs
CUTIE CHASERSHOTA,SAITOH.ƒŠƒYƒ€‚ªŠy‚µ‚¢ƒXƒeƒbƒv‚Å‚·B1-03☆2.9SINGLE1992201493114CUTI_103.mcs
CUTIE CHASERYASUHIRO.OŠî–{“I‚ȃXƒeƒbƒv‚ð“ü‚ê‚Ü‚µ‚½1-04☆3.6SINGLE2372521773523CUTI_104.mcs
CUTIE CHASERTADASHI.UMISHIMA–Ê”’‚¢”z’u‚Å‚·1-05☆5.9SINGLE3105042325643CUTI_105.mcs
CUTIE CHASERYUKI Yokota‰½‚æ‚è‚à–îˆó‚É’Ç‚í‚ê‚Ä‚¢‚銴‚¶2-01☆3.7SINGLE2292521712830CUTIE201.mcs
CUTIE CHASERTOMOHIRO NAKAIƒ‰ƒXƒg‚Ì“¯Žž“¥‚ݘA‘łɒˆÓI3-01☆7.6SINGLE31537823654108CUTI_301.mcs
CUTIE CHASERK.GOTOU‚±‚̋Ȃ·‚«ƒ_ƒB5-01☆5.5SINGLE2903152175353CUITE501.mcs
CUTIE CHASERKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆5.4COUPLE153/1531891143197CUTI_601.mcs
CUTIE CHASER???_19ì‚Á‚½’†‚ł͂P”ÔŠÈ’P‚©‚ÈB6-02☆6.0SINGLE3183462385656CUTI_602.mcs
CUTIE CHASERYuki Ichikawa‚à‚͂⑫‚P‚P‚­‚ç‚¢‚Í‚ ‚è‚Ü‚·B6-03☆7.9SINGLE37337827959110CUTI_603.mcs
CUTIE CHASERKOHEI.TŒ‹\‚Þ‚¸‚©‚µ‚߂ł·B8-01☆4.9SINGLE3534722645612CUTI_801.mcs
DAM DARIRAMSOUSHIN.KƒTƒr‚̓IƒŒ“Iƒ_ƒŠƒ‰ƒ“1-01☆5.2SINGLE425533315629DAM__101.mcs
DAM DARIRAMYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-02☆5.6SINGLE3023552234948DAM__102.mcs
DAM DARIRAMT_YAMADA‘«Œ³ƒtƒ‰ƒtƒ‰‚Æ‚¢‚¤ˆÓ–¡‚̃^ƒCƒgƒ‹1-03☆4.9DOUBLE3053912266016DAM__103.mcs
DAM DARIRAMA.NAOKI‚f‚‚”‚”‚‚ŽìF‚k‚k@‚e‚h‚q‚d1-04☆3.1DOUBLE240284177289DAM__104.mcs
DAM DARIRAMK.HAYASEƒ}ƒjƒAƒbƒN‚É‚P‚U•ª‚ð‚l‚h‚wB1-05☆4.9SINGLE3623552686019DAM__105.mcs
DAM DARIRAMMasaki Hashimoto‰‹‰ŽÒŒü‚¯‚Å‚·2-01☆3.4SINGLE1532131133127DAM__201.mcs
DAM DARIRAMTAKENAKA TAKAHIRO‘O”¼‘–‚Á‚ÄAŒã”¼ƒXƒLƒbƒvB2-02☆4.4SINGLE305355226589DAM__202.mcs
DAM DARIRAMY.IMAI’n’c‘¾‚𓥂܂Ȃ¢‚悤‚ÉŒy‚â‚©‚É2-03☆3.9DOUBLE2162491602641DAM__203.mcs
DAM DARIRAMHAJIME.I‚Ú‚æ‚ñìF’†”Õ‚ª—’‚̂悤‚É2-04☆5.7SINGLE3354272486731DAM__204.mcs
DAM DARIRAMK.SUGAI‚r‚g‚o‚c‚`‚l‚O‚P^‚U2-05☆4.5SINGLE2552491893649DAM__205.mcs
DAM DARIRAMM.IWAKURA‰Ìº‚ɇ‚킹‚ÄB“ï“x‚W’ö“xB2-06☆5.1SINGLE3193912365721DAM__206.mcs
DAM DARIRAMKOSE FƒWƒSƒN‚̂͂¶‚߂Ƃ¨‚í‚è2-07☆4.7DOUBLE3133552325816DAM__207.mcs
DAM DARIRAMJUN O.u‚c‚u‚k|‚l‚t‚k‚dv‘«‚X3-01☆6.7SINGLE3483912586265DAMD_301.mcs
DAM DARIRAMJUN O.u‚k‚s‚k|‚l‚t‚k‚dv‘«‚U3-02☆5.1SINGLE2352491745949DAMD_302.mcs
DAM DARIRAMYASUHIRO.Oƒ}ƒj‚Ì•ˆ–Ê‚ð‘å••ÏX3-03☆5.0SINGLE3043552255329DAMD_303.mcs
DAM DARIRAMM.Yamamotoº‚̃GƒR[•”•ª‚ªƒ|ƒCƒ“ƒg3-04☆4.9SINGLE3133912325914DAMD_304.mcs
DAM DARIRAMKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-05☆3.1SINGLE1982491461238DAMD_305.mcs
DAM DARIRAMJUN.KãB4-01☆3.9DOUBLE2442841804019DAM__401.mcs
DAM DARIRAMN.MIMURAŒy‰õ‚ȃXƒeƒbƒv‚ŃN[ƒ‹‚ɃLƒ‚悤4-02☆3.9SINGLE2922842164318DAM__402.mcs
DAM DARIRAMDaisuke K.ŒöŽ®‚l‚r‚o•ÏŒ`B‚k‚–D‚V4-03☆4.8DOUBLE2723202016523DAM__403.mcs
DAM DARIRAMTAISHI K.‚P‚U•ª‚ͺ‚»‚̂܂܂ł·4-04☆6.1SINGLE3613912675747DAM__404.mcs
DAM DARIRAM???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆4.2SINGLE2393201773921DAM__501.mcs
DAM DARIRAMY.TSUDAʼn‚ÆÅŒã‚͉¹‚ɳ‚µ‚­‚»‚낦‚½‚æ5-02☆5.1SINGLE3103912296418DAM__502.mcs
DAM DARIRAMSatoru HataŽ„‚Ì‚d‚c‚h‚s•s‹€‚Ì–¼ì5-03☆8.3SINGLE44846233260105DAM__503.mcs
DAM DARIRAMM.Ooebesuƒ}ƒjƒAƒbƒN{BƒŒƒxƒ‹‚W6-01☆4.0DOUBLE288355213428DAM__601.mcs
DAM DARIRAMMITHUTOSHI NAKATA‚±‚Á‚¿‚Ì•û‚ªƒCƒC‚æ‚ËH6-02☆5.5SINGLE3493912585929DAM__602.mcs
DAM DARIRAMTAIGA.OƒVƒƒƒbƒtƒ‹‚̃_ƒ“Eƒ_ƒŠƒ‰ƒ“7-01☆4.9SINGLE3083552285722DAM__701.mcs
DAM DARIRAMDAISUKE KAMISAKA‘«‚RIƒJƒ“ƒ^ƒ“‚Å‚·B7-02☆1.9SINGLE160142118040DAM__702.mcs
DAM DARIRAMSATOSHI HORIUCHIƒ\ƒEƒIƒ“‚ɂ͋C‚ð•t‚¯‚Ä‚­‚¾‚³‚¢7-03☆5.4SINGLE4324983206113DAM__703.mcs
DAM DARIRAMKAZUTAKA SUEDA‘ê‚̂悤‚É‚â‚Á‚Ä—ˆ‚Ü‚·B7-04☆6.1SINGLE5205693856811DAM__704.mcs
DAM DARIRAMO.TAKEUCHI‚s‚g‚d@‚d‚m‚cA‚»‚ꂪ‰ä‚ª–¼B7-05☆7.3SINGLE3784272806480DAM__705.mcs
DAM DARIRAMKOHEI.TƒŠƒYƒ€Š´‚ª‘厖‚Å‚·B8-01☆5.4SINGLE3693912739111DAM__801.mcs
DAM DARIRAMTHE PLAYSTATION2ŠÈ’P‚È‚s‚q‚h‚b‚j‚Á‚ÄŠ´‚¶‚ÅB8-02☆1.7SINGLE173177128628DAM__802.mcs
DAM DARIRAM(KCP MIX)YASUHIRO.O“¯Žž“¥‚݂̕”•ª‚É’ˆÓ1-01☆5.7SINGLE3823392664952DAMK_101.mcs
DAM DARIRAM(KCP MIX)A.NAOKI‚lD‹g“c@ìF‚c‚q‚`‚y‚n‚m|‚a1-02☆5.9DOUBLE3503392433870DAMK_102.mcs
DAM DARIRAM(KCP MIX)HAJIME.I‚Ú‚æ‚ñìF— ”‚Æ‚P‚U•ª˜A‘Å2-01☆4.5SINGLE332509231537DAMK_201.mcs
DAM DARIRAM(KCP MIX)KEISUKE.S‚±‚ê‚à‚P‚U•ª’ˆÓI2-02☆6.0SINGLE3704672575247DAMK_202.mcs
DAM DARIRAM(KCP MIX)JUN O.u‚c|‚l‚t‚k‚d|‚qv‘«‚P‚O3-01☆6.6SINGLE4734243295947DAMDK301.mcs
DAM DARIRAM(KCP MIX)WATANABE JUN‰¹‚Ƈ‚Á‚ĂȂ¢EEE3-02☆5.8SINGLE4074242835238DAMDK302.mcs
DAM DARIRAM(KCP MIX)???_05‚ ‚̃Xƒeƒbƒv‚ðŽv‚¢o‚¹I3-03☆5.9SINGLE3864672685442DAMDK303.mcs
DAM DARIRAM(KCP MIX)???_07ƒ_ƒŠƒŠƒŠƒŠƒBc4-01☆6.1SINGLE3653392545164DAMK_401.mcs
DAM DARIRAM(KCP MIX)YOSHIKI MURATAƒmƒH@ƒRƒƒ“ƒg4-02☆5.1SINGLE2883392004539DAMK_402.mcs
DAM DARIRAM(KCP MIX)S.SATAKE‚P‚U•ª˜A‘Å‚ª‚â‚肽‚©‚Á‚½‚Ì‚Å6-01☆6.4SINGLE3155092195461DAMK_601.mcs
DAM DARIRAM(KCP MIX)SHIGERU ARAI— ‘Å‚¿‹êŽè‚Èl—p‚̃gƒŠƒbƒNB6-02☆4.8SINGLE2853391983042DAMK_602.mcs
DAM DARIRAM(KCP MIX)K.KinugawaƒLƒŒƒC‚ÈŠK’iiо6-03☆4.4DOUBLE380509264504DAMK_603.mcs
DAM DARIRAM(KCP MIX)NIGHTMARE‚b‚`‚mf‚s@‚r‚s‚n‚o‚à‚Ç‚«7-01☆5.0SINGLE4303822994817DAMK_701.mcs
DAM DARIRAM(KCP MIX)KAZUTAKA SUEDAŠî–{‚Í‚W•ªB7-02☆7.6COUPLE328/48033922846172DAMK_702.mcs
DAM DARIRAM(KCP MIX)Y.SAWADA‚l‚`‚m‚h‚`‚b‚Ì‚`‚m‚n‚s‚g‚d‚qH8-01☆5.0DOUBLE4084242845116DAMK_801.mcs
DAM DARIRAM(KCP MIX)???_22ƒ‰ƒ“ô‚ª‚P‚U•ªB„’è‚k‚u‚Wª8-02☆4.6SINGLE409424284544DAMK_802.mcs
DANCING ALL ALONES.NIHEI‚a‚`‚r‚h‚b‚¾‚¯‚ł͊ȒP‚¾‚Á‚½‚©‚ç1-01☆3.8SINGLE2162801934018DANC_101.mcs
DANCING ALL ALONEmurai mitsuru‚k‚–’á‚ß‚Ìì•i1-02☆3.8SINGLE258315231515DANC_102.mcs
DANCING ALL ALONEA.NAOKI‚lD‹g“c@ìF‚o‚h‚b‚n1-03☆3.8SINGLE2422802174018DANC_103.mcs
DANCING ALL ALONEH.BANDO‘½‚­‚Ìl‚Ɉ¤‚³‚ꂽ‚¢B2-01☆4.7SINGLE2202801974937DANCE201.mcs
DANCING ALL ALONEN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-01☆4.8SINGLE2425602175215DANC_301.mcs
DANCING ALL ALONEYASUHIRO.Oƒ}ƒjƒAƒbƒN‚̕ʃo[ƒWƒ‡ƒ“3-02☆4.1SINGLE2292802054820DANC_302.mcs
DANCING ALL ALONEK.WAKAKI‚r‚l‚h‚k‚dƒX[ƒp[3-03☆1.6SINGLE125140112032DANC_303.mcs
DANCING ALL ALONEJUN.K“ïˆÕ“x’†‚­‚ç‚¢B4-01☆3.5DOUBLE2012801803912DANC_401.mcs
DANCING ALL ALONET.NAGSAKiƒXƒLƒbƒv‘½—p‚̃}ƒjƒAƒbƒN•ˆ–ÊB4-02☆3.6SINGLE2652802374211DANC_402.mcs
DANCING ALL ALONEK.KomenoiƒA[ƒP[ƒh‚Å‚à‚Ç‚¤‚¼4-03☆3.9SINGLE2142801924716DANC_403.mcs
DANCING ALL ALONEDaisuke K.‰¹’Ê‚è‚É‘½Ê‚È“n‚èB‚k‚–D‚W4-04☆3.4DOUBLE211280189456DANC_404.mcs
DANCING ALL ALONEHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆3.5SINGLE201280180524DANC_405.mcs
DANCING ALL ALONEHAJIME M.“¯‚¶ƒtƒŒ[ƒY‚ª‘±‚«‚Ü‚·5-01☆3.5SINGLE195280175554DANC_501.mcs
DANCING ALL ALONEY.TSUDA”äŠr“I‚â‚è‚â‚·‚¢B5-02☆3.5SINGLE262280235525DANC_502.mcs
DANCING ALL ALONEOKAMOTO Taishi–{‰Æ‚l‚`‚m‚h‚`‚b‚æ‚è‚©‚È‚èŠÈ’PB5-03☆4.4SINGLE2312802075228DANC_503.mcs
DANCING ALL ALONEKEITA.I‚s‚q‚h‚b‚jƒ‚[ƒh‚ÉÅ“KBÌ—p‚µ‚ÄI5-04☆3.9COUPLE228/2282802104616DANC_504.mcs
DANCING ALL ALONE???_13“r’†‚̃gƒ‰ƒbƒv‚É’ˆÓII5-05☆3.8SINGLE239315214527DANC_505.mcs
DANCING ALL ALONEYOSHiHiKO KAJiYAƒ_ƒ“ƒXƒ}ƒjƒA‹ÈÅŒã‚Ì‚Uƒpƒlƒ‹6-01☆3.2SOLO235280210413DANC_601.mcs
DANCING ALL ALONEIchinose ShintaŌオ‚Þ‚¸‚©‚µ‚¢‚©‚à6-02☆4.7SINGLE2193151964335DANC_602.mcs
DANCING ALL ALONE???_16‰ïS‚Ìo—ˆ6-03☆4.0SOLO2332802095018DANC_603.mcs
DANCING ALL ALONEKENJI ENDA“¯Žž“¥‚݂ɒˆÓI6-04☆6.3SINGLE2243152015081DANC_604.mcs
DANCING ALL ALONEMichitaka Kimura‚P‚U•ª˜A‘Å‚ª‘½‚¢‚Å‚·B6-05☆7.3SINGLE3165602836180DANC_605.mcs
DANCING ALL ALONE???_18ƒeƒLƒg[‚Éì‚Á‚½B6-06☆3.6SINGLE190280170508DANC_606.mcs
DANCING ALL ALONENOBUTAKA TSUTSUMI‚¯‚Á‚±‚¤‚ӂ‚¤6-07☆3.2SINGLE234280210442DANC_607.mcs
DANCING ALL ALONEYasunobu OkudaÅŒã‚܂ŋC‚𔲂©‚È‚¢‚ÅB7-01☆5.8SINGLE2563502295056DANC_701.mcs
DANCING ALL ALONEKotaro KagawaŒy‚ßB‚ÆŽv‚¤B7-02☆3.6SINGLE2042801834511DANC_702.mcs
DANCING ALL ALONEKAJIYA TAKANORI‚l‚`‚m‚h‚`‚b‚Ö‚Ì‚r‚”‚…‚‚t‚‚ÉB7-03☆5.0SINGLE1972801764848DANC_703.mcs
DANCING ALL ALONEYohei Maruyamaƒeƒ“ƒ|‚͓ǂ߂邩‚àH8-01☆3.6SINGLE266315238522DANC_801.mcs
DEAD ENDTOMOKAZU-M•Ï‘¥VŽí‚UƒpƒlH1-01☆5.8DOUBLE4524273024537DEAD_101.mcs
DEAD ENDT.MURATA‘Ì—ÍŸ•‰‚Å‚·B1-02☆6.0SINGLE4734743164939DEAD_102.mcs
DEAD ENDYAMADA HIDETOSHI‘Šú”­Œ©‚Ƒ̗͂ªƒJƒM1-03☆5.7SINGLE4423792954539DEAD_103.mcs
DEAD ENDY_TATEƒZƒbƒg“PŽû‚ðƒCƒ[ƒW‚µ‚Ü‚µ‚½B1-04☆5.7SINGLE4005222675833DEAD_104.mcs
DEAD ENDmurai mitsuru‰ñ‚ê‚éꊂª‘½‚­AŠy‚µ‚¢‹ÈB1-05☆6.4SINGLE3843792565462DEAD_105.mcs
DEAD ENDKazuki.Koushi‚l‚n‚q‚`‚m‚i‚d‚m‚d‚q‚`‚s‚h‚n‚mI1-06☆4.9SINGLE3353792245322DEAD_106.mcs
DEAD ENDSINOMIYA.Y‚‚©‚ê‚Ü‚·‚æ1-07☆5.8SINGLE5134743435025DEAD_107.mcs
DEAD ENDSHIBATA JUNICHI‘å•Ï‚«‚‚¢‚Å‚·‚ª—x‚ê‚Ü‚·B1-08☆6.3SINGLE5415223615330DEAD_108.mcs
DEAD ENDA.NAOKI‚lD‹g“c@ìF‚c‚q‚d‚`‚c@‚d‚m‚c1-09☆5.4DOUBLE2723791811969DEAD_109.mcs
DEAD ENDK.HAYASE’†‹‰ŽÒŒü‚¯‚̃XƒeƒbƒvB1-10☆3.5SINGLE2942841962128DEAD_110.mcs
DEAD ENDT.Hiranoâ–]‚ðæ‚è‰z‚¦‚ëI2-01☆6.3SINGLE5075693394940DEAD_201.mcs
DEAD ENDT.TAMAIƒŠƒYƒ€‚Éæ‚ê‚é“‚³B2-02☆3.9SINGLE3503322344111DEAD_202.mcs
DEAD ENDTAKENAKA TAKAHIROŒÀŠE‚Ö‚Ì’§íB‘Ï‚¦‚ê‚é‚©‚ÈH2-03☆6.9SINGLE4847593234865DEAD_203.mcs
DEAD END???_02”æ‚ê‚Ü‚·‚R2-04☆5.6SINGLE4104272744437DEAD_204.mcs
DEAD ENDK.SUGAI‚r‚g‚o‚c‚d‚c‚O‚Q^‚X2-05☆7.3SINGLE31633221141121DEAD_205.mcs
DEAD ENDK.SUGAI‚r‚g‚o‚c‚d‚c‚O‚P^‚X2-06☆8.0SINGLE38237925546126DEAD_206.mcs
DEAD ENDKOUICHI TAKEUCHI‚P‚U•ª“¥‚߂邩‚ÈH3-01☆5.6SINGLE4934743295024DEAD_301.mcs
DEAD ENDSATOSHI ARIGA‚r‚s‚rI‘æŽl’eBuƒAƒ“ƒtƒBƒjv3-02☆7.3SINGLE4615693084984DEAD_302.mcs
DEAD ENDSATOSHI ARIGA‚r‚s‚rI‘攪’eBuƒAƒ“ƒtƒBƒjv‚Q3-03☆7.1SINGLE4587593064876DEAD_303.mcs
DEAD ENDTOMOHIRO NAKAI‚l‚`‚m‚h‚`‚b•ˆ–Ê‚ÌÅIi‰»Œ`B3-04☆8.4SINGLE53556935755102DEAD_304.mcs
DEAD END???_04‚k‚–‚P‚QD^‚l‚`‚q‚j3-05☆6.6SINGLE4544743035655DEAD_305.mcs
DEAD ENDN.KAZUMA˜A‘Å‚ðŠæ’£‚Á‚Ä‚â‚Á‚Ä‚­‚¾‚³‚¢B3-06☆6.5SINGLE5477593655336DEAD_306.mcs
DEAD ENDN.KAZUMA‹­‰»ƒo[ƒWƒ‡ƒ“‚Å‚·B3-07☆6.6SINGLE5707593815434DEAD_307.mcs
DEAD END???_05ˆê“¥“ü°I3-08☆5.2SINGLE4717593155015DEAD_308.mcs
DEAD ENDYosuke Morita‘S‚Ä‚ÉI‚í‚è‚ð‚°‚éƒTƒCƒŒƒ“3-09☆7.1SINGLE4804743214872DEAD_309.mcs
DEAD ENDNAOyuki-Tachihara‘‚r‚s‚d‚o”‚T‚V‚RB‘̗͂̌ÀŠE‚Ö3-10☆5.1SINGLE573379383501DEAD_310.mcs
DEAD ENDNAOyuki-Tachiharaƒ_ƒuƒ‹‚T‚V‚RD–ÚŽw‚¹ƒtƒ‹ƒRƒ“ƒ{I3-11☆5.0DOUBLE573379383490DEAD_311.mcs
DEAD ENDT.TSUKAMOTOV‚µ‚¢I‚í‚è‚ð‚¨ŽŽ‚µ‰º‚³‚¢B4-01☆5.3SINGLE4173792785426DEAD_401.mcs
DEAD ENDY.KAWABE‚Ç‚ñ‚Ç‚ñ“‚­‚È‚Á‚Ä‚¢‚­4-02☆6.3SINGLE5505223676124DEAD_402.mcs
DEAD ENDHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-03☆4.8SINGLE4503793014415DEAD_403.mcs
DEAD END???_09™~‚T4-04☆8.6SINGLE47775931949216DEAD_404.mcs
DEAD ENDRYU.OŽ©•ª‚Åì‚Á‚Æ‚¢‚Ăł«‚Ü‚¹‚ñI5-01☆5.4SINGLE5047593375215DEAD_501.mcs
DEAD ENDNatsumi.Kobayashi‚È‚¾‚ê‚É’ˆÓ5-02☆5.9SINGLE5305693545423DEAD_502.mcs
DEAD ENDAKIRA.M‚P‹È‚µ‚©ì‚ê‚Ü‚¹‚ñ‚Å‚µ‚½5-03☆5.8COUPLE411/4113792744546DEAD_503.mcs
DEAD ENDT.MAMIYAŽ©•ª‚È‚è‚̉ðŽß‚Å“Z‚߂Ă݂܂µ‚½B5-04☆3.9SINGLE2782371852544DEAD_504.mcs
DEAD END???_11‚±‚ñ‚ȃXƒeƒbƒv‚̃nƒY‚Å‚µ‚åHI5-05☆6.9SINGLE4434742964872DEAD_505.mcs
DEAD END???_12Šo‚¦‚ê‚΃Jƒ“ƒ^ƒ“B–â‘è‚ÍA‘Ì—ÍB5-06☆5.1SINGLE573379383491DEAD_506.mcs
DEAD ENDSatoru HatajI‚U‚O‚O‚b‚n‚l‚a‚n“Ë”jI5-07☆7.8SINGLE6146644105558DEAD_507.mcs
DEAD ENDYASUSHI.FD•]‚Å‚µ‚½ƒRƒŒI6-01☆5.8SINGLE4624273095231DEAD_601.mcs
DEAD ENDM.OoebesuƒXƒLƒbƒv‚Å‚«‚ê‚ÎEEE6-02☆5.1SINGLE4033792694328DEAD_602.mcs
DEAD ENDS.SATAKE“‚·‚¬‚Ä‚iQQj‚6-03☆8.8SINGLE7307594886342DEAD_603.mcs
DEAD ENDS.SATAKE‚Ü‚¾‚Ü‚µ‚©‚ÆiÎj6-04☆6.4SINGLE6157594115417DEAD_604.mcs
DEAD ENDYOSHiHiKO KAJiYAÅ‹­–ÚŽw‚µ‚½‚c‚d‚`‚c@‚d‚m‚c6-05☆6.5SINGLE4545693035453DEAD_605.mcs
DEAD ENDT.FUJIWARA‚c‚c‚q‚Å’Z‹——£‘–iÎj6-06☆4.8SINGLE515379344475DEAD_606.mcs
DEAD ENDT.FUJIWARA‘̗͂Ƒ«ƒŒƒxƒ‹‚ÌŸ•‰II6-07☆4.9DOUBLE497379332508DEAD_607.mcs
DEAD ENDT.NAOYA‚v‚`‚q‚m‚h‚m‚f6-08☆5.5SINGLE4453792974633DEAD_608.mcs
DEAD END???_19ƒfƒbƒhƒGƒ“ƒhB6-09☆8.3SINGLE5397593605498DEAD_609.mcs
DEAD ENDKAZUYUKI K.‚‘¬ƒXƒLƒbƒv‚Æ‚W•ª˜A‘Å‚ªƒƒCƒ“7-01☆5.9SINGLE4763793184739DEAD_701.mcs
DEAD ENDT.Hanada‚³‚ AŽ€‚ñ‚ł݂悤iÎj7-02☆7.2SINGLE5307593545958DEAD_702.mcs
DEAD ENDKAZUHITO TSUBOTAƒfƒbƒh‚Ì•ˆ–Ê‚ÌV‚½‚È‚é‰Â”\«H7-03☆6.3SINGLE3613792414768DEAD_703.mcs
DEAD ENDRYO SAKAI‚ ‚¹‚é‚ÈB7-04☆4.8SINGLE480379321489DEAD_704.mcs
DEAD ENDFumihiro IbukiƒEƒ‰”‚ª‘½‚¢‚Å‚·B7-05☆4.2SINGLE349379233602DEAD_705.mcs
DEAD ENDY.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-06☆6.5SINGLE4114742745756DEAD_706.mcs
DEAD ENDTATSURO SAKAGUCHIŽ„‚È‚è‚Ì‚s‚q‚h‚b‚j@‘«‚w‚XH7-07☆5.0SINGLE4466642985013DEAD_707.mcs
DEAD ENDTATSURO SAKAGUCHIŽ„‚È‚è‚Ì‚l‚`‚m‚h‚`‚b@‘«‚w‚P‚TH7-08☆6.0SINGLE5617593755717DEAD_708.mcs
DEAD ENDTATSURO SAKAGUCHIŽ„‚È‚è‚Ì‚a‚`‚r‚h‚b@‘«‚w‚SH7-09☆5.7SINGLE2413791614053DEAD_709.mcs
DEAD ENDSATOSHI M.”½•œ‰¡’µB‹xŒe—L‚è‚Ü‚·B7-10☆4.7DOUBLE2341891610234DEAD_710.mcs
DEAD ENDYUJI.Oƒqƒlƒb‚½ƒXƒeƒbƒv‚ÅU‚߂Ȃµ‚½7-11☆5.5SINGLE3723792484044DEAD_711.mcs
DEAD ENDF.ATHUSHI‚ ‚éˆÓ–¡‰ó‚êŒnB‚Ђ½‚·‚ç‘–‚êI7-12☆5.3SINGLE4833793234723DEAD_712.mcs
DEAD ENDK.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.4SINGLE4733793164627DEAD_801.mcs
DEAD ENDT.OGINO‹gŽR^Ž¡ìA‚ª‚ñ‚΂Á‚ăNƒŠƒAI8-02☆5.9SINGLE4706173144936DEAD_802.mcs
DEAD ENDTOSHIMITU.KURITA’´ã‹‰ŽÒŒü‚¯8-03☆5.0SINGLE4423792954619DEAD_803.mcs
DEAD ENDKOHEI.T‚â‚âƒgƒŠƒbƒL[‚ÈŽdオ‚èB8-04☆4.7SINGLE433474289556DEAD_804.mcs
DEAD ENDShimamoto Yuuki–{“–‚Í‚k‚uD‚X‚Å‚·B8-05☆6.0SINGLE5034743364834DEAD_805.mcs
Deep clear eyesKei.Uƒ^ƒCƒ~ƒ“ƒO‚͂Ƃè‚â‚·‚¢‚Å‚·B5-01☆5.1SINGLE2763092325938DCEC1501.mcs
Deep clear eyesKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆4.6COUPLE126/1262321083458DCEC1601.mcs
DEEP IN YOUKEISUKE.M—Bˆê‚̃Nƒ‰ƒuƒGƒfƒBƒbƒgB1-01☆4.6SINGLE2212521934443DEEP_101.mcs
DEEP IN YOUN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆5.1SINGLE2675042336714DEEP_301.mcs
DEEP IN YOUYuto Jijiwa‚P‚U•ª‚ª‚‚ç‚߂ł·5-01☆4.9SINGLE276504241679DIYC2501.mcs
DEEP IN YOUKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆7.3COUPLE217/21731518951116DIYC2601.mcs
DIVEK.TAKEMURAº‚ɇ‚킹‚Ă݂܂µ‚½B2-01☆5.7SINGLE3583872435937DIVE_201.mcs
DIVE???_03‰¹Šy‚É‚ ‚킹‚½ƒXƒeƒbƒv3-01☆5.3SINGLE3354652275427DIVE_301.mcs
DIVEA.NAOKI‚lD‹g“c@ìFƒ_ƒCƒu‚ł҂傢`‚ñ3-02☆5.5DOUBLE3003102033172DIVE_302.mcs
DIVEYASUHIRO.OŠy‚µ‚­—x‚ê‚邿‚¤‚ɉü—Ç3-03☆4.6SINGLE2853101933540DIVE_303.mcs
DIVE???_04‚k‚–‚P‚QD^‚l‚`‚q‚j3-04☆5.1SINGLE3605032445718DIVE_304.mcs
DIVE???_05ƒXƒeƒbƒv‚Í”š”­‚¾[II3-05☆5.7SINGLE4495423055627DIVE_305.mcs
DIVEYosuke Moritaˆ¤‚µ‚Ì‚ ‚Ìl‚Ö•ù‚°‚é3-06☆5.8SOLO3665422445442DIVE_306.mcs
DIVET.HIRASAWA‚±‚ñ‚ȂƂ±‚ë‚©‚ÈH4-01☆4.2SINGLE2873101953131DIVE_401.mcs
DIVEKAZUYUKI.S‚¨‹C‚É“ü‚è‚̃XƒeƒbƒvŠy‚µ‚¢‚Å‚·4-02☆5.2SINGLE4043102744543DIVE_402.mcs
DIVE???_07“Ë‘RŽn‚܂邿`i‚—4-03☆6.2SINGLE3904652654655DIVE_403.mcs
DIVEMURAI MITSURU‚k‚–D’á‚߂ł·B5-01☆4.3SINGLE326387221517DIVE_501.mcs
DIVEMURAI MITSURU“‚­‚Å‚«‚é‚©‚¬‚èA“‚­‚µ‚½B5-02☆5.6SINGLE537581365628DIVE_502.mcs
DIVEMURAI MITSURUƒ_ƒCƒu‚Ì‚Uƒpƒlƒ‹B‚k‚–D•’ÊB5-03☆4.5SOLO377465251545DIVE_503.mcs
DIVEMURAI MITSURU¶‰E‚ɂӂç‚ê‚Ü‚·B5-04☆4.6DOUBLE384465261566DIVE_504.mcs
DIVEURABE HIROKIƒŒƒxƒ‹‚U`‚V‚®‚ç‚¢B5-05☆5.0SINGLE3194262165419DIVE_505.mcs
DIVET.MAMIYAd—v‚Ȃ̂͑Sg‚Ì“®‚«B”M‚­•‘‚¦I5-06☆2.5SINGLE1612321091814DIVE_506.mcs
DIVEKATSUHIKO KOBAYASHI‹°•|‚̒Ôg‚ðæ‚è‰z‚¦‚ë5-07☆6.2SINGLE3523482395464DIVE_507.mcs
DIVETomoyuki Takahashi‚c‚h‚u‚d‚Æ‚¢‚¤‚æ‚è‚i‚t‚l‚oH5-08☆4.5DOUBLE2281551550228DIVE_508.mcs
DIVE???_13‚¢‚«‚È‚èƒXƒ^[ƒg‚µ‚Ü‚·5-09☆5.4SINGLE4305032925523DIVE_509.mcs
DIVEKazuhiko Chibaƒ}ƒjƒA‚ɂ͖ž‘«‚µ‚Ä‚à‚炦‚é‚©‚ÆB5-10☆5.5SINGLE3775032565034DIVE_510.mcs
DIVEKatsuhiko KinoshitaƒCƒ[ƒW‚Ç‚¨‚è5-11☆4.7SINGLE2943101993046DIVE_511.mcs
DIVET.Hirano‚Q‚Q¬ß–Ú‚©‚ç‚̶‰E‚̘A‘Å‚ªƒ~ƒ\6-01☆6.2SINGLE4004652715150DIVE_601.mcs
DIVEYOSHiHiKO KAJiYAŠÔ‘t‚ªŸ•‰‚Ç‚±‚ë‚Å‚·6-02☆7.4SINGLE3585422435692DIVE_602.mcs
DIVEMITHUTOSHI NAKATA’†‹‰ŽÒŒü‚¯B6-03☆5.7SINGLE2944261995441DIVE_603.mcs
DIVENAOTO M.Ž©Mì‚Å‚·II6-04☆5.6SINGLE3744652545333DIVE_604.mcs
DIVEToshihide Fujita‚â‚Á‚σRƒŒ‚ªˆê”Ô‚Å‚µ‚åI6-05☆4.2DOUBLE2953482005110DIVE_605.mcs
DIVETAKEO.U‚k‚d‚sf‚r@‚f‚nI6-06☆5.5SINGLE3083482095046DIVE_606.mcs
DIVEYASUNORI.U‹C•ª‚Í‚c‚h‚u‚d‚Å‚·B6-07☆5.1SINGLE3503482375032DIVE_607.mcs
DIVEYASUNORI.UŠC‚Ö‚c‚h‚u‚dII6-08☆4.7SINGLE2723101845130DIVE_608.mcs
DIVEH.MATSUDAŒ‹\ƒLƒr‚µ‚¢B6-09☆5.8SINGLE4255032885334DIVE_609.mcs
DIVETAKESHI MATSUMOTO‚¸‚ê‚͉ƒë—p‚É‚ ‚킹‚Ä‚ ‚è‚Ü‚·7-01☆5.6SINGLE3815032595235DIVE_701.mcs
DIVERYO SAKAI‚c‚h‚u‚d‚ɂӂ³‚킵‚¢ƒ_ƒ“ƒX‚¾‚ºB7-02☆6.3SINGLE3826202595456DIVE_702.mcs
DIVENIGHTMARE‰¹Šy‚É‚ ‚킹‚½‚‚à‚è‚Å‚·7-03☆6.2SINGLE4065422766045DIVE_703.mcs
DIVESATOSHI HORIUCHI‚Ù‚Ç‚æ‚¢Š´‚¶‚ÉEEE7-04☆4.8SINGLE3303102244637DIVE_704.mcs
DIVETOMOFUMI YOSHIDAƒoƒŠƒG[ƒVƒ‡ƒ“‚ª–L‚©‚Å‚·B7-05☆6.7COUPLE410/4105812785664DIVE_705.mcs
DIVEF.ATHUSHIƒoƒ‰ƒ“ƒX‚ª‚Æ‚ê‚½Ž©Mì‚Å‚·B7-06☆5.6SINGLE3643872474840DIVE_706.mcs
DIVEW.Shiomiƒ{[ƒJƒ‹‚É•¹‚¹‚Ä‚¢‚Ü‚·8-01☆5.8SINGLE3584262435243DIVE_801.mcs
DIVEW.Shiomiƒ{[ƒJƒ‹‚É•¹‚¹‚Ä‚¢‚Ü‚·8-02☆5.8DOUBLE3564262425243DIVE_802.mcs
DIVEHAJIME.I‚Ú‚æ‚ñìF‹È‚Éæ‚Á‚Ä8-03☆5.0SINGLE3293872234329DIVE_803.mcs
DIVEKeisuke Omori‚a‚…@‚†‚‚’@‚™‚‚•Å‚I8-04☆6.7SINGLE2893481965881DIVE_804.mcs
DIVE???_22ƒ_ƒuƒ‹‚ÌƒŠƒYƒ€‚Å‚·B„’è‚k‚u‚W8-05☆5.1SINGLE3353872273934DIVE_805.mcs
DIVEK.MASIMAI”Õ‚Ì‚W•ª˜A‚ª“‚¢B8-06☆5.9SINGLE2953482004861DIVE_806.mcs
DIVES.FUKUDA‚P‚U•ª‚̘A‘±ƒXƒeƒbƒv‚ª‚g‚`‚q‚c8-07☆6.0SINGLE3165032145945DIVE_807.mcs
DIVEH.MURATAƒm[ƒRƒƒ“ƒgEEE8-08☆6.0SINGLE2913871973763DIVE_808.mcs
DIVE(more deep & deeper style)NAOKI‚l‚t‚r‚h‚b@‚h‚r@‚l‚x@‚k‚h‚e‚d8-01☆5.8SINGLE3163872144652DIVEM801.mcs
DIVE(more deep & deeper style)NORIA‰‚߂Ăd‚c‚h‚sì‚Á‚½‚æB‚æ‚낵‚­8-02☆4.3SINGLE3043102065716DIVEM802.mcs
DIVE(more deep & deeper style)RIYU‘å•ςłµ‚½B‚Å‚àŠæ’£‚è‚Ü‚µ‚½‚ÁI8-03☆3.3SINGLE2623101782018DIVEM803.mcs
diving moneySoichI InabA‚±‚Ì‘I‹È‚Í‚¢‚¢‚Å‚·‚æ5-01☆5.3SINGLE2352992002969DV$C1501.mcs
DO IT ALL NIGHTYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-01☆4.8SINGLE3053212375228DOIT_101.mcs
DO IT ALL NIGHTT_YAMADAŌオƒLƒr‚µ`‚¡II1-02☆5.4DOUBLE3194282475726DOIT_102.mcs
DO IT ALL NIGHTT.Ochiai‚d|‚q‚n‚s‚h‚b‚̓CƒCƒl`2-01☆3.6SINGLE296285235429DOIT_201.mcs
DO IT ALL NIGHTK.SUGAI‚r‚g‚o‚c‚n‚h‚O‚P^‚W2-02☆3.8SINGLE2732852123520DOIT_202.mcs
DO IT ALL NIGHTH.BANDO‚rVƒ}ƒjo‚é‘O‚©‚çì‚Á‚Ä‚½‚æB2-03☆4.7SINGLE369464286575DOIT_203.mcs
DO IT ALL NIGHTKOUICHI TAKEUCHI‚¿‚å‚Á‚ÆŽ©MìB‚¨‹C‚É“ü‚èB3-01☆5.3SINGLE2933212275345DOIT_301.mcs
DO IT ALL NIGHTSATOSHI ARIGA‚r‚s‚rI‘æŒÜ’eB’†”Õ‚Åâ’¸3-02☆5.5SINGLE3624282815824DOIT_302.mcs
DO IT ALL NIGHTTOMOHIRO NAKAIƒTƒr‚̘A‘ł͂·‚ׂČðŒÝ‚É“¥‚߂邼I3-03☆4.8SINGLE400428310613DOIT_303.mcs
DO IT ALL NIGHTY.ISHIDA‘«•ˆ‚É“Á‚É[‚¢ˆÓ–¡‚Í‚ ‚è‚Ü‚¹‚ñB3-04☆5.7SINGLE2775712154048DOIT_304.mcs
DO IT ALL NIGHTM.Yamamoto‰¹‡‚킹3-05☆4.6SINGLE3093572405515DOIT_305.mcs
DO IT ALL NIGHTKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-06☆2.7SINGLE1992141542414DOIT_306.mcs
DO IT ALL NIGHTT.TSUKAMOTOƒƒƒfƒB[‚»‚̂܂ñ‚܂ł·B4-01☆4.6SINGLE351357272676DOIT_401.mcs
DO IT ALL NIGHTHIROSHI TAKENOUCHIƒŒƒxƒ‹‚T4-02☆2.5SINGLE2202141702510DOIT_402.mcs
DO IT ALL NIGHTK.TAKEMURA‚»‚̂܂ñ‚܂ł·B4-03☆4.7SINGLE3193212476021DOIT_403.mcs
DO IT ALL NIGHTMasato T.Vƒ}ƒjƒAƒbƒN‚ªo‚½¡‚Å‚Íc4-04☆5.6SINGLE3583572785836DOIT_404.mcs
DO IT ALL NIGHTTAISHI K.“ÆŽ©‚ÌƒŠƒYƒ€‚Å‚·‚·‚݂܂·4-05☆5.4SINGLE4303933346311DOIT_405.mcs
DO IT ALL NIGHT???_09™~‚R4-06☆5.0SINGLE430428334641DOIT_406.mcs
DO IT ALL NIGHTM.Ooebesu‚U•ûŒü‚ŃŒƒxƒ‹‚XH‚P‚U•ªƒiƒV6-01☆4.4DOUBLE2992852324530DIAN_601.mcs
DO IT ALL NIGHTKAZUYUKI K.ƒƒƒfƒB[‚ɇ‚킹‚½‚P‚U•ª‚ªƒEƒŠ7-01☆5.1SINGLE2973212305038DOIT_701.mcs
DO IT ALL NIGHTY.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-02☆5.5SINGLE3925713046418DOIT_702.mcs
DO IT ALL NIGHT???_21’´ƒ€ƒYƒCˆê•i‚Å‚·B7-03☆7.7SINGLE3325002585999DOIT_703.mcs
DO IT ALL NIGHTRYO.N.‚¾‚Ü‚³‚ê‚È‚¢‚悤‚É’ˆÓII7-04☆4.9SINGLE3523572735419DOIT_704.mcs
DO IT ALL NIGHTKeisuke Omoriƒr[ƒ}ƒj•—‚Éì‚è‚Ü‚µ‚½B8-01☆5.3SINGLE3504282716021DOIT_801.mcs
DO ME(H.I.G.E.O.MIX)A.NAOKI‚lD‹g“c@ìF“ñlƒvƒŒƒC—pƒ_ƒuƒ‹3-01☆6.2DOUBLE21026015120146DOME_301.mcs
DO ME(H.I.G.E.O.MIX)Y.KAWABEƒƒCƒ“‚Í‚â‚Á‚σ{ƒbƒNƒX4-01☆4.6SINGLE2423571743728DOME_401.mcs
DO ME(H.I.G.E.O.MIX)MURAI MITSURUƒXƒLƒbƒv‚µ‚È‚ª‚ç‰ñ‚Á‚ĉº‚³‚¢B5-01☆4.4SINGLE3193252305617DO_ME501.mcs
DO ME(H.I.G.E.O.MIX)ABE TaTsuMa‚â‚è‚â‚·‚­‚܂Ƃ߂Ă݂܂µ‚½B5-02☆4.0SINGLE2382601716115DO_ME502.mcs
DO ME(H.I.G.E.O.MIX)HIROAKI.MATSUUCHI‚¿‚å‚Á‚ÆŠÈ’P‚Å‚·6-01☆3.8SINGLE2632601893327DO_ME601.mcs
DO ME(H.I.G.E.O.MIX)H.KAWAKAMI‚Ù‚Æ‚ñ‚Ç“¯ŽžB6-02☆8.3SINGLE29639021361220DO_ME602.mcs
DO ME(H.I.G.E.O.MIX)H.KAWAKAMI‚`‚j‚kŽ‚Ìì•iB6-03☆4.7SINGLE3112922245531DO_ME603.mcs
DO ME(H.I.G.E.O.MIX)D KYUTOKUŒN‚Ío—ˆ‚é‚©H‚Ђ°ƒ_ƒ“ƒXI7-01☆5.2SINGLE2953902136421DOME_701.mcs
Do you love meYUKI Yokota‚æ‚­‚ ‚éƒpƒ^[ƒ“‚Å‚·B2-01☆2.2SINGLE168200161350DOYOU201.mcs
Do you love meHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE1643501514514DOYO_401.mcs
DON'T CLOCK MEYUSUKE.K‚W•ª“¯Žž‰Ÿ‚µ‚͊댯‚Å‚·3-01☆7.5SINGLE23237218043117DNCL_301.mcs
DON'T CLOCK MEA.NAOKI‚lE‹g“c ìF‚m‚f‚nI5-01☆6.1DOUBLE26524820540100DONT_501.mcs
Don't Stop!(AMD 2nd MIX)Takashi.K”w–ÊŒü‚«‚ɂȂéƒXƒeƒbƒv‚ª‚ ‚è‚Ü‚·1-01☆4.8SINGLE2842602054845DONT_101.mcs
Don't Stop!(AMD 2nd MIX)YAMADA HIDETOSHIƒXƒLƒbƒv—L‚è‚Ü‚·1-02☆5.3SINGLE2812922024657DONT_102.mcs
Don't Stop!(AMD 2nd MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚r‚s‚n‚o‚h1-03☆3.9SINGLE2522601823133DONT_103.mcs
Don't Stop!(AMD 2nd MIX)YAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚W2-01☆4.1SINGLE3152922274919DONT_201.mcs
Don't Stop!(AMD 2nd MIX)HAJIME.I‚Ú‚æ‚ñìFƒIƒtƒBƒVƒƒƒ‹‚Ý‚½‚¢2-02☆3.6SINGLE2722601964812DONT_202.mcs
Don't Stop!(AMD 2nd MIX)YUSUKE.Kƒf[ƒ^–¼‚ðˆÓޝ‚µ‚Äì‚è‚Ü‚µ‚½3-01☆7.3SINGLE28532520555113DNST_301.mcs
Don't Stop!(AMD 2nd MIX)???_03ƒŠƒYƒ€‚ɂ̂Á‚Äì‚è‚Ü‚µ‚½3-02☆4.3SINGLE2452601764631DNST_302.mcs
Don't Stop!(AMD 2nd MIX)KIMISHIMA TAKUROŠÈ’PBŒã‚ëƒXƒeƒbƒv‚Í‚OB4-01☆0.7SINGLE146130107010DONT_401.mcs
Don't Stop!(AMD 2nd MIX)???_08ƒŒƒxƒ‹‚WA㋉ŽÒŒü‚¯4-02☆4.1DOUBLE2672601924427DONT_402.mcs
Don't Stop!(AMD 2nd MIX)T.FUJIWARAº‚ɇ‚킹‚Ă݂܂µ‚½BiÎj6-01☆4.4SINGLE2702601955827DONT_601.mcs
Don't Stop!(AMD 2nd MIX)NAOTO M.Ž©Mì‚Å‚·I6-02☆5.5SINGLE3053252205648DONT_602.mcs
Don't Stop!(AMD 2nd MIX)M.HANABUSA[‚¢‚Å‚·‚ªA‚ʂ邢‚Å‚·6-03☆3.6SINGLE266292192486DONT_603.mcs
Don't Stop!(AMD 2nd MIX)D KYUTOKUŽ~‚܂炸‚É‚l‚n‚u‚dI7-01☆6.0SINGLE2423901746544DONT_701.mcs
Dr.LOVEJ.GOUKE–³S‚ŧ삵‚½‚̂ŕς©‚à2-01☆3.6SINGLE2202461534615DRLC1201.mcs
Dr.LOVEK.SUGAI‚r‚g‚o‚c‚k‚u‚O‚P^‚W2-02☆5.1SINGLE2432761695051DRLC1202.mcs
Dr.LOVEMasayuki.A“ïˆÕ“x‚T‚­‚ç‚¢H2-03☆4.4SINGLE2022151412367DRLC1203.mcs
Dr.LOVEFUMIHIRO ISHIWATAƒvƒŒÃìBŒ™‚ÈŽ–‚ð–Y‚ê‚Ä2-04☆5.0SINGLE2903692024928DRLC1204.mcs
Dr.LOVEN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆3.6SINGLE229276160557DRLO_301.mcs
Dr.LOVEMURAI MITSURU‚¯‚Á‚±‚¤ŽžŠÔ‚ð‚©‚¯‚Äì‚è‚Ü‚µ‚½B5-01☆5.3SINGLE2913382035441DRLC1501.mcs
Dr.LOVEHAJIME M.Œy‚¢ƒXƒeƒbƒvƒXƒeƒbƒv5-02☆3.6SINGLE243307169533DRLC1502.mcs
Dr.LOVETHE PLAYSTATION2ƒzƒbƒv‚ȃpƒtƒH[ƒ}ƒ“ƒXŒü‚¯‚Å‚·B8-01☆1.6SINGLE170184118722DRLO_801.mcs
DREAM A DREAMH.KAWAKAMI‚R‚P‚O‚Sނɑ¡‚Á‚½‚â‚ÂB1-01☆6.4SINGLE2822822164499DREA_101.mcs
DREAM A DREAMA.NAOKI‚lD‹g“c@ìF@@‚i‚S‚t3-01☆5.4SINGLE2302821764066DREA_301.mcs
DREAM A DREAMK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚b5-01☆4.0SINGLE3093172364712DAD__501.mcs
DREAM A DREAMHIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·6-01☆3.0SINGLE264282202420DREM_601.mcs
DREAM A DREAMM.Ooebesuu‚e‚k‚d‚d‚s‚h‚m‚fvƒŒƒxƒ‹‚V6-02☆4.6SINGLE2253171724231DREM_602.mcs
DREAM A DREAMIchinose Shinta‚·‚΂₢‚¤‚²‚«‚ª•K—v‚Å‚·6-03☆5.4SINGLE2713172073561DREM_603.mcs
DREAM A DREAMYasunobu OkudaÅŒã‚Ì‚d‚c‚h‚s‹ÈB‚S‚O•ª‚ÅŠ®¬B7-01☆5.6SINGLE2643172024860DREA_701.mcs
DREAM A DREAMKotaro Kagawa–³“ï‚ÈŽdオ‚èB7-02☆3.5SINGLE271282207449DREA_702.mcs
DREAM A DREAMSATOSHI HORIUCHIƒXƒLƒbƒvƒXƒLƒbƒvƒ‰ƒ“ƒ‰ƒ“ƒ‰ƒ“ô7-03☆3.4SINGLE279282213428DREA_703.mcs
DREAM A DREAM(MIAMI BOOTY MIX)TAISHI K.ƒtƒ‰ƒ“ƒL[ƒp[ƒg‚àÄŒ»4-01☆5.4SINGLE3503872604735DREMB401.mcs
DREAM A DREAM(MIAMI BOOTY MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚n‚x‚`‚a‚t‚m‚w‚w5-01☆5.2DOUBLE2593101932866DADMB501.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)TOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆4.3DOUBLE2172551592355DRIL_401.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)Jun T.’†‹‰ŽÒ‚Å‚à‚Å‚«‚éB4-02☆5.3SINGLE2843402083951DRIL_402.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)TAISHI K.‚b‚`‚o‚s‚`‚h‚m@‚i‚`‚b‚jƒoƒ“ƒUƒC4-03☆6.4SINGLE3174252324963DRIL_403.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)HIROKI.NÅŒã‚Ì‚P‚U•ª‚Q˜A‚ª‹ÈŽÒ‚©‚ÈH5-01☆5.7SINGLE3024252214644DRILL501.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)A.NAOKI‚lE‹g“c ìF‚n‚x‚`‚a‚t‚m ‚w5-02☆5.1DOUBLE3183402333249DRILL502.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)???_13’†‹‰ŽÒ‚É‚ ƒXƒXƒI5-03☆5.5SINGLE3193402334352DRILL503.mcs
DRILL INSTRUCTOR(C-Jah Happy Mix)Keisuke OmoriƒAƒbƒAƒbƒAƒbƒAƒbƒAƒCI8-01☆5.5SINGLE2955102164836DRILL801.mcs
DROP OUTYUSUKE.K‚Ƃɂ©‚­ŠëŒ¯‚ȃXƒeƒbƒv‚Å‚·3-01☆6.9SINGLE4305202853982DROPO301.mcs
DROP OUTTSUJI JUNNYAÅŒã‚̕ϒ²‚ð‚‚Ȃ°‚ê‚é‚©H3-02☆7.2SINGLE4415202924983DROPO302.mcs
DROP OUTK.TAKEMURA‚·‚²‚­”æ‚ê‚Ü‚·B3-03☆7.1SINGLE5335203533770DROPO303.mcs
DROP OUTA.NAOKI‚lD‹g“c@ìF‚t‚v‚`‚q‚`‚a‚`3-04☆6.6DOUBLE3795202512395DROPO304.mcs
DROP OUTYASUHIRO.O‰¹{‚©‚¯º’Ê‚è‚Éì»3-05☆5.3SINGLE3745202482945DROPO305.mcs
DROP OUTN.KAZUMA‘«‚̂͂±‚тɋC‚ð‚‚¯‚ê‚Ίy‚µ‚¢I3-06☆6.4SOLO4996503304747DROPO306.mcs
DROP OUT???_05‰SŽÒ—pƒXƒeƒbƒv‚»‚Ì‚R3-07☆1.6SINGLE200260132310DROPO307.mcs
DROP OUT???_05ƒtƒ‹ƒRƒ“ƒ{â‘Εs‰Â”\IHI3-08☆6.6SINGLE5125203393462DROPO308.mcs
DROP OUTYosuke MoritalŠÔ‹Z‚¶‚á‚ ‚è‚Ü‚¹‚ñ3-09☆7.2SINGLE5245203474173DROPO309.mcs
DROP OUTT.TSUKAMOTO‘«‚P‚PBƒQ[ƒ}[‚³‚ñ‚¢‚ç‚Á‚µ‚á‚¢4-01☆6.5SINGLE4185202773575DROPO401.mcs
DROP OUT???_07ƒIƒtƒBƒVƒƒƒ‹‚ÍŠÈ’P‚¾‚Á‚ÄI4-02☆6.7SINGLE5105203383564DROPO402.mcs
DROP OUTJun T.‚‚‚‚‚Q‚U‚O‚Ȃ̂ɂP‚U•ªB4-03☆7.4SINGLE5235203463192DROPO403.mcs
DROP OUTT.YASUDA‰½‚©•¨‘«‚è‚È‚¢‚悤‚È4-04☆4.3SINGLE4205202783311DROPO404.mcs
DROP OUTN.MIMURAƒNƒŒƒCƒW[ƒpƒtƒH[ƒ}[Œü‚¯i”š4-05☆4.5SINGLE4325202862916DROPO405.mcs
DROP OUTT.FukazawaƒtƒFƒCƒ“ƒg‚É’ˆÓ‚Ì’Ç‚¢‚©‚¯‚Á‚±B4-06☆5.4SINGLE4225202793044DROPO406.mcs
DROP OUTMIO.SŽèƒRƒ“„§i‚§4-07☆5.8SINGLE41610402752563DROPO407.mcs
DROP OUT???_09™~‚S4-08☆9.3SINGLE59852039643136DROPO408.mcs
DROP OUTS.Okano—Bˆê‚U‚O‚OŒÂ‚ð’´‚¦‚Ü‚µ‚½B4-09☆7.0SINGLE6015203984246DROPO409.mcs
DROP OUTMURAI MITSURUƒ€ƒYƒC‚Å‚·B5-01☆5.5SINGLE5235203463526DROPO501.mcs
DROP OUTNatsumi.Kobayashi‚P‚Q•ª‚Ì‘ê‚ð‚µ‚Ä‚Ý‚½‚©‚Á‚½‚Ì‚Å5-02☆6.9SOLO5027153324070DROPO502.mcs
DROP OUTNatsumi.Kobayashi‚e‚`‚h‚k‚x@‚c‚t‚r‚s‚̂‚à‚è5-03☆7.1SINGLE5027153324076DROPO503.mcs
DROP OUTKei.U‘Ì—Í“I‚ɂ‚炢‚Å‚·B5-04☆5.3SINGLE4305202852545DROPO504.mcs
DROP OUTHIROKI.NƒIƒtƒBƒVƒƒƒ‹‚قǂ͔æ‚ê‚Ü‚¹‚ñB5-05☆5.7SINGLE3895202583255DROPO505.mcs
DROP OUTSoichI InabA‚±‚̃Xƒeƒbƒv‚ ‚È‚½‚È‚çÀ‚­5-06☆5.3SINGLE343520227592DROPO506.mcs
DROP OUTURABE HIROKI‘«‚Å‚ª‚ñ‚΂Á‚Ä‚­‚¾‚³‚¢B5-07☆5.8SINGLE4996503303044DROPO507.mcs
DROP OUTTetsuya S.‚P”­Ÿ•‰I‰Œ©‚Å‚`‚`o‚¹‚é‚©‚ÈH5-08☆1.4COUPLE7/7654286DROPO508.mcs
DROP OUTABE TaTsuMaƒXƒs[ƒh‚Éæ‚낤I5-09☆7.2SINGLE26139017333110DROPO509.mcs
DROP OUTT.MAMIYAƒRƒƒ“ƒg‚æ‚èA‚Ü‚¸‚â‚ê‚©‚àcB5-10☆8.2SINGLE51352034039114DROPO510.mcs
DROP OUT???_14ƒ`ƒƒƒŒƒ“ƒW‚æ‚è“‚¢A‚©‚àB5-11☆5.3SINGLE5015203323227DROPO511.mcs
DROP OUTSatoru Hata‚a‚o‚l‚Q‚U‚O‚É‹°•|‚Ì‚P‚U•ªI5-12☆8.4SINGLE50052033142120DROPO512.mcs
DROP OUTSHINYA.K‘ê‚È‚µI‚Å‚àŠy‚µ‚¢I5-13☆4.8SINGLE4115202723324DROPO513.mcs
DROP OUTS.Fujisawaƒm[ƒRƒƒ“ƒgEEE5-14☆6.5SINGLE4445202942483DROPO514.mcs
DROP OUTS.Fujisawaƒm[ƒRƒƒ“ƒgEEE5-15☆6.3SINGLE4545203013363DROPO515.mcs
DROP OUTHIROAKI.MATSUUCHI‚©‚È‚è“‚¢‚Å‚·6-01☆5.9SINGLE5045203343146DROPO601.mcs
DROP OUT???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆5.9SINGLE4245202812365DROPO602.mcs
DROP OUTS.SATAKE‚±‚Ì‚d‚c‚h‚s‚É–³’ƒ‚ª‚ ‚è‚·‚¬II6-03☆7.4SINGLE5735203804070DROPO603.mcs
DROP OUTT.Hirano‚¢‚Â‚à‚æ‚è‘‚­—¬‚ê‚Ä‚¨‚è‚Ü`‚·6-04☆7.5SINGLE44052029137105DROPO604.mcs
DROP OUTT.FUJIWARA‚S‚T‚XƒRƒ“ƒ{‘«‚ł‚Ȃ°‚½B6-05☆6.7SINGLE5405203584153DROPO605.mcs
DROP OUTMITHUTOSHI NAKATA‚â‚育‚½‚¦\•ªB6-06☆5.9SINGLE4105202713951DROPO606.mcs
DROP OUTMichitaka Kimura‚a‚o‚l‚R‚O‚O‚ð’´‚¦‚é‹È‚ª‚â‚肽‚¢6-07☆8.3SINGLE45658530241131DROPO607.mcs
DROP OUTNAOTO M.‚¿‚å‚Á‚Æ‚©‚ñ‚½‚ñ‚É‚µ‚Ü‚µ‚½B6-08☆5.7SINGLE4985203304627DROPO608.mcs
DROP OUTYASUNORI.UŽ€‚ȂȂ¢‚ÅIII6-09☆5.7SINGLE3965202622264DROPO609.mcs
DROP OUTT.NAOYA‚c‚d‚m‚f‚d‚q6-10☆7.3SINGLE46552030826107DROPO610.mcs
DROP OUTH.KAWAKAMIS‚©‚玀‚É‚½‚¢l‚ÖB6-11☆8.3SINGLE51052034131179DROPO611.mcs
DROP OUTH.MATSUDAƒAƒzBi—Üj6-12☆7.2SINGLE5105203383284DROPO612.mcs
DROP OUTNOBUTAKA TSUTSUMI–{‰Æ‚æ‚è‚àŠÈ’P6-13☆3.7SINGLE414520274209DROPO613.mcs
DROP OUTTAKESHI MATSUMOTOŒðŒÝ‚É“¥‚ß‚é—l‚ɂȂÁ‚Ă܂·B7-01☆5.2SINGLE4445202943430DROPO701.mcs
DROP OUTT.Hanada¬—‚µ‚Ä‚­‚¾‚³‚¢7-02☆7.3COUPLE490/4905853253194DROPO702.mcs
DROP OUTRYO SAKAI‚Þ‚¸‚©‚µ‚¢‚Å‚·B‚±‚ÌŒ¾—t‚Å\•ªB7-03☆6.7SINGLE4375202892391DROPO703.mcs
DROP OUTTAKEDA.SYOUHEI‚f‚n‚c@‚m‚n‚v@‚g‚d‚q‚dH7-04☆8.5SINGLE49452032742163DROPO704.mcs
DROP OUTNIGHTMARE‚æ‚Ý‚©‚½‚ÍAƒhƒƒbƒvƒAƒEƒ`‚Å‚·7-05☆7.8SINGLE45952030425155DROPO705.mcs
DROP OUTRYO.N.lŠÔ‚ÌŒÀŠE‚É’§íII7-06☆6.4SINGLE4715203123265DROPO706.mcs
DROP OUTF.ATHUSHI‚V˜A‘ł̃Zƒbƒg‚ðæ‚è‚«‚êI7-07☆6.5SINGLE3805202524173DROPO707.mcs
DROP OUTToshiro Ohtsuka‘¬‚¢‚Å‚·8-01☆4.3SINGLE2935201944010DROPO801.mcs
DROP OUTHIROSHI.M”æ‚ê‚éB8-02☆6.2SINGLE4865853224149DROPO802.mcs
DROP OUTK.Itou‚‚Ȃ¢‚ł݂ë8-03☆9.9SINGLE158410401050750DROPO803.mcs
DROP OUTKOHEI.T‚‘¬‚̯B8-04☆5.8SINGLE4785203173840DROPO804.mcs
DROP OUTShimamoto YuukiÅŒãƒpƒNƒŠi‚µ‚©‚à‚Q‰ñj8-05☆4.4DOUBLE3545202342327DROPO805.mcs
DROP OUTShimamoto Yuuki‚Ó‚´‚¯‚½‘«•„‚Å‚·B8-06☆4.9SINGLE4465202953026DROPO806.mcs
DROP OUTH.MURATAƒm[ƒRƒƒ“ƒgEEE8-07☆5.2SINGLE4044552673237DROPO807.mcs
DROP THE BOMBKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆4.8DOUBLE400450277569DROP_101.mcs
DROP THE BOMBYASUHIRO.O“n‚è‚ðŠˆ—p‚µ‚Ü‚µ‚½B1-02☆4.8DOUBLE3384122344121DROP_102.mcs
DROP THE BOMBYASUHIRO.O‹È‚Ì‹­Žã‚ɇ‚킹‚Äì‚è‚Ü‚µ‚½B1-03☆4.7SINGLE3703752574916DROP_103.mcs
DROP THE BOMBYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-04☆4.5SINGLE3283002273934DROP_104.mcs
DROP THE BOMBY_TATE‹È‚ª‹C‚É“ü‚Á‚½‚Ì‚Åì‚è‚Ü‚µ‚½B1-05☆5.8SINGLE3074502135244DROP_105.mcs
DROP THE BOMBH.KAWAKAMI‚É‚ä‚Ä‚ñނɑ¡‚éB1-06☆7.5SINGLE4254502955788DROP_106.mcs
DROP THE BOMBKEISUKE.M‘«‚XƒŒƒxƒ‹Ž©MìI1-07☆7.1COUPLE410/3664502845178DROP_107.mcs
DROP THE BOMBSHIBATA JUNICHI‹È‚ɇ‚킹‚Äì‚Á‚ÄŒ©‚Ü‚µ‚½B1-08☆5.6SINGLE4576003175821DROP_108.mcs
DROP THE BOMBHIROAKI.T‚قڋȂɇ‚킹‚Ă܂·B1-09☆5.5SINGLE3074122135433DROP_109.mcs
DROP THE BOMB???_01‚ª‚ñ‚΂ê‚΃CƒP‚éII1-10☆5.5DOUBLE3364502335332DROP_110.mcs
DROP THE BOMBJ.GOUKEŽåù—¥‚ð“¥‚à‚¤ƒVƒŠ[ƒY‚T2-01☆6.0SINGLE3454502395844DROP_201.mcs
DROP THE BOMBTAKENAKA TAKAHIROƒXƒLƒbƒv‚ª‘‚¦‚Ä‚«‚Ü‚·B2-02☆5.2SINGLE3264502264630DROP_202.mcs
DROP THE BOMBT.OchiaiƒTƒr‚ª‚ñ‚΂êBi—]—T‚©‚Èj2-03☆4.5SINGLE3204502224016DROP_203.mcs
DROP THE BOMBT.OchiaiŒ´‹È‚ªŽè–{‚Å‚·B2-04☆5.3SINGLE3464502404631DROP_204.mcs
DROP THE BOMBHAJIME.I‚Ú‚æ‚ñìF‘å’_‚ÈŽO˜A•„”z’u2-05☆4.9SINGLE3514502435414DROP_205.mcs
DROP THE BOMB???_02•ˆ–ʃoƒ‰ƒoƒ‰BŒ©‚Â炢‚Å‚·2-06☆4.8SINGLE3604502505114DROP_206.mcs
DROP THE BOMBK.SUGAI‚r‚g‚o‚c‚q‚o‚O‚P^‚W2-07☆5.6SINGLE2913372024061DROP_207.mcs
DROP THE BOMBH.TARUMI“K“x‚È“ïˆÕ“x‚ÅŠy‚µ‚³dŽ‹2-08☆5.4SINGLE3684502555626DROP_208.mcs
DROP THE BOMBFUMIHIRO ISHIWATAƒvƒŒÃìB‚U•ª‚ŃXƒCƒbƒ`I2-09☆5.1SINGLE3424502374726DROP_209.mcs
DROP THE BOMBKOUICHI TAKEUCHIƒoƒNƒ_ƒ“‚¾I“¦‚°‚ë[II3-01☆4.4SINGLE389450270562DROP_301.mcs
DROP THE BOMBKoichi Nakayama‘«‰^‚Ñ‚ðdŽ‹‚µ‚Äì¬3-02☆5.1SINGLE3944502735418DROP_302.mcs
DROP THE BOMBYUSUKE.Kã‚Í‚¸‚Á‚ƉŸ‚·‚Ì‚ªƒ|ƒCƒ“ƒg3-03☆7.3SINGLE34845024137107DROP_303.mcs
DROP THE BOMBN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-04☆4.5SINGLE368600255575DROP_304.mcs
DROP THE BOMBTOMOHIRO NAKAI‚l‚`‚m‚h‚`‚b‚Å–ž‘«‚Å‚«‚È‚¢l‚ÖB3-05☆6.1SINGLE4214502925345DROP_305.mcs
DROP THE BOMBM.Yamamoto‰¹‡‚킹3-06☆5.3SINGLE3564502475129DROP_306.mcs
DROP THE BOMBKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-07☆2.7SINGLE210225145547DROP_307.mcs
DROP THE BOMBTakahiro.H‘«‚V‚Â3-08☆3.9SINGLE2813001953520DROP_308.mcs
DROP THE BOMBHIDEAKI KANEDA‹È‚Éæ‚Á‚ÄŒƒ‚µ‚­‚©‚ƒN[ƒ‹‚É4-01☆6.6SINGLE3594502495466DROP_401.mcs
DROP THE BOMBTUBASA.S‚Þ‚¸‚©‚µ‚¢‚Å‚·B4-02☆4.9SINGLE3654502535116DROP_402.mcs
DROP THE BOMBT.NAGSAKiƒXƒ‰ƒCƒhƒXƒeƒbƒv—ûK—p‚Éì¬4-03☆4.4SINGLE3423372374420DROP_403.mcs
DROP THE BOMBT.NAGSAKi‚¿‚å‚Á‚Ɠ‚ß‚©‚àB4-04☆7.5SINGLE29845020736115DROP_404.mcs
DROP THE BOMBY.KAWABE‚±‚ê‚à‚¢‚¢o—ˆ‚¾‚ÆŽv‚¤4-05☆5.4SINGLE3464502405428DROP_405.mcs
DROP THE BOMBD.OSHIMA‚r‚s‚`‚x@‚b‚n‚n‚kII4-06☆4.8SINGLE454450315573DROP_406.mcs
DROP THE BOMBKouki.UƒhƒƒbƒvÅ‚II4-07☆5.1SINGLE4074502825616DROP_407.mcs
DROP THE BOMBK.TAKEMURAˆÓŠO‚ÆŠÈ’P‚Å‚·B4-08☆5.4SINGLE4264502965620DROP_408.mcs
DROP THE BOMBSAEKO.Tƒ_ƒuƒ‹ˆç¬—p•ˆ–Ê4-09☆4.3DOUBLE3483002414423DROP_409.mcs
DROP THE BOMBS.Okano’iX‚ƃŒƒxƒ‹‚ªã‚ª‚Á‚Ä‚¢‚«‚Ü‚·B4-10☆5.5SINGLE3964502755428DROP_410.mcs
DROP THE BOMB???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆3.8SINGLE2743001904114DROP_501.mcs
DROP THE BOMBSEIJI W.ƒmƒŠ‚â‚·‚¢‚ÆŽv‚¢‚Ü‚·5-02☆5.7SINGLE3454502395735DROP_502.mcs
DROP THE BOMBH.Kondoh‚W5-03☆5.3DOUBLE3484502414830DROP_503.mcs
DROP THE BOMBY.TSUDA•”•ª•”•ª‚ª•¡ŽG‚Å­‚µ“‚¢‚ÆŽv‚¤5-04☆5.6SINGLE3794502635632DROP_504.mcs
DROP THE BOMBTetsuya S.ƒmƒŠ‚Ì‚¢‚¢ƒXƒeƒbƒv‚ÅŒƒ‚µ‚­—x‚êI5-05☆4.3COUPLE249/2492251732363DROP_505.mcs
DROP THE BOMBTomoyuki Takahashi‡‚킹‚é‚È‚ç‚S˜A{‚V˜AB5-06☆4.3DOUBLE345412239476DROP_506.mcs
DROP THE BOMBMits-hide Obataƒ‰ƒbƒv‚Á‚Ä‘f°‚炵‚¢ƒŠƒYƒ€‚Å‚·‚Ë5-07☆5.3SINGLE4124872866416DROP_507.mcs
DROP THE BOMBSATOSHI.HƒTƒr‚É’–Ú5-08☆6.4SINGLE4394503055749DROP_508.mcs
DROP THE BOMBJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.7SINGLE3534502455536DROP_601.mcs
DROP THE BOMBYASUSHI.FƒmƒŠƒmƒŠ‚Å‚Á‚·II6-02☆5.0SINGLE3614502505219DROP_602.mcs
DROP THE BOMB???_16ƒm[ƒRƒƒ“ƒg6-03☆6.0SINGLE3664502545445DROP_603.mcs
DROP THE BOMBMichitaka KimuraŌオ‚È‚©‚È‚©Œq‚°‚Ü‚¹‚ñ6-04☆5.8SINGLE4064872826032DROP_604.mcs
DROP THE BOMBToshihide Fujita‚È‚ñ‚©‚¢‚¢‹È‚Å‚·‚æ‚Ë6-05☆4.7DOUBLE382450265529DROP_605.mcs
DROP THE BOMBKENGO NAKAMURAˆê‰žƒIƒtƒBƒVƒƒƒ‹‚r‚r‚q‚ðƒx[ƒX‚É6-06☆5.3SINGLE4344503015717DROP_606.mcs
DROP THE BOMBNOBUTAKA TSUTSUMI­‚µƒ€ƒYƒJ‚µ‚¢6-07☆4.4SINGLE3343372324718DROP_607.mcs
DROP THE BOMB???_19‹È‚É‚ ‚킹‚½‚‚à‚肾‚¯‚ÇEEE6-08☆6.5SINGLE4645623226245DROP_608.mcs
DROP THE BOMBYuki Ichikawa‚Þ‚µ‚ë’†”Ղ̃Wƒƒƒ“ƒv‚ªƒƒCƒ“‚©B6-09☆6.7SINGLE3804502644873DROP_609.mcs
DROP THE BOMBTAKU YAMAMOTO‚΂½‚΂½‚³‚¹‚·‚¬‚½EEE‚©‚È7-01☆4.3SINGLE339450235563DROP_701.mcs
DROP THE BOMBRyosuke.Tƒ`ƒ…ƒh[ƒ“II7-02☆5.8SINGLE4494503126326DROP_702.mcs
DROP THE BOMBDAISUKE KAMISAKAƒCƒ`ƒIƒVŒó•â‚Ì‚P‚‚łµ‚½B7-03☆3.7SINGLE371300257543DROP_703.mcs
DROP THE BOMB???_20‚Ó‚ñ‚΂Á‚Äì‚Á‚½‚炵‚¢7-04☆5.9SINGLE3893752704949DROP_704.mcs
DROP THE BOMBTAKEDA.SYOUHEI‚P‚U•ª‚ªŒ©“ï‚¢7-05☆6.1SINGLE3814502645546DROP_705.mcs
DROP THE BOMBYOSHIHIKO MOTOYASU‰¹‚̂܂ñ‚܂ł·B7-06☆6.0SINGLE3674502555248DROP_706.mcs
DROP THE BOMBY.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-07☆5.7SINGLE4514503136222DROP_707.mcs
DROP THE BOMB???_21‚P‚U•ª‚Ì“ü‚è‰Á‚°‚ñ‚ª—Ç‚¢ì•iB7-08☆6.5SINGLE4076002825756DROP_708.mcs
DROP THE BOMBT.OGINO‹gŽRìA‚±‚ꂪ‚Å‚«‚½ŒN‚Í‚·‚²‚¢I8-01☆5.9SINGLE4604873195828DROP_801.mcs
DUB-I-DUBYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.1SINGLE1992711774126DUB__101.mcs
DUB-I-DUBT_YAMADA‚S‚”‚ˆƒvƒ‰ƒX‚Ì‘O‚Éì‚Á‚½‚ñƒ_`I1-02☆4.6SINGLE3113392785714DUB__102.mcs
DUB-I-DUBY_TATEƒ`ƒƒƒŒƒ“ƒWƒ‚[ƒhHI1-03☆6.1SINGLE2855432545549DUB__103.mcs
DUB-I-DUBmurai mitsuru‚PŽžŠÔˆÊ‚Ì’Z‚¢ŽžŠÔ‚Åì‚ꂽ‹ÈB1-04☆4.3SINGLE2843392535510DUB__104.mcs
DUB-I-DUBA.NAOKI‚lD‹g“c@ìF‚l‚`‚n‚g1-05☆4.2DOUBLE2182711943338DUB__105.mcs
DUB-I-DUBK.SUGAI‚r‚g‚o‚c‚t‚a‚O‚Q^‚V2-01☆4.2SINGLE2262712024032DUB-I201.mcs
DUB-I-DUBM.IWAKURA‘¬ƒXƒLƒbƒv‚ÅB“ï“x‚W’ö“xB2-02☆4.1SINGLE2543052274916DUB-I202.mcs
DUB-I-DUBKOSE F’†ƒoƒ“‚ªƒ|ƒCƒ“ƒg2-03☆4.1DOUBLE2572712294624DUB-I203.mcs
DUB-I-DUB???_03‚³‚ç‚ɃAƒŒƒ“ƒWII3-01☆4.0SINGLE2553052274515DUBI_301.mcs
DUB-I-DUBTakahiro.H‹­‰»”Å‚l‚c‚o‚Q3-02☆4.3DOUBLE2392712134132DUBI_302.mcs
DUB-I-DUBHIROSHI TAKENOUCHIƒŒƒxƒ‹‚W4-01☆5.0SINGLE2452712193756DUB__401.mcs
DUB-I-DUBMasato T.Vƒ}ƒjƒAƒbƒN‚ªo‚½¡‚Å‚Íc4-02☆5.6SINGLE2593052314563DUB__402.mcs
DUB-I-DUBOKAMOTO TaishiŽæ‚芸‚¦‚¸Šy‚µ‚­’µ‚ñ‚ʼnº‚³‚¢B5-01☆4.8SINGLE1622031444162DUB__501.mcs
DUB-I-DUBTAKASHI.M“r’†ŽQ‰Á‚ÌŽ„A‘S‰Ÿ‚µ‚·‚é‚È‚æI5-02☆4.6SINGLE2263052024930DUB__502.mcs
DUB-I-DUBKazuhiko ChibaƒIƒŠƒWƒiƒ‹‚Ƒ債‚ĕςí‚ç‚È‚¢H5-03☆4.4SINGLE2062711843344DUB__503.mcs
DUB-I-DUB???_21ƒXƒLƒbƒv—ûK—pi㋉jƒ€ƒY‚Å‚·B7-01☆4.2SINGLE318373284521DUB__701.mcs
DUB-I-DUBKAZUTAKA SUEDA‹È‚ɇ‚킹‚½‚‚à‚èB7-02☆6.0SINGLE3994753566420DUB__702.mcs
DUB-I-DUBTHE PLAYSTATION2ƒm[ƒRƒƒ“ƒgEEE8-01☆4.5SINGLE1913051705226DUB__801.mcs
DYNAMITE RAVEM.MOCHIDUKIƒA[ƒeƒBƒXƒg‚‚Ȃª‚èH1-01☆1.2SINGLE200187136512DYNA_101.mcs
DYNAMITE RAVEYASUHIRO.O‚s‚q‚h‚b‚j‚Æ‚l‚`‚m‚h‚`‚b‚Ì’†ŠÔ1-02☆4.5SINGLE3463752354417DYNA_102.mcs
DYNAMITE RAVESOUSHIN.KŽ„‚ÌÅIŒ`‚c|‚q1-03☆4.4SINGLE395450269571DYNA_103.mcs
DYNAMITE RAVET_YAMADA”æ‚ê‚邯Žv‚Á‚¯‚½–¼‘O‚È‚ñ‚Å‚·1-04☆5.6SINGLE4295622925428DYNA_104.mcs
DYNAMITE RAVESHOTA,SAITOH.“®‚«‚ª‘å‚«‚¢ƒXƒeƒbƒvB1-05☆5.2SINGLE2643371803155DYNA_105.mcs
DYNAMITE RAVESINOMIYA.Y“‚¢‚Å‚·‚æ1-06☆5.6SINGLE4634503155622DYNA_106.mcs
DYNAMITE RAVESHIBATA JUNICHI‚±‚̋ȂłR˜A•„‚̘A‘±‚ðŽv‚¢‚‚¢‚½1-07☆5.9SINGLE4565623105831DYNA_107.mcs
DYNAMITE RAVEA.NAOKI‚lD‹g“c@ìF‚r‚t‚s‚d‚j‚h1-08☆4.4DOUBLE2692621832554DYNA_108.mcs
DYNAMITE RAVET.TAMAIƒŠƒYƒ€‚Éæ‚ê‚邯‚¢‚¢‚©‚àB2-01☆4.1SINGLE2503001703032DYNA_201.mcs
DYNAMITE RAVET.TAMAI—¬‚ê‚é–îˆó‚ÍŒ©‚Ä‚¢‚Ä‘u‰õB2-02☆4.0DOUBLE3853002624413DYNA_202.mcs
DYNAMITE RAVEKubota Mamoru‚¨Šè‚¢‚¾‚©‚ç‹x‚Ü‚¹‚Ä2-03☆4.2SINGLE3183002164125DYNA_203.mcs
DYNAMITE RAVEHAJIME.I‚Ú‚æ‚ñìF‚‚©‚݂₷‚¢ƒŠƒYƒ€‚Å2-04☆5.1SINGLE3523752405128DYNA_204.mcs
DYNAMITE RAVE???_02”æ‚ê‚Ü‚·‚Q2-05☆6.6SINGLE31030021140103DYNA_205.mcs
DYNAMITE RAVEYUKIHIRO.AŠ®¬‚µ‚½Žž‚»‚¤Žv‚Á‚½‚ñ‚Å‚·B2-06☆4.6SINGLE3103002114038DYNA_206.mcs
DYNAMITE RAVEHIROSAWA HIDEO‚Q‚c‚w‚ð‚â‚Á‚Ä‚¢‚ê‚΂©‚ñ‚½‚ñH2-07☆5.5SINGLE3464122355631DYNA_207.mcs
DYNAMITE RAVEO.YAMAMOTOƒ‰ƒbƒv‚ðƒmƒŠ‚ł‚©‚݂܂µ‚½B2-08☆6.9SINGLE3154502144487DYNA_208.mcs
DYNAMITE RAVEK.TAKEMURAº‚Ɏ኱‡‚킹‚Ă܂·B2-09☆5.4SINGLE4194122855723DYNA_209.mcs
DYNAMITE RAVEH.TARUMIŠÔ‘t‚Ì•”•ª‚ð‚¤‚Ü‚­ƒŠƒYƒ€‚Æ‚Á‚Ä‚Ë2-10☆6.8SINGLE3223372194996DYNA_210.mcs
DYNAMITE RAVEYUKI Yokota”Žq‚Ê‚¯H2-11☆4.1SINGLE2993002033131DYNA_211.mcs
DYNAMITE RAVEFUMIHIRO ISHIWATAƒvƒŒÃìBŽÀ‚͉Ô÷—œƒlƒ^2-12☆4.2SINGLE3433002334124DYNA_212.mcs
DYNAMITE RAVEKOSE Fƒ€ƒY‚©‚µ‚³‚æ‚è‚àŠy‚µ‚³‚ð2-13☆4.7DOUBLE3263002223939DYNA_213.mcs
DYNAMITE RAVEF.ATHUSHI‰ó‚êŒn‚Å‚·BƒŠƒYƒ€‚ɂ͎©MƒAƒŠB3-01☆5.1SINGLE4485253055513DYNA_301.mcs
DYNAMITE RAVEN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-02☆6.4SINGLE3754502554962DYNA_302.mcs
DYNAMITE RAVETOMOHIRO NAKAI”—‚è‚­‚é‚P‚U•ª‚T˜A‚𓥂݂܂­‚êI3-03☆7.0SINGLE5004503406055DYNA_303.mcs
DYNAMITE RAVEM.YamamotoƒmƒŠƒmƒŠ`ô3-04☆5.4SINGLE4073752775331DYNA_304.mcs
DYNAMITE RAVETAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-05☆6.4SINGLE4004122725060DYNA_305.mcs
DYNAMITE RAVEKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-06☆3.3SINGLE2042621391148DYNA_306.mcs
DYNAMITE RAVERyohei Seki‚Q‚c‚w‚æ‚èB‚`‚b—pŒƒƒ€ƒY•ˆ–ÊB3-07☆6.2SINGLE3924122675152DYNA_307.mcs
DYNAMITE RAVEHIDEAKI KANEDAX‚ÉŒƒ‚µ‚­4-01☆5.6SINGLE3753752554843DYNA_401.mcs
DYNAMITE RAVESHiNiCHi SAiTHOŒðŒÝ“¥‚Ý‚ÅãŽè‚É—x‚Á‚Ä‚ËB4-02☆5.0SINGLE3403752314827DYNA_402.mcs
DYNAMITE RAVEY.KAWABE‘Š•û‚j‚d‚mŽ‚Æ‚Ì‹¤“¯‡ì‚Å‚·4-03☆5.2DOUBLE3023752054238DYNA_403.mcs
DYNAMITE RAVEDaisuke K.ƒr[ƒgƒ}ƒjƒA•ˆ–ÊŠî’²B‚k‚–D‚W4-04☆4.6DOUBLE3083372105221DYNA_404.mcs
DYNAMITE RAVEHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆4.3SINGLE2542251733349DYNA_405.mcs
DYNAMITE RAVEMURAI MITSURU‚k‚–D‚‚·‚¬‚¸A’á‚·‚¬‚¸B5-01☆5.1SINGLE3775622575122DYNA_501.mcs
DYNAMITE RAVE???_10ƒm[ƒRƒƒ“ƒgEEE5-02☆4.4SINGLE2182621482948DYNA_502.mcs
DYNAMITE RAVEHIROKI.NŒ‹\A’µ‚˂܂·B5-03☆6.7SINGLE3864502634870DYNA_503.mcs
DYNAMITE RAVEURABE HIROKIƒIƒtƒBƒVƒƒƒ‹‚æ‚èŠyB5-04☆4.8SINGLE3644122484318DYNA_504.mcs
DYNAMITE RAVET.MAMIYAŽ©•ª‚È‚è‚̉ðŽß‚Å“Z‚߂Ă݂܂µ‚½B5-05☆4.0SINGLE2081501410109DYNA_505.mcs
DYNAMITE RAVETomoyuki Takahashiu‚T‚O‰~I‚T‚O‰~Iv‚Æ•·‚±‚¦‚éB5-06☆5.6SINGLE2553001732981DYNA_506.mcs
DYNAMITE RAVE???_12ƒJƒ“ƒ^ƒ“‚¾‚æ`Bƒ‚ƒm‘«‚è‚È‚¢H5-07☆5.1SINGLE3223372194043DYNA_507.mcs
DYNAMITE RAVEKatsuhiko KinoshitaƒvƒŒƒC‚µ‚Ä‚¢‚ÄŠy‚µ‚¢•ˆ–Ê5-08☆5.3SINGLE2563371743257DYNA_508.mcs
DYNAMITE RAVESATOSHI.HƒIƒtƒBƒVƒƒƒ‹‚ÉŽè‚ð‰Á‚¦‚Ü‚µ‚½B5-09☆6.5SINGLE4154122825358DYNA_509.mcs
DYNAMITE RAVEM.Ooebesuƒ}ƒjƒAƒbƒN‚̃AƒiƒU[BƒŒƒxƒ‹‚W6-01☆3.9DOUBLE3093002103323DYNA_601.mcs
DYNAMITE RAVES.SATAKE‚©‚È‚è“‚¢‚Å‚·6-02☆7.5SINGLE4136002814997DYNA_602.mcs
DYNAMITE RAVET.FUJIWARA‚l‚`‚m‚h‚`‚b‚æ‚è‚©‚ÍŠyIH6-03☆5.2SINGLE3424872334927DYNA_603.mcs
DYNAMITE RAVEMITHUTOSHI NAKATAƒCƒ`ƒIƒVƒf[ƒ^‚Å‚·B6-04☆5.9SINGLE3784872574847DYNA_604.mcs
DYNAMITE RAVEMATHURI MATHUSIMAƒRƒ“ƒZƒvƒg‚̓_ƒCƒiƒ~ƒbƒN‚È“®‚«I6-05☆4.9SINGLE3023002053551DYNA_605.mcs
DYNAMITE RAVEToshihide Fujita‚¿‚å‚Á‚Æ“¥‚݂Â炢‚©‚àB6-06☆4.6DOUBLE3323372264824DYNA_606.mcs
DYNAMITE RAVET.NAOYA‚c‚d‚m‚f‚d‚q6-07☆5.4SINGLE4224502875424DYNA_607.mcs
DYNAMITE RAVEM.TOKUMOTO”÷–­‚É‚P‚U•ª“ü‚Á‚Ă܂·6-08☆5.4SINGLE3473372364151DYNA_608.mcs
DYNAMITE RAVE???_19Œ´‹È‚ªŽc‚Á‚Ă܂·B‘½•ªB6-09☆5.7SINGLE4674503245723DYNA_609.mcs
DYNAMITE RAVEYuki Ichikawa¡‰ñƒCƒ`ƒIƒVIŠæ’£‚Á‚ĉº‚³‚¢I6-10☆6.9SINGLE4094122785075DYNA_610.mcs
DYNAMITE RAVEYuki IchikawaƒCƒ`ƒIƒVƒVƒ“ƒOƒ‹‚̃_ƒuƒ‹”ÅB6-11☆5.1DOUBLE4023752744926DYNA_611.mcs
DYNAMITE RAVE???_20‚U‚Q‚Rì7-01☆6.2SINGLE4116002805448DYNA_701.mcs
DYNAMITE RAVEKAZUTAKA SUEDAƒtƒ‹ƒRƒ“ƒ{‚ª‚Å‚«‚é‚©‚ÈH7-02☆5.7SINGLE555600378617DYNA_702.mcs
DYNAMITE RAVESATOSHI M.ƒx[ƒX‚Í‚aD‚lD‚Q‚c‚wH7-03☆6.3SINGLE2944122004665DYNA_703.mcs
DYNAMITE RAVED KYUTOKUˆê’¼ü‚Å‚·B7-04☆4.1SINGLE2913001983824DYNA_704.mcs
DYNAMITE RAVET.OGINO‘º”öìA‚ª‚ñ‚΂肽‚Ü‚¦I8-01☆4.5COUPLE416/416562283582DYNA_801.mcs
DYNAMITE RAVEY.SAWADA‚P‚O‚®‚ç‚¢‚Å‚·‚©H8-02☆4.6DOUBLE3543372414126DYNA_802.mcs
DYNAMITE RAVEKOHEI.TƒnƒW‚¯‚Ü‚µ‚傤B8-03☆5.1SINGLE2456001675322DYNA_803.mcs
e motionJ.GOUKEƒ‰ƒXƒg‚ª‚P‚U•ª˜A‘Å“ü‚Á‚Ă܂·2-01☆4.9SINGLE1454351464424EMOT_201.mcs
e motionY.SAKAI“¯Žž“¥‚Ý‚ª‚ç‚݂̂W•ª‘½‚µ2-02☆4.4SINGLE1702901714629EMOT_202.mcs
e motionH.OIKAWA‹È‚Ì•µˆÍ‹C‚ɇ‚킹‚Ă݂܂µ‚½B4-01☆5.8SINGLE2105072115344EMO__401.mcs
e motionIchinose Shinta‰¹‚ɇ‚킹‚ê‚΂©‚ñ‚½‚ñ‚Å‚·6-01☆4.9SINGLE1553621564629EMOC1601.mcs
EAT YOU UPA.NAOKI‚lD‹g“c@ìF‚j‚`‚s‚b‚g‚n|‚`1-01☆3.6DOUBLE2692602134017EATY_101.mcs
EAT YOU UPF.ATHUSHI‘«Šµ‚炵‚ÉB3-01☆4.3SINGLE2942932335519EATY_301.mcs
EAT YOU UPY.ISHIDA㋉ŽÒ‚ÌŒP—û—p‚É‚¨‚·‚·‚߂ł·B3-02☆4.5SINGLE2943582335214EATY_302.mcs
EAT YOU UPSEIJI W.ƒ}ƒjƒAƒbƒN“ü–å•Ò‚Á‚ÄŠ´‚¶5-01☆5.4SINGLE2533262015744EAT__501.mcs
EAT YOU UPDAISUKE.H‚W‚O”N‘ã‚ðˆ¤‚»‚¤‚æH5-02☆4.1SINGLE2703262144614EAT__502.mcs
EAT YOU UPYasunobu Okuda‰`’†‹‰ŽÒŒü‚¯‚©‚ÈH7-01☆4.0SINGLE1872601485816EATY_701.mcs
EL RITMO TROPICALYAMADA HIDETOSHI‚a‚`‚r‚h‚b‚©‚ç쬂µ‚Ü‚µ‚½1-01☆4.4SINGLE2152651622258ELRI_101.mcs
EL RITMO TROPICALYASUHIRO.O‚Ý‚ñ‚ȂŃTƒ“ƒoƒ_ƒ“ƒXi“äj1-02☆3.6SINGLE2772652093817ELRI_102.mcs
EL RITMO TROPICALMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆5.2SINGLE2262991704851RITMO201.mcs
EL RITMO TROPICALHIROKI TAKAHASHIƒTƒr‚ª‘åD•]I2-02☆3.9SINGLE264332199594RITMO202.mcs
EL RITMO TROPICALK.SUGAI‚r‚g‚o‚q‚s‚l‚O‚P^‚X^—¼‘«’ˆÓ2-03☆7.5SINGLE25129918956185RITMO203.mcs
EL RITMO TROPICALM.Yamamotoƒ‰ƒeƒ“‚̃mƒŠ‚Å3-01☆5.1SINGLE2622991974547ELRI_301.mcs
EL RITMO TROPICALTAKAHIRO.MŠÈ’P‚¾‚Á‚½‚è“‚©‚Á‚½‚èc3-02☆2.1SINGLE1562321171217ELRI_302.mcs
EL RITMO TROPICALH.OIKAWA‚P‚U•ª‚ð‘‚₵‚Ă݂܂µ‚½B4-01☆5.7SINGLE2942992225162ELRI_401.mcs
EL RITMO TROPICALMURAI MITSURU‚k‚–D’á‚߂ł·B5-01☆3.7SINGLE277299209622RITMO501.mcs
EL RITMO TROPICALKazuhiko Chiba•Ï‘¥‚ªŒ™‚¢‚Èl‚ɂ͂«‚‚¢‚©‚àB5-02☆4.8SINGLE2812992125831RITMO502.mcs
EL RITMO TROPICALKotaro Kagawa–îˆó‚̃J[ƒjƒoƒ‹B7-01☆4.5SINGLE410332309597ELRI_701.mcs
EL RITMO TROPICALKOHEI.T–¾‚é‚­Šy‚µ‚­Œ³‹C—Ç‚­B8-01☆5.5SINGLE3333322516738ELRI_801.mcs
END OF THE CENTURYTOMOKAZU-M‚S•ªƒŠƒYƒ€ƒx[ƒX1-01☆3.0DOUBLE241299166541EOTC_101.mcs
END OF THE CENTURYYAMADA HIDETOSHI‚`‚m‚n‚s‚g‚d‚q‚̕ʂu‚…‚’D1-02☆6.1SINGLE3273422254571EOTC_102.mcs
END OF THE CENTURYSINOMIYA.Y‚Q‚P¢‹I‚Éì‚è‚Ü‚µ‚½1-03☆5.6SINGLE4424273044630EOTC_103.mcs
END OF THE CENTURYKEISUKE.MÅŒã‚Ì’§íóI1-04☆4.1SINGLE451342310473EOTC_104.mcs
END OF THE CENTURYEIJI O.‹È‚É—Š‚Á‚Ă܂·1-05☆5.7SINGLE3683422533763EOTC_105.mcs
END OF THE CENTURYA.NAOKI‚lD‹g“c@ìF‚r‚d‚h‚j‚h‚l‚`‚Q1-06☆5.1DOUBLE3003422062954EOTC_106.mcs
END OF THE CENTURY???_01Ž©M‚Ì‚ ‚é•ûA‘«‚łǂ¤‚¼1-07☆6.0SINGLE3853842654157EOTC_107.mcs
END OF THE CENTURYTADASHI.UMISHIMAŒ³‚̋Ȃ̂³‚ç‚Ƀ}ƒjƒAƒbƒN”łł·1-08☆7.6SINGLE36534225142139EOTC_108.mcs
END OF THE CENTURYT.Hirano¢‹I––ƒlƒCƒr[2-01☆6.1SINGLE4073422804465EOTC_201.mcs
END OF THE CENTURYHAJIME.I‚Ú‚æ‚ñìF“K“x‚È“ïˆÕ“x2-02☆5.8SINGLE3383422334065EOTC_202.mcs
END OF THE CENTURYSUGAWARA TAKASHI‰¹‚ɇ‚킹‚ê‚ΊȒP‚¾‚ÆŽv‚¢‚Ü‚·B2-03☆6.6SINGLE2983422054391EOTC_203.mcs
END OF THE CENTURYK.SUGAI‚r‚g‚o‚d‚n‚b‚O‚Q^‚X2-04☆5.0SINGLE3953422724036EOTC_204.mcs
END OF THE CENTURYK.SUGAI‚r‚g‚o‚d‚n‚b‚O‚P^‚W2-05☆5.4SINGLE3613422483555EOTC_205.mcs
END OF THE CENTURYH.TARUMIƒr[ƒgƒ}ƒjƒA“I‚È‚¨‚à‚µ‚낳2-06☆6.8SINGLE31734221839103EOTC_206.mcs
END OF THE CENTURYKOSE Fƒ€ƒYƒC‚â‚ç‚©‚ñ‚½‚ñ‚â‚ç2-07☆4.7DOUBLE3213422212546EOTC_207.mcs
END OF THE CENTURYSATOSHI ARIGA‚r‚s‚rI‘æŽO’eB•§Œê“ǂ݂µ‚Ä‚Ë3-01☆5.8SINGLE3213422213074EOTC_301.mcs
END OF THE CENTURYTSUJI JUNNYAŽ©Mì‚Å‚·IƒRƒ“ƒ{”‚É‚à’–ÚI3-02☆6.6SINGLE4445133065159EOTC_302.mcs
END OF THE CENTURYN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-03☆7.7SINGLE40534227941186EOTC_303.mcs
END OF THE CENTURYY.SAKAIŒã”¼‚̃‰ƒbƒv‚ÌI‚í‚è‚ ‚½‚肪ƒJƒM3-04☆4.2DOUBLE3273422253422EOTC_304.mcs
END OF THE CENTURYK.WAKAKI‚͂₷‚¬‚é3-05☆4.0SINGLE2353421622526EOTC_305.mcs
END OF THE CENTURYM.Yamamoto޾‘–Š´3-06☆5.3SINGLE4023422724837EOTC_306.mcs
END OF THE CENTURYYosuke MoritaŽÅŒ´’¼‚³‚ñì3-07☆7.2SINGLE3745132574790EOTC_307.mcs
END OF THE CENTURYNAOyuki-Tachiharaƒ‰ƒXƒg‚Ì‚W•ª‚Ì‘ê‚ÍŒðŒÝ‚É“¥‚߂܂·3-08☆6.7SINGLE3703422554987EOTC_308.mcs
END OF THE CENTURYRyohei Sekiƒsƒ‡ƒ“ƒsƒ‡ƒ“Šy‚µ‚ñ‚ʼnº‚³‚¢‚Ü‚¹B3-09☆6.6SINGLE3253422244191EOTC_309.mcs
END OF THE CENTURYT.TSUKAMOTOŒ|”\l‚ÍŽ•‚ª–½4-01☆4.9SINGLE3703422555027EOTC_401.mcs
END OF THE CENTURYHIDEAKI KANEDAŠX‚É‘¼‚Ì—lX‚ȋȂ̑«•„‚ð—¬—p4-02☆5.8SINGLE4023422774554EOTC_402.mcs
END OF THE CENTURY???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆5.2SINGLE2913422002167EOTC_501.mcs
END OF THE CENTURYS.KUROYANAGI‚s‚q‚h‚b‚j‚æ‚è­‚µ—}‚¦–Ú‚Å‚·5-02☆5.7SINGLE2732561882796EOTC_502.mcs
END OF THE CENTURYSEIJI W.“¯Žž“¥‚݂ɂ͖@‘¥‚ª‚ ‚è‚Ü‚·5-03☆6.7SINGLE3003422064396EOTC_503.mcs
END OF THE CENTURYTomoyuki Takahashi‚s‚q‚h‚b‚j‚Ì”­“WŒ`B5-04☆5.2SINGLE3533422434441EOTC_504.mcs
END OF THE CENTURYKazuhiko Chiba˜‚Ђ˂è—{¬ƒ}ƒVƒ“B5-05☆4.7SINGLE3563422453730EOTC_505.mcs
END OF THE CENTURYSHINYA.KŒ‹\‹l‚Ü‚Á‚Ă邯‚ÇŠy‚µ‚¢‚æ5-06☆5.6SINGLE3804272624042EOTC_506.mcs
END OF THE CENTURYHIGASHI SENSHIROU‚¯‚Á‚±‚¤‚¢‚¢B5-07☆6.7SINGLE4225132904371EOTC_507.mcs
END OF THE CENTURYYASUSHI.F‚Q‚c‚w•—II6-01☆5.5SINGLE3783422605343EOTC_601.mcs
END OF THE CENTURYKENJI ENDA‚Ƃɂ©‚­‘Ì—Í6-02☆6.9SINGLE36234224938104EOTC_602.mcs
END OF THE CENTURYMITHUTOSHI NAKATA–¼‹È‚Å‚·B6-03☆6.3SINGLE3483422394377EOTC_603.mcs
END OF THE CENTURYMichitaka Kimura‚W•ª“¯Žž“¥‚ÝEEE6-04☆8.3SINGLE41342728448179EOTC_604.mcs
END OF THE CENTURYYuki IchikawaƒWƒƒƒ“ƒvŒn“‚ª’b‚í‚è‚Ü‚·B6-05☆7.0SINGLE4404273034773EOTC_605.mcs
END OF THE CENTURYSATOSHI HORIUCHIƒIƒ‚ƒe‚ƃEƒI‚ð•·‚«•ª‚¯‚Ä7-01☆5.3SINGLE3323422283554EOTC_701.mcs
END OF THE CENTURYFumihiro Ibuki‚±‚ê‚àÅ‹­B7-02☆4.8SINGLE4133422844622EOTC_702.mcs
END OF THE CENTURYSATOSHI M.‚Q‚‚̃‚[ƒh‚ðØ‚è‘Ö‚¦‚ëI7-03☆6.2SINGLE3473422393880EOTC_703.mcs
END OF THE CENTURYD.fujisaki“¥‚݂₷‚­‚È‚Á‚Ă܂·B7-04☆5.3SINGLE4123422844241EOTC_704.mcs
END OF THE CENTURYF.ATHUSHI“Á‚ɂȂµ7-05☆5.0SINGLE3633422504038EOTC_705.mcs
END OF THE CENTURYShimamoto Yuukiʼn‚͓‚­‚µ‚悤‚ÆŽv‚Á‚½8-01☆5.6SINGLE4405553034532EOTC_801.mcs
END OF THE CENTURYShimamoto Satoshi‚±‚í‚ꂽ•ˆ–Ê8-02☆4.5DOUBLE4303422964614EOTC_802.mcs
era(nostalmix)TOMOKAZU-Mƒ_ƒWƒƒƒŒAЦ‚¢EEE1-01☆4.8DOUBLE391585314592ERA__101.mcs
era(nostalmix)Takashi.K˜A‘Å‚ª‚æ‚èŽè‹­‚­‚È‚Á‚Ă܂·1-02☆5.4SINGLE3894053124921ERA__102.mcs
era(nostalmix)T.MURATA‹È‚ɇ‚킹‚Ä‚à‚è‚ ‚ª‚è‚Ü‚·B1-03☆5.1SINGLE3164052584722ERA__103.mcs
era(nostalmix)YASUHIRO.OƒXƒ[‚Ì•”•ª‚ɘA‘±‚P‚U•ª‚ð”z’u1-04☆4.9SINGLE3397202774417ERA__104.mcs
era(nostalmix)YAMADA HIDETOSHI¬’·‚ÆŠ‘ÞB‚È‚¨Žc‚éŠó–]EEEB1-05☆5.0SINGLE3073602463441ERA__105.mcs
era(nostalmix)SINOMIYA.Y’x‚¢•”•ªH•v‚µ‚Ü‚µ‚½1-06☆5.7COUPLE462/4626303715312ERA__106.mcs
era(nostalmix)SHIBATA JUNICHI‚W•ª‚̘A‘±‚Å‚·‚ªEEEI1-07☆6.2SINGLE518720416568ERA__107.mcs
era(nostalmix)MASAYA.TAGUTU‹x‚Ü‚¹‚Ü‚¹‚ñ1-08☆5.5SINGLE4094503285219ERA__108.mcs
era(nostalmix)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚k‚h‚s‚s‚k‚d1-09☆1.9SINGLE183180149032ERA__109.mcs
era(nostalmix)???_01‰ºŽè‚·‚è‚áEEEuŽEIƒfƒXB1-10☆5.2SINGLE4077203275311ERA__110.mcs
era(nostalmix)TADASHI.UMISHIMA˜A‘Å‚ª‚«‚Ñ‚µ‚¢‚©‚à1-11☆6.2SINGLE3555402855249ERA__111.mcs
era(nostalmix)T.HiranoƒgƒŠƒbƒv‚Ì‹tP2-01☆4.0SINGLE2733602193314ERA__201.mcs
era(nostalmix)Masaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-02☆4.8SINGLE350540281539ERA__202.mcs
era(nostalmix)Y.IMAIƒ‰ƒXƒg‚͘A‘±“¯Žž“¥‚ÝI2-03☆6.5SOLO2243151805089ERA__203.mcs
era(nostalmix)YUKIHIRO.A—¬‚ê‚𖳎‹‚µ‚½ƒXƒeƒbƒv‚É’ˆÓB2-04☆5.1SINGLE3345852684622ERA__204.mcs
era(nostalmix)HIROSAWA HIDEO‚©‚Ȃ肂©‚ê‚Ü‚·2-05☆5.1SINGLE3985853195210ERA__205.mcs
era(nostalmix)S.ADACHI‚±‚Ì•s‹µ‚ð¶‚«Žc‚êI2-06☆5.9SINGLE4586303685618ERA__206.mcs
era(nostalmix)KEISUKE.SƒIƒtƒBƒVƒƒƒ‹‚Ì•û‚ª—x‚è‚â‚·‚¢‚©‚à2-07☆4.9SINGLE3684502954613ERA__207.mcs
era(nostalmix)H.BANDOŠy‚µ‚­‚È‚é‚æ‚¤‚É‚µ‚Ă݂½‚‚à‚èB2-08☆5.9SINGLE3156302534746ERA__208.mcs
era(nostalmix)H.TARUMIŌオƒtƒ‹ƒRƒ“ƒ{‚ÌŒ®2-09☆5.3SINGLE3527202825123ERA__209.mcs
era(nostalmix)FUMIHIRO ISHIWATAƒvƒŒÃìBŽž‘ã‚ðA‚»‚ÌŽè‚É2-10☆5.8SINGLE3315852654941ERA__210.mcs
era(nostalmix)WATANABE JUN•\Œ»‚µ‚«‚ê‚Ü‚¹‚ñ‚Å‚µ‚½i—Üj3-01☆7.3SINGLE4687203765755ERA__301.mcs
era(nostalmix)WATANABE JUN‚±‚ê‚à‚Ü‚ñ‚ÜEEEiƒXƒCƒ}ƒZƒ“j3-02☆5.1SINGLE436630350535ERA__302.mcs
era(nostalmix)YUSUKE.K‹x‚Ý‚ª‚È‚¢‚̂ł‚©‚ê‚Ü‚·3-03☆5.8SINGLE4086303275226ERA__303.mcs
era(nostalmix)F.ATHUSHI“Á‚ɂȂµB3-04☆5.6DOUBLE3496752804238ERA__304.mcs
era(nostalmix)N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-05☆6.3SINGLE4677203755726ERA__305.mcs
era(nostalmix)K.TAKEMURA‚È‚ª[‚¢˜A‘Å‚ª‘±‚«‚Ü‚·B3-06☆5.5SINGLE463720372576ERA__306.mcs
era(nostalmix)???_04‚k‚–‚X@ƒlƒ^B^‚l‚`‚q‚j3-07☆6.0SINGLE3756753015139ERA__307.mcs
era(nostalmix)N.KAZUMA“Æ“Á‚ÈƒŠƒYƒ€‚ð–¡‚í‚Á‚Ä‚­‚¾‚³‚¢B3-08☆5.5SINGLE3927203154526ERA__308.mcs
era(nostalmix)T.TSUKAMOTOƒGƒ‰‚Á‚ČċzŠíН‚̂͂¸c4-01☆5.4SINGLE3834503075421ERA__401.mcs
era(nostalmix)Y.KAWABEŋߋ󂫂ª‚ ‚é‚Ì‚ª‘½‚¢4-02☆4.5SINGLE2643602124321ERA__402.mcs
era(nostalmix)H.OIKAWAƒr[ƒ}ƒj‚Á‚Û‚­‚µ‚Ü‚µ‚½B4-03☆6.7SINGLE4495853605542ERA__403.mcs
era(nostalmix)T.FukazawaÜ‚ê‚ÎŒ©‚¦‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB4-04☆6.5SINGLE3005402415067ERA__404.mcs
era(nostalmix)Daisuke K.ƒr[ƒgƒ}ƒjƒA•ˆ–ÊŠî’²B‚k‚–D‚X{4-05☆4.8DOUBLE368540295489ERA__405.mcs
era(nostalmix)t.mizunoŒ¸‘¬•”•ª‚ªEEE4-06☆4.1SINGLE286540229463ERA__406.mcs
era(nostalmix)SAEKO.T–îˆó—¬‘¬•ω»Žž‚É’ˆÓ4-07☆5.0DOUBLE3815853065111ERA__407.mcs
era(nostalmix)TAISHI K.‘S‚ÄŒðŒÝ‚ɂӂ߂邩‚ÈH4-08☆5.8SINGLE4287203435023ERA__408.mcs
era(nostalmix)???_09™~‚T4-09☆7.5SINGLE5687204566223ERA__409.mcs
era(nostalmix)Natsumi.Kobayashiƒ`ƒƒƒŒƒ“ƒW‚̃gƒŠƒbƒN‚Ƃ͈Ⴄ‚æ5-01☆5.6SINGLE500720401561ERA__501.mcs
era(nostalmix)Natsumi.Kobayashi‚Uƒpƒlƒ‹‚ÍA‚ ‚¦‚Äì‚邾‚¯‚Å‚·5-02☆5.8SOLO501720402564ERA__502.mcs
era(nostalmix)Kei.U•s‹K‘¥‚È‚W•ª‚ª‚Æ‚­‚¿‚傤‚Å‚·B5-03☆5.0SINGLE3004502414126ERA__503.mcs
era(nostalmix)H.Kondoh‚W{5-04☆5.3DOUBLE3154052535225ERA__504.mcs
era(nostalmix)K.GOTOU‰Ê‚½‚µ‚ăNƒŠƒA‚Å‚«‚é‚©‚ÈH5-05☆5.2SINGLE3947203165215ERA__505.mcs
era(nostalmix)DAISUKE.HŽž‘ã‚ð‹ì‚¯‰ñ‚êII5-06☆5.6SINGLE4307203455318ERA__506.mcs
era(nostalmix)URABE HIROKI‚r‚s‚d‚o ‚l‚h‚w‚Á‚Û‚¢‚Å‚·B5-07☆5.3SINGLE459720368515ERA__507.mcs
era(nostalmix)T.MAMIYA¨‚¢‚Åì‚Á‚½‚̂ł܂¾‚Ü‚¾‚Å‚·cB5-08☆5.7SINGLE3774053025032ERA__508.mcs
era(nostalmix)???_11‚d‚’‚‚̉ü‘•ƒo[ƒWƒ‡ƒ“I5-09☆4.6SINGLE391675314493ERA__509.mcs
era(nostalmix)K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-10☆4.9SINGLE383630307518ERA__510.mcs
era(nostalmix)Satoru Hata‚±‚̋Ȃ͂½‚ß‘§‚ð‚‚­’ö”ü‚µ‚¢B5-11☆8.3SINGLE4677203755590ERA__511.mcs
era(nostalmix)HIROAKI.MATSUUCHI‚¯‚Á‚±‚¤‚¨‹C‚É“ü‚è6-01☆3.8SINGLE2642702122335ERA__601.mcs
era(nostalmix)YASUSHI.F‚r‚s‚d‚o@‚l‚h‚w‚ÍH6-02☆5.2SINGLE3605402895219ERA__602.mcs
era(nostalmix)S.SATAKE‘¬“x•ω»‚Æ‚©ŠÖŒW‚È‚¢‚Å‚·6-03☆6.4SINGLE4487203605335ERA__603.mcs
era(nostalmix)MITHUTOSHI NAKATAƒ}ƒWŽ€‚˂܂·B6-04☆6.9SINGLE4967203985833ERA__604.mcs
era(nostalmix)???_17‰´“I—DGÜiÎj6-05☆4.8SINGLE415585339550ERA__605.mcs
era(nostalmix)Toshihide Fujitaƒzƒ“ƒg‚É•sŽv‹c‚ȋȂł·‚æ‚ËB6-06☆4.5DOUBLE2694502164611ERA__606.mcs
era(nostalmix)H.MATSUDAƒ€ƒY‚ß‚Éo—ˆ‚Ü‚µ‚½B6-07☆6.3SINGLE4527203635430ERA__607.mcs
era(nostalmix)H.Yamaguchi‚Ç‚¤‚Å‚µ‚åH6-08☆5.1SINGLE2944052364426ERA__608.mcs
era(nostalmix)Yuki Ichikawa‘¼‚à‚»‚¤‚Å‚·‚ªAŒðŒÝ‚É“¥‚߂܂·B6-09☆6.4SINGLE4887203925721ERA__609.mcs
era(nostalmix)N_WatanabeŒã”¼‚ʼnñ‚ê‚邯ƒƒ`ƒƒŠiD—Ç‚¢I7-01☆4.6SINGLE407720327501ERA__701.mcs
era(nostalmix)TAKU YAMAMOTO–¼‘O‚ÌŠ„‚ɃXƒLƒbƒv‚͈ꕔ7-02☆5.4SINGLE4217203385412ERA__702.mcs
era(nostalmix)Ryosuke.T¡‚͉¹ƒQ[‚ÌŽž‘ãB7-03☆4.7SINGLE414630332580ERA__703.mcs
era(nostalmix)Yasunobu Okuda‚…‚‚‚‚”‚ˆ‚™‚à“ü‚ê‚Ăقµ‚¢‚ËB7-04☆4.4SINGLE342540274485ERA__704.mcs
era(nostalmix)DAISUKE KAMISAKAƒRƒŒ‚ªˆê”Ô‹ê˜J‚µ‚Ü‚µ‚½B7-05☆4.3SINGLE379495304490ERA__705.mcs
era(nostalmix)???_20‚ӂ߂܂¹‚ñ@‚j‚d‚hì7-06☆6.4SINGLE4144053324845ERA__706.mcs
era(nostalmix)TAKEDA.SYOUHEIƒŠƒYƒ€•ö‚µ7-07☆4.6SINGLE373495299466ERA__707.mcs
era(nostalmix)TAKEDA.SYOUHEIƒr[ƒ}ƒjƒeƒCƒXƒg7-08☆6.4COUPLE406/4066303265146ERA__708.mcs
era(nostalmix)NIGHTMARE‚‚©‚ê‚Ü‚·7-09☆5.8SINGLE4003603214840ERA__709.mcs
era(nostalmix)SATOSHI HORIUCHIŒŽ‚Ìã‚É‚¢‚邿‚¤‚É7-10☆4.8SINGLE3144952525114ERA__710.mcs
era(nostalmix)N.NAGANO–îˆó‚ÅuƒRƒiƒ~v‚ð•\Œ»‚µ‚Ü‚µ‚½B7-11☆4.8SINGLE3535402834713ERA__711.mcs
era(nostalmix)D.fujisakiŽE‚·‹C‚Å‚·‚©Hi”šj7-12☆6.5SINGLE4957203975524ERA__712.mcs
era(nostalmix)K.HIRAKAWA‚Q‚c‚w‚ðƒCƒ[ƒW‚µ‚Ü‚µ‚½7-13☆5.2SINGLE427630343557ERA__713.mcs
era(nostalmix)F.ATHUSHI‘«Šµ‚炵‚ÉB7-14☆4.4SINGLE3124952503912ERA__714.mcs
era(nostalmix)K.Itou‚»‚̂܂܂ł·8-01☆5.9SINGLE4175853355426ERA__801.mcs
era(nostalmix)K.ItouŒÄ‹z8-02☆6.3SINGLE3795403045149ERA__802.mcs
era(nostalmix)???_22‚Q‚c‚w‚È•ˆ–ʂł·B„’è‚k‚u‚Xª8-03☆4.7SINGLE395540317504ERA__803.mcs
FLASHDANCE(WHAT A FEELING)YAMADA HIDETOSHI‚`‚m‚n‚s‚g‚d‚q‚̕ʂu‚…‚’D1-01☆4.8SINGLE2393341953442FLAS_101.mcs
FLASHDANCE(WHAT A FEELING)T_YAMADA‚¯‚Á‚±[“‚¢EEEƒJƒ‚H1-02☆5.6DOUBLE3055012494144FLAS_102.mcs
FLASHDANCE(WHAT A FEELING)HIROKI.NƒXƒLƒbƒv‚ª‚Å‚«‚ê‚ΊȒP‚Å‚·B1-03☆6.2SINGLE3044592495553FLAS_103.mcs
FLASHDANCE(WHAT A FEELING)KEISUKE.M‚ ‚È‚½‚͂ǂ¿‚炪D‚ÝH1-04☆7.2COUPLE348/2574182855084FLAS_104.mcs
FLASHDANCE(WHAT A FEELING)???_01‚±‚ꂪ‚È‚©‚È‚©EEE1-05☆4.7DOUBLE3333762725113FLAS_105.mcs
FLASHDANCE(WHAT A FEELING)J.GOUKEŽåù—¥‚ð“¥‚à‚¤ƒVƒŠ[ƒY‚S2-01☆5.4SINGLE3105012545228FLASH201.mcs
FLASHDANCE(WHAT A FEELING)Kubota Mamoru‘f‘‚­“®‚­‚±‚Æ‚ªƒ|ƒCƒ“ƒg2-02☆3.8SINGLE2242921832133FLASH202.mcs
FLASHDANCE(WHAT A FEELING)HAJIME.I‚Ú‚æ‚ñìFâ–­‚È‚P‚U•ª‚͈ʒu2-03☆3.8SINGLE320376262382FLASH203.mcs
FLASHDANCE(WHAT A FEELING)K.SUGAI‚r‚g‚o‚e‚k‚`‚O‚P^‚X^˜A‘Å’ˆÓ2-04☆5.4SINGLE3013342463459FLASH204.mcs
FLASHDANCE(WHAT A FEELING)JUN O.u‚s‚`‚m‚y‚r‚`‚`‚kv‘«‚V3-01☆5.3SINGLE3113762544437FLAS_301.mcs
FLASHDANCE(WHAT A FEELING)WATANABE JUN‚à‚Á‚Æ‚d‚c‚h‚s‚ÌË”\‚ª‚ ‚ê‚Îc3-02☆5.2SINGLE3453762824826FLAS_302.mcs
FLASHDANCE(WHAT A FEELING)T.YASUDA‚¿‚å‚Á‚ƃLƒc‚©‚Á‚½‚©‚È4-01☆5.4SINGLE3504592864826FLASH401.mcs
FLASHDANCE(WHAT A FEELING)Kouki.Uƒrƒ~ƒ‡[‚ɃAƒŒƒ“ƒW4-02☆5.5SINGLE2914182385632FLASH402.mcs
FLASHDANCE(WHAT A FEELING)Daisuke K.ŒöŽ®‚l‚r‚oŠg’£B‚k‚–D‚W4-03☆5.7DOUBLE2873342353965FLASH403.mcs
FLASHDANCE(WHAT A FEELING)T.MAMIYA‹CŽ‚¿‚æ‚­•‘‚Á‚Ä‚­‚¾‚³‚¢‚ËB5-01☆5.6SINGLE2393341952380FLASH501.mcs
FLASHDANCE(WHAT A FEELING)M.TOKUMOTO‘S‘Ì‚ð’Ê‚µ‚Ä“¯‚¶ƒŠƒYƒ€‚Å‚·6-01☆6.0SINGLE3463342834164FLASH601.mcs
FLASHDANCE(WHAT A FEELING)H.Yamaguchi—Fl—p‚Éì‚Á‚½ƒ‚ƒmBÅŒã‚ÍŽï–¡6-02☆5.1SINGLE2994592455421FLASH602.mcs
FLASHDANCE(WHAT A FEELING)Yuki Ichikawaƒtƒ‰ƒbƒVƒ…ƒ_ƒ“ƒXÅ‚Iiˆáj6-03☆5.4SINGLE3694183025023FLASH603.mcs
FLASHDANCE(WHAT A FEELING)SEIJI TOUMA‚т݂å[‚É‚ ‚Á‚Ä‚éEEE7-01☆5.7SINGLE3314182714838FLAS_701.mcs
FLASHDANCE(WHAT A FEELING)YOSHIHIKO MOTOYASUÅŒã‚É’ˆÓI7-02☆6.2SINGLE2994592455154FLAS_702.mcs
FLASHDANCE(WHAT A FEELING)K.HIRAKAWAˆê”Ôl‹C‚ª‚‚©‚Á‚½‹È‚Å‚·7-03☆4.8SINGLE402459329561FLAS_703.mcs
FLASHDANCE(WHAT A FEELING)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.6SINGLE2853342334824FLAS_801.mcs
FLASHDANCE(WHAT A FEELING)KOHEI.TƒmƒŠ—Ç‚­‚¢‚«‚Ü‚µ‚傤I8-02☆5.9SINGLE3354592745737FLAS_802.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)murai mitsuru‰‚ß‚Äì‚Á‚½‚Uƒpƒlƒ‹1-01☆5.5SOLO3755102745131FOLL_101.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)KEISUKE.MÅŒã‚̘A‘Å‚ªŠÌ‚Å‚·B1-02☆5.5SINGLE3143402304055FOLL_102.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)YOU.W’‹AHŽ–‚Ì‘O‚É‚±‚ê‚ð‚â‚낤I2-01☆6.5SINGLE4646803405641FOLLO201.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)KEISUKE.S‹Œ‚R‚’‚„‚Æ­‚µƒJƒu‚Á‚½‚©‚ÈEEH2-02☆5.5SINGLE3635102664634FOLLO202.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)K.SUGAI‚r‚g‚o‚e‚k‚v‚O‚P^‚W^—¼‘«’ˆÓ2-03☆6.7SINGLE3133402294097FOLLO203.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)TSUJI JUNNYA‚±‚ê‚ð‚â‚ê‚Α«‚ª—¼—˜‚«‚ɂȂê‚éI3-01☆6.1SINGLE4114253014945FOLL_301.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)N.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-02☆5.5SINGLE4156803045821FOLL_302.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)???_07‚½‚­‚³‚ñ‰ñ‚ë[4-01☆5.0SINGLE3383402473345FOLL_401.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)N.MIMURAVƒ}ƒjƒAƒbƒN‚æ‚è‚ÍŠÈ’P‚Å‚·4-02☆5.1SINGLE3533402583841FOLL_402.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)K.GOTOU–ì«‚ÌuƒJƒ“v‚Åì‚è‚Ü‚µ‚½5-01☆4.0SINGLE347340254449FOLL_501.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)HIROAKI.MATSUUCHI‚¯‚Á‚±‚¤‚¢‚¢o—ˆ‚¾‚ÆŽv‚¢‚Ü‚·B6-01☆4.5SINGLE2872972102252FOLL_601.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)Keisuke Ogiwaraƒ}ƒ^[ƒŠ‚ƃh[ƒ]6-02☆4.1SINGLE2963402164214FOLL_602.mcs
FOLLOW THE SUN(90 IN THE SHADE MIX)Yasunobu OkudaŠy‚µ‚³‚ð’Ç‹‚µ‚Ă܂·B7-01☆5.8SINGLE3774252765736FOLL_701.mcs
FREAKYTOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆2.4DOUBLE2392391591515FREA_401.mcs
FREAKYHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆4.0SINGLE1711991131474FREA_402.mcs
FREAKYA.NAOKI‚lE‹g“c ìFƒBƒ„ƒzƒz``ƒCII5-01☆6.5DOUBLE3003591992799FREAK501.mcs
FREAKYYOSHiHiKO KAJiYAŽÀ‚Í‚±‚ê‚ɂ͂ ‚é”é–§‚ª6-01☆7.6SINGLE39647926344105FREAK601.mcs
FREAKYK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.9SINGLE3463592303437FREA_801.mcs
FURUHATA'S THEMETOMOKAZU-M‚s‚q‚h‚b‚jƒvƒŒƒCƒ„[‚É‚¨Š©‚ßI1-01☆2.9DOUBLE2212551531721FURU_101.mcs
FURUHATA'S THEMET.MURATAƒmƒŠdŽ‹‚Å‚·B1-02☆6.1SINGLE3884252704356FURU_102.mcs
FURUHATA'S THEMET.MURATAƒgƒŠƒbƒN‚Ìl‚ɃIƒXƒXƒB1-03☆5.4SINGLE3333402323359FURU_103.mcs
FURUHATA'S THEMEYAMADA HIDETOSHIƒAƒNƒZƒ“ƒg‚P‚U•ª1-04☆5.6SINGLE3653402545049FURU_104.mcs
FURUHATA'S THEMEKazuki.KoushiŒÃ”¨Fu‚±I‚±‚ê‚ÍIv1-05☆9.2SOLO49868034671174FURU_105.mcs
FURUHATA'S THEMESINOMIYA.Y‘S˜bŒ©‚Ü‚µ‚½1-06☆5.2SINGLE4625103215511FURU_106.mcs
FURUHATA'S THEMEYASUHIRO.Oƒ}ƒjƒAƒbƒN‚̕ʃo[ƒWƒ‡ƒ“1-07☆4.8SINGLE3983402775520FURU_107.mcs
FURUHATA'S THEMEA.NAOKI‚lD‹g“c@ìF‚h‚l‚`‚h‚y‚t‚l‚h1-08☆5.5SINGLE3486802426228FURU_108.mcs
FURUHATA'S THEMET.TAMAI“®‚«‚ÌŒÀŠE‚É’§íII2-01☆5.3DOUBLE3803402645039FURU_201.mcs
FURUHATA'S THEMEFUMIHIRO ISHIWATAƒvƒŒÃìB–îˆó‚Æ‚Ì푈2-02☆6.4SINGLE3573822484568FURU_202.mcs
FURUHATA'S THEMETAKEHIRO-O‚c‚`‚c‚`‚h‚r‚l@‹•–³“IŽå‹`3-01☆6.8SINGLE4886803406645FURU_301.mcs
FURUHATA'S THEMEF.ATHUSHIˆê‹È–ÚA“ñ‹È–ÚŒµ‹ÖB3-02☆5.5SINGLE4333823014632FURU_302.mcs
FURUHATA'S THEMEK.TAKEMURA‚È‚ñ‚Æ‚©‚Å‚·B3-03☆7.0SINGLE4135102876071FURU_303.mcs
FURUHATA'S THEMEDAISUKE MATSUDA‚l‚`‚m‚h‚`‚b‚ðˆÕ‚µ‚­‚q‚d‚l‚h‚wI3-04☆3.1SINGLE2802551952913FURU_304.mcs
FURUHATA'S THEMEN.KAZUMAƒAƒz‚³‚ÉŠ´“®‚µ‚ÄII3-05☆6.5SINGLE4225102946251FURU_305.mcs
FURUHATA'S THEMET.TSUKAMOTO’´“ïˆÕ“x•”•ª‚ðŠÛ‚²‚ƕς¦‚Ü‚µ‚½B4-01☆5.4SINGLE3984672776321FURU_401.mcs
FURUHATA'S THEMEJun T.‚P‚U•ª‚Æ“¯Žž‚ªEEEB4-02☆5.9SINGLE4464253105534FURU_402.mcs
FURUHATA'S THEMEm.suzuki‘–‚Á‚Ä”Æl‚ð•߂܂¦‚Ä‚­‚¾‚³‚¢B4-03☆6.6SINGLE5736803995924FURU_403.mcs
FURUHATA'S THEMEHatamoto Yohei‚P‚O•ª‚Åì‚è‚Ü‚µ‚½BŠÈ’P‚Å‚·B4-04☆0.3SINGLE1091277513FURU_404.mcs
FURUHATA'S THEME???_09™~‚S4-05☆8.5SINGLE5266803666197FURU_405.mcs
FURUHATA'S THEMES.OkanoŒ´‹È‚ª‘½­‚»‚̂܂܎c‚Á‚Ä‚¢‚Ü‚·B4-06☆6.3SINGLE5306803696323FURU_406.mcs
FURUHATA'S THEMESEIJI W.Œ‹\ƒLƒcƒC‚Å‚·5-01☆6.3SINGLE3974672765750FURU_501.mcs
FURUHATA'S THEMEOKAMOTO Taishi‰½‰ñ‚Ü‚í‚ê‚é‚©ŽŽ‚µ‚ĉº‚³‚¢B5-02☆5.3SINGLE3063402136136FURU_502.mcs
FURUHATA'S THEMESHINYA.K‚©‚È‚è”R‚¦‚Ü‚·‚æ5-03☆6.3SINGLE4054252825451FURU_503.mcs
FURUHATA'S THEMES.SATAKEFX‚Ɖ¹‚ª‚ ‚Á‚½‚Ì‚Å6-01☆8.0SINGLE5266803666379FURU_601.mcs
FURUHATA'S THEMEKENJI ENDA‰¹Šy‚ɇ‚킹‚邯‚n‚j6-02☆7.1SINGLE4145952885775FURU_602.mcs
FURUHATA'S THEMETAKU YAMAMOTOƒGƒŠ[ƒ[‚Æ‚ ‚̃fƒR‚Ì‚½‚ß‚ÉEEE7-01☆5.4SINGLE2583821796827FURU_701.mcs
FURUHATA'S THEMEKotaro Kagawa­‚µƒAƒŒ‚ÉŽ—‚Ä‚¢‚éB7-02☆5.5SINGLE4284252985424FURU_702.mcs
FURUHATA'S THEMED.fujisakiƒWƒƒƒ“ƒv‚ªEEEB‘Ì—Í–½I7-03☆5.7SINGLE4334253014833FURU_703.mcs
GENOM SCREAMSSINOMIYA.Y‰‚߂ɂâ‚Á‚½‚Ì‚ª‚±‚ê1-01☆4.9SINGLE369412307634GENO_101.mcs
GENOM SCREAMSY.IMAIƒLƒ~‚ÉƒŠƒYƒ€‚̈â“`Žq‚Í‚ ‚é‚©H2-01☆4.8SINGLE2002621664549GENOM201.mcs
GENOM SCREAMSH.TARUMIƒŠƒYƒ€‚̕ω»‚ª–O‚«‚È‚­‚ē‚¢‚æ2-02☆5.4SINGLE3053752546228GENOM202.mcs
GENOM SCREAMSTSUJI JUNNYA‚‚‚…‚‚”‚‚‚Ž‚‰‚•—‚ÉŽdã‚°‚½‚æ3-01☆6.3SINGLE3726003105543GENO_301.mcs
GENOM SCREAMSN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-02☆5.7SINGLE3734503107120GENO_302.mcs
GENOM SCREAMSTOMOHIRO NAKAIƒr[ƒ}ƒj‚ÌƒŠƒYƒ€‚ŃXƒeƒbƒv‚¾I3-03☆6.6SINGLE3694503076448GENO_303.mcs
GENOM SCREAMSTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-04☆4.6SINGLE347375289770GENO_304.mcs
GENOM SCREAMSHatamoto Yohei‚Í‚Á‚«‚茾‚Á‚Ä–Ú’ƒ‹ê’ƒ‚Å‚·B4-01☆4.9SINGLE373412310760GENOM401.mcs
GENOM SCREAMSYuto JijiwaŽ©•ª‚ªì‚Á‚½’†‚ňê”ԓ‚¢‚Å‚·5-01☆4.9SINGLE332375276719GENOM501.mcs
GENOM SCREAMS???_13¬ŽG‚µ‚½–îˆó‚É’ˆÓ‚µ‚悤5-02☆4.3SINGLE339375282571GENOM502.mcs
GENOM SCREAMSKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-01☆5.0DOUBLE3383752816612GENO_601.mcs
GENOM SCREAMSRYOHEI.T & KENICHI.T‚·‚¢‚Ü‚¹‚ñA‚·‚¢‚Ü‚¹‚ñI7-01☆6.7SINGLE3534502946852GENO_701.mcs
GENOM SCREAMSTAKEDA.SYOUHEIƒr[ƒ}ƒjƒeƒCƒXƒg7-02☆5.6SINGLE3924873266813GENO_702.mcs
GENOM SCREAMST.OGINO‘«‚ŃNƒŠƒA[‚Å‚«‚é‚©H8-01☆6.2SINGLE3934503276631GENO_801.mcs
gentle stressKazuki.Koushiw‚r‚k‚`‚r‚gxƒiƒiƒ‚ªƒJƒbƒRƒCƒC1-01☆3.6SINGLE317350207356GENT_101.mcs
gentle stressK.SUGAI‚r‚g‚o‚f‚r‚s‚O‚P^‚X2-01☆6.3SINGLE3253502123983GS_C2201.mcs
gentle stressTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-01☆5.4SINGLE3554372314238GENT_301.mcs
gentle stressRyohei Seki‚Q‚c‚w•‚`‚l‚c”ł̃CƒC‚Æ‚±‚Ç‚è3-02☆4.8SINGLE3343502184033GENT_302.mcs
gentle stressHIDEAKI KANEDA™X‚É·‚èオ‚é‘«•ˆ‚ðŠ¬”\‚ ‚ê4-01☆6.1SINGLE3843932504656GENT_401.mcs
gentle stressHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆4.8SINGLE2863931864423GENT_402.mcs
gentle stress(AMD SEXUAL MIX)YASUHIRO.O‚r‚r‚qiƒ}ƒjƒAƒbƒNj‚ÌƒŠƒƒCƒN1-01☆5.8SINGLE2813202044370GENTA101.mcs
gentle stress(AMD SEXUAL MIX)YAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-02☆5.6SINGLE3263602374451GENTA102.mcs
gentle stress(AMD SEXUAL MIX)K.SUGAI‚r‚g‚o‚f‚r‚`‚O‚P^‚W2-01☆6.1SINGLE2943202134180GSAMD201.mcs
gentle stress(AMD SEXUAL MIX)M.IWAKURAƒhƒJƒhƒJ“¥‚ß‚æB“ï“x‚W’ö“xB2-02☆5.4SINGLE3115202265132GSAMD202.mcs
gentle stress(AMD SEXUAL MIX)T.HIRASAWAƒNƒ‰ƒu‚Ì•ˆ–Ê•—4-01☆4.9SINGLE2843202064142GENTA401.mcs
gentle stress(AMD SEXUAL MIX)T.HIRASAWAƒNƒ‰ƒu‚Ì•ˆ–Ê•——‚c‚o4-02☆4.8DOUBLE2803202033841GENTA402.mcs
gentle stress(AMD SEXUAL MIX)HIDEAKI KANEDA’†”Õ‚ð‹C—Í‚ÆW’†—Í‚Å4-03☆6.6SINGLE2673201944991GENTA403.mcs
gentle stress(AMD SEXUAL MIX)Y.KAWABE‚Ü‚½‚Ü‚½‚j‚d‚mŽ‚Æ‚Ì‹¤“¯ì4-04☆7.4SINGLE3535202565989GENTA404.mcs
gentle stress(AMD SEXUAL MIX)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆6.7SINGLE2594801884481GENTA405.mcs
gentle stress(AMD SEXUAL MIX)???_09™~‚S4-06☆7.1SINGLE4114402985474GENTA406.mcs
gentle stress(AMD SEXUAL MIX)SoichI InabAƒTƒCƒPƒfƒŠƒbƒNƒ_ƒ“ƒX5-01☆5.1SINGLE2633201912762GSSEX501.mcs
gentle stress(AMD SEXUAL MIX)Kiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆6.8COUPLE185/18532013433114GENTA601.mcs
gentle stress(AMD SEXUAL MIX)KAZUHITO TSUBOTAƒ{ƒbƒNƒXƒXƒeƒbƒv‚̉žVB7-01☆5.5SINGLE3135202274935GENTA701.mcs
gentle stress(AMD SEXUAL MIX)Fumihiro Ibuki‚Ƃɂ©‚­ƒ€ƒY‚¢B7-02☆4.9SINGLE3534802565016GENTA702.mcs
Get me in your sight(AMD CANCUN MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚v‚`‚j‚`‚a‚`1-01☆1.3DOUBLE176126124027GETM_101.mcs
Get me in your sight(AMD CANCUN MIX)T.Hirano‰ù‚©‚µ‚̃Xƒeƒbƒv‚ª‘å•œŠˆI2-01☆2.4SINGLE217222153219GETME201.mcs
Get me in your sight(AMD CANCUN MIX)YAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚X2-02☆3.4SINGLE324253228479GETME202.mcs
Get me in your sight(AMD CANCUN MIX)YUKI Yokota‚r‚v‚h‚m‚f@‚h‚sI‚Ý‚½‚¢‚È2-03☆2.5SINGLE270253190330GETME203.mcs
Get me in your sight(AMD CANCUN MIX)YUSUKE.K‘O”¼Ÿ•‰‚̋Ȃł·3-01☆5.4SINGLE3815072685923GETME301.mcs
Get me in your sight(AMD CANCUN MIX)S.KUROYANAGIŒ¶…‚Q‚Ì’n–¼iƒgƒDƒŠƒo[j‚Å‚·5-01☆5.1SINGLE2504441767413GMIYS501.mcs
Get me in your sight(AMD CANCUN MIX)K.Kinugawa‚P‚U•ª‚¸‚ê‚Æ“n‚肪“Á’¥‚Å‚·B6-01☆4.6DOUBLE3165072225111GETME601.mcs
Get me in your sight(AMD CANCUN MIX)TATSURO SAKAGUCHIƒsƒAƒm‚̉¹‚ɇ‚킹‚Ä‚¢‚Ü‚·B7-01☆5.5SINGLE3375072377521GETM_701.mcs
GET OFFA.NAOKI‚f‚‚”‚”‚‚ŽìF‚s‚`‚q‚h‚q‚`‚q‚h3-01☆5.0DOUBLE2702732003459GETOF301.mcs
GET OFFTOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆3.2DOUBLE1672051242035GETOF401.mcs
GET OFFHIROKI.N‚P‚U˜A‘ňȊO‚ÍŠyŸ‚Å‚·B5-01☆5.3SINGLE3125122315527GETOF501.mcs
GET OFF???_13“r’†‚ÅAƒYƒŒ‚ª‚ ‚è‚Ü‚·5-02☆5.4SINGLE3245462405530GETOF502.mcs
GET OFFT.FUJIWARA‚±‚̋Ȋy‚µ‚¢‚Å‚·iÎj6-01☆5.9SINGLE3023752245750GETOF601.mcs
GET OFFK.IKEMOTO‘«~‚V‚­‚ç‚¢‚Å‚·8-01☆4.4SINGLE2652731964433GETOF801.mcs
GET OFFKOHEI.Tºƒlƒ^ƒTƒCƒR[I8-02☆4.5SINGLE323546239624GETOF802.mcs
GET OFFShimamoto Yuuki‰¹‚ɇ‚킹‚Äì‚è‚Ü‚µ‚½8-03☆5.0SINGLE3395462515916GETOF803.mcs
GET UP AND DANCEYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.0SINGLE2192441755522GUAD_101.mcs
GET UP AND DANCEMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆3.5SINGLE237272195574GU&D_201.mcs
GET UP AND DANCEA.NAOKI‚lD‹g“c@ìFç’¹‘«3-01☆4.7DOUBLE2222171774553GTUPA301.mcs
GET UP AND DANCEOKAMOTO Taishiu‚m‚`‚ovu‚¤‚½‚½Qv‚Å‚·B5-01☆3.6SINGLE266326212570GU&D_501.mcs
GET UP N MOVEYAMADA HIDETOSHI— ”—L‚è‚Ü‚·1-01☆5.3SINGLE2232641935854GUAM_101.mcs
GET UP N MOVEY_TATEƒ_ƒ_ƒ_Aƒ_ƒ_ƒ_Aƒ_ƒ_ƒ_ƒ_ƒ“iÎj1-02☆6.0SINGLE2643632296051GUAM_102.mcs
GET UP N MOVEmurai mitsuruƒŠƒYƒ€‚ðl‚¦‚â‚·‚¢‹È‚Å‚µ‚½B1-03☆4.5SINGLE320429277562GUAM_103.mcs
GET UP N MOVESHIBATA JUNICHIƒ{[ƒJƒ‹‚ɇ‚킹‚Äì‚Á‚ÄŒ©‚Ü‚µ‚½1-04☆6.6SINGLE3435282975856GUAM_104.mcs
GET UP N MOVEMASAHIRO.Y‚»‚±‚»‚±H2-01☆4.7DOUBLE2263961964616GUNM_201.mcs
GET UP N MOVEKOSE F‚r‚n‚k‚nH2-02☆4.0DOUBLE2202971915512GUNM_202.mcs
GET UP N MOVEM.YamamotoŽO˜A•„‚ ‚è3-01☆5.8SINGLE2593962245642GTUPM301.mcs
GET UP N MOVEY.KAWABE‚Q‚Ž‚„Žž‚Ɉê”Ô‚â‚Á‚½‚à‚Ì4-01☆7.6SINGLE2144291857193GUAM_401.mcs
GET UP N MOVEMIO.S‚k‚h‚s‚s‚k‚d‚ð‚©‚¯‚邯cB4-02☆5.0SINGLE2012971749919GUAM_402.mcs
GET UP N MOVEOKAMOTO Taishiʼn‚ł‚܂¸‚­‚ÆA‚©‚È‚è‘å•ςł·5-01☆3.6SINGLE274330238520GUNM_501.mcs
GET UP N MOVEKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-02☆4.7DOUBLE2562972225034GUNM_502.mcs
GET UP N MOVEYuki Ichikawaƒ‰ƒbƒv‚ɇ‚킹‚ÄŒy‰õ‚ÉB6-01☆5.4SINGLE3363962916318GETUP601.mcs
GET UP N MOVEK.MASIMA‚Q‚Ž‚„’P‘̂ł̓vƒŒƒCo—ˆ‚Ü‚¹‚ñB8-01☆6.3SINGLE1873631626661GUAM_801.mcs
GET UP N MOVE(IN EXTRA)TOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆4.0DOUBLE276363202572GUAMZ401.mcs
GET UP(BEFORE THE NIGHT IS OVER)YAMADA HIDETOSHI¬’·•ˆ–ʂƂP‚U•ª1-01☆4.9SINGLE2833102195137GETUP101.mcs
GET UP(BEFORE THE NIGHT IS OVER)SHOTA,SAITOH.ƒx[ƒVƒbƒN‚È•ˆ–ʂł·B1-02☆0.2SINGLE1171249001GETUP102.mcs
GET UP(BEFORE THE NIGHT IS OVER)A.NAOKI‚lD‹g“c@ìF‚x‚`3-01☆4.6DOUBLE2792792164638GTUPB301.mcs
GET UP(BEFORE THE NIGHT IS OVER)SAEKO.TƒŠƒYƒ€‚ª­‚µ‚¢‚â`‚ñ‚ÈŠ´‚¶4-01☆4.4DOUBLE2722792104433GETUP401.mcs
GET UP(BEFORE THE NIGHT IS OVER)KAZUHITO TSUBOTA’†”Õ‚ªˆÓ–¡•s–¾‚©‚àEEEB7-01☆4.8SINGLE2802792174545GETUP701.mcs
GET UP(BEFORE THE NIGHT IS OVER)???_20‚c‚i@‚¨’ß7-02☆4.4SINGLE2973102304524GETUP702.mcs
GET UP(BEFORE THE NIGHT IS OVER)INAGAKI KEIsuke‚`‚l|‚R‚o‚ðˆÚA{‰ü‘¢‚µ‚½7-03☆4.2SINGLE2932792274922GETUP703.mcs
GIMME GIMME GIMMEYAMADA HIDETOSHIŠÈˆÕ‚r‚r‚qB‰ñ‚ê‚邿B1-01☆4.1SINGLE2952982033925GIMM_101.mcs
GIMME GIMME GIMMEmurai mitsuru‚æ‚è“‚³‚ð‚à‚Æ‚ß‚½Œ‹‰ÊB1-02☆4.9SINGLE3843352645724GIMM_102.mcs
GIMME GIMME GIMMEA.NAOKI‚lD‹g“c@ìFƒGƒAƒƒr1-03☆3.3DOUBLE2382981641527GIMM_103.mcs
GIMME GIMME GIMMETADASHI.UMISHIMA˜A‘Å‚ª‘½‚¢‚Å‚·1-04☆5.9SINGLE3293722265748GIMM_104.mcs
GIMME GIMME GIMMETAKENAKA TAKAHIROƒ{[ƒJƒ‹‚É‚ ‚킹‚Ü‚µ‚½B2-01☆4.1SINGLE2942982024819GIMME201.mcs
GIMME GIMME GIMMEKOMOGUCHI.Yƒ‰ƒbƒv•”•ª‚Í‚¿‚å‚Á‚Ɠ‚¢‚©‚à2-02☆4.7SINGLE2903352004329GIMME202.mcs
GIMME GIMME GIMMEKoichi Nakayama‚W•ª˜A‘±ƒXƒeƒbƒv‚ÌŠÔ‚É‚P‚U•ª‚ ‚è3-01☆5.4SINGLE3713352554945GIME_301.mcs
GIMME GIMME GIMMEM.Yamamoto‰¹‡‚킹3-02☆4.8SINGLE3473722395915GIME_302.mcs
GIMME GIMME GIMMEKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-03☆2.6SINGLE217298149730GIME_303.mcs
GIMME GIMME GIMMEK.Komenoiì‚é‚̂ɋê˜J‚µ‚Ü‚µ‚½B4-01☆4.8SINGLE3703352555124GIMM_401.mcs
GIMME GIMME GIMMETAISHI K.‹È‚ð‚æ‚­‚«‚¢‚Ä‚Ó‚à‚¤4-02☆4.7SINGLE3162982175730GIMM_402.mcs
GIMME GIMME GIMMES.Okanoƒ‰ƒXƒg‚ª“‚­‚È‚Á‚Ä‚ ‚è‚Ü‚·B4-03☆5.1SINGLE452521311648GIMM_403.mcs
GIMME GIMME GIMMES.KUROYANAGI˜A‘łƂP‚U•ª‚ð‘Å‚¿Ó‚¯I5-01☆5.6SINGLE3954472726028GIMME501.mcs
GIMME GIMME GIMMEYuto JijiwaƒIƒtƒBƒVƒƒƒ‹‚æ‚è“‚­‚µ‚Ă܂·B5-02☆5.1SINGLE2923352014442GIMME502.mcs
GIMME GIMME GIMMETetsuya S.‚ ‚È‚½‚ð•K‚¸‹C•ª‘u‰õ‚É‚³‚¹‚Ü‚·I5-03☆3.1COUPLE235/2352601621047GIMME503.mcs
GIMME GIMME GIMMET.MAMIYA’‡ŠÔ“à‚ł̕]”»‚ª‚æ‚©‚Á‚½•ˆ–ʂł·5-04☆5.5SINGLE3443722375338GIMME504.mcs
GIMME GIMME GIMMEKatsuhiko Kinoshita“Á‚ɂȂµ5-05☆3.3SINGLE2512981732021GIMME505.mcs
GIMME GIMME GIMMEIchinose Shinta‚·‚²‚¢‚¤‚²‚«‚ɂȂè‚Ü‚·6-01☆4.4DOUBLE2582981773239GIMM_601.mcs
GIMME GIMME GIMMEKENGO NAKAMURA‹È‚ÉŽ·’…‚µ‚Äì‚邯EEE6-02☆4.8SINGLE3413722355817GIMM_602.mcs
GIMME GIMME GIMMEYuki Ichikawa–^ƒKƒoƒ\ŒnƒCƒ`ƒIƒVB6-03☆6.5SINGLE4224092916350GIMM_603.mcs
GIMME GIMME GIMMERYOHEI.T & KENICHI.TƒAƒiƒU[ˆÈãAƒ}ƒjƒAƒbƒNˆÈ‰ºB7-01☆4.7SINGLE3102982133742GIMM_701.mcs
GIMME GIMME GIMMEINAGAKI KEIsukeƒVƒ“ƒZ‚ɇ‚킹‚Ä‚P‚U•ª‚ð–„‚ß‚½7-02☆4.8SINGLE3454092375313GIMM_702.mcs
GIMME GIMME GIMMESATOSHI HORIUCHIƒXƒg[ƒŠ[“I‚Ȃ̂©‚È‚ŸH7-03☆5.1SINGLE3563722455227GIMM_703.mcs
GIMME GIMME GIMME???_21— ‘Å‚¿‚ª‚¢‚¢‹ï‡‚Å‚·B7-04☆7.1SINGLE3244842235386GIMM_704.mcs
GIMME GIMME GIMMED.fujisakiƒmƒŠƒmƒŠ‚Å“¥‚߂܂·B7-05☆4.2SINGLE402335277507GIMM_705.mcs
GOTCHA(The Theme from STARSKYA.NAOKI‚f‚‚”‚”‚‚ŽìF‚c•‚e1-01☆3.5DOUBLE2522331934218GOTC_101.mcs
GOTCHA(The Theme from STARSKYYUKIHIRO.A‘S‚‚Ȃ¬‚̓€ƒŠ‚Å‚µ‚½B2-01☆6.9SINGLE2954662265974GOTCH201.mcs
GOTCHA(The Theme from STARSKYNAOyuki-Tachihara‹È‚ɇ‚킹‚Äì‚è‚Ü‚µ‚½B3-01☆4.5SINGLE315408241594GOTC_301.mcs
GOTCHA(The Theme from STARSKYY.KAWABE¡‚Ì–Ú•W4-01☆5.6DOUBLE3194082446827GOTC_401.mcs
GOTCHA(The Theme from STARSKYHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆3.7SINGLE2332621785113GOTC_402.mcs
GOTCHA(The Theme from STARSKYS.Okano‚P‚U•ª‚ª—’‚̂悤‚Éo‚Ä—ˆ‚Ü‚·B4-03☆4.8SINGLE394437302672GOTC_403.mcs
GOTCHA(The Theme from STARSKYABE TaTsuMaƒXƒeƒbƒv‚ðŠy‚µ‚à‚¤I5-01☆3.5SINGLE273291209532GOTCH501.mcs
GOTCHA(The Theme from STARSKYKATSUHIKO KOBAYASHI•‘‘ä‚Å·‘å‚É—x‚è‹¶‚¦5-02☆4.8SINGLE2672622045739GOTCH502.mcs
GOTCHA(The Theme from STARSKYSHIGERU ARAI‰¹‡‚킹‚É’ˆÓB6-01☆3.1SINGLE1452041113518GOTCH601.mcs
GOTCHA(The Theme from STARSKYD KYUTOKUƒ_[ƒc‚𓊂°‚È‚ª‚ç‚Ç‚¤‚¼7-01☆5.7SINGLE2363791815841GOTC_701.mcs
GOTCHA(The Theme from STARSKYK.MASIMA‰¹Šy‚ɇ‚킹‚ÄB8-01☆3.8SINGLE2402621845513GOTC_801.mcs
GRADIUSIC CYBERHIROKI TAKAHASHIƒŒƒxƒ‹‚P‚OII2-01☆5.1SINGLE3833992465520GRAD_201.mcs
GRADIUSIC CYBERYUKIHIRO.A“–Žž‚ÍÅ‚“ï“x‚ÆŽv‚¢‚Ü‚µ‚½B2-02☆5.1SINGLE3703592384336GRAD_202.mcs
GRADIUSIC CYBERN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆4.8SINGLE469638302556GRAD_301.mcs
GRADIUSIC CYBERA.NAOKI‚lD‹g“c@ìF‚P‚O‚O‚O3-02☆6.2DOUBLE2893191863591GRAD_302.mcs
GRADIUSIC CYBERY.ISHIDA‘Š“–“‚¢‚̂ł¨‚·‚·‚ß‚µ‚Ü‚¹‚ñB3-03☆6.6SINGLE6176383976423GRAD_303.mcs
GRADIUSIC CYBERJUN.K‚±‚Á‚¿‚̃Oƒ‰ƒTƒC‚ª‚¢‚¢4-01☆4.1SINGLE3003191932830GRAD_401.mcs
GRADIUSIC CYBERMasato T.‚l‚bŽg—p‚¾‚Æ“¥‚߂Ȃ¢Š‚ªc4-02☆6.0DOUBLE3966382554751GRAD_402.mcs
GRADIUSIC CYBER(AMD G5 MIX)YAMADA HIDETOSHI˜‚ðŽg‚¨‚¤I1-01☆5.8SINGLE3573602343564GRADG101.mcs
GRADIUSIC CYBER(AMD G5 MIX)O.YAMAMOTO‚¿‚å‚Á‚Æ‹ê˜J‚µ‚Ü‚µ‚½B2-01☆6.6SINGLE4034802645465GRADG201.mcs
GRADIUSIC CYBER(AMD G5 MIX)A.NAOKI‚lD‹g“c@ìF‚l‚h‚r‚n3-01☆6.5SINGLE2914801905566GRADG301.mcs
GRADIUSIC CYBER(AMD G5 MIX)YASUHIRO.OƒV[ƒPƒ“ƒX‚ªŒJ‚è•Ô‚µ‘±‚«‚Ü‚·3-02☆5.1SINGLE4354802855218GRADG302.mcs
GRADIUSIC CYBER(AMD G5 MIX)Y.KAWABE‘ƒm[ƒg‚T‚V‚R‚É‚·‚é‚‚à‚肾‚Á‚½4-01☆5.2SINGLE542520355612GRADA401.mcs
GRADIUSIC CYBER(AMD G5 MIX)???_09™~‚S4-02☆7.0SINGLE4705603085766GRADA402.mcs
GRADIUSIC CYBER(AMD G5 MIX)Kei.U‚Ù‚Æ‚ñ‚Ç‚ª‚P‚U•ª‚Å‚·B5-01☆5.1SINGLE4034002645420GRADG501.mcs
GRADIUSIC CYBER(AMD G5 MIX)T.MAMIYAŠÈ’P‚Éì‚낤‚Æ‚µ‚½‚ç’†“r”¼’[‚Éc5-02☆4.2SINGLE2502401632156GRADG502.mcs
GRADIUSIC CYBER(AMD G5 MIX)SHINYA.K‚à‚¤ƒIƒtƒBƒVƒƒƒ‹‚ɂ͖߂ê‚È‚¢5-03☆4.9SINGLE4434002905212GRADG503.mcs
GRADIUSIC CYBER(AMD G5 MIX)T.NAOYA‚c‚d‚m‚f‚d‚q6-01☆6.3SINGLE4474802936145GRADG601.mcs
GRADIUSIC CYBER(AMD G5 MIX)RYO.I‹È‚Æ”÷–­‚É‚¸‚ê‚Ä‚¢‚銂ɒˆÓII7-01☆5.8SINGLE5165203386021GRADG701.mcs
GRADIUSIC CYBER(AMD G5 MIX)KAZUHITO TSUBOTAˆê“úˆê‰ñ‚ðŒÀ“x‚Æ‚µ‚Ä‚­‚¾‚³‚¢7-02☆6.6SINGLE4685203065755GRADG702.mcs
GRADIUSIC CYBER(AMD G5 MIX)???_20‚R“ú‚ª‚©‚è‚Åì‚è‚Ü‚µ‚½B7-03☆6.1SINGLE5005203276428GRADG703.mcs
GRADIUSIC CYBER(another version)O.YAMAMOTO‚ ‚éˆÓ–¡ƒ}ƒjƒAƒbƒN‚æ‚èŠÈ’P‚©‚àB2-01☆7.0SINGLE3584402313994GRADA201.mcs
GrooveT.MURATAƒIƒtƒBƒVƒƒƒ‹‚æ‚èŠy‚Å‚·B1-01☆4.8SINGLE2802602024052GROO_101.mcs
GrooveHIROAKI.T‹È‚̃Tƒr‚©‚çƒmƒŠƒmƒŠ‚Å‚·B1-02☆3.9SINGLE2352601693825GROO_102.mcs
GrooveTADASHI.UMISHIMAƒmƒŠ‚â‚·‚¢ƒXƒeƒbƒv‚Å‚·1-03☆6.0SINGLE2672921924383GROO_103.mcs
GrooveY.IMAI‹È‚̂悤‚Ƀ_ƒ“ƒX‚àƒN[ƒ‹‚É2-01☆4.4SINGLE1862601341865GROO_201.mcs
GrooveH.TARUMIƒŠƒYƒ€‚ð’͂߂Ίy‚µ‚­“¥‚߂邿2-02☆5.1SINGLE3383252444938GROO_202.mcs
GrooveA.NAOKI‚f‚‚”‚”‚‚ŽìF‚f‚q‚n‚u‚d3-01☆4.4SOLO2532601823146GROO_301.mcs
GrooveN.KAZUMAƒWƒƒƒ“ƒv‚ÌŠy‚µ‚³‚ðŠ´‚¶‚ëI3-02☆4.9SINGLE2982922154246GROO_302.mcs
GrooveHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE2392601723339GROO_401.mcs
GrooveK.GOTOU‹CŒy‚É—x‚ê‚é‹È5-01☆4.1SINGLE2462921773626GROV_501.mcs
GrooveKATSUHIKO KOBAYASHIŒy‰õ‚ȃXƒeƒbƒv5-02☆5.5SINGLE2612601884470GROV_502.mcs
GrooveSHINYA.K‚¿‚å‚Á‚ƓƓÁH5-03☆4.5SINGLE2802922024830GROV_503.mcs
GrooveKeisuke Ogiwara‚±‚̋ȑåD‚«ƒbƒXi‚§6-01☆4.1SINGLE2452601763337GROV_601.mcs
GrooveKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-02☆5.9COUPLE186/1862601343493GROV_602.mcs
GrooveTAKU YAMAMOTO‚±‚ñ‚Ȏ΂߂ÍD‚«‚Å‚·‚©H7-01☆4.2SOLO2002601442844GROO_701.mcs
GrooveDAISUKE KAMISAKA‘«‚W“ü–åŽÒ‚ɃIƒXƒXƒI7-02☆3.8SINGLE3092922234315GROO_702.mcs
Groove???_20ƒ}ƒCƒPƒ‹‚Á‚Û‚­7-03☆5.0SINGLE2833252045135GROO_703.mcs
GrooveD KYUTOKUŠiD‚æ‚­“¥‚à‚¤B•s‰Â”\H7-04☆4.5SINGLE2852922054928GROO_704.mcs
GrooveHIROSHI.M‚±‚̋ȑåD‚«I8-01☆5.1SINGLE2472921784252GROO_801.mcs
Groove 2001YUSUKE.KŒ´‹È‚ð­‚µ‚¾‚¯ƒCƒ[ƒW‚µ‚Ü‚µ‚½3-01☆5.2SINGLE3263152324646GROO2301.mcs
Groove 2001A.NAOKI‚lD‹g“c@ìF‚f‚q‚n‚n‚n‚n‚u‚d3-02☆5.8SOLO20724514717121GROO2302.mcs
Groove 2001YASUHIRO.Oƒ}ƒjƒAƒbƒN‚ÌƒŠƒƒCƒNƒo[ƒWƒ‡ƒ“3-03☆4.7SINGLE2933502094726GROO2303.mcs
Groove 2001N.KAZUMAƒTƒr‚̃Oƒ‹[ƒu‚ðŠ´‚¶‚Ä—x‚낤I3-04☆5.8SINGLE3834202735436GROO2304.mcs
Groove 2001Ryohei SekiƒIƒtƒBƒVƒƒƒ‹ˆÈã‚Ì–ô“®Š´‚ð‹‚ß‚Ä3-05☆4.0SINGLE3033152165011GROO2305.mcs
Groove 2001TUBASA.S‚æ‚­‚Å‚«‚½‚ÆŽv‚¤B4-01☆3.9SINGLE2783151984114GROOO401.mcs
Groove 2001K.TAKEMURA‚¿‚å‚Á‚ÆŽè‚ð‰Á‚¦‚½’ö“x‚Å‚·B4-02☆5.3SINGLE3483502485633GROOO402.mcs
Groove 2001MURAI MITSURU‚Ü‚ ‚Ü‚ —Ç‚¢ƒŠƒYƒ€‚ª‚Å‚«‚Ü‚µ‚½B5-01☆4.6SINGLE358490255547GROV2501.mcs
Groove 2001SHINYA.KD‚«‚Èl‚͂Ƃ±‚Æ‚ñ‚͂܂ê‚éI5-02☆4.6SINGLE3703502645414GROV2502.mcs
Groove 2001YOSHiHiKO KAJiYAuŠy‚µ‚­“¥‚ß‚évŽ–‚ðˆÓޝ‚µ‚Ü‚µ‚½6-01☆6.6SINGLE2713151934894GROV2601.mcs
Groove 2001Michitaka Kimura‚ ‚Ü‚è”Y‚Ü‚¸‚Éì‚ê‚Ü‚µ‚½6-02☆7.1SINGLE3054202175685GROV2602.mcs
Groove 2001SATOSHI HORIUCHI‚±‚̃GƒfƒBƒbƒg‚͂ǂ¤‚Å‚·‚©H7-01☆4.6SINGLE3103152214729GROOV701.mcs
Groove 2001N.NAGANO‚¿‚å‚Á‚ƃXƒLƒbƒv‚µ‚Ă݂½‚èB7-02☆4.5SINGLE3103152214428GROOV702.mcs
Groove 2001D KYUTOKUŠiD‚æ‚­“¥‚à‚¤B–³—H7-03☆4.9SINGLE2894202065020GROOV703.mcs
Groove 2001K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.8SINGLE3253502324927GROO2801.mcs
Groove 2001Shimamoto Satoshi‚¨‚Ƃɇ‚Á‚Ä‚éH8-02☆5.1SINGLE3334202375422GROO2802.mcs
HAVE YOU NEVER BEEN MELLOWM.MOCHIDUKI‰SŽÒƒXƒeƒbƒvƒAƒbƒv—p•ˆ–Ê1-01☆1.1SINGLE125157103414HAVE_101.mcs
HAVE YOU NEVER BEEN MELLOWM.MOCHIDUKIƒ}ƒjƒAƒbƒN•—–¡1-02☆0.7SINGLE172157142110HAVE_102.mcs
HAVE YOU NEVER BEEN MELLOWYAMADA HIDETOSHI“n‚è‚Í‚¶‚ß‚½l‚Ö1-03☆4.0DOUBLE2052521692740HAVE_103.mcs
HAVE YOU NEVER BEEN MELLOWJ.GOUKEŽåù—¥‚ð“¥‚à‚¤ƒVƒŠ[ƒY‚P2-01☆4.0SINGLE108220895527HAVE_201.mcs
HAVE YOU NEVER BEEN MELLOWMASAHIRO.Y‚¤[‚ñEEE2-02☆3.5DOUBLE282252233489HAVE_202.mcs
HAVE YOU NEVER BEEN MELLOWK.SUGAI‚r‚g‚o‚l‚d‚k‚O‚P^‚W2-03☆3.6SINGLE301283249497HAVE_203.mcs
HAVE YOU NEVER BEEN MELLOWYUKI Yokota‚W•ª”rœ‚ÌŒ‹‰ÊA“¯Žž‰Ÿ‚µ‚ÌŽR‚É2-04☆3.0SINGLE1842521521922HAVE_204.mcs
HAVE YOU NEVER BEEN MELLOWKOSE F‚Ì‚ñ‚Ñ‚è‚Æ‚Å‚·2-05☆3.5DOUBLE1952521613718HAVE_205.mcs
HAVE YOU NEVER BEEN MELLOWN.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-01☆4.9SINGLE2175041796014HAVE_301.mcs
HAVE YOU NEVER BEEN MELLOWHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆3.4SINGLE2232521843814HAVE_401.mcs
HAVE YOU NEVER BEEN MELLOWOKAMOTO Taishi‚²‚­•’ʂɓ‚­‚µ‚Ü‚µ‚½B5-01☆3.3SINGLE252252208439HAVE_501.mcs
HAVE YOU NEVER BEEN MELLOWS.kentaro‚P‚U‚s‚d‚`III6-01☆0.5SINGLE861267107HAVE_601.mcs
HAVE YOU NEVER BEEN MELLOWTAIGA.O“‚¢H7-01☆4.3SINGLE2212521833343HAVE_701.mcs
HAVE YOU NEVER BEEN MELLOWK.WAKAKIƒIƒŠƒrƒA‚̃Jƒo[7-02☆2.0SINGLE125189103207HAVE_702.mcs
HAVE YOU NEVER BEEN MELLOWRYO SAKAI‚³‚í‚â‚©ƒXƒeƒbƒvB7-03☆4.3SINGLE1833781514013HAVE_703.mcs
HAVE YOU NEVER BEEN MELLOWK.KAWASEŠÈ’P‚ÅŠy‚µ‚­“¥‚ß‚éIH7-04☆3.7SINGLE1952521613028HAVE_704.mcs
HAVE YOU NEVER BEEN MELLOWK.KAWASÊȂñ‚ƂȂ­ì‚Á‚½ƒ„ƒc‚Å‚·B7-05☆3.2COUPLE173/1732521432323HAVE_705.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆4.9DOUBLE3624252794617HAVEM101.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)SOUSHIN.K‚®‚é‚®‚é‰ñ‚Á‚Ä‚­‚¾‚³‚¢1-02☆5.1SINGLE3824672955712HAVEM102.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)YAMADA HIDETOSHI— ”¬‚¶‚Á‚Ă܂·1-03☆5.5SINGLE3014252323943HAVEM103.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚j‚`‚l‚h‚j‚`‚y‚d1-04☆4.8DOUBLE3073402372942HAVEM104.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)MASAHIRO.YŽ©•ª‚È‚è‚ÉŠæ’£‚Á‚Ă݂܂µ‚½2-01☆4.6DOUBLE3343402583530HAVEG201.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)M.IWAKURA‚¨‚·‚·‚߂ł·B“ï“x‚X’ö“xB2-02☆5.5SINGLE3634252805228HAVEG202.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)YUSUKE.K—F’B‚Éì‚Á‚Ä‚à‚ç‚¢‚Ü‚µ‚½3-01☆6.0SINGLE3575102754052HAVEM301.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)F.ATHUSHIƒŠƒYƒ€“I‚ɂ͎©Mì‚Å‚·B3-02☆4.7DOUBLE3754252894610HAVEM302.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)Takahiro.Hƒ}ƒjƒAƒbƒN‚æ‚è­‚µã3-03☆4.8SINGLE2753402123935HAVEM303.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)JUN.K‚·‚«‚Ü•—B4-01☆3.9DOUBLE2362971821939HAVEM401.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)T.YASUDA­‚µ”æ‚ê‚邯Žv‚¢‚Ü‚·4-02☆5.0SINGLE3503822704128HAVEM402.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)t.mizunoƒTƒr‚̃Wƒƒƒ“ƒv‚ªƒCƒC‚Å‚·B4-03☆4.1SINGLE2413401861739HAVEM403.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)S.KUROYANAGI— ”’†S‚Å‚·5-01☆4.5SINGLE269340207777HAVEM501.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)Y.TSUDAŽÀÛ‚Ì‚à‚̂Ɠ¯‚¶‚­‚ç‚¢‚̓‚³B5-02☆4.7SINGLE3633822805212HAVEM502.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)YOSHiHiKO KAJiYAð“ú‚Ì—F‚Í¡“ú‚Ì“GIH6-01☆5.5SINGLE3354252585131HAVEM601.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)Yuki IchikawaʼnŌã‚Í‹C‡‚ðB6-02☆6.1SINGLE3924253025144HAVEM602.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)TATSURO SAKAGUCHIŠFA“¯‚¶‚悤‚È•ˆ–Ê‚¶‚á‚È‚¢H7-01☆6.3SINGLE3655522825948HAVEM701.mcs
HAVE YOU NEVER BEEN MELLOW(MM GROOVIN MIX)T.OGINO‚©‚ñ‚½‚ñ‚Å‚µ‚傤I8-01☆5.6SINGLE2864672215833HAVEM801.mcs
HEROYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆5.0SINGLE2093101844442HERO_101.mcs
HEROSHOTA,SAITOH.FXŠy‚µ‚߂镈–ʂɂµ‚Ü‚µ‚½B1-02☆2.4SINGLE1302071151130HERO_102.mcs
HEROM.Yamamoto— ‘Å‚¿’ˆÓ3-01☆4.9SINGLE2403102125135HERO_301.mcs
HERO???_07ƒAƒiƒU[ˆÈãƒ}ƒjƒAƒbƒNˆÈ‰º‚Ÿ4-01☆3.1SINGLE1712071512625HERO_401.mcs
HEROK.Komenoi‚à‚¤‚ЂƂ‚̂l‚`‚m‚h‚`‚b4-02☆4.2SINGLE1842761623534HERO_402.mcs
HEROKazuhiko Chibaƒ}ƒjƒAƒbƒN‚É—x‚è”æ‚ꂽ‚ ‚È‚½‚ÖB5-01☆4.0SINGLE1542071362255HERO_501.mcs
HEROKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-02☆4.4DOUBLE1822761613046HERO_502.mcs
HERO???_21ƒXƒLƒbƒv—ûK—pi‰‹‰j7-01☆3.4SINGLE304276268491HERO_701.mcs
HERO(HAPPY GRANDALE MIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆5.5DOUBLE3283822685135HEROH101.mcs
HERO(HAPPY GRANDALE MIX)SOUSHIN.K‚©‚È‚è‚Ì‚¨‹C‚É“ü‚è‚Å‚·1-02☆5.3SINGLE3644672916516HEROH102.mcs
HERO(HAPPY GRANDALE MIX)HIROKI.NŒã”¼‚ª“¥‚݂ɂ­‚¢Š´‚¶‚Å‚·B1-03☆4.4DOUBLE3273392625710HEROH103.mcs
HERO(HAPPY GRANDALE MIX)HIROKI.NŒã”¼‚ª“¥‚݂ɂ­‚¢Š´‚¶‚Å‚·B1-04☆5.0SINGLE3493822795617HEROH104.mcs
HERO(HAPPY GRANDALE MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚n‚s‚d‚m‚a‚`1-05☆4.6DOUBLE2723392182740HEROH105.mcs
HERO(HAPPY GRANDALE MIX)HAJIME.I‚Ú‚æ‚ñìF‚‘¬— ”ƒXƒLƒbƒv2-01☆4.1SINGLE316339253556HEROG201.mcs
HERO(HAPPY GRANDALE MIX)YUKIHIRO.AƒTƒr‚ª‚â‚Í‚èƒ|ƒCƒ“ƒg‚Å‚µ‚傤‚©B2-02☆5.8SINGLE3575092865434HEROG202.mcs
HERO(HAPPY GRANDALE MIX)Koichi Nakayama‚QŽžŠÔˆÊ‚Å쬂µ‚Ü‚µ‚½3-01☆6.0SINGLE2933392345362HEROH301.mcs
HERO(HAPPY GRANDALE MIX)TOMOHIRO NAKAIƒmƒŠƒmƒŠ•ˆ–Ê‚¾‚ª“ïˆÕ“x‚ÍŒƒ‚B3-02☆6.9SINGLE4035093235561HEROH302.mcs
HERO(HAPPY GRANDALE MIX)T.YASUDAƒlƒ^‚ª‚±‚ê‚­‚ç‚¢‚µ‚©4-01☆5.2SINGLE3305092644923HEROH401.mcs
HERO(HAPPY GRANDALE MIX)K.TAKEMURA‚»‚±‚»‚±‚̃fƒL‚Å‚·B4-02☆5.2SINGLE3693822955620HEROH402.mcs
HERO(HAPPY GRANDALE MIX)???_09™~‚R4-03☆6.8SINGLE4736793796435HEROH403.mcs
HERO(HAPPY GRANDALE MIX)SHIBUYA.KENTA‚P‚U•ª‚𑽗p‚µ‚Ü‚µ‚½B5-01☆4.2SINGLE363339291544HEROH501.mcs
HERO(HAPPY GRANDALE MIX)K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-02☆4.6DOUBLE3653392925213HEROH502.mcs
HERO(HAPPY GRANDALE MIX)JUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.1SINGLE3483822845818HEROH601.mcs
HERO(HAPPY GRANDALE MIX)HIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·6-02☆4.4SINGLE2412971961955HEROH602.mcs
HERO(HAPPY GRANDALE MIX)Yuki IchikawaƒmƒŠƒmƒŠ‚ÅŠy‚µ‚ñ‚Å’¸‚¯‚ê‚ÎB6-03☆6.2SINGLE3704672964948HEROH603.mcs
HERO(HAPPY GRANDALE MIX)TOMOFUMI YOSHIDAŠy‚µ‚¢‚¯‚Ǔ‚¢‚Å‚·B7-01☆5.2SINGLE3555092845219HEROH701.mcs
HERO(HAPPY GRANDALE MIX)Norihiro Kitamura‘¬‚¢‚̂Ŕæ‚ê‚Ü‚·7-02☆4.3DOUBLE381339305459HEROH702.mcs
HERO(HAPPY GRANDALE MIX)Yohei MaruyamaˆÓŠO‚Æ‚µ‚ñ‚Ç‚¢H8-01☆6.2SINGLE2883392355864HEROH801.mcs
HERO(HAPPY GRANDALE MIX)Y.SAWADAƒm‚Á‚ĉº‚³‚¢B8-02☆4.4DOUBLE377382302465HEROH802.mcs
HERO(KCP DISCOTIQUE MIX)A.NAOKI‚lD‹g“c@ìF‚m‚n‚g‚n‚g‚n‚m1-01☆5.0DOUBLE2622561863166HEROK101.mcs
HERO(KCP DISCOTIQUE MIX)SATOSHI.Hƒmƒb‚Ä‚­‚¾‚³‚¢5-01☆5.6SINGLE3393202415054HEROK501.mcs
HERO(KCP DISCOTIQUE MIX)NAOTO M.‚¯‚Á‚±‚¤—Ç‚¢ƒXƒeƒbƒv‚Å‚·B6-01☆4.8SINGLE3232882294341HEROK601.mcs
HERO(KCP DISCOTIQUE MIX)KAZUTAKA SUEDA‚±‚ñ‚È‚Ì‚à‚ ‚è‚Æ‚¢‚¤‚±‚Æ‚ÅB7-01☆5.7SINGLE4615123276319HEROK701.mcs
HERO(KCP DISCOTIQUE MIX)T.OGINO‘º”öìAƒNƒŠƒA‚Å‚«‚½‚çŒN‚Í“VËI8-01☆4.6SINGLE3293522335317HEROK801.mcs
HIGH ENERGYTOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆1.5DOUBLE133175113822HIGHN401.mcs
HIGH ENERGYJun T.‚P‚U•ªˆÈŠO–â‘è‚È‚µB4-02☆5.1SINGLE2974902535121HIGHN402.mcs
HIGH ENERGYKei.U‘O”¼‚É‚P‚U•ª‚ª‚Í‚¢‚Á‚Ă܂·B5-01☆4.3SINGLE271420237448HINRG501.mcs
HIGH ENERGYA.NAOKI‚f‚‚”‚”‚‚Ž ìF‚l‚n‚q‚h‚l‚n‚q‚h5-02☆3.0DOUBLE2022801722214HINRG502.mcs
HIGHERTakashi.Kƒƒ‚Éæ‚ê‚é‚W•ª‚ª‹CŽ‚¿‚¢‚¢1-01☆4.6SINGLE3482972255031HIGH_101.mcs
HIGHERT.MURATAŠy‚µ‚­‚¨‚Ç‚ê‚Ü‚·B1-02☆4.3SINGLE2642641704036HIGH_102.mcs
HIGHERYAMADA HIDETOSHI— ‰¹‚ ‚è‚Ü‚·1-03☆5.2SINGLE3032971964951HIGH_103.mcs
HIGHERHIROKI.N‚₳‚µ‚­‚Å‚«‚Ü‚µ‚½B1-04☆3.1SINGLE241231156466HIGH_104.mcs
HIGHERYASUHIRO.OƒŠƒYƒ€’Ê‚è‚Ìì»1-05☆4.1SINGLE3242972094719HIGH_105.mcs
HIGHERA.NAOKI‚f‚‚”‚”‚‚ŽìF‚n‚c‚d‚j‚`‚j‚dI1-06☆3.2DOUBLE2412311561931HIGH_106.mcs
HIGHERK.HAYASEƒŠƒYƒ~ƒJƒ‹‚ȃXƒLƒbƒvƒXƒeƒbƒvB1-07☆4.8SINGLE3372972225234HIGH_107.mcs
HIGHERMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆4.9SINGLE2632971706531HIGHR201.mcs
HIGHERHIROKI TAKAHASHIU‚è‚ð•t‚¯‚Ä—~‚µ‚¢‚ÈI2-02☆3.9SINGLE2492641615914HIGHR202.mcs
HIGHERKubota Mamoru‰SŽÒ‚ׂ̈̂P‹È2-03☆1.2SINGLE158165102416HIGHR203.mcs
HIGHERYOU.W’©A–Ú‚ªŠo‚ß‚½‚炱‚ê‚ð‚â‚낤I2-04☆4.2SINGLE3012641944826HIGHR204.mcs
HIGHERM.YamamotoƒEƒH[ƒ€ƒAƒbƒv‚É‚¢‚¢‚©‚à3-01☆4.9SINGLE2992971935535HIGH_301.mcs
HIGHERKIMISHIMA TAKUROŒƒ‚µ‚¢B4-01☆5.0SINGLE3282972125836HIGHR401.mcs
HIGHERN.MIMURA‚±‚ñ‚È‘«•ˆì‚é‚Ì“ú–{‚ʼn´‚¾‚¯‚¾‚ë4-02☆4.3SINGLE358363231557HIGHR402.mcs
HIGHERt.mizuno‚S•ª‚ÌƒŠƒYƒ€‚Éæ‚Á‚ÄB4-03☆2.0SINGLE1761321131132HIGHR403.mcs
HIGHER???_08ƒŒƒxƒ‹‚XA‰SŽÒ‚¨’f‚è4-04☆4.4DOUBLE3152642034337HIGHR404.mcs
HIGHERHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆4.0SINGLE3422972215710HIGHR405.mcs
HIGHERHAJIME M.ƒuƒ‰ƒXƒoƒbƒLƒ“ƒO’ˆÓI5-01☆3.8SINGLE2722641765015HIGHR501.mcs
HIGHERS.KUROYANAGIŒ¶…‚Q‚Ì’n–¼iƒOƒŠƒ“ƒqƒ‹j‚Å‚·5-02☆4.8SINGLE3003301946023HIGHR502.mcs
HIGHERK.GOTOUƒLƒŒƒC‚ȃXƒeƒbƒv‚ðII5-03☆4.2SINGLE3292972125318HIGHR503.mcs
HIGHERF.KATOU‚a‚o‚l‚ª’á‚ß‚¾‚©‚牽‚Æ‚©‚È‚éH5-04☆4.7SINGLE3163302045425HIGHR504.mcs
HIGHERHIGASHI SENSHIROU‚¨‚à‚µ‚ë‚¢‚Å‚·B5-05☆4.9SINGLE3723302405031HIGHR505.mcs
HIGHERKeisuke Ogiwara‹CŠy‚É‚â‚Á‚ĉº‚³‚¢‚ÈB6-01☆3.6SINGLE2642311704222HIGH_601.mcs
HIGHERS.SATAKE‚¿‚å‚Á‚Ɠ‚߂ɂµ‚Ü‚µ‚½6-02☆6.1SINGLE2685281805850HIGH_602.mcs
HIGHERRYO SAKAI¡“ú‚à‚³‚í‚â‚©B7-01☆3.9SINGLE1952641263924HIGH_701.mcs
HIGHERTOMOFUMI YOSHIDAº‚ɇ‚킹‚ÄB7-02☆5.3COUPLE291/2912641885655HIGH_702.mcs
HIGHERYohei Maruyama‚»‚ñ‚ȂɃLƒc‚­‚È‚¢‚Í‚¸B8-01☆4.0SINGLE3152642034820HIGH_801.mcs
HIGHERHIROSHI.Mˆê‰ÓŠ‚¾‚¯‚Þ‚¸‚©‚µ‚¢‚©‚àB8-02☆6.5SINGLE2904621876557HIGH_802.mcs
HolicEIJI O.‚Uƒpƒl‚¨‚à‚µ‚ë‚·‚¬[1-01☆6.3SOLO3454652575255HOLIC101.mcs
HolicSHIBATA JUNICHI‹È‚Ç‚¨‚è‚Å‚·B‚P‚U•ªƒYƒŒ‚É’ˆÓ1-02☆5.7SINGLE4334653225823HOLIC102.mcs
HolicA.NAOKI‚f‚‚”‚”‚‚ŽìF‚f‚T‚X1-03☆5.3DOUBLE3214262394433HOLIC103.mcs
HolicTADASHI.UMISHIMA“¯Žž‰Ÿ‚µ‚ª‚·‚²‚¢‚Å‚·1-04☆7.4SINGLE31534823452108HOLIC104.mcs
HolicT.Hirano‚R˜A•„ƒ}ƒjƒA•KŒ©I2-01☆5.9SINGLE4304263206526HOLIC201.mcs
HolicT.TAMAIƒŠƒYƒ€‚Éæ‚ê‚é“‚³EEEHH2-02☆5.9SINGLE3604652685442HOLIC202.mcs
HolicY.IMAIƒŠƒYƒ€‚̃ƒi‚É‹C‚ð‚‚¯‚ë2-03☆6.7SINGLE2354651755076HOLIC203.mcs
Holic???_02”æ‚ê‚Ü‚·2-04☆5.6SINGLE3504652605333HOLIC204.mcs
HolicSUGAWARA TAKASHI“Á‚ɓ‚¢Š‚Í‚ ‚è‚Ü‚¹‚ñB2-05☆6.0DOUBLE2473101843684HOLIC205.mcs
HolicKEISUKE.Sƒtƒ‹ƒRƒ“‚Å‚«‚»‚¤‚łł«‚È‚¢2-06☆6.3SINGLE3044652264563HOLIC206.mcs
HolicY.KAZAMAKI—á‚̃gƒR‚¾‚¯Œ©‚¦‚Ü‚¹‚ñ™3-01☆5.1SINGLE3023482254536HOLI_301.mcs
Holic???_05‰SŽÒ—pƒXƒeƒbƒv‚»‚Ì‚Q3-02☆1.4SINGLE13019396160HOLI_302.mcs
HolicJun T.“¯Žž‚à’ljÁB4-01☆5.8SINGLE3483102594864HOLIC401.mcs
HolicT.YASUDAŒðŒÝ‚̓€ƒŠ‚©‚È4-02☆4.7SINGLE3204652384914HOLIC402.mcs
HolicT.Fukazawa‹¥ˆ«B4-03☆8.3SINGLE39962029760113HOLIC403.mcs
Holict.mizunoƒŠƒYƒ€‚Éæ‚ê‚΃Iƒ‚ƒVƒƒC‚Å‚·B4-04☆5.2SINGLE3023482254938HOLIC404.mcs
Holic???_09™~‚U4-05☆7.8SINGLE5286203936657HOLIC405.mcs
HolicK.GOTOU‚È‚©‚È‚©‚Ì“ï‹ÈI5-01☆6.7SINGLE3464652574973HOLIC501.mcs
HolicKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆6.5COUPLE176/17623213138119HOLIC601.mcs
HolicMITHUTOSHI NAKATAÅŒã‚Í‚±‚¤‚¶‚á‚È‚¢‚Æ‚ËB6-02☆6.4SINGLE3103872315366HOLIC602.mcs
HolicK.Kinugawa‚`‚m‚`|‚g‚n‚q‚hì‚Á‚¿‚á‚Á‚½iо6-03☆6.3DOUBLE4295423196040HOLIC603.mcs
HolicM.TOKUMOTOŌオŽR‚©‚ÈEEEH6-04☆5.7SINGLE3454652575436HOLIC604.mcs
HolicYuki Ichikawa‚Q‚c‚w‚̃AƒiƒU[‚ð•\Œ»‚µ‚悤‚Æ6-05☆5.8SINGLE4605033425821HOLIC605.mcs
HolicYasunobu OkudaŒ‹\ƒ„ƒo‚߂Ɏdオ‚Á‚Ă܂·B7-01☆5.7SINGLE3644652715633HOLIC701.mcs
HolicKotaro Kagawaˆê‰žAuƒCƒ`ƒIƒVvB7-02☆4.9SINGLE3243872415419HOLIC702.mcs
HolicNorihiro Kitamura‚Q‚c‚w‚ÈƒŠƒYƒ€‚Å‚·BŌオ7-03☆5.3DOUBLE3584652666519HOLIC703.mcs
HolicNorihiro KitamuraŒŠ‚ðŒ@‚Á‚ÄÀ‚Á‚Ä‚­‚¾‚³‚¢7-04☆5.2SINGLE3584652666516HOLIC704.mcs
HolicTATSURO SAKAGUCHI‚Q‚c‚w‚ÌiˆÈ‰º“¯•¶j7-05☆5.7SINGLE3825422845731HOLIC705.mcs
HolicTATSURO SAKAGUCHI‚Q‚c‚w‚ÌiŒŠj‚Å‚·B7-06☆6.6SINGLE4465423326145HOLIC706.mcs
HolicK.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.7SINGLE3564262654937HOLIC801.mcs
HolicY.SAWADA‚Q‚c‚w‚Ì‚æ‚è‚ÍŠÈ’PB8-02☆4.8DOUBLE3453102575129HOLIC802.mcs
HolicKOHEI.T‚©‚ë‚â‚©‚ȃXƒeƒbƒv‚ÅB8-03☆5.9SINGLE4014652986031HOLIC803.mcs
HolicShimamoto Satoshi‚Ü‚Ÿ‚»‚±‚»‚±8-04☆4.9DOUBLE406503302596HOLIC804.mcs
HOLIDAYYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.4SINGLE2362561644437HOLID101.mcs
HOLIDAYHAJIME.I‚Ú‚æ‚ñìF‹x“ú‚ÉV‘N‚È•—‚ð2-01☆4.7SINGLE2662881855134HOLID201.mcs
HOLIDAYK.SUGAI‚r‚g‚o‚g‚n‚k‚O‚P^‚T2-02☆3.2SINGLE2152241494112HOLID202.mcs
HOLIDAYT.HIRASAWA‚ä‚Á‚½‚èA‚Æ4-01☆3.7SINGLE2362241642935HOLID401.mcs
HOLIDAYSHiNiCHi SAiTHO‰Ì‚¢‚È‚ª‚炨‚Ç‚éH4-02☆4.8DOUBLE2652881845733HOLID402.mcs
HOLIDAYSAEKO.T‚Ü‚Á‚½‚èŠy‚µ‚­—x‚è‚Ü‚µ‚å4-03☆4.8DOUBLE2602561805941HOLID403.mcs
HOLIDAY???_18‚±‚Ì‹ÈD‚«‚¾‚©‚çì‚Á‚½B6-01☆4.1SINGLE2122881506113HOLID601.mcs
HOLIDAYKOHEI.T‚Ü‚½[‚è‚¢‚«‚Ü‚µ‚傤B8-01☆3.5SINGLE235256163596HOLID801.mcs
HYPNOTIC CRISISTOMOKAZU-M‚a‚`‚r‚h‚b“I1-01☆1.6DOUBLE151168113725HYPN_101.mcs
HYPNOTIC CRISIST.MURATA‚P‚U•ª‘½‚¢‚Å‚·B1-02☆6.4SINGLE3753712816454HYPN_102.mcs
HYPNOTIC CRISISYASUHIRO.OƒŠƒYƒ€’Ê‚è‚Éì»1-03☆4.2SINGLE3343032505116HYPN_103.mcs
HYPNOTIC CRISISA.NAOKI‚lD‹g“c@ìF‚R‚l‚`‚m1-04☆5.4DOUBLE3334042494832HYPN_104.mcs
HYPNOTIC CRISIST.TAMAIƒŠƒYƒ€‚ÌŒÀŠE‚É’§íB2-01☆5.7SINGLE4153713116725HYPNO201.mcs
HYPNOTIC CRISISKEISUKE.S‘ƒRƒ“ƒ{‚S‚P‚W‚̊댯“x‚m‚D‚QI2-02☆5.9SINGLE4184723136128HYPNO202.mcs
HYPNOTIC CRISISK.TAKEMURAV‚µ‚¢ƒŠƒYƒ€‚ðl‚¦‚Ü‚µ‚½B2-03☆4.9SINGLE400371299707HYPNO203.mcs
HYPNOTIC CRISISM.IWAKURA‰SŽÒŒµ‹ÖB“ï“x‚X’ö“xB2-04☆4.5SINGLE349371261587HYPNO204.mcs
HYPNOTIC CRISISH.BANDOƒŠƒYƒ€‚É‹C‚ð”z‚Á‚Ă݂܂µ‚½B2-05☆5.7SINGLE3634042726131HYPNO205.mcs
HYPNOTIC CRISISYUKI Yokota‹¿‚­ƒTƒEƒ“ƒhA‰ó‚ꂽ‘«•ˆiƒEƒ\j2-06☆3.1SINGLE313269234442HYPNO206.mcs
HYPNOTIC CRISISTAKEHIRO-O‚y‚d‚m‚h‚s‚g@â’¸‚Ö‚Æ“ž’B‚·‚éŽÒ3-01☆6.7SINGLE5245393926825HYPN_301.mcs
HYPNOTIC CRISISY.KAZAMAKI‚W•ª’†Sƒqƒ|ƒmBƒqƒ|ƒb3-02☆6.0SINGLE2742692055379HYPN_302.mcs
HYPNOTIC CRISISJun T.“ïˆÕ“x‚X‚Å‚à‚Å‚«‚Ü‚·B4-01☆4.1SINGLE352337263527HYPN_401.mcs
HYPNOTIC CRISISKouki.Uׂ©‚¢‰¹‚É’–Ú‚µ‚Ü‚µ‚½4-02☆5.9SINGLE3054042286338HYPN_402.mcs
HYPNOTIC CRISIStakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-03☆5.8SINGLE3083712305149HYPN_403.mcs
HYPNOTIC CRISISt.mizuno‚½‚ñ‚½‚½‚½‚ñ‚½‚ñIiÎj4-04☆4.7SINGLE3334382495410HYPN_404.mcs
HYPNOTIC CRISIS???_09™~‚S4-05☆6.9SINGLE5005393746935HYPN_405.mcs
HYPNOTIC CRISISH.Kondoh‚X5-01☆5.7SINGLE3724042785733HYPNO501.mcs
HYPNOTIC CRISISJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.0SINGLE362539271719HYPNO601.mcs
HYPNOTIC CRISISYuki Ichikawa•Ï‘¥ƒ}ƒjƒA‚É’§íóI6-02☆4.6SINGLE397438297620HYPNO602.mcs
HYPNOTIC CRISISTAKU YAMAMOTOŒÂl“IƒCƒJ‚¿‚¢Š´‚¶ƒXƒeƒbƒv7-01☆5.7SINGLE2813032105062HYPN_701.mcs
HYPNOTIC CRISISRyosuke.TŒã‚ë‚̶•¨‚ª‹C‚ɂȂÁ‚Ä‹C‚ɂȂÁ‚Ä7-02☆4.6SINGLE369337276688HYPN_702.mcs
HYPNOTIC CRISISTAKEDA.SYOUHEI‚P‚U•ª’ˆÓ7-03☆5.7SINGLE3483712605342HYPN_703.mcs
HYPNOTIC CRISISN.NAGANO‹È‚ɂ̂Á‚ÄŠy‚µ‚ñ‚ʼnº‚³‚¢B7-04☆4.9SINGLE2842692124451HYPN_704.mcs
HYSTERIAK.TAKEMURA”÷–­‚ȃXƒeƒbƒv‚Å‚·B3-01☆5.3SINGLE3873802664336HYST_301.mcs
HYSTERIAA.NAOKI‚f‚‚”‚”‚‚ŽìF‚j‚h||||||3-02☆4.8DOUBLE2893801991167HYST_302.mcs
HYSTERIAY.KAZAMAKIƒŠƒYƒ€‚ªƒVƒƒƒbƒtƒ‹‚ŃXB3-03☆4.8SINGLE2923322012255HYST_303.mcs
HYSTERIAY.SAKAI‚Uƒpƒlƒ‹‚ðŒ³‚Éì‚Á‚Ă݂܂µ‚½B3-04☆5.1DOUBLE2863321962559HYST_304.mcs
HYSTERIATAKESHI.NUMAO‚R˜A•„‚ªƒCƒCŠ´‚¶‚Å‚·B3-05☆6.2SINGLE4004272754258HYST_305.mcs
HYSTERIA???_05ƒXƒLƒbƒv’²Žq‚ŃmƒŠƒmƒŠô3-06☆4.6SINGLE436427300429HYST_306.mcs
HYSTERIASAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-07☆5.7COUPLE265/2653321824064HYST_307.mcs
HYSTERIATOMOKAZU-M•Ï‘¥‚Uƒpƒl‚Ì—ûK4-01☆2.1DOUBLE2432851671013HYST_401.mcs
HYSTERIA???_06‚g‚x‚r‚s‚d‚q‚h‚`ƒTƒCƒR[I4-02☆5.7SINGLE29033219912108HYST_402.mcs
HYSTERIAT.YASUDA‚È‚©‚È‚©‚â‚è‚â‚·‚¢‚©‚È4-03☆5.3SINGLE3503802413644HYST_403.mcs
HYSTERIAKouki.U‚R˜A•„Žd—l4-04☆5.5SINGLE3644272503742HYST_404.mcs
HYSTERIAtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-05☆5.4SINGLE4153802854135HYST_405.mcs
HYSTERIAMIO.S‚±‚ñ‚È•—‚É‚â‚肽‚©‚Á‚½‚ñ‚Å‚·B4-06☆5.2SINGLE3003322063158HYST_406.mcs
HYSTERIAHIROKI.N“¯Žž¬‚¶‚è‚W•ª‚R˜A‚ª‹ÈŽÒ‚©‚ÈH5-01☆4.9SINGLE3553802443631HYSTE501.mcs
HYSTERIAMits-hide Obata‚±‚̋Ȃ̓nƒl‚ĂȂñ‚Ú‚Å‚µ‚åH5-02☆6.0SOLO3154272164257HYSTE502.mcs
HYSTERIAKAWAKITA MASAYA“‚¢‚̂łâ‚Á‚Ă݂ĉº‚³‚¢I6-01☆5.5SINGLE4203802893641HYST_601.mcs
HYSTERIAKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-02☆6.1COUPLE237/23733216315115HYST_602.mcs
HYSTERIAMITHUTOSHI NAKATA‰ñ‚Á‚Ä—V‚Ú‚¤B6-03☆7.0SINGLE35138024132104HYST_603.mcs
HYSTERIA???_17ŽO˜A•„‘½‚µI’ˆÓI6-04☆5.5SINGLE4274272944133HYST_604.mcs
HYSTERIASHIGERU ARAI‚P‚Q‚É‚±‚¾‚í‚è‚Ü‚µ‚½B6-05☆5.2SINGLE3363802313543HYST_605.mcs
HYSTERIATAKEO.U•s‹K‘¥‚ȃeƒ“ƒ|‚É‹C‚ð‚‚¯‚ÄI6-06☆4.7SINGLE3443802363428HYST_606.mcs
HYSTERIAT.NAOYA‚b‚n‚t‚s‚h‚n‚m6-07☆5.5SINGLE3393802333056HYST_607.mcs
HYSTERIAH.KAWAKAMI‚`‚j‚kŽ‚Ìì•iB6-08☆5.2SINGLE3803802613439HYST_608.mcs
HYSTERIATAKESHI MATSUMOTOƒXƒCƒbƒ`‚·‚邯ƒLƒŒƒC‚É“¥‚߂܂·B7-01☆6.7SINGLE3784272603782HYST_701.mcs
HYSTERIARYO SAKAI‚È‚ÉA‚±‚Ì‚ ‚₵‚¢ƒ_ƒ“ƒXB7-02☆5.3SINGLE4143802854034HYST_702.mcs
HYSTERIATAKEDA.SYOUHEI‚â‚艞‚¦‚ ‚é‚©‚ÈH7-03☆6.5SINGLE3743802574772HYST_703.mcs
HYSTERIAN.NAGANO‚±‚̋ȂłàƒXƒLƒbƒv‚µ‚Ă݂܂·B7-04☆5.5SINGLE3293322262770HYST_704.mcs
HYSTERIAD KYUTOKUŽv‚¢o‚̋Ȃł·BI‚­o—ˆ‚½‚©‚ÈH7-05☆3.0SINGLE2142851491816HYST_705.mcs
HYSTERIAK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆5.5SINGLE3703802543845HYST_801.mcs
HYSTERIAY.TAKEUCHI•’ʂ̃_ƒuƒ‹B‚R‚’‚„•—–¡B8-02☆4.3DOUBLE3093802122526HYST_802.mcs
HYSTERIA???_22ƒZƒjƒ‡ƒŠ[ƒ^Ž—B„’è‚k‚u‚X8-03☆4.8DOUBLE3713802552835HYST_803.mcs
I believe in miraclesM.MOCHIDUKIˆê‹È‚Å‚R‹È•ª1-01☆3.5SINGLE2033151552913IBEL_101.mcs
I believe in miraclesYAMADA HIDETOSHI‰¹’Ê‚è‚æ‚茩‚â‚·‚³dŽ‹1-02☆5.1SINGLE2462831893460IBEL_102.mcs
I believe in miraclesT_YAMADA‹CŽ‚¿—Ç‚¢‚­‚ç‚¢‚P‚U•ª‚ðŽg‚Á‚½1-03☆5.3SINGLE3234092486719IBEL_103.mcs
I believe in miraclesY_TATEƒIƒtƒBƒVƒƒƒ‹•ˆ–Ê‚ÉF‚‚¯‚Ü‚µ‚½B1-04☆3.9SINGLE249315191519IBEL_104.mcs
I believe in miraclesA.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚qD‚`1-05☆3.4DOUBLE2302521763416IBEL_105.mcs
I believe in miraclesMASAHIRO.Y‚܂Ƃ܂肪EEE2-01☆3.5DOUBLE286283219485IBIM_201.mcs
I believe in miraclesY.IMAI™X‚ɓ‚­‚Ȃ郉ƒXƒg2-02☆4.9SINGLE2153151654240IBIM_202.mcs
I believe in miraclesK.SUGAI‚r‚g‚o‚l‚h‚q‚O‚Q^‚V2-03☆4.3SINGLE2513151925914IBIM_203.mcs
I believe in miraclesK.SUGAI‚r‚g‚o‚l‚h‚q‚O‚S^‚W2-04☆4.0SINGLE259315198626IBIM_204.mcs
I believe in miraclesKoichi NakayamaƒTƒr•”•ª‚Ì‚P‚U•ª‚ªEEE3-01☆5.9SINGLE3294092526933IBEL_301.mcs
I believe in miraclesMasato T.ƒtƒtƒbƒt[‚ͺ‚É‚ ‚Á‚Ă܂·B4-01☆5.1SINGLE3443462645927IBEL_401.mcs
I believe in miraclesY.TSUDA‚l‚`‚m‚h‚`‚b‚Ƒ債‚Ĉá‚í‚È‚¢‚æB5-01☆4.7SINGLE3163782425415IBIM_501.mcs
I believe in miraclesOKAMOTO TaishiƒAƒi‚SFƒ}ƒj‚RFƒIƒŠƒWƒiƒ‹‚RB5-02☆3.0SINGLE264283202430IBIM_502.mcs
I believe in miraclesKazuhiko Chiba‚ ‚Ì•”•ª‚ð–O‚«‚é‚Ù‚ÇB5-03☆5.3SINGLE2683782055233IBIM_503.mcs
I believe in miraclesDAISUKE A.‚¾‚ñ‚¾‚ñ“‚­‚È‚Á‚Ä‚¢‚«‚Ü‚·B6-01☆4.7SINGLE2074091592730IBEL_601.mcs
I believe in miraclesSHIGERU ARAI‚â‚Á‚ς艹‚ɇ‚킹‚ÄB6-02☆6.2SINGLE3244092487341IBEL_602.mcs
I believe in miraclesK.KinugawaŽ©Mì‚Å‚·BŠy‚µ‚¢‚Å‚·‚æB6-03☆4.9DOUBLE3133782405222IBEL_603.mcs
I believe in miraclesKotaro Kagawa‹L”O‚·‚ׂ«‘æ‚Pì–ÚB7-01☆4.0SINGLE2593151984912IBEL_701.mcs
I believe in miraclesO.TAKEUCHI‹¶‚¦‚é°‚æA‰i‰“‚È‚êB7-02☆6.3SINGLE3433782635856IBEL_702.mcs
I DON'T WANT TO MISS A THINGYosuke MoritaƒAƒ‹ƒ}ƒQƒhƒ“‚ÌŠ´“®‚ª‚æ‚Ý‚ª‚¦‚é3-01☆4.6DOUBLE2543391714626IDON_301.mcs
I DON'T WANT TO MISS A THINGTOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆3.1DOUBLE282339190244IDON_401.mcs
I DON'T WANT TO MISS A THINGTUBASA.S‚¨‚Ç‚è‚â‚·‚¢B4-02☆4.6SINGLE3703392493530IDON_402.mcs
I DON'T WANT TO MISS A THINGt.mizuno‚ӂ݂₷‚¢‚¯‚ǃXƒeƒbƒv”‘½‚µB4-03☆5.2SINGLE3573392404143IDON_403.mcs
I DON'T WANT TO MISS A THINGTAISHI K.ƒIƒtƒBƒVƒƒƒ‹‚ðƒAƒŒƒ“ƒW4-04☆5.2SINGLE3454242323834IDON_404.mcs
I DON'T WANT TO MISS A THINGA.NAOKI‚lD‹g“c@ìF“ïˆÕ“x‚UH5-01☆5.5DOUBLE2803391882081IDONT501.mcs
I DON'T WANT TO MISS A THINGTAKEO.U‰F’ˆ‚ðŠ´‚¶‚³‚¹‚Ü‚·B6-01☆4.5SINGLE3713392504222IDONT601.mcs
I DON'T WANT TO MISS A THINGF.ATHUSHI“Á‚ɂȂµ7-01☆4.2DOUBLE2833391902431IDONT701.mcs
I DON'T WANT TO MISS A THINGF.ATHUSHI“Á‚ɂȂµ7-02☆4.6DOUBLE3373392273531IDONT702.mcs
I M ALIVE(CUT'N'MOVE)YUSUKE.KV‚µ‚¢”wŒi‚ÉŠ´“®‚µ‚Äì‚è‚Ü‚µ‚½3-01☆5.3SINGLE3083352344646IMAL_301.mcs
I M ALIVE(CUT'N'MOVE)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚X‚S‚Q‚P‚S‚S‚r‚o3-02☆4.2DOUBLE2182341652354IMAL_302.mcs
I M ALIVE(CUT'N'MOVE)ABE TaTsuMa‚¿‚å‚Á‚ƕςȊ´‚¶‚ÉB5-01☆4.2SINGLE2323681764710IACUT501.mcs
I M ALIVE(CUT'N'MOVE)NAOTO M.Ž©Mì‚Å‚·‚æI6-01☆4.9SINGLE2813352135031IACNM601.mcs
I M ALIVE(CUT'N'MOVE)KOHEI.T‚±‚Ì‹ÈD‚«B8-01☆5.0SINGLE2353351785134IMALC801.mcs
I M ALIVE(UNCLE 36 SEC feat...)NAOTO M.‚¿‚å‚Á‚ƃAƒŒƒ“ƒW‚µ‚Ă݂܂µ‚½‚æI6-01☆5.9SINGLE2935602094948IAU36601.mcs
IF YOU CAN SAY GOODBYEYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-01☆4.9SINGLE2592641984848IYCSG101.mcs
IF YOU CAN SAY GOODBYEKEISUKE.MŽv‚¢“ü‚ꂪ[‚¢‹È‚Å‚·B1-02☆4.0SINGLE2672642044524IYCSG102.mcs
IF YOU CAN SAY GOODBYETADASHI.UMISHIMAŒy‰õ‚ȃXƒeƒbƒv‚Å‚·1-03☆6.4SINGLE23423117956101IYCSG103.mcs
IF YOU CAN SAY GOODBYEJ.GOUKE‚©‚È‚è“K“–‚Å‚·B2-01☆4.8SINGLE2462641884944IYCSG201.mcs
IF YOU CAN SAY GOODBYEHIROKI TAKAHASHIŠ®‘S‚ɉ¹‚ɇ‚킹‚Ü‚µ‚½B2-02☆4.8SINGLE2552971955235IYCSG202.mcs
IF YOU CAN SAY GOODBYEKubota Mamoru‚±‚ꂪ‚Å‚«‚½‚ç‰SŽÒ‘²‹Æ2-03☆2.4SINGLE1521651161529IYCSG203.mcs
IF YOU CAN SAY GOODBYEMASAHIRO.Y‹ê˜J‚µ‚½Š„‚É‚ÍEEE2-04☆3.5DOUBLE214264164517IYCSG204.mcs
IF YOU CAN SAY GOODBYEKONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-01☆2.4SINGLE1702311301127IYCS_301.mcs
IF YOU CAN SAY GOODBYET.HIRASAWAƒ‰ƒXƒg‚ªƒ}ƒj‚¾‚ñ‚¾‚肾c4-01☆3.9SINGLE1972311515124IYCSG401.mcs
IF YOU CAN SAY GOODBYEN.MIMURA’†‹‰ƒpƒtƒH[ƒ}[Œü‚¯4-02☆3.7SINGLE2262641733820IYCSG402.mcs
IF YOU CAN SAY GOODBYET.MAMIYA‹Zp‚æ‚è‘Ì—Í‚æ‚èAW’†—͂ł·cB5-01☆7.5SINGLE29152822346107IYCSG501.mcs
IF YOU CAN SAY GOODBYEKEIGO.H‚r‚h‚m‚f‚k‚d@‚a‚d‚dI5-02☆4.5SINGLE2782642135134IYCSG502.mcs
IF YOU CAN SAY GOODBYEDAISUKE A.ƒŠƒYƒ~ƒJƒ‹‚É‚µ‚½‚‚à‚è‚Å‚·B6-01☆6.3SINGLE2413631844773IYCSG601.mcs
IF YOU CAN SAY GOODBYE???_18ì‚Á‚½’†‚Å‚¢‚¿‚΂ñ‚©‚ñ‚½‚ñ6-02☆4.6SINGLE2012641545335IYCSG602.mcs
IF YOU CAN SAY GOODBYEN_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆6.0SINGLE3304622535545IYCSG701.mcs
IF YOU CAN SAY GOODBYEK.Itou‚Ü‚¶‚߂ɂ‚­‚è‚Ü‚µ‚½B8-01☆5.9SINGLE2542641944683IYCSG801.mcs
IF YOU WERE HEREKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆4.8DOUBLE2653642475818IYWH_101.mcs
IF YOU WERE HERET_YAMADA‰¹‡‚킹‚É‹ê˜J‚µ‚½EEE1-02☆5.6SINGLE2985822786126IYWH_102.mcs
IF YOU WERE HEREA.NAOKI‚f‚‚”‚”‚‚ŽìF‚a‚h‚m‚s‚`1-03☆2.9DOUBLE1932541802513IYWH_103.mcs
IF YOU WERE HEREK.HAYASE‚P‚U•ª‚𑽗p‚µ‚½ã‹‰ŽÒŒü‚¯B1-04☆4.9SINGLE2734002545813IYWH_104.mcs
IF YOU WERE HEREMasaki Hashimoto‚¨‚·‚·‚߂ł·2-01☆4.4SINGLE2262912105423IYWH_201.mcs
IF YOU WERE HEREMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-02☆4.2DOUBLE2022911885219IYWH_202.mcs
IF YOU WERE HEREJ.GOUKEŽåù—¥‚ð“¥‚à‚¤ƒVƒŠ[ƒY‚Q2-03☆4.7SINGLE2303642146015IYWH_203.mcs
IF YOU WERE HEREYOU.W”æ‚ꂽ‘̂ɂ͂±‚Ì–ü‚µ‚Ì•ˆ–Ê‚ðB2-04☆5.0SINGLE2433642264928IYWH_204.mcs
IF YOU WERE HEREY.IMAI‹È‚ð‚æ‚­•·‚±‚¤2-05☆4.6SINGLE1992911854137IYWH_205.mcs
IF YOU WERE HERETOMOHIRO NAKAIƒnƒbƒs[‚ȃCƒ“ƒgƒ‚ð‘«‚Å“¥‚à‚¤I3-01☆7.1SINGLE3715093466652IYWH_301.mcs
IF YOU WERE HERETakahiro.H‹­‰»”Å‚l‚c‚o‚P3-02☆4.1DOUBLE2403272244414IYWH_302.mcs
IF YOU WERE HERERyohei Seki‚u‚‰‚–‚@‚hf‚–‚…I‚Á‚ăƒP‚ÅB3-03☆5.4SINGLE2614002436025IYWH_303.mcs
IF YOU WERE HERET.HIRASAWAƒ^ƒCƒ~ƒ“ƒOŽæ‚è‚Â炢H4-01☆3.6SINGLE1922541793820IYWH_401.mcs
IF YOU WERE HEREHIROSHI TAKENOUCHIƒŒƒxƒ‹‚V4-02☆3.5SINGLE2192912043215IYWH_402.mcs
IF YOU WERE HEREN.MIMURA‰‹‰ƒpƒtƒH[ƒ}[Œü‚¯4-03☆3.9SINGLE2112911962928IYWH_403.mcs
IF YOU WERE HEREtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-04☆5.6SINGLE2764002575930IYWH_404.mcs
IF YOU WERE HEREHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆4.4SINGLE2153272005815IYWH_405.mcs
IF YOU WERE HERE???_10ƒAƒiƒU[‘«‚T‚­‚ç‚¢H5-01☆4.8SINGLE1743271622254IYWH_501.mcs
IF YOU WERE HEREHIDEAKI.O¡”N‚ɂȂÁ‚ĉ‚߂ĂQ‚Ž‚„‚µ‚½Ž„5-02☆4.0COUPLE221/2212912064915IYWH_502.mcs
IF YOU WERE HEREMits-hide ObataƒN[ƒ‹ƒ_ƒEƒ“‚É‚º‚Ђǂ¤‚¼`B5-03☆4.3SINGLE1872911743139IYWH_503.mcs
IF YOU WERE HEREKazuhiko Chiba‹È’Ê‚è‚É‚µ‚½‚ç—x‚è‚Â炭iоj5-04☆4.6SINGLE2444362274712IYWH_504.mcs
IF YOU WERE HERESatoru Hata‚Q‚o‘¤‚ÍÀ‚¯‚邺‚¥I5-05☆7.5COUPLE417/3305823896851IYWH_505.mcs
IF YOU WERE HEREKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-06☆3.5DOUBLE2132911982719IYWH_506.mcs
IF YOU WERE HEREJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆4.9SINGLE2704002525812IYWH_601.mcs
IF YOU WERE HEREH.YamaguchiS‚Ì–¼‹È‚Åì‚Á‚Ă݂܂µ‚½‚ªc6-02☆4.8SINGLE2603642425221IYWH_602.mcs
IF YOU WERE HERERyosuke.T‚ ‚ AŽq‹Ÿ‚ɖ߂肽‚¢EEE7-01☆5.0SINGLE317400295687IYWH_701.mcs
IF YOU WERE HERET.Hanada§ìŽÒ‚ÌŽv‚¢‚ł̂±‚à‚Á‚½•ˆ–Ê7-02☆5.6SINGLE2354002195933IYWH_702.mcs
IF YOU WERE HERETOMOFUMI YOSHIDA’†“r”¼’[‚ȓ‚³B7-03☆5.6SINGLE2443642275941IYWH_703.mcs
IF YOU WERE HEREK.KAWASEŠy‚µ‚­“¥‚߂܂·‚æB7-04☆3.9SINGLE2452912284316IYWH_704.mcs
IF YOU WERE HERERYO.N.‰¹‚»‚̂܂܂ł·B7-05☆5.9SINGLE2505092335841IYWH_705.mcs
IF YOU WERE HEREYohei MaruyamaŽv‚¢o‚̈ê‹È‚Å‚·B8-01☆5.2SINGLE2584362406220IYWH_801.mcs
IF YOU WERE HERETOSHIMITU.KURITA’†‹‰ŽÒŒü‚¯8-02☆4.3SINGLE2262912105820IYWH_802.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)TOMOKAZU-M¶‰EˆÚ“®‘å•Ï1-01☆4.3DOUBLE3393402364617IYWHB101.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)YASUHIRO.OƒŠƒYƒ€’Ê‚è‚ɧìB‚P‚U•ª‚ ‚è1-02☆5.5DOUBLE3664252594537IYWHB102.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)SOUSHIN.Kì‚è‚â‚·‚©‚Á‚½‚Å‚·‚˃RƒŒ‚Í1-03☆4.9SINGLE434680302587IYWHB103.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)A.NAOKI‚lD‹g“c@ìF‚n‚s‚s‚n‚s‚s‚n1-04☆4.9DOUBLE3693402614430IYWHB104.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)KEISUKE.S‚P‚U•ª‚É’ˆÓI2-01☆5.9SINGLE3825102664350IYWHB201.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)Masayuki.A“ïˆÕ“x‚V‚©‚ÈH‚à‚µ‚©‚µ‚Ä‚WH2-02☆6.1SINGLE2863402022591IYWHB202.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)K.TAKEMURAº‚Ɖ¹‚ɇ‚킹‚Ă܂·B2-03☆6.2SINGLE4474253116039IYWHB203.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)JUN O.u‚r‚m‚n‚v‚x‚c‚`‚xv‘«‚W3-01☆6.0SINGLE3623402525659IYWHB301.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)TOMOHIRO NAKAI‚‘¬‚ÅP‚¢‚©‚©‚é–îˆó‚ðŒ‚”j‚¹‚æI3-02☆6.6SINGLE5405103826627IYWHB302.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)Y.KAWABE‚Q‚Ž‚„Žž‚Ì‚à‚Ì‚ðƒŠƒƒCƒN4-01☆5.5SINGLE4836373365815IYWHB401.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)TAISHI K.‹È‚ð‚æ‚­‚«‚¢‚Ä‚Ó‚à‚¤4-02☆5.6SINGLE3703822575833IYWHB402.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)???_09™~‚R4-03☆7.2SINGLE4315523055773IYWHB403.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)HIROKI.NƒTƒr‚Ì•”•ª‚ªŽè‹­‚¢‚Å‚·B5-01☆5.0SINGLE4324253005611IYWHB501.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)Katsuhiko Kinoshita“‚­‚È‚ç‚È‚¢‚悤‚É5-02☆3.6SINGLE2722971922128IYWHB502.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)SATOSHI.H‚©‚Ȃ茵‚µ‚¢ƒXƒeƒbƒv‚Å‚·5-03☆6.2SINGLE4825103355735IYWHB503.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)KENJI ENDA‚â‚èž‚ñ‚¾l‚È‚çŠÈ’P‚©H6-01☆5.8DOUBLE4013822844842IYWHB601.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)S.kentaro‚s‚t‚q‚a‚nI@‚n‚m6-02☆2.4SINGLE223212157241IYWHB602.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)???_17‰´“I—DGÜiÎj6-03☆5.6SINGLE4033402804547IYWHB603.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)Yuki IchikawaƒXƒs[ƒhŒn‚̓mƒŠ‚ðd—vŽ‹B6-04☆5.8SINGLE4284252985334IYWHB604.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)TOMOFUMI YOSHIDA’´‚‘¬ƒXƒeƒbƒv‚µ‚ĉº‚³‚¢B7-01☆6.7COUPLE362/3625522525965IYWHB701.mcs
IF YOU WERE HERE(B4 ZA BEAT MIX)T.OGINO‚P‚o‚©‚ñ‚½‚ñ@‚Q‚o‚Þ‚¸‚©‚µ‚¢8-01☆8.7COUPLE480/37555233450138IYWHB801.mcs
IN THE HEAT OF THE NIGHTA.NAOKI‚f‚‚”‚”‚‚ŽìF‚a‚n‚n‚l‚d‚q‚`‚m1-01☆3.5DOUBLE2652722003415ITHOT101.mcs
IN THE HEAT OF THE NIGHTT.TAMAIƒŠƒYƒ€‚ÌŒÀŠE‚É’§íB2-01☆5.6SINGLE4405443326017ITHOT201.mcs
IN THE HEAT OF THE NIGHTKubota Mamoru‚s‚q‚h‚b‚j‚Ö‚Ì‘æˆê•à2-02☆1.9SINGLE160170123334ITHOT202.mcs
IN THE HEAT OF THE NIGHTF.ATHUSHIŠî–{“I‚ȃXƒ‰ƒCƒhƒXƒeƒbƒv‚Å‚·B3-01☆3.5SINGLE2632721983616ITHO_301.mcs
IN THE HEAT OF THE NIGHTHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.0SINGLE2212381706020ITHOT401.mcs
IN THE HEAT OF THE NIGHTK.GOTOUŠÈ’PƒXƒeƒbƒvH5-01☆3.5SINGLE2532721914111IHEAT501.mcs
IN THE HEAT OF THE NIGHTSatoru Hataá~‚é¹–é‚ɃAƒŠƒX‚͌̋½‚ðŽv‚¤B5-02☆5.0SINGLE3964082995710IHEAT502.mcs
IN THE HEAT OF THE NIGHTKotaro Kagawa؂Ȃ¢ù—¥‚Æ‹¤‚ÉB7-01☆4.0SINGLE327340247487ITHOT701.mcs
IN THE HEAT OF THE NIGHTNorihiro Kitamura‚Ù‚Ç—Ç‚¢“ï“x‚ɂȂÁ‚½‚ÆŽv‚¢‚Ü‚·7-02☆3.8DOUBLE319306241469ITHOT702.mcs
IN THE HEAT OF THE NIGHT???_22‚P‚U•ª‚R˜A{‘êB„’è‚k‚u‚W8-01☆4.3SINGLE3023062284622ITHOT801.mcs
IN THE NAVY '99(XXL Disaster Remix)M.MOCHIDUKI¶‰E‘ÎÌsi•ˆ–Ê1-01☆3.4COUPLE263/2632361772529ITN99101.mcs
IN THE NAVY '99(XXL Disaster Remix)YAMADA HIDETOSHIƒXƒ‰ƒCƒh‚ðŽg‚Á‚ĉº‚³‚¢1-02☆3.9SINGLE2912701963626ITN99102.mcs
IN THE NAVY '99(XXL Disaster Remix)T_YAMADAƒE[ƒ€AƒgƒŠƒbƒL[‚ÈƒŠƒYƒ€1-03☆5.9SINGLE3374052274751ITN99103.mcs
IN THE NAVY '99(XXL Disaster Remix)Masaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆5.1SINGLE3143712114334ITN99201.mcs
IN THE NAVY '99(XXL Disaster Remix)Y.SAKAI‚P‚U•ª‚ÌŒ©‹É‚ß‚ªd—v2-02☆4.3SINGLE2884051943118ITN99202.mcs
IN THE NAVY '99(XXL Disaster Remix)K.SUGAI‚r‚g‚o‚m‚`‚u‚O‚P^‚U2-03☆5.5SINGLE2712361822893ITN99203.mcs
IN THE NAVY '99(XXL Disaster Remix)KOMOGUCHI.YƒXƒLƒbƒv‚ÍŠy‚µ‚¢‚Å‚·2-04☆4.2SINGLE3353032264323ITN99204.mcs
IN THE NAVY '99(XXL Disaster Remix)H.BANDOʼn‚É‹ê˜J‚µ‚Ü‚µ‚½B2-05☆6.1SINGLE3755062535249ITN99205.mcs
IN THE NAVY '99(XXL Disaster Remix)TSUJI JUNNYAƒf[ƒ^–¼‚Í‹C‚É‚µ‚È‚¢‚ʼnº‚³‚¢B3-01☆7.1SINGLE3655062465384ITN__301.mcs
IN THE NAVY '99(XXL Disaster Remix)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚o‚n‚o‚`‚h3-02☆2.1SINGLE163135110049ITN__302.mcs
IN THE NAVY '99(XXL Disaster Remix)M.YamamotoƒTƒr‚̉¹‡‚킹@‚¢‚¢ƒJƒ“ƒW3-03☆5.0SINGLE3393712284132ITN__303.mcs
IN THE NAVY '99(XXL Disaster Remix)TAKAHIRO.MƒŠƒYƒ€‚ɇ‚킹‚Äì‚è‚Ü‚µ‚½3-04☆1.7SINGLE198202133322ITN__304.mcs
IN THE NAVY '99(XXL Disaster Remix)TAKAHIRO.M‚m‚`‚u‚x‚X‚X|‚Q‚æ‚è‚ÍŠÈ’P‚¾‚ªc3-05☆1.3SINGLE195202131312ITN__305.mcs
IN THE NAVY '99(XXL Disaster Remix)Ryohei Seki“¯Žž“¥‚Ý•‚W•ª‚Å‚®‚é‚®‚é`3-06☆4.6SINGLE2652361782862ITN__306.mcs
IN THE NAVY '99(XXL Disaster Remix)HIROSHI TAKENOUCHIƒŒƒxƒ‹‚W4-01☆3.3SINGLE332303224490ITN99401.mcs
IN THE NAVY '99(XXL Disaster Remix)Y.KAWABEŒÃ‚¢‚̂ЂÁ‚Ï‚èo‚µ‚Ă݂½‚ªc4-02☆4.7SINGLE3042702053651ITN99402.mcs
IN THE NAVY '99(XXL Disaster Remix)???_09™~‚R4-03☆5.7SINGLE4965403345920ITN99403.mcs
IN THE NAVY '99(XXL Disaster Remix)Y.TSUDA‚r‚r‚q‚ð‚à‚Æ‚É‚µ‚Äl‚¦‚Ü‚µ‚½B5-01☆4.5SINGLE377540254488ITN99501.mcs
IN THE NAVY '99(XXL Disaster Remix)HIGASHI SENSHIROU‘z‘œ‚Ì’†‚̃}ƒjƒAƒbƒNB5-02☆5.9SINGLE3123032103782ITN99502.mcs
IN THE NAVY '99(XXL Disaster Remix)DAISUKE A.‰ÌŽŒ‚ɇ‚킹‚½ƒXƒeƒbƒv‚Å‚·B6-01☆3.5SINGLE284303191389ITN99601.mcs
IN THE NAVY '99(XXL Disaster Remix)T.FUJIWARAƒXƒLƒbƒv‚ÉŽO˜A•„‚ðEEE6-02☆4.6SINGLE3733712515412ITN99602.mcs
IN THE NAVY '99(XXL Disaster Remix)???_18HHH6-03☆4.8SINGLE2572701734547ITN99603.mcs
IN THE NAVY '99(XXL Disaster Remix)Kouzou.N‚W•ª˜A‘ł̋CŽ‚¿—Ç‚³‚ð’Ç‹7-01☆4.9SINGLE3173032134045ITN99701.mcs
IN THE NAVY '99(XXL Disaster Remix)RYO.N.Ìì‚Á‚½“z‚Ȃ̂ÅEEE7-02☆5.2SINGLE3132702113766ITN99702.mcs
IN THE NAVY '99(XXL Disaster Remix)Yohei Maruyama‚R‚’‚„ˆÈã‚S‚”‚ˆ‚o‚k‚t‚rˆÈ‰ºB8-01☆4.2SINGLE347371234498ITN99801.mcs
IN THE NAVY '99(XXL Disaster Remix)Keisuke Omori‚u‚n‚b‚`‚k‚ɇ‚킹‚Ü‚µ‚½8-02☆5.6SINGLE3033032044663ITN99802.mcs
into the worldHatamoto Yohei‹È‚ÌƒŠƒYƒ€‚ð¶‚©‚µ‚Ü‚µ‚½B4-01☆5.7SINGLE1342521277363INTO_401.mcs
IT ONLY TAKES A MINUTE(Extended Remix)A.NAOKI‚lD‹g“c@ìFƒtƒB[ƒo[ƒ|[ƒY3-01☆3.8DOUBLE2182441622935ITON_301.mcs
IT ONLY TAKES A MINUTE(Extended Remix)Kouki.U‚Ç[‚È‚ñIH4-01☆4.1SINGLE2422741805220ITONL401.mcs
IT ONLY TAKES A MINUTE(Extended Remix)D KYUTOKUa‚­—x‚낤B7-01☆4.9SINGLE1832741364845ITON_701.mcs
Jam Jam ReggaeYuto Jijiwa‚`‚l‚cƒ}ƒjƒAƒbƒN‚Æ­‚µŽ—‚Ă܂·5-01☆5.9SINGLE2143372186054JJRC1501.mcs
Jam Jam Reggae(AMD SWING MIX)TOMOKAZU-MƒVƒ“ƒOƒ‹‚̃_ƒuƒ‹‰»1-01☆6.4DOUBLE2763602216068JJRA_101.mcs
Jam Jam Reggae(AMD SWING MIX)YAMADA HIDETOSHI— ‰¹’†S1-02☆4.6SINGLE2403371925620JJRA_102.mcs
Jam Jam Reggae(AMD SWING MIX)SINOMIYA.YŒ©‚É‚­‚¢1-03☆5.6SINGLE3493602806631JJRA_103.mcs
Jam Jam Reggae(AMD SWING MIX)???_01‰½‚¶‚Ⴑ‚è‚áIH1-04☆7.3SINGLE2973602386196JJRA_104.mcs
Jam Jam Reggae(AMD SWING MIX)TADASHI.UMISHIMA”z’u‚ª‚Æ‚Ä‚à‚¢‚¢‚Å‚·1-05☆7.6SINGLE24531519654145JJRA_105.mcs
Jam Jam Reggae(AMD SWING MIX)MASAHIRO.YŒðŒÝ‚É“¥‚߂΂»‚ê‚È‚è‚ÉEEEH2-01☆2.4DOUBLE231180185490JJRA_201.mcs
Jam Jam Reggae(AMD SWING MIX)HAJIME.I‚Ú‚æ‚ñìF–îˆó’n–ƒCƒ“ƒpƒNƒg‘å2-02☆5.7SINGLE2872922306059JJRA_202.mcs
Jam Jam Reggae(AMD SWING MIX)K.SUGAI‚r‚g‚o‚i‚i‚`‚O‚P^‚W2-03☆7.3SINGLE21329217148131JJRA_203.mcs
Jam Jam Reggae(AMD SWING MIX)K.SUGAI‚r‚g‚o‚i‚i‚`‚O‚Q^‚X^—¼‘«’ˆÓ2-04☆7.6SINGLE27436022061109JJRA_204.mcs
Jam Jam Reggae(AMD SWING MIX)Y.SHIOTANIŒã”¼‚ð‰Ì‚ɇ‚킹‚Ä쬂µ‚Ü‚µ‚½3-01☆4.7SINGLE2122701704841JJRA_301.mcs
Jam Jam Reggae(AMD SWING MIX)SHiNiCHi SAiTHO‚Ì‚ñ‚Ñ‚è‚Æ“¥‚ñ‚Å‚ËB4-01☆4.7DOUBLE2453601966016JJRA_401.mcs
Jam Jam Reggae(AMD SWING MIX)???_13ƒ}ƒjƒAƒbƒN‚ÈlŒü‚¯‚Å‚·5-01☆5.2SINGLE2833152276137JJRSW501.mcs
Jam Jam Reggae(AMD SWING MIX)???_20ƒWƒƒƒ€‚¨‚¶‚³‚ñ‚ɇ‚킹‚½‚炵‚¢7-01☆4.9SINGLE2582702075740JJRA_701.mcs
Jam Jam Reggae(AMD SWING MIX)Fumihiro Ibuki‘«‚ª‚¢‚½‚­‚È‚éI7-02☆5.4SINGLE436360350739JJRA_702.mcs
Jam Jam Reggae(AMD SWING MIX)YUJI.O‚½‚¾‚Å‚Íς܂Ȃ¢7-03☆6.3SINGLE2373371905474JJRA_703.mcs
KEEP ON MOVIN'Takashi.K’Z‚¢‹È‚¾‚¯‚Ç‚¢‚¢‹È‚Å‚·‚æ‚Ë1-01☆4.0SINGLE2282972284815KOM__101.mcs
KEEP ON MOVIN'YAMADA HIDETOSHI‰¹’Ê‚è‚Å‚·1-02☆4.4SINGLE2032972034331KOM__102.mcs
KEEP ON MOVIN'T.TAMAI‰SŽÒ—p‚Éì¬B2-01☆0.8SINGLE9013290011KOM__201.mcs
KEEP ON MOVIN'???_02‚±‚ñ‚È‚ñ‚ ‚Á‚Ä‚à‚¢‚¢‚©‚ÈHƒcƒ‰ƒC2-02☆5.9SINGLE2304622304849KOM__202.mcs
KEEP ON MOVIN'M.Yamamoto‰¹‡‚킹3-01☆4.4SINGLE2213302214819KEEP_301.mcs
KEEP ON MOVIN'Masato T.‚Ƃ肠‚¦‚¸Šy‚µ‚¢‘«•ˆ‚ðB4-01☆5.9SINGLE2053302055362KOM__401.mcs
KEEP ON MOVIN'Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆4.4SINGLE1992971995422KOM__402.mcs
KEEP ON MOVIN'???_10ƒm[ƒRƒƒ“ƒgEEE5-01☆3.8SINGLE1333301333216KEEP_501.mcs
KEEP ON MOVIN'HAJIME M.ƒuƒ‰ƒX‚Ó‚Ý5-02☆3.6SINGLE157297157439KEEP_502.mcs
KEEP ON MOVIN'SoichI InabA‚j‚d‚d‚o ‚n‚m ‚c‚`‚m‚b‚d5-03☆3.0SINGLE1512311511730KEEP_503.mcs
KEEP ON MOVIN'TAIGA.Oʼn‚Ì•”•ª‚ÅI‚í‚ç‚È‚¢‚悤‚ÉB7-01☆3.8SINGLE135330135458KOM__701.mcs
KEEP ON MOVIN'RYO SAKAIƒ|ƒbƒv‚È‚©‚ñ‚¶‚Å‚¢‚¢‚ñ‚¶‚á‚È‚¢B7-02☆3.0SINGLE167264167346KOM__702.mcs
KEEP ON MOVIN'D.fujisakiƒŠƒYƒ€‚ª‚Æ‚è‚É‚­‚¢B7-03☆3.8SINGLE241330241542KOM__703.mcs
KEEP ON MOVIN'HAJIME.I‚Ú‚æ‚ñìF­X“‚ß8-01☆4.2SINGLE2293302294815KOM__801.mcs
KEEP ON MOVIN'HIROSHI.M‹È‚Ç‚¤‚è‚ÉB8-02☆4.1SINGLE2153302155211KOM__802.mcs
KICK THE CANA.NAOKI‚lD‹g“c@ìF‚k‚`‚c‚xQ‚b‚`‚m1-01☆4.5DOUBLE3092882183639KICK_101.mcs
KICK THE CANYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚P2-01☆4.9SINGLE466432328592KICK_201.mcs
KICK THE CANH.BANDOŠy‚µ‚¢‚©‚È‚ŸEEEB2-02☆6.5SINGLE32028822537106KICK_202.mcs
KICK THE CANTSUJI JUNNYA‘Ì—Í‚ª‚È‚¢‚ÆÅŒã‚Ì‚P‚U•ª‚Í‚«‚‚¢3-01☆7.6SINGLE4204322965292KICK_301.mcs
KICK THE CANK.WAKAKIƒLƒbƒN™™™3-02☆3.5SINGLE2372881672620KICK_302.mcs
KICK THE CANT.Fukazawa“Š‚°‚â‚è‚ÈŠ´‚¶‚Å—x‚é‚Ì‚ªƒRƒcB4-01☆4.5SINGLE2803241973731KICK_401.mcs
KICK THE CANK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-01☆4.5SINGLE3793602674913KICK_501.mcs
KICK THE CANKeisuke Ogiwara‘«‰¹‚ªƒŠƒYƒ€‚ɂȂÁ‚ă}ƒX6-01☆5.5SINGLE4143962925227KICK_601.mcs
KICK THE CANIchinose Shinta‚Ql‚Åì‚è‚Ü‚µ‚½6-02☆4.4DOUBLE2502881762250KICK_602.mcs
KICK THE CANKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-03☆5.1DOUBLE3704322614822KICK_603.mcs
KICK THE CANM.HANABUSA‰^“®‰ïA‘–‚Á‚Ä’µ‚ñ‚Å‚“‚‹‚‰‚I6-04☆6.1SINGLE3805762685051KICK_604.mcs
KICK THE CANK.KinugawaŠï–­‚È”z’u‚Å‚·‚ªAƒqƒ~ƒc‚ªcB6-05☆3.0DOUBLE309288218371KICK_605.mcs
KICK THE CANNOBUTAKA TSUTSUMI‰¹‚ɇ‚킹‚½Š‚ª‘½‚¢6-06☆4.7SINGLE3243242284530KICK_606.mcs
KICK THE CANN_Watanabe‚Å‚à‚±‚ê‚ð‘S•”‰ñ‚ꂽ‚çƒXƒSƒCI7-01☆3.4SINGLE325288229407KICK_701.mcs
KICK THE CANN.NAGANO‚©‚¯‘«‚ð‚µ‚½‚èAƒXƒLƒbƒv‚µ‚½‚èB7-02☆4.0DOUBLE374324264459KICK_702.mcs
KICK THE CANYohei Maruyama‚P‚U•ª‚ð­‚µ“ü‚ê‚Ü‚µ‚½B8-01☆4.7SINGLE3603602545714KICK_801.mcs
KICK THE CANW.ShiomiƒIƒtƒBƒVƒƒƒ‹‚Å•¨‘«‚è‚È‚¢l‚Ö8-02☆4.5SINGLE404396285505KICK_802.mcs
KICK THE CANW.ShiomiƒIƒtƒBƒVƒƒƒ‹‚Å•¨‘«‚è‚È‚¢l‚Ö8-03☆4.8DOUBLE453396319564KICK_803.mcs
KICK THE CANShimamoto Yuuki‚©‚¯‚Á‚±‚µ‚Ä‚¢‚邿‚¤‚È‘«•„‚Å‚·B8-04☆3.9DOUBLE3182882243920KICK_804.mcs
KISS ME(KCP REMIX)???_03ƒŠƒYƒ€ƒXƒeƒbƒvII3-01☆5.5SINGLE3354242454141KISS_301.mcs
KISS ME(KCP REMIX)TAISHI K.‚Ó‚­‚´‚‚ȌðŒÝƒXƒLƒbƒv‚Å‚·4-01☆4.6SINGLE3503392564920KISS_401.mcs
KISS ME(KCP REMIX)A.NAOKI‚f‚‚”‚”‚‚Ž ìFiO‚ROj5-01☆5.0DOUBLE2743392002359KISS_501.mcs
KISS ME(KCP REMIX)YASUNORI.U—öˆ¤‚µ‚½‚­‚È‚è‚Ü‚Á‚¹B6-01☆4.2SINGLE3313392423620KISME601.mcs
KISS ME(KCP REMIX)SATOSHI HORIUCHIƒŠƒYƒ€‚Ƀmƒbƒe7-01☆4.2SINGLE3183392334811KISS_701.mcs
KISS ME(KCP REMIX)T.OGINO‘åˆç‘å‰ï‚Å‚±‚̋Ȏg‚¢‚Ü‚µ‚½B8-01☆5.1SINGLE3584672625219KISS_801.mcs
KISS ME(KCP REMIX)H.MURATA—¬‚ê‚邿‚¤‚ÉBi“äj8-02☆5.4SINGLE3363822465232KISS_802.mcs
KUNG FU FIGHTINGYAMADA HIDETOSHIƒNƒ“ƒt[D‚«‚Ì•û‚Ö1-01☆4.3SINGLE2212321643151KUNG_101.mcs
KUNG FU FIGHTINGYUKI Yokotah‚¢‚͉̂‚ß‚¾‚¯A‚©‚à‚µ‚ê‚È‚¢2-01☆2.6SINGLE226232168361KUNG_201.mcs
KUNG FU FIGHTINGtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-01☆4.7SINGLE2632901955531KUNG_401.mcs
KUNG FU FIGHTINGHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆4.9SINGLE2652901975238KUNG_402.mcs
KUNG FU FIGHTING???_16‚È‚ñ‚Å‚±‚ñ‚ÈiˆÈ‰º—ªj6-01☆5.0SINGLE2683191994839KUNG_601.mcs
KUNG FU FIGHTINGHAJIME.I‚Ú‚æ‚ñìF‚Ü‚Á‚½‚è“¥‚߂܂·8-01☆3.9SINGLE2282611693330KUNG_801.mcs
KUNG FU FIGHTING(MIAMI BOOTY MIX)A.NAOKI‚f‚‚”‚”‚‚Ž ìF‚`‚b‚g‚n‚n‚nI5-01☆3.9DOUBLE2072321543139KFFMB501.mcs
KUNG FU FIGHTING(MIAMI BOOTY MIX)TOMOFUMI YOSHIDAƒŠƒYƒ€‚ð‚ßB7-01☆7.4COUPLE365/3654642716285KUNGM701.mcs
La SenoritaYAMADA HIDETOSHI˜‚ðŽg‚¨‚¤I1-01☆5.9SINGLE3683642423268LASE_101.mcs
La SenoritaKEISUKE.MƒVƒ“ƒvƒ‹@ƒCƒY@ƒxƒXƒgH1-02☆7.3COUPLE333/34836421930184LASE_102.mcs
La SenoritaEIJI O.‹ÈŽ©‘Ì‚ªƒ€ƒY‚¢‚Ì‚Å1-03☆5.9SINGLE3864552544748LASE_103.mcs
La SenoritaA.NAOKI‚f‚‚”‚”‚‚ŽìF‚o‚h‚y‚y‚`1-04☆4.7DOUBLE3643642403232LASE_104.mcs
La Senorita???_01–Z‚µ‚¢``B1-05☆5.6DOUBLE3593642364747LASE_105.mcs
La SenoritaYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚Q‚V2-01☆5.7DOUBLE4163642744448LASE_201.mcs
La Senorita???_02ƒeƒLƒg[‚Q2-02☆5.4SINGLE3603642374147LASE_202.mcs
La SenoritaK.SUGAI‚r‚g‚o‚r‚d‚m‚O‚P^‚X^—v‹r—Í2-03☆6.5SINGLE3483642294085LASE_203.mcs
La SenoritaO.YAMAMOTO’Pƒ‚ÉŠy‚µ‚­A‚ªƒ‚ƒbƒg[B2-04☆6.3SINGLE4043642663775LASE_204.mcs
La SenoritaKOSE Fƒqƒƒ~ƒSƒE2-05☆4.5DOUBLE2983641964618LASE_205.mcs
La SenoritaK.TAKEMURA‚©‚ñ‚½‚ñ‚Å‚·B3-01☆5.5SINGLE3873642555140LASE_301.mcs
La SenoritaN.KAZUMAƒmƒŠƒmƒŠ‚Å‚â‚Á‚Ä‚­‚¾‚³‚¢II3-02☆6.2SINGLE4024552655451LASE_302.mcs
La SenoritaT.HIRASAWAƒ}ƒjƒAƒbƒNƒx[ƒX‚Å4-01☆5.9SINGLE2743181804769LASE_401.mcs
La SenoritaJUN.K‚q‚`‚l‚`‚mB‚V‚©‚ÈB4-02☆5.1SINGLE2863641883543LASE_402.mcs
La SenoritaT.MAMIYA‚—gŠ´‚ðEEE‚ ‚°‚éEEE5-01☆6.6SINGLE28831818921125LASE_501.mcs
La SenoritaMits-hide Obata‚r‚r‚q‚æ‚è‚r‚r‚q‚炵‚­iHjB5-02☆4.7SINGLE4263642805513LASE_502.mcs
La SenoritaS.SATAKE‚ ‚銂Ŗ^‚Ó‚ß‚ñoŒ»6-01☆5.9SINGLE4674553075136LASE_601.mcs
La SenoritaT.FUJIWARA“¥‚Þ‚Æ”æ‚ê‚Ü‚µ‚½B6-02☆5.4SINGLE4003642634639LASE_602.mcs
La SenoritaMITHUTOSHI NAKATAÌ‚ðŽv‚¢o‚¹B6-03☆4.6SINGLE3663642414321LASE_603.mcs
La SenoritaT.NAOYA‚c‚‚Ž‚ƒ‚…6-04☆5.4SINGLE3603642374643LASE_604.mcs
La SenoritaH.YamaguchiƒIƒtƒBƒVƒƒƒ‹•ˆ‚𬂺‡‚킹‚Ü‚µ‚½6-05☆4.7SINGLE3944552594514LASE_605.mcs
La SenoritaSEIJI.H‚½A‘½•ªƒ^ƒmƒVƒCEEE7-01☆5.5SINGLE3784552494736LASE_701.mcs
La SenoritaHAJIME.I‚Ú‚æ‚ñìF“‚¢‚©‚à8-01☆5.6SINGLE3784092495236LASE_801.mcs
La SenoritaKOHEI.T‚R˜A•„‚ÌƒŠƒYƒ€‚¾I8-02☆5.4SINGLE4135462725227LASE_802.mcs
La Senorita VirtualTOMOKAZU-M‚u‚‰‚’‚”‚•‚‚Œ‚ð‚a‚‚“‚‰‚ƒ‚ÅI1-01☆3.3DOUBLE2212731592915LASEV101.mcs
La Senorita VirtualTOMOKAZU-M‚u‚‰‚’‚”‚•‚‚Œ–œÎI1-02☆5.2DOUBLE3043642194638LASEV102.mcs
La Senorita VirtualYASUHIRO.O— ‘Å‚¿‚ªˆóÛ“I‚Èì•i‚Å‚·B1-03☆5.3SINGLE3103642244142LASEV103.mcs
La Senorita VirtualYAMADA HIDETOSHIô‚¤‚£‚çA‚¹‚É‚å‚è‚¡‚½‚Ÿ`1-04☆5.7SINGLE3343642413562LASEV104.mcs
La Senorita VirtualKEISUKE.M‚Ü‚Á‚½‚èƒ}ƒjƒAƒbƒNB1-05☆5.8COUPLE327/3323642362574LASEV105.mcs
La Senorita Virtual???_01Ž©MìI‚»‚Ì‚P1-06☆5.2DOUBLE3943642844530LASEV106.mcs
La Senorita VirtualT.OchiaiˆÓŠO‚È—Ž‚Æ‚µŒŠ‚ªB2-01☆3.8SINGLE348364251365LASEV201.mcs
La Senorita VirtualYOU.WS‚Ì‹©‚Ѻ‚ð•\Œ»‚µ‚½‚P–{‚¾B2-02☆5.6SINGLE3753642713751LASEV202.mcs
La Senorita VirtualHAJIME.I‚Ú‚æ‚ñìFƒ_[ƒN‚È•µˆÍ‹C‚Å2-03☆5.8SINGLE3343642414454LASEV203.mcs
La Senorita VirtualJUN O.u‚u‚`‚m‚h‚k‚k‚`Dv‘«‚W3-01☆6.0SINGLE3813642754259LASEV301.mcs
La Senorita VirtualYUSUKE.K‘S”Ê“I‚ɓ‚¢‚Å‚·3-02☆6.7SINGLE4364093154563LASEV302.mcs
La Senorita VirtualY.KAZAMAKI‚QƒƒKƒtƒFƒbƒvƒX‚‚‰‚˜3-03☆4.8SINGLE3453642493929LASEV303.mcs
La Senorita Virtual???_04‘‚¢‹È—ûK‚k‚–‚RD^‚l‚`‚q‚j3-04☆2.3SINGLE181182130045LASEV304.mcs
La Senorita VirtualK.WAKAKIƒrƒbƒNƒfƒ‰ƒbƒNƒX3-05☆4.2SINGLE2703641953419LASEV305.mcs
La Senorita VirtualSAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-06☆5.5COUPLE315/3153642274746LASEV306.mcs
La Senorita VirtualY.KAWABE‚¢‚¶‚è‚É‚­‚¢‹È‚¾‚Á‚½‚È4-01☆6.7SINGLE3324092395469LASEV401.mcs
La Senorita VirtualHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆2.4SINGLE228364164611LASEV402.mcs
La Senorita VirtualKei.U˜‚ð‚܂킹‚ÎŒðŒÝ‚ɂӂ߂܂·B5-01☆4.7SINGLE3543642553826LASEV501.mcs
La Senorita VirtualS.KUROYANAGI‰„X‚ÆŽOŽO޵”Žq‚Å‚·5-02☆4.1SINGLE4163183003812LASEV502.mcs
La Senorita VirtualH.Kondoh‚X5-03☆4.7DOUBLE4163643003820LASEV503.mcs
La Senorita VirtualDAISUKE KAMISAKA‘«‚W㋉ŽÒŒü‚¯‚Å‚·B7-01☆4.9SINGLE3643642634028LASEV701.mcs
La Senorita Virtual???_20ø‚è‚Ü‚·7-02☆6.4SINGLE3754092714761LASEV702.mcs
La Senorita VirtualFumihiro Ibuki‚Þ‚¸‚©‚µ‚¢‚Á‚½‚ç‚ ‚è‚Ⴕ‚È‚¢B7-03☆5.2SINGLE4833643494914LASEV703.mcs
La Senorita VirtualT.OGINOÅŒã‚Ì‚W•ª‚ª‚Þ‚¸‚©‚µ‚¢I8-01☆5.3SINGLE4004092895022LASEV801.mcs
LEADING CYBERTOMOKAZU-M•Ï‘¥ƒTƒCƒo[ƒXƒLƒbƒv1-01☆5.3DOUBLE4104502845619LEAD_101.mcs
LEADING CYBERYASUHIRO.OŽO˜A•„‚ðƒtƒ‹‚ÉŠˆ—p1-02☆5.0SINGLE3484502415121LEAD_102.mcs
LEADING CYBERHIROKI.N‘f’¼‚ȉ¹‡‚킹‚Å‚·B1-03☆4.9SINGLE408450283618LEAD_103.mcs
LEADING CYBERSHIBATA JUNICHIŒƒƒ€ƒYII‚Å‚à—x‚ê‚Ü‚·I1-04☆5.6SINGLE548600380653LEAD_104.mcs
LEADING CYBERA.NAOKI‚f‚‚”‚”‚‚ŽìF‚a‚t‚f‚t1-05☆5.2SINGLE3583752485130LEAD_105.mcs
LEADING CYBERHIROKI TAKAHASHIƒr[ƒgƒ}ƒjƒAó‘Ô‚Å‚·B2-01☆5.2SINGLE3844502665919LEAD_201.mcs
LEADING CYBER???_02ƒŠƒYƒ€Žæ‚è‚É‚­‚¢‚Å‚·B‚Q2-02☆5.6SINGLE3704502565832LEAD_202.mcs
LEADING CYBERO.YAMAMOTOƒOƒ‰ƒTƒC‚Ì—¬‚ê‚ðŽó‚¯‚Ă܂·B2-03☆5.4SINGLE4004122775326LEAD_203.mcs
LEADING CYBERK.TAKEMURA‚©‚È‚è‚Ì“ïˆÕ“x‚Å‚·B2-04☆6.2SINGLE4504873126435LEAD_204.mcs
LEADING CYBERTAKEHIRO-O‚k‚d‚h‚s‚r‚`‚s‚y@Ž€‚ÌŽw“±—v—Ì3-01☆6.1SINGLE4456003096732LEAD_301.mcs
LEADING CYBERF.ATHUSHI‰ó‚êŒn‚Å‚·B‚킯‚í‚©‚ñ‚È‚¢ƒbƒXB3-02☆5.1SINGLE458487318589LEAD_302.mcs
LEADING CYBERTOMOHIRO NAKAIŒ´‹È‚Ç‚¨‚è‚Ì’´•Ï‘¬ƒŠƒYƒ€•ˆ–ÊB3-03☆6.3SINGLE5386003736819LEAD_303.mcs
LEADING CYBER???_05‰SŽÒ—pƒXƒeƒbƒv‚»‚Ì‚P3-04☆1.2SINGLE1252258646LEAD_304.mcs
LEADING CYBERNAOyuki-Tachihara‚ׂç‚Ú‚¤‚ɃLƒcƒC‚Å‚·EEEB3-05☆4.8SINGLE470600326611LEAD_305.mcs
LEADING CYBERRyohei SekiƒTƒ“ƒvƒ‹—Α«‚æ‚è‚Í“¥‚݂₷‚¢H3-06☆4.6SINGLE423412293572LEAD_306.mcs
LEADING CYBERKIMISHIMA TAKUROV‚µ‚¢Œ`H4-01☆5.7SINGLE3295252284247LEAD_401.mcs
LEADING CYBERJun T.‚P‚U•ª‚ª‚à‚肾‚­‚³‚ñB4-02☆6.8SINGLE4146002876162LEAD_402.mcs
LEADING CYBERKouki.UƒMƒŠ‚Å‚·i‘½•ªj4-03☆5.2SINGLE3684122555720LEAD_403.mcs
LEADING CYBERt.mizuno‚P‚U•ª‚ª‚‚炢‚Å‚·B4-04☆5.0SINGLE3634122525118LEAD_404.mcs
LEADING CYBER???_09™~‚V4-05☆8.2SINGLE5746004066664LEAD_405.mcs
LEADING CYBERS.Okano‚a‚l‚Q‚c‚w‚ðƒx[ƒX‚Éì‚è‚Ü‚µ‚½4-06☆5.9SINGLE588600408681LEAD_406.mcs
LEADING CYBERNatsumi.Kobayashiì‚Á‚½ŽžŠÔ‚Í‚R‚O•ªˆÊ5-01☆4.7SOLO429525297545LEAD_501.mcs
LEADING CYBERNatsumi.Kobayashi‚·‚®‚Å‚«‚½‚í‚è‚ɂ͂¨‚«‚É‚¢‚è5-02☆4.7SINGLE426525295536LEAD_502.mcs
LEADING CYBERT.MAMIYAŽ©•ª‚È‚è‚̉ðŽß‚Å“Z‚߂Ă݂܂µ‚½B5-03☆3.5SINGLE2223001541241LEAD_503.mcs
LEADING CYBERSHINYA.KƒIƒtƒBƒVƒƒƒ‹‚Í–Y‚ꋎ‚Á‚ĉº‚³‚¢5-04☆4.8SINGLE426412295596LEAD_504.mcs
LEADING CYBERJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.0SINGLE4276002965312LEAD_601.mcs
LEADING CYBERH.KAWAKAMI‚`‚j‚kŽ‚Ìì•iB6-02☆4.9SINGLE3263752265221LEAD_602.mcs
LEADING CYBERNOBUTAKA TSUTSUMI‚¯‚Á‚±‚¤‚¢‚¢o—ˆH6-03☆3.9SINGLE2963002054217LEAD_603.mcs
LEADING CYBERH.Yamaguchi—Fl—p‚Éì‚Á‚½ƒ‚ƒmB6-04☆5.5SINGLE3273372275049LEAD_604.mcs
LEADING CYBERYasunobu Okuda“¯Žž“¥‚݂ɘf‚킳‚ê‚é‚ÈI7-01☆6.0SINGLE3564502474850LEAD_701.mcs
LEADING CYBER???_20ƒWƒƒƒK[Eƒiƒjƒ7-02☆5.5SINGLE5015623476110LEAD_702.mcs
Let the beat hit em!A.NAOKI‚f‚‚”‚”‚‚ŽìF‚sD‚l‚l3-01☆3.9DOUBLE2222201904230LTBH_301.mcs
Let the beat hit em!Y.SAKAI“¯Žž“¥‚Ý‚ª‚ç‚݂̂W•ª‚ª‘½‚¢‚©‚àB3-02☆3.9SINGLE2052751764021LTBH_302.mcs
Let the beat hit em!SoichI InabAƒ{[ƒJƒ‹‚ª‚¢‚¢Š´‚¶‚Å‚·5-01☆3.3SINGLE1661921422533LTBHE501.mcs
Let the beat hit em!HIGASHI SENSHIROUˆê”ÔƒIƒXƒXƒ‚Å‚·B5-02☆5.7SINGLE2513572154852LTBHE502.mcs
Let the beat hit em!TAKESHI MATSUMOTOƒ}ƒbƒ^ƒŠ“¥‚ñ‚ʼnº‚³‚¢7-01☆2.6SINGLE171220146372LTBHE701.mcs
Let the beat hit em!RYO SAKAI‚±‚̃eƒ“ƒ|‚É‚±‚̂ނ©‚µ‚³‚ÍB7-02☆4.9SINGLE2493572135426LTBHE702.mcs
Let the beat hit em!D KYUTOKU‚Ü‚Á‚½‚è‚Æ‚f‚nI7-03☆4.8SINGLE2614402245216LTBHE703.mcs
Let the beat hit em!D KYUTOKU‹C‡“ü‚ê‚Ä‚f‚nI7-04☆1.3SINGLE10011085028LTBHE704.mcs
Let the beat hit em!(BM II DX version)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚lD‚s3-01☆3.9DOUBLE2222201904230LTBHB301.mcs
Let the beat hit em!(BM II DX version)Y.SAKAI‚a‚`‚r‚h‚b‘Š“–‚Ì•ˆ–ʂł·B3-02☆0.8SINGLE10113786010LTBHB302.mcs
Let the beat hit em!(BM II DX version)Y.SAKAI‚s‚q‚h‚b‚j‘Š“–‚Ì•ˆ–ʂł·B3-03☆2.4SINGLE1442201231913LTBHB303.mcs
Let the beat hit em!(BM II DX version)Y.SAKAIƒ\ƒƒx[ƒX‚Ì‚l‚`‚m‚h‚`‚b‚Ý‚½‚¢c3-04☆4.3SOLO1872751604033LTBHB304.mcs
Let the beat hit em!(BM II DX version)Y.SAKAI‚l‚`‚m‚h‚`‚b‘Š“–‚Ì•ˆ–ʂł·B3-05☆3.9SINGLE1962751684023LTBHB305.mcs
Let the beat hit em!(BM II DX version)Ryohei SekiˆÓ}‚Í‚±‚Ì‚–‚…‚’Dê—p‚̗Α«•ˆ–Ê3-06☆4.6SINGLE1922751654935LTBHB306.mcs
Let the beat hit em!(BM II DX version)TAKU YAMAMOTOƒqƒvƒ~[I7-01☆5.1SINGLE1972751694554LTBHB701.mcs
Let the beat hit em!(BM II DX version)Toshiro Ohtsuka‚¨‹C‚É“ü‚è‚Å‚·8-01☆3.7SINGLE213302183555LTB2D801.mcs
Let the beat hit em!(Classic R&B STYLE)???_03‚ä‚Á‚½‚èƒXƒeƒbƒvII3-01☆4.6SINGLE2622552025735LTBHC301.mcs
Let the beat hit em!(Classic R&B STYLE)A.NAOKI‚lD‹g“c@ìF‚sD‚l‚l@@‚w‚w3-02☆4.1DOUBLE2152041664042LTBHC302.mcs
Let the beat hit em!(Classic R&B STYLE)Y.SAKAI‚s‚q‚h‚b‚jƒŒƒxƒ‹‚ł܂Á‚½‚è‚ÆcB3-03☆2.1SINGLE117153901620LTBHC303.mcs
Let the beat hit em!(Classic R&B STYLE)SAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-04☆4.1COUPLE282/2822802177110LTBHC304.mcs
Let the beat hit em!(Classic R&B STYLE)D KYUTOKUŽ€‚É‚à‚Ì‹¶‚¢‚Å‚f‚nI7-01☆4.3SINGLE2302801776218LTHBC701.mcs
LET THEM MOVEYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-01☆5.2SINGLE2193451904045LTM__101.mcs
LET THEM MOVEHAJIME M.‹CŽ‚¿‚æ‚­ƒXƒeƒbƒv5-01☆1.9SINGLE132201115260LETMV501.mcs
LET THEM MOVEKotaro KagawaƒUEˆê”­Œ|B7-01☆6.5SINGLE22720119741144LTM__701.mcs
LET THEM MOVEFumihiro Ibuki–…—p‚Éì‚è‚Ü‚µ‚½B7-02☆0.1SINGLE661155700LTM__702.mcs
LET'S GET DOWNM.MOCHIDUKI‚Ü‚í‚ç‚È‚¢‰ñ“]•ˆ–Ê1-01☆3.1SINGLE1511931152034LETSG101.mcs
LET'S GET DOWNYASUHIRO.OVƒV[ƒPƒ“ƒX‚̕ʃo[ƒWƒ‡ƒ“1-02☆3.6SINGLE2572581974315LETSG102.mcs
LET'S GET DOWNYAMADA HIDETOSHIŽÎ‚ß“n‚è‚ ‚è‚Ü‚·1-03☆5.1DOUBLE2302581763468LETSG103.mcs
LET'S GET DOWNSHOTA,SAITOH.“®‚«‚ª‘å‚«‚¢ƒXƒeƒbƒvB1-04☆4.0SINGLE2212581693333LETSG104.mcs
LET'S GET DOWNJ.GOUKE‚y‚d‚o‚g‚x‚qB2-01☆3.7SINGLE2112581622632LETSG201.mcs
LET'S GET DOWNY.IMAIƒXƒ‰ƒCƒh‚à“ü‚ê‚Ă݂悤2-02☆3.7SINGLE1702251302440LETSG202.mcs
LET'S GET DOWNKOSE Fƒ‰ƒbƒv‚ªI2-03☆3.8DOUBLE219354168483LETSG203.mcs
LET'S GET DOWNSATOSHI ARIGA‚r‚s‚rI‘掵’eBƒ{[ƒJƒ‹dŽ‹3-01☆6.0SINGLE2794192145052LETS_301.mcs
LET'S GET DOWNHatamoto Yohei‹x‚ñ‚Å‚¢‚é‰É‚Ȃǂ ‚è‚Ü‚¹‚ñB4-01☆4.0SINGLE3062582354921LETSG401.mcs
LET'S GET DOWNMits-hide Obata‘«‚ʼn̂Á‚Ă݂܂µ‚傤B5-01☆6.1SINGLE2954512265748LETDW501.mcs
LET'S GET DOWNKouzou.Nƒ}ƒjƒAƒbƒN‘Š“–‚Å‚·7-01☆4.4SINGLE2432581863545LETSG701.mcs
LET'S GET DOWNK.KAWASÊȂñ‚ƂȂ­ì‚Á‚½ƒ„ƒc‚Å‚·B7-02☆3.6COUPLE188/1882251443428LETSG702.mcs
LET'S GET DOWNTOSHIMITU.KURITA’†‹‰ŽÒŒü‚¯8-01☆3.8SINGLE2472581894717LETSG801.mcs
Let's talk it overYAMADA HIDETOSHI‚u‚n‚b‚`‚kŽå޲1-01☆4.0SINGLE2052251604331LETST101.mcs
Let's talk it overKEISUKE.M‚Ü‚Á‚½‚è‘«‚VƒŒƒxƒ‹B1-02☆4.0SINGLE1812001453742LETST102.mcs
Let's talk it overA.NAOKI‚f‚‚”‚”‚‚ŽìF‚rD‚mD‚P‚O‚j1-03☆3.9SINGLE2212001724732LETST103.mcs
Let's talk it overYOU.W–éQ‚é’¼‘O‚É‚±‚ê‚ð‚â‚낤I2-01☆3.6SINGLE1882001463730LETST201.mcs
Let's talk it overYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚T2-02☆2.7SINGLE237225191480LETST202.mcs
Let's talk it overYUKI YokotaƒXƒ‰ƒXƒ‰•ˆ–Ê‚ª—N‚¢‚Ä‚«‚Ü‚µ‚½2-03☆2.3SINGLE199200155351LETST203.mcs
Let's talk it overNorihiro Kitamura‚­‚è•Ô‚µƒŠƒYƒ€‚ð‚¤‚Ü‚­Œ©Ø‚ê7-01☆3.6DOUBLE278275217536LTIO_701.mcs
LITTLE BITCHM.MOCHIDUKI˜A‘Å—ûK—p•ˆ–Ê1-01☆3.1SINGLE2202281711437LITT_101.mcs
LITTLE BITCHYAMADA HIDETOSHIƒAƒtƒ˜A•ˆ—L‚è‚Ü‚·1-02☆5.8SINGLE2793042163679LITT_102.mcs
LITTLE BITCHMASAHIRO.Yƒ_ƒEEE‚Å‚·‚©H2-01☆3.6DOUBLE313304243436LITT_201.mcs
LITTLE BITCHY.IMAIu‚PE‚QIv‚ÌŠ‚̓Lƒ‚̃|ƒCƒ“ƒg2-02☆3.6SINGLE1932281501749LITT_202.mcs
LITTLE BITCHHAJIME.I‚Ú‚æ‚ñìF–³“ï‚Èì‚è‚Å‚·2-03☆3.4SINGLE250266194459LITT_203.mcs
LITTLE BITCHK.SUGAI‚r‚g‚o‚a‚h‚s‚O‚Q^‚V2-04☆3.1SINGLE282266219385LITT_204.mcs
LITTLE BITCHK.SUGAI‚r‚g‚o‚a‚h‚s‚O‚P^‚U2-05☆7.3SINGLE20219015787164LITT_205.mcs
LITTLE BITCHH.BANDO‘«‚VEEE‚É‚µ‚Ä‚¨‚¢‚ÄB2-06☆4.4SINGLE2903042254030LITT_206.mcs
LITTLE BITCHM.Yamamotoƒƒ“Aƒc[I3-01☆5.7SINGLE2193041704666LITT_301.mcs
LITTLE BITCHHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE3503042725014LITT_401.mcs
LITTLE BITCHMits-hide ObataƒmƒŠ‚ŃXƒLƒbƒvƒXƒLƒbƒvI5-01☆4.8DOUBLE3403042644335LITT_501.mcs
LITTLE BITCHHIGASHI SENSHIROU‚₳‚µ‚¢‚Å‚·B5-02☆5.5SINGLE2673042073867LITT_502.mcs
LITTLE BITCHJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆4.8SINGLE3623802815115LITT_601.mcs
LITTLE BITCHIchinose ShintaƒXƒ^ƒ~ƒi‚ª•K—v‚Å‚·6-02☆3.9SINGLE2643042054812LITT_602.mcs
LITTLE BITCHTAIGA.O‚¤[‚ÞB7-01☆1.4SINGLE170152132125LITT_701.mcs
LITTLE BITCHK.KAWASÊȂç‚Þ‚¸‚©‚µ‚©‚Á‚½‚Å‚µ‚傤‚ËB7-02☆3.7SINGLE347304269456LITT_702.mcs
LOVEYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.7SINGLE1832251553757LOVE_101.mcs
LOVEJ.GOUKEŽåù—¥‚ð“¥‚à‚¤ƒVƒŠ[ƒY‚R2-01☆3.9SINGLE1542581304621LOVE_201.mcs
LOVEKubota Mamoru‚±‚ꂼ‚k‚n‚u‚d‚Ì•ˆ–Ê2-02☆3.8SINGLE1592251342445LOVE_202.mcs
LOVEM.IWAKURA‚¤‚Ó‚ñ‚ ‚Ó‚ñB“ï“x‚V`‚WB2-03☆3.3SINGLE231258196476LOVE_203.mcs
LOVEM.Yamamoto‰¹‡‚킹3-01☆4.5SINGLE2112581794539LOVE_301.mcs
LOVESHiNiCHi SAiTHO‚³‚·‚ª‚É‚S{‚̃Vƒ“ƒOƒ‹‚ɂ͕‰‚¯‚é4-01☆4.7DOUBLE2402902035531LOVE_401.mcs
LOVET.NAGSAKi•ˆ–ʂɉB‚³‚ꂽƒƒbƒZ[ƒW‚Æ‚ÍcH4-02☆5.9SINGLE1992581684187LOVE_402.mcs
LOVEKei.UŒÂl“I‚ɂ͂â‚Á‚ÄŠy‚µ‚¢•ˆ–ʂł·B5-01☆3.7SINGLE2302581954416LOVE_501.mcs
LOVEKeisuke Ogiwara‚Q‚Ž‚„‚q‚…‚l‚h‚w‚ªo‚½“–Žž‚Ì•i6-01☆5.1SINGLE2342581983565LOVE_601.mcs
LOVEKouzou.N—ÇŽ¿‚ȉSŽÒŒü‚¯ƒXƒeƒbƒv7-01☆1.5SINGLE123161104424LOVE_701.mcs
LOVEK.KAWASE‚»‚ê‚È‚è‚Ìo—ˆ‰f‚¦B7-02☆4.3SINGLE2112581794434LOVE_702.mcs
LOVETHE PLAYSTATION2ƒm[ƒRƒƒ“ƒgEEE8-01☆3.8SINGLE1642251393137LOVE_801.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)Takashi.K“¥‚݂₷‚­‚È‚Á‚½H1-01☆6.6SINGLE3255252215169LOVEA101.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)YASUHIRO.OŠy‚µ‚­—x‚ê‚é‚©‚ÆŽv‚¢‚Ü‚·B1-02☆4.3SINGLE3163002154027LOVEA102.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚t‚m‚d‚j‚x‚t‚m1-03☆5.1SINGLE2683001823061LOVEA103.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)HIROKI TAKAHASHIƒTƒr‚Ɉø‚ÁŠ|‚¯—L‚èI2-01☆5.1SINGLE3056002075423LOVEA201.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)YOU.Wƒ_ƒ“ƒX‚̉¤“¹‚ª‚±‚±‚ÉB2-02☆5.0SINGLE3284122235022LOVEA202.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)YOU.W—¬‚ê‚éƒXƒeƒbƒv‚ðŠ¬”\‚µ‚Ä‚­‚êII2-03☆5.0SOLO3374502294821LOVEA203.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)HAJIME.I‚Ú‚æ‚ñìFƒIƒtƒBƒVƒƒƒ‹‚Á‚Û‚¢2-04☆4.6SINGLE2753001874532LOVEA204.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)YUKIHIRO.Aƒ{[ƒJƒ‹‚ɃCƒ“ƒXƒpƒCƒA‚³‚ꂽB2-05☆4.8SINGLE2243001523349LOVEA205.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)Masayuki.A“ïˆÕ“x‚U‚¾‚¢I2-06☆4.9SINGLE2713001883254LOVEA206.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)O.YAMAMOTOƒ{[ƒJƒ‹‡‚킹‚ªŽå޲‚Å‚·B2-07☆6.4SINGLE2813751914873LOVEA207.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)FUMIHIRO ISHIWATAƒvƒŒÃìBÂƓ®‚Ìâ–­‚È’²˜a2-08☆4.6SINGLE2523001713937LOVEA208.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆7.0SINGLE31133721239109LOVEA301.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)TAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-02☆5.5SINGLE4004122725528LOVEA302.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)SAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-03☆6.0COUPLE253/2533751725256LOVEA303.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)NAOyuki-Tachihara¢“ï‚Å‚·B“¯Žž“¥‚Ý‚ðŒ©Ø‚낤I3-04☆7.0SINGLE3505252385283LOVEA304.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)T.HIRASAWAƒWƒƒƒ“ƒvAƒWƒƒƒ“ƒv4-01☆4.1SINGLE2392251621473LOVEA401.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)JUN.K‚¨‚à‚µ‚ë‚¢‚Å‚·‚©H4-02☆4.6SINGLE2803001904930LOVEA402.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)HIDEAKI KANEDA“¯Žž“¥‚݂𑽗p‚µ‚Ă݂܂µ‚½4-03☆6.9SINGLE3253372216189LOVEA403.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)???_07‚W•ª‚µ‚©‚È‚¢‚È‚ŸEEE4-04☆4.6SINGLE3113002124236LOVEA404.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)???_08ƒŒƒxƒ‹‚WAƒXƒLƒbƒv‚ ‚è4-05☆4.6DOUBLE3083372103831LOVEA405.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)HIROKI.No‚¾‚µ‚ªƒLƒcƒC‚®‚ç‚¢‚Å‚·B5-01☆5.5SINGLE3353752285238LOVEA501.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)Yuto JijiwaƒTƒr‚ª­‚µ‚¸‚“‚­‚È‚Á‚Ă܂·5-02☆5.4SINGLE2463371673065LOVEA502.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)K.GOTOU’†ŠÔ•”•ª‚ª—Ç‚¢5-03☆5.3SINGLE3584122445526LOVEA503.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)DAISUKE.Hƒm[ƒRƒƒ“ƒgEEE5-04☆4.9SINGLE3303752254329LOVEA504.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)T.MAMIYA‘Sg‚Ì“®‚«‚ªd—vB”ü‚µ‚­•‘‚¦I5-05☆3.7SINGLE2112621432827LOVEA505.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)KATSUHIKO KOBAYASHIƒXƒsƒJ‚Ì–¼‚Ì‚à‚Æ‚É5-06☆6.8SINGLE3303752256075LOVEA506.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)SHINYA.K‚©‚Á‚±‚æ‚­—x‚Á‚Ä‚ ‚°‚ĉº‚³‚¢5-07☆5.2SINGLE3223752195230LOVEA507.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)HIGASHI SENSHIROU‚±‚̋Ȃ¢‚¢‚Å‚·‚Ë[B5-08☆6.9SINGLE3766002565375LOVEA508.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)SATOSHI.HŠÔ‘t‚É—Í‚ð“ü‚ê‚Ü‚µ‚½5-09☆6.5SINGLE4274502916152LOVEA509.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)???_15‚l‚`‚m‚h‚`‚b‚ªo—ˆ‚È‚¢•û‚ÖB6-01☆4.1DOUBLE3043002073329LOVEA601.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)S.SATAKE΂¦‚Ü‚·‚Ë‚¥`‚±‚êi—F’B’kj6-02☆7.7SINGLE5476003726864LOVEA602.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)KENJI ENDAƒA[ƒP[ƒh‚Æ“¯ƒŒƒxƒ‹‚©H6-03☆5.6DOUBLE3503752385341LOVEA603.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)MATHURI MATHUSIMA‚Ƃɂ©‚­—x‚è‚â‚·‚³‚ðdŽ‹‚µ‚Ü‚µ‚½6-04☆4.7SINGLE2672621824245LOVEA604.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)SHIGERU ARAIƒpƒ‰ƒpƒ‰‚à“¯Žž‚ɂł«‚镈–ʂł·B6-05☆1.4SINGLE160150109025LOVEA605.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)H.MATSUDA‚±‚̋ȑåD‚«ô6-06☆5.9SINGLE3543752415152LOVEA606.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)???_19‚a‚S‚t‚ƂȂç‚ñ‚ŃIƒXƒXƒB6-07☆6.0SINGLE4655623176132LOVEA607.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)???_20ìBƒ}ƒjƒA‚Å‚·i‚Q‚c‚wj7-01☆5.4SINGLE3965622705626LOVEA701.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)Y.TAKEDA‘½Ê‚ÈƒŠƒYƒ€‚Å–O‚«‚Ü‚¹‚ñôŽ©Mì7-02☆4.9SINGLE4154122825312LOVEA702.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)D KYUTOKU­X“‚¢‚Å‚·7-03☆4.1SINGLE2062621435820LOVEA703.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.8SINGLE3303372254730LOVEA801.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)TOSHIMITU.KURITA’†‹‰ŽÒŒü‚¯8-02☆4.2SINGLE3443002344520LOVEA802.mcs
LOVE AGAIN TONIGHT(For Melissa MIX)Shimamoto Satoshi‚R˜A•„`ô8-03☆5.7SINGLE3386002305538LOVEA803.mcs
LOVE MACHINEYASUHIRO.OƒVƒ“ƒOƒ‹ƒ}ƒjƒAƒbƒN‚ðƒ_ƒuƒ‹‰»3-01☆5.0DOUBLE2703201962068LOVEM301.mcs
LOVE MACHINEN.KAZUMA—D‚µ‚߂̃_ƒuƒ‹‚Å‚·B3-02☆4.5DOUBLE3183202313931LOVEM302.mcs
LOVE MACHINETOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆2.9DOUBLE2262401641923LOVEM401.mcs
LOVE MACHINEYOSHIHARU MIURAƒ\ƒê—p‹È‚É‚àƒ_ƒuƒ‹‚ðII4-02☆5.6DOUBLE3114002263945LOVEM402.mcs
LOVE MACHINEMasato T.“ïˆÕ“xT‚¦‚ßI”w–ʃvƒŒƒC‚É’§íI4-03☆4.6DOUBLE3623202634625LOVEM403.mcs
LOVE MACHINEHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-04☆5.2SINGLE3103202254746LOVEM404.mcs
LOVE MACHINEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚`‚r‚r‚v‚h‚h‚m5-01☆4.1DOUBLE2753202002533LOVEM501.mcs
LOVE MACHINEYOSHiHiKO KAJiYA‰Æ‚ÅŠy‚µ‚­ƒvƒŒƒC‚Å‚«‚Ü‚·6-01☆3.6SINGLE219320159492LOVEM601.mcs
LOVE MACHINERYO SAKAIƒ|ƒbƒv‚É‚¨‚Ç‚ê‚éƒCƒCƒXƒeƒbƒvB7-01☆4.1SINGLE2603601894013LOVEM701.mcs
LOVE SO GROOVY(another version)J.GOUKE‚ ‚¦‚Ä‚b‚k‚t‚aF‚Q‚o‚ÅB2-01☆5.0SINGLE1623521504833LVSGA201.mcs
LOVE THIS FEELIN'YAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-01☆4.3SINGLE2881901264050LOVET101.mcs
LOVE THIS FEELIN'YASUHIRO.Oƒ‰ƒXƒg‚Ì•”•ª‚ð‚±‚¾‚í‚Á‚Ă݂܂µ‚½1-02☆5.0DOUBLE2732851204150LOVET102.mcs
LOVE THIS FEELIN'HIROAKI.T“ïˆÕ“x‚‚µI‚Å‚·‚ªƒNƒŠƒA‚͉”\B1-03☆6.5SINGLE3012851325096LOVET103.mcs
LOVE THIS FEELIN'MASAHIRO.Y‚±‚ê‚ÍEEE2-01☆4.6DOUBLE2782371224249LOVET201.mcs
LOVE THIS FEELIN'???_02Œ©‚½Š´‚¶ƒeƒLƒg[‚¾‚ÆŽv‚í‚ê‚Ü‚·2-02☆5.7SINGLE3033321334063LOVET202.mcs
LOVE THIS FEELIN'YUKIHIRO.A‚ ‚肪‚Æ‚¤–îˆóI2-03☆6.5SINGLE28328512437108LOVET203.mcs
LOVE THIS FEELIN'M.IWAKURAŒã”¼‚¦‚Á‚¿‚¢B“ï“x‚W`‚XB2-04☆4.4SINGLE3042611334834LOVET204.mcs
LOVE THIS FEELIN'YASUHIRO.O‹È‚Ì‹­Žã‚ɇ‚킹‚Ă݂܂µ‚½B3-01☆4.7SINGLE2872611264047LOVET301.mcs
LOVE THIS FEELIN'N.KAZUMAƒXƒs[ƒh•ω»‚É‚ ‚¹‚炸‚ÉB3-02☆4.4SINGLE3112611364139LOVET302.mcs
LOVE THIS FEELIN'SHiNiCHi SAiTHO­‚È‚¢‚ªƒn[ƒh‚¾‚æH4-01☆4.7DOUBLE2902611274843LOVET401.mcs
LOVE THIS FEELIN'Jun T.‚‚‚‚‚̕ςí‚è–Ú‚à‚‚¢‚Ä‚éB4-02☆4.5SINGLE3632851594731LOVET402.mcs
LOVE THIS FEELIN'K.TAKEMURAʼn‚ª•ª‚©‚è‚É‚­‚¢B4-03☆5.3SINGLE3643561605238LOVET403.mcs
LOVE THIS FEELIN'Masato T.‚±‚̃eƒ“ƒ|‚ł͋ꂵ‚¢‚©‚àc4-04☆6.6SINGLE3583321574889LOVET404.mcs
LOVE THIS FEELIN'SATOSHI.H‚‚炢•ˆ–ʂł·5-01☆5.6SINGLE4103321805053LOVET501.mcs
LOVE THIS FEELIN'TAKEDA.SYOUHEIº‚ƃMƒ^[‚ɇ‚킹‚Ä7-01☆6.1SINGLE3333091464978LOVET701.mcs
LOVE THIS FEELIN'Kouzou.NƒoƒJƒoƒJ‚µ‚¢‚Å‚·7-02☆4.6SINGLE2882131264054LOVET702.mcs
LOVE THIS FEELIN'Kouzou.NŽô‚í‚ê‚Ä‚¢‚Ü‚·7-03☆6.5SINGLE35026115447105LOVET703.mcs
LOVE THIS FEELIN'KOHEI.T^ŽÀ‚̈¤B8-01☆5.5SINGLE3253091434660LOVET801.mcs
Lupin the 3rd '78A.NAOKI‚lD‹g“c@ìF¶ƒ‹ƒpƒ“A‰E@‘KŒ`3-01☆3.7DOUBLE359300244448LUPI_301.mcs
Lupin the 3rd '78K.TAKEMURA‘Š“–ƒLƒcƒC‚Å‚·B4-01☆5.8SINGLE5006003406817LUPIN401.mcs
Lupin the 3rd '78K.TAKEMURA–{“–‚ɋȂ»‚̂܂ñ‚܂ł·B4-02☆5.1SINGLE3465622356915LUPIN402.mcs
Lupin the 3rd '78???_09™~‚U4-03☆6.9SINGLE6286004286815LUPIN403.mcs
Lupin the 3rd '78URABE HIROKI‚ê‚ñ‚¾‚¢‚Á‚Ï‚¢5-01☆4.7SINGLE3973752705312LUPIN501.mcs
Lupin the 3rd '78ABE TaTsuMa‚Ql‚Ì‹CŽ‚¿‚ª‚±‚à‚Á‚Ă܂·B5-02☆6.3SINGLE3356002286649LUPIN502.mcs
Lupin the 3rd '78T.MAMIYA”[Šú‘O“O–é‚Åì‚è‚Ü‚µ‚½[iŽ€j5-03☆5.0DOUBLE3953752694822LUPIN503.mcs
Lupin the 3rd '78KATSUHIKO KOBAYASHIˆÌ‘å‚È‚é•s‹€‚Ì–¼ìƒ‹ƒpƒ“5-04☆5.3SINGLE3853752626125LUPIN504.mcs
Lupin the 3rd '78HIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·6-01☆3.9SINGLE2583001753621LUPIN601.mcs
Lupin the 3rd '78TAKEO.U­‚µ“‚¢‚¯‚ǃKƒ“ƒoƒbƒeB6-02☆5.2SINGLE3903752655126LUPIN602.mcs
Lupin the 3rd '78H.Yamaguchi‚±‚ñ‚ÈŠ´‚¶‚̋Ȃ¾‚Á‚½‚ñ‚Å‚·‚©c6-03☆4.6SINGLE3293372245122LUPIN603.mcs
Lupin the 3rd '78N.NAMIKAWA‰¹‚𒉎ÀÄŒ»B7-01☆4.7SINGLE358600244705LUPIN701.mcs
Lupin the 3rd '78Yasunobu Okuda‚Ql‚Ì‹CŽ‚¿‚ª‚±‚à‚Á‚Ă܂·B7-02☆6.3SINGLE3356002286649LUPIN702.mcs
Lupin the 3rd '78K.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆4.6SINGLE3433752335810LUPIN801.mcs
LUV TO MEKazuki.KoushiƒXƒ}[ƒg‚É—x‚é‚È‚çƒRƒŒI1-01☆4.2SINGLE2383071723926LUV2_101.mcs
LUV TO MEY.SAKAIƒCƒ“ƒgƒ‚Æ’†”Չ߂¬‚ªƒJƒM2-01☆5.1SINGLE4004992955812LUV2_201.mcs
LUV TO MEY.IMAIƒEƒ‰‘Å‚¿ƒŠƒYƒ€‚ɂ̂낤2-02☆6.1SINGLE2362691717172LUV2_202.mcs
LUV TO MEK.SUGAI‚r‚g‚o‚k‚Q‚l‚O‚P^‚W2-03☆7.1SINGLE2974992156280LUV2_203.mcs
LUV TO MEN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆5.6SINGLE3794992756128LUV2_301.mcs
LUV TO MEHIDEAKI KANEDA‚Ƃɂ©‚­W’†‚µ‚ăvƒŒƒC‚ð4-01☆6.1SINGLE3564612585549LUV__401.mcs
LUV TO MET.NAGSAKi‰SŽÒŒü‚¯‚Ì‚k‚t‚u‚s‚n‚l‚d‚Å‚·4-02☆0.1SINGLE911156700LUV__402.mcs
LUV TO MEKAZUHITO TSUBOTA‘S—ÍŽ¾‘–‚Æ‚àŒ¾‚¤‚ׂ«•ˆ–ÊB7-01☆5.0SINGLE3944232855115L2M__701.mcs
LUV TO MEF.ATHUSHI“Á‚ɂȂµ7-02☆5.0SINGLE3103072245040L2M__702.mcs
LUV TO MEYohei Maruyama‚b‚k‚t‚aD‚–‚…‚’‚à–Y‚ꂸ‚ÉB8-01☆4.9SINGLE3513842545816LUV2_801.mcs
LUV TO ME(AMD MIX)A.NAOKI‚lD‹g“c@ìF‚c‚i@‚`‚e‚q‚n1-01☆5.2DOUBLE3203082163559LUV2A101.mcs
LUV TO ME(AMD MIX)Masaki Hashimoto‹S•ˆ–Ê•ƒlƒ^•ˆ–ʂł·2-01☆5.0SINGLE3385392285916LUV2A201.mcs
LUV TO ME(AMD MIX)J.GOUKE‰¹‚É‚ ‚킹‚Ä‚½‚çEEE2-02☆6.4SINGLE3224232175759LUV2A202.mcs
LUV TO ME(AMD MIX)TAKENAKA TAKAHIRO—«ƒ{[ƒJƒ‹‚ɇ‚킹‚Ü‚µ‚½B2-03☆5.1SINGLE3333852245426LUV2A203.mcs
LUV TO ME(AMD MIX)Y.IMAIƒtƒBƒjƒbƒVƒ…‚ð‚Ç‚¤ƒLƒ‚éH2-04☆4.4DOUBLE2583081743138LUV2A204.mcs
LUV TO ME(AMD MIX)H.BANDO‹È‚ɇ‚킹‚Ă݂½‚çEEEB2-05☆7.2SINGLE3555002395784LUV2A205.mcs
LUV TO ME(AMD MIX)KOUICHI TAKEUCHI–l‚É‚àƒn[ƒg‚ðI3-01☆6.5SINGLE3573462414780LUV2A301.mcs
LUV TO ME(AMD MIX)YASUHIRO.O—x‚ê‚é‚d‚c‚h‚s3-02☆4.7SINGLE3153462123731LUV2A302.mcs
LUV TO ME(AMD MIX)M.Yamamoto‰¹‡‚킹3-03☆4.5SINGLE368500248565LUV2A303.mcs
LUV TO ME(AMD MIX)KONDO TAKAYUKIŠy‚µ‚­‚c‚‚Ž‚ƒ‚…‚µ‚ĉº‚³‚¢B3-04☆3.1SINGLE2042311371341LUV2A304.mcs
LUV TO ME(AMD MIX)T.HIRASAWA‚₽‚çƒ^ƒCƒ~ƒ“ƒO‚ª•¡ŽG‚Éc4-01☆5.3SINGLE2983852015331LUVA_401.mcs
LUV TO ME(AMD MIX)HIDEAKI KANEDA“¯Žž“¥‚Ý‚ªƒlƒbƒN‚Å‚·4-02☆6.6SINGLE3394232285765LUVA_402.mcs
LUV TO ME(AMD MIX)Y.KAWABE‚Oiƒ‰ƒ”j‚QiƒgƒD[j‚Riƒ~[j4-03☆5.8SINGLE4845393265726LUVA_403.mcs
LUV TO ME(AMD MIX)T.YASUDA‚¾‚¢‚½‚¢‚±‚ñ‚ȂƂ±‚Å‚µ‚å4-04☆6.5SINGLE3805002565661LUVA_404.mcs
LUV TO ME(AMD MIX)MIO.SƒNƒ‰ƒuƒo[ƒWƒ‡ƒ“‚Ì•ˆ–Ê‚ð”qŽØB4-05☆6.1SINGLE4024232715148LUVA_405.mcs
LUV TO ME(AMD MIX)???_09™~‚S4-06☆7.1SINGLE4705393175469LUVA_406.mcs
LUV TO ME(AMD MIX)S.Okano•ʃo[ƒWƒ‡ƒ“‚ð­‚µ—˜—p‚µ‚Ü‚µ‚½B4-07☆5.3SINGLE474616320688LUVA_407.mcs
LUV TO ME(AMD MIX)SEIJI W.ƒƒƒfƒB[’Ê‚è‚ɂȂÁ‚Ă܂·5-01☆6.6SINGLE3133852115969LUV2A501.mcs
LUV TO ME(AMD MIX)URABE HIROKIƒIƒtƒBƒVƒƒƒ‹‚æ‚èŠy‚µ‚¢‚Å‚·B5-02☆4.7SINGLE3414622305411LUV2A502.mcs
LUV TO ME(AMD MIX)T.MAMIYA’‡ŠÔ“à‚ł̕]”»‚ª‚æ‚©‚Á‚½•ˆ–ʂł·5-03☆6.6SINGLE3434622315964LUV2A503.mcs
LUV TO ME(AMD MIX)YASUSHI.F‚c‚h‚r‚b‚n•—–¡IIiÎ6-01☆4.5SINGLE3843082595121LUV2A601.mcs
LUV TO ME(AMD MIX)S.SATAKE‚³‚ç‚ɓ‚¢‚Å‚·iÎj6-02☆7.4SINGLE4506163035483LUV2A602.mcs
LUV TO ME(AMD MIX)Toshihide Fujita—ö‚͉ñ‚é‚à‚̂ł·B6-03☆5.5DOUBLE3924232645329LUV2A603.mcs
LUV TO ME(AMD MIX)???_18III6-04☆5.0SINGLE2583081745934LUV2A604.mcs
LUV TO ME(AMD MIX)KAZUTAKA SUEDA”÷–­‚É•ÏX‚µ‚Ă܂·B7-01☆6.1SINGLE4445772996138L2MA_701.mcs
Macho GangN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆6.9SINGLE5065003516546MACH_301.mcs
Macho GangK.WAKAKIƒ}ƒbƒ`ƒ‡‚È‚©‚ñ‚¶‚Å‚·3-02☆2.9SINGLE166125115078MACH_302.mcs
Macho GangSoichI InabA’j‚炵‚¢ƒ_ƒ“ƒX‚ð¡‚±‚±‚Å5-01☆4.6SINGLE2432501682859MACHO501.mcs
Macho GangTAKU YAMAMOTO‚»‚ñ‚È‹C•ª‚Åì‚Á‚½7-01☆5.9SINGLE3153432186153MACHO701.mcs
MAKE A JAM!YAMADA HIDETOSHI‚r‚r‚qŠ´Šo‚łǂ¤‚¼1-01☆3.9SINGLE2932792064419MAKEJ101.mcs
MAKE A JAM!Y.IMAIƒGƒŒƒKƒ“ƒg‚È‚i‚t‚l‚o@‚r‚s‚d‚o‚ð2-01☆2.8DOUBLE1951861371440MJAM_201.mcs
MAKE A JAM!K.SUGAI‚r‚g‚o‚i‚`‚l‚O‚Q^‚W2-02☆5.5SINGLE2692481894376MJAM_202.mcs
MAKE A JAM!???_04‚k‚–‚XD^‚l‚`‚q‚j3-01☆6.3SINGLE3474032445656MAKE_301.mcs
MAKE A JAM!N.MIMURAƒŠƒYƒ€dŽ‹‚ÅB˜A‘±”ª•ª‚ª‚¢‚¢Š´‚¶4-01☆4.0SINGLE2652481863732MAJ__401.mcs
MAKE A JAM!Kouki.U‰¹‚ɇ‚킹‚Ü‚­‚è4-02☆4.2SINGLE3183102245414MAJ__402.mcs
MAKE A JAM!HAJIME M.ŠÃ‚¢‚¯‚ÇH5-01☆1.7SINGLE174186122192MJAM_501.mcs
MAKE A JAM!Kazuhiko Chiba‚ ‚̃Rƒ}ƒ“ƒh‚ðˆÓޝ‚µ‚Äì¬B5-02☆5.1SINGLE3012482124561MJAM_502.mcs
MAKE A JAM!HIGASHI SENSHIROUƒ_ƒuƒ‰[‚É‚¨‚·‚·‚ßB5-03☆5.4DOUBLE3113722194542MJAM_503.mcs
MAKE A JAM!HIGASHI SENSHIROU‚©‚Ȃ肫‚‚¢‚Å‚·B5-04☆8.1SINGLE31649622749140MJAM_504.mcs
MAKE A JAM!M.Ooebesuƒ_ƒuƒ‹‚Ì‘ê‚Ì—ûK‚ÉB‚P‚U•ªƒiƒV6-01☆2.9DOUBLE293248206432MAJAM601.mcs
MAKE A JAM!S.kentaro‚j‚n‚m‚`‚l‚h‚w6-02☆1.0SINGLE15518610997MAJAM602.mcs
MAKE A JAM!TAIGA.OƒŠƒYƒ€‚ð‚¿‚á‚ñ‚ƂƂê‚΂©‚ñ‚½‚ñ7-01☆4.3SINGLE1812481272061MAJ__701.mcs
MAKE A JAM!TAKU YAMAMOTO¯‚ł͂Ȃ­l‹CŽÒ‚È‚ñ‚¾7-02☆3.5SINGLE2302481622924MAJ__702.mcs
MAKE A JAM!KAZUHITO TSUBOTAƒRƒiƒ~ƒRƒ}ƒ“ƒhB7-03☆5.1SINGLE3164032224825MAJ__703.mcs
MAKE A JAM!Kotaro Kagawa˜‚ÌŽg‚¢•û‚ªd—vB7-04☆7.0SINGLE27124819046172MAJ__704.mcs
MAKE A JAM!Kouzou.N‹CŽ‚¿—Ç‚³‚ð’Ç‹7-05☆5.1SINGLE2774341954129MAJ__705.mcs
MAKE A JAM!K.KAWASEƒƒŠ‚Æ—Ç‚­‚Å‚«‚½‚ÆŽv‚¤‚ªEEE7-06☆3.6SINGLE2772481955112MAJ__706.mcs
MAKE A JAM!HIROSHI.M‰´‚̈—ìB8-01☆4.6SINGLE3163102224929MAKEJ801.mcs
MAKE A JAM!K.Itouƒm[ƒRƒƒ“ƒgEEE8-02☆6.3SINGLE4624963257232MAKEJ802.mcs
MAKE IT BETTERM.MOCHIDUKI“¯Žž“¥‚݂̂Ȃ¢ƒxƒ^[•ˆ–Ê1-01☆1.6SINGLE160178125210MAKEB101.mcs
MAKE IT BETTERYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-02☆5.7SINGLE2482981944173MAKEB102.mcs
MAKE IT BETTERH.KAWAKAMIŽ©Mì‚Å‚·B1-03☆8.1SINGLE25347619862116MAKEB103.mcs
MAKE IT BETTERJ.GOUKE‹È‚É‚ ‚Á‚Ä‚éIH2-01☆7.8SINGLE25347619858107MBET_201.mcs
MAKE IT BETTERY.KAWABEƒRƒsƒy‚΂Á‚©‚èEEE4-01☆5.6SINGLE2643272074856MIB__401.mcs
MAKE IT BETTERMasato T.ƒEƒ‰ƒEƒ‰“¥‚݂͂à‚͂Ⓙ‚µ‚­‚È‚¢B4-02☆7.0SINGLE2544761996475MIB__402.mcs
MAKE IT BETTERKEIGO.H‚r‚h‚m‚f‚k‚d@ƒhƒEƒWƒtƒ~5-01☆5.1SINGLE2312381814068MBET_501.mcs
MAKE IT BETTERJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆6.3SINGLE3514762756346MBET_601.mcs
MAKE IT BETTERM.Ooebesuƒ€ƒJƒV‚Å‚ÍEEE6-02☆6.1SINGLE21123816536107MBET_602.mcs
MAKE IT BETTERT.NAOYA‚c‚d‚m‚f‚d‚q6-03☆6.0SINGLE3293872585946MBET_603.mcs
MAKE IT BETTERKouzou.N–§“x‚Q•”‚Å“ïˆÕ“x–³ŒÀ7-01☆6.6SINGLE3314762595562MIB__701.mcs
MAKE IT BETTERK.KAWASÊȂñ‚ƂȂ­ì‚Á‚½ƒ„ƒc‚Å‚·B7-02☆3.9COUPLE205/2052381604227MIB__702.mcs
MAKE IT BETTERK.MASIMA‚P‚U•ª‚ª‘½‚¢‚Å‚·B8-01☆4.6SINGLE2463271926020MAKEB801.mcs
MAKE IT BETTER(So-REAL Mix)YAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-01☆5.6SINGLE2602952014863MAKSR101.mcs
MAKE IT BETTER(So-REAL Mix)HAJIME.I‚Ú‚æ‚ñìF‰Ä‚炵‚³‚ð2-01☆4.7SINGLE2533241966022MBETS201.mcs
MAKE IT BETTER(So-REAL Mix)SATOSHI ARIGA‚r‚s‚rI‘æ˜Z’eB‚قǂ悢“ïˆÕ“xH3-01☆5.4SINGLE2783242156043MIBS_301.mcs
MAKE IT BETTER(So-REAL Mix)TAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-02☆6.5SINGLE3263542536167MIBS_302.mcs
MAKE IT BETTER(So-REAL Mix)NAOyuki-Tachihara‚s‚̓eƒNƒjƒJƒ‹‚̈ÓB“Æ“Á‚Å‚·B3-03☆7.0SINGLE30323623549170MIBS_303.mcs
MAKE IT BETTER(So-REAL Mix)HIROSHI TAKENOUCHIƒŒƒxƒ‹‚W4-01☆6.3SINGLE2543241975078MIBSR401.mcs
MAKE IT BETTER(So-REAL Mix)SHiNiCHi SAiTHOƒŠƒgƒ‹‚ÍA‚©‚¯‚¿‚áƒ_ƒB4-02☆5.5DOUBLE2703242096642MIBSR402.mcs
MAKE IT BETTER(So-REAL Mix)???_07‚à‚Á‚Æ‚W•ª“¯Žž‰Ÿ‚µ‚ð`4-03☆7.2SINGLE28232421852111MIBSR403.mcs
MAKE IT BETTER(So-REAL Mix)???_13ƒŠƒYƒ€‚ɂ̂Á‚ă_ƒ“ƒX‚µ‚悤I5-01☆5.7SINGLE2653242054959MBETS501.mcs
MAKE IT BETTER(So-REAL Mix)MITHUTOSHI NAKATA㋉ŽÒŒü‚¯B6-01☆6.5SINGLE3224422496356MBETS601.mcs
MAKE IT BETTER(So-REAL Mix)TOMOFUMI YOSHIDA‚æ‚­“Ç‚ñ‚ʼnº‚³‚¢B7-01☆6.9SINGLE3514722726168MIBSR701.mcs
Make Your MoveEIJI O.ƒQ[ƒZƒ“‚Å‚Uƒpƒl•œŠˆŠó–]1-01☆5.4SOLO3103302115544MAKYM101.mcs
Make Your MoveA.NAOKI‚f‚‚”‚”‚‚ŽìF‚n‚k‚c•‚f‚n‚n‚c1-02☆1.9SINGLE201210137193MAKYM102.mcs
Make Your MoveMits-hide ObataƒŠƒYƒ€‚Éæ‚Á‚Ä“®‚«‰ñ‚ê`B5-01☆5.6DOUBLE2953902017030MMOVE501.mcs
Make Your MoveYasunobu Okuda‚È‚©‚È‚©ãŽè‚­‚¢‚Á‚½‚ÆŽv‚¢‚Ü‚·B7-01☆4.0SINGLE2913001984815MAKEY701.mcs
Make Your MoveNorihiro Kitamuraе‚ê‚邯Œ‹\Šy‚µ‚­“¥‚߂܂·7-02☆4.1DOUBLE345330235577MAKEY702.mcs
melt in my armsKAZUHITO TSUBOTA‚±‚̋Ȃłł«‚éŒÀ‚è‚Ì‚d‚c‚h‚sB7-01☆4.1SINGLE2012361565725MELT_701.mcs
melt in my armsSATOSHI M.‚ä‚Á‚½‚èA‚µ‚Á‚Æ‚è–ü‚µŒnB7-02☆4.6SINGLE1642361275640MELT_702.mcs
Midnite BlazeT.MURATA‚W•ª‚R˜A‚ªƒƒCƒ“‚Å‚·B1-01☆4.8SINGLE3143372223638MIDN_101.mcs
Midnite BlazeKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-02☆4.6DOUBLE3513372485219MIDN_102.mcs
Midnite BlazeKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-03☆4.0DOUBLE3633002574913MIDN_103.mcs
Midnite BlazeSOUSHIN.K‚È‚ñ‚©‚Æ‚ñ‚Å‚à‚È‚¢Ž–‚ÉEEE1-04☆5.6SINGLE4236002996023MIDN_104.mcs
Midnite BlazeHIROKI.N‚Æ‚±‚ë‚Ç‚±‚ë‰ñ‚Á‚ĉº‚³‚¢B1-05☆5.7SINGLE3324502355240MIDN_105.mcs
Midnite BlazeSHOTA,SAITOH.ƒQ[ƒ€«‚ðdŽ‹‚µ‚Ä‚¢‚Ü‚·B1-06☆5.1SINGLE3114122204526MIDN_106.mcs
Midnite BlazeY.IMAIƒXƒ‰ƒCƒh‚ðŽg‚¤‚ƃJƒbƒR‚¢‚¢‚©‚à2-01☆4.9SINGLE2252621592964MIDN_201.mcs
Midnite BlazeFUMIHIRO ISHIWATAƒvƒŒÃìB‚æ‚èAƒGƒLƒTƒCƒeƒBƒ“ƒO2-02☆4.2SINGLE2523001784025MIDN_202.mcs
Midnite BlazeKoichi Nakayama‰‚߂ñ‚̋Ȃ𕷂¢‚Ä‘¦Œøì¬3-01☆6.7SINGLE3694872615668MIDN_301.mcs
Midnite BlazeKoichi Nakayama‚c‚n‚t‚a‚k‚d•ˆ–ʉ‚ß‚Äì¬3-02☆7.0DOUBLE3844872715775MIDN_302.mcs
Midnite BlazeN.NAMIKAWAƒCƒ`ƒIƒV‚Å‚·B3-03☆5.5SINGLE493600349638MIDN_303.mcs
Midnite BlazeK.TAKEMURAº‚ɇ‚킹‚Ü‚µ‚½B3-04☆5.9SINGLE4196002966033MIDN_304.mcs
Midnite BlazeA.NAOKI‚lD‹g“c@ìF‚f‚n|‚i‚`‚r3-05☆5.8SOLO3546002504348MIDN_305.mcs
Midnite BlazeTOMOHIRO NAKAI‘O‘t‚͋Ȃɇ‚킹‚Ä“¥‚߂΂n‚jI3-06☆7.7SINGLE4566003226184MIDN_306.mcs
Midnite BlazeY.ISHIDA’†‹‰ŽÒŒü‚¯BƒTƒr‚Í‚º‚Ѓpƒ‰ƒpƒ‰‚Å3-07☆3.7DOUBLE271600191258MIDN_307.mcs
Midnite BlazeKIMISHIMA TAKUROƒWƒƒƒ“ƒv‚OI‹x‚¯‚¢—pB4-01☆1.0SINGLE150262106100MIDN_401.mcs
Midnite Blazetakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-02☆4.8SINGLE3963752805313MIDN_402.mcs
Midnite Blaze???_08ƒŒƒxƒ‹‚P‚P4-03☆5.5DOUBLE3504502474936MIDN_403.mcs
Midnite BlazeK.GOTOUŌオ‚¨‹C‚É“ü‚è5-01☆5.0SINGLE3093372184339MIDN_501.mcs
Midnite BlazeDAISUKE.H’ɉõIH5-02☆5.4SINGLE3483752465234MIDN_502.mcs
Midnite BlazeT.FUJIWARA‚¢‚܂܂ł̂“ï“xƒXƒeƒbƒvƒƒhƒŒ[6-01☆4.3DOUBLE3673002594324MIDN_601.mcs
Midnite BlazeKENJI ENDA‚©‚Ȃ胀ƒYƒC6-02☆6.4SINGLE4124872915850MIDN_602.mcs
Midnite BlazeD KYUTOKU^–é’†‚Ì‘MŒõ‚Ì‚²‚Æ‚­—x‚낤7-01☆4.4SINGLE2582621824236MIDN_701.mcs
Midnite BlazeK.IKEMOTO‘«~‚U‚­‚ç‚¢‚Å‚·8-01☆3.9SINGLE2533001792628MIDN_801.mcs
MR.WONDERFULM.MOCHIDUKI‚¨‚à‚¢‚«‚è‰ñ“]•ˆ–Ê1-01☆2.0SINGLE187241140138MRWO_101.mcs
MR.WONDERFULSOUSHIN.KƒGƒ‰‚­‚Þ‚¸‚©‚µ‚­‚È‚è‚Ü‚µ‚½‚È1-02☆4.1SINGLE339379248580MRWO_102.mcs
MR.WONDERFULYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-03☆5.0SINGLE2742752014353MRWO_103.mcs
MR.WONDERFULK.SUGAI‚r‚g‚o‚l‚q‚v‚O‚P^‚V2-01☆5.4SINGLE2342751712684MRWO_201.mcs
MR.WONDERFULTOMOHIRO NAKAI˜”Ղ̕ϑ¥ƒŠƒYƒ€‚ðŒ©Ø‚ê‚é‚©IH3-01☆6.8SINGLE3433442515782MRWO_301.mcs
MR.WONDERFULS.KUROYANAGI‚Ü‚³‚µ‚­‚d‚k@‚q‚h‚s‚l‚n‚Å‚·5-01☆4.5SINGLE2712411986432MRWO_501.mcs
MR.WONDERFULK.GOTOUƒƒ“ƒ_ƒtƒH[II5-02☆4.5SINGLE2923102145025MRWO_502.mcs
MR.WONDERFULKEIGO.H‚r‚h‚m‚f‚k‚d@‚a‚d‚dI5-03☆5.1SINGLE2813102065044MRWO_503.mcs
MR.WONDERFULYuki Ichikawa•ª‚©‚Á‚Ä‚µ‚Ü‚¦‚Ίy‚µ‚­I6-01☆6.4SINGLE3954132896446MRWO_601.mcs
MR.WONDERFULN_Watanabeƒm[ƒRƒƒ“ƒgEEE7-01☆5.9SINGLE3563792615644MRWO_701.mcs
MR.WONDERFULSATOSHI HORIUCHI㋉ŽÒŒü‚¯‚Å‚·7-02☆5.0SINGLE3324132435120MRWO_702.mcs
MR.WONDERFULKAZUTAKA SUEDA‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‹ï‡B7-03☆6.8SINGLE3884822846163MRWO_703.mcs
MR.WONDERFULD.fujisaki‚±‚ñ‚È‚ñ‚Å‚«‚é‚©II“I•ˆ–ÊB7-04☆5.1SINGLE3374132476116MRWO_704.mcs
MR.WONDERFULHAJIME.I‚Ú‚æ‚ñìF“¯‚¶ƒŠƒYƒ€‚ÌŒJ‚è•Ô‚µ8-01☆4.0SINGLE319310234558MRWO_801.mcs
MUSICTOMOKAZU-M‚s‚q‚h‚b‚jƒvƒŒƒCƒ„[‚É¥”ñI1-01☆2.5DOUBLE1942101411133MUSIC101.mcs
MUSICT.TAMAIŠy‚µ‚­—x‚ê‚邿‚¤‚Éì‚è‚Ü‚µ‚½B2-01☆1.2SINGLE18021013189MUSIC201.mcs
MUSICKubota Mamoru‚Ü‚³‚ɃCƒ`ƒIƒVI2-02☆3.3SINGLE2252451642327MUSIC202.mcs
MUSICHAJIME.I‚Ú‚æ‚ñìFƒTƒr‚Ì•”•ª‚ª–Ê”’‚¢2-03☆4.9SINGLE2833502065327MUSIC203.mcs
MUSICSUGAWARA TAKASHI‚P‚U•ª‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B2-04☆5.5SINGLE2523151836247MUSIC204.mcs
MUSICA.NAOKI‚f‚‚”‚”‚‚ŽìF‚¨‚ñ‚¿3-01☆5.4SINGLE2663501947331MUSI_301.mcs
MUSICHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆6.7SINGLE2442801776394MUSIC401.mcs
MUSICDAISUKE.H‰¹‚ɂ̂êII5-01☆4.5SINGLE3213502396310MUSIC501.mcs
MUSICKEITA.I–l‚ªì‚Á‚½‚T‹È‹C‚É‚¢‚Á‚½l‚¢‚éH5-02☆3.9COUPLE299/2992802185314MUSIC502.mcs
MUSICT.MAMIYA‹È‚ª‹C‚É“ü‚Á‚½‚Ì‚Åì‚Á‚Ă݂܂µ‚½5-03☆4.9SINGLE2772802024447MUSIC503.mcs
MUSICKATSUHIKO KOBAYASHI‰¹Šy‚Æ•‘“¥‚Ì—Z‡5-04☆5.6SINGLE3033152215753MUSIC504.mcs
MUSICHIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·6-01☆4.3SINGLE2942802144329MUSIC601.mcs
MUSICDAISUKE A.–ÚŽw‚¹ƒtƒ‹ƒRƒ“ƒ{‚R‚Q‚QII6-02☆6.4SINGLE3223502346366MUSIC602.mcs
MUSICN_WatanabeƒCƒ`ƒIƒVB7-01☆4.6SINGLE3323152425622MUSIC701.mcs
MUSICYOSHIHIKO MOTOYASUƒTƒCƒhƒTƒCƒh‚Æ‚¢‚¤‚±‚Æ‚ÅEEEB7-02☆3.1SINGLE318280231421MUSIC702.mcs
MUSICD.fujisakiƒWƒƒƒ“ƒv‚µ‚Ü‚­‚èIH7-03☆5.0SINGLE2662801943161MUSIC703.mcs
MY BABY MAMAA.NAOKI‚lE‹g“c ìF‚e‚t‚q‚`‚q‚h5-01☆3.5DOUBLE2362061762241MBABY501.mcs
MY BABY MAMAMits-hide Obata”÷–­‚ÈŠ|‚¯‡‚¢‚ðŒ©Ø‚ê‚é‚©‚ÈH5-02☆8.5COUPLE302/26741322671200MBABY502.mcs
MY BABY MAMATAKESHI MATSUMOTO‚±‚ꂪƒQ[ƒZƒ“‚łł«‚ê‚΂ȃ@c7-01☆3.6DOUBLE301310225447MYBA_701.mcs
MY FIRE(UKS Remix)S.NIHEIƒXƒeƒbƒv‚ð¡•—‚ɃAƒŒƒ“ƒW1-01☆3.0SINGLE1862601633010MYFI_101.mcs
MY FIRE(UKS Remix)YAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-02☆4.0SINGLE2272601993829MYFI_102.mcs
MY FIRE(UKS Remix)Y_TATE•ˆ–Ê‚ª¬‚´‚Á‚Ă܂·Bƒ„ƒo‚¢‚Å‚·1-03☆4.7SINGLE249520219628MYFI_103.mcs
MY FIRE(UKS Remix)SHIBATA JUNICHI‚P‚U•ªƒYƒŒ‚Æ“¯Žž“¥‚݂̘A‘±‚Å‚·1-04☆7.4SINGLE3885203416466MYFI_104.mcs
MY FIRE(UKS Remix)TAKENAKA TAKAHIRO—«ƒ{[ƒJƒ‹‚ɇ‚킹‚Ü‚µ‚½B2-01☆3.1SINGLE1531951342232MYFI_201.mcs
MY FIRE(UKS Remix)Kubota Mamoru‚₳‚µ‚¢‚W•ª‚ª‚½‚­‚³‚ñ“oê2-02☆3.0SINGLE1412601242811MYFI_202.mcs
MY FIRE(UKS Remix)MASAHIRO.Y•’ʂȃfƒLi‚̂‚à‚èEEEj2-03☆3.8DOUBLE2032601784419MYFI_203.mcs
MY FIRE(UKS Remix)K.SUGAI‚r‚g‚o‚e‚h‚q‚O‚P^‚U2-04☆4.5SINGLE1551621367138MYFI_204.mcs
MY FIRE(UKS Remix)K.SUGAI‚r‚g‚o‚e‚h‚q‚O‚Q^‚U2-05☆3.5SINGLE1772271552236MYFI_205.mcs
MY FIRE(UKS Remix)M.IWAKURAŠy‚µ‚߂邩‚àB“ï“x‚V’ö“xB2-06☆3.8SINGLE276325242543MYFI_206.mcs
MY FIRE(UKS Remix)KOSE FƒmƒŠ‚æ‚­‚l‚x@‚e‚h‚q‚d2-07☆3.6DOUBLE2202601933918MYFI_207.mcs
MY FIRE(UKS Remix)???_04‚¨‚à‚µ‚ë‚¢‚©‚àH^‚l‚`‚q‚j3-01☆6.3SINGLE3204552895945MYFI_301.mcs
MY FIRE(UKS Remix)Y.ISHIDA’†`㋉ŽÒ—p‚Ì—ûK—p•ˆ–ʂł·B3-02☆4.5SINGLE2192601923843MYFI_302.mcs
MY FIRE(UKS Remix)N.MIMURAƒ}ƒjƒA‚ÆVƒ}ƒjƒA‚Ì’†ŠÔ‚®‚ç‚¢4-01☆2.8SINGLE162260142314MYFI_401.mcs
MY FIRE(UKS Remix)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆3.7SINGLE2472602174417MYFI_402.mcs
MY FIRE(UKS Remix)Tetsuya S.‚b‚n‚t‚o‚k‚d„§B’‡—Ç‚­—x‚Á‚Ä‚Ë5-01☆4.0COUPLE149/1492921311846MFIRE501.mcs
MY FIRE(UKS Remix)Kiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆3.9COUPLE142/1421951241765MYFI_601.mcs
MY FIRE(UKS Remix)TAIGA.Oʼn‚ɂ‚­‚Á‚½ƒGƒfƒBƒbƒgB7-01☆1.3SINGLE150227131112MYFI_701.mcs
MY FIRE(UKS Remix)K.WAKAKI‚à‚¦‚Ä‚¢‚é@‚¶‚Ô‚ñ7-02☆1.0SINGLE130130114018MYFI_702.mcs
MY FIRE(UKS Remix)Kouzou.NƒAƒiƒU[‚ð–ÚŽw‚µ‚Ü‚µ‚½7-03☆3.3SINGLE2302602023512MYFI_703.mcs
MY FIRE(UKS Remix)Kouzou.Nƒ}ƒjƒAƒbƒN‚ð–ÚŽw‚µ‚Ü‚µ‚½7-04☆4.9SINGLE2762602424647MYFI_704.mcs
MY SUMMER LOVETOMOKAZU-M’x‚¢‹È‚ÅŠµ‚ê‚Ä‚©‚ç1-01☆2.1DOUBLE1521751151814MSL__101.mcs
MY SUMMER LOVEKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-02☆4.7DOUBLE3023502285818MSL__102.mcs
MY SUMMER LOVEH.KAWAKAMI‚e‚n‚uނɑ¡‚Á‚½‚â‚ÂB1-03☆8.5SINGLE35340026763141MSL__103.mcs
MY SUMMER LOVEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚l‚t‚g‚n‚g‚n1-04☆6.3SINGLE2634001995756MSL__104.mcs
MY SUMMER LOVE???_01Œy‚â‚©‚ɂǂ¤‚¼1-05☆4.6SINGLE2763252095621MSL__105.mcs
MY SUMMER LOVEMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆4.8SINGLE2103251595926MSL__201.mcs
MY SUMMER LOVEHAJIME.I‚Ú‚æ‚ñìFƒ}ƒj‚ƃgƒŠ‚Ì’†ŠÔ2-02☆3.6SINGLE2302751744612MSL__202.mcs
MY SUMMER LOVEKEISUKE.S‚P‚Q•ª‚É’ˆÓI2-03☆5.2SINGLE2844002155625MSL__203.mcs
MY SUMMER LOVEK.TAKEMURAƒ€ƒŠ‚µ‚ăŒƒxƒ‹ã‚°‚Ü‚µ‚½B2-04☆5.0SINGLE3513502666917MSL__204.mcs
MY SUMMER LOVEYUKI Yokota‚ä‚Á‚½‚è‚Æ‚µ‚½‹È‚ªD‚«‚ɂȂÁ‚½2-05☆3.5SINGLE2332001764323MSL__205.mcs
MY SUMMER LOVEWATANABE JUN‚¿‚å‚Á‚Æ‚n‚q‚h‚n‚mD‚V‚W•—H3-01☆4.8SINGLE350400265648MYSU_301.mcs
MY SUMMER LOVEY.SHIOTANI“ÆŽ©‚̃eƒ“ƒ|‚Å쬂µ‚Ü‚µ‚½3-02☆3.7SINGLE283275214654MYSU_302.mcs
MY SUMMER LOVENAOyuki-Tachihara‚sƒ_ƒuƒ‹Bе‚ê‚邯ƒnƒ}‚è‚Ü‚·I3-03☆6.8DOUBLE2703502045089MYSU_303.mcs
MY SUMMER LOVENAOyuki-Tachihara‚s‚Q‚–ÚB‹È‚É‚à’–Ú‚µ‚Ü‚µ‚½B3-04☆6.2SINGLE2903502195664MYSU_304.mcs
MY SUMMER LOVEJUN.K‰ÄB4-01☆4.1SINGLE1972251494336MSL__401.mcs
MY SUMMER LOVESHiNiCHi SAiTHO‚ä‚Á‚½‚èƒXƒeƒbƒvB4-02☆4.4DOUBLE2523501915711MSL__402.mcs
MY SUMMER LOVET.YASUDA‚ä‚Á‚­‚è‚Å‚·‚©‚ç4-03☆4.8SINGLE2703252046124MSL__403.mcs
MY SUMMER LOVEY.KAWABE“¯‚¶‚­‚j‚d‚mŽ‚Æ‚Ì‹¤“¯ì‚Å‚·4-04☆5.0SINGLE2604001975021MSL__404.mcs
MY SUMMER LOVESEIJI W.‚P‚U•ª‚ÌW’†’n‘Ñ‚ªŒ©‚¦‚ê‚Î5-01☆5.3SINGLE2283501726533MSL__501.mcs
MY SUMMER LOVEKatsuhiko Kinoshita’P’²‚ɂȂç‚È‚¢‚悤‚É‚µ‚½5-02☆3.7SINGLE2172251644720MSL__502.mcs
MY SUMMER LOVEYOSHiHiKO KAJiYAƒtƒ‹ƒRƒ“ƒ{‚µ‚Ä‚­‚¾‚³‚¢6-01☆7.3SINGLE3514002666381MSL__601.mcs
MY SUMMER LOVEYuki IchikawaŒ©‚½–Ú‚æ‚èƒ}ƒbƒ^ƒŠŠy‚µ‚߂܂·B6-02☆6.4SINGLE3283502486565MSL__602.mcs
MY SUMMER LOVESEIJI TOUMA‚±‚ê‚àƒIƒXƒXƒII7-01☆5.3SINGLE3424002596518MSL__701.mcs
NA-NAKOUICHI TAKEUCHI‚a‚t‚r@‚r‚s‚n‚oƒTƒCƒR[I3-01☆4.4SINGLE2623322174522NANA_301.mcs
NA-NAA.NAOKI‚lD‹g“c@ìF‚V3-02☆4.4DOUBLE2252661873048NANA_302.mcs
NA-NAABE TaTsuMa‚W•ª‚Ì—ûK—pB5-01☆4.6SINGLE1912321582665NA-NA501.mcs
NA-NATAKEO.U‚Ƃ肠‚¦‚¸‚â‚Á‚Ă݂悤I6-01☆4.5SINGLE2842992364628NA-NA601.mcs
NA-NAH.KAWAKAMIƒŒƒxƒ‹‚à‚m‚`|‚m‚`B6-02☆3.6SINGLE2882662394413NA-NA602.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)TOMOKAZU-M‚½‚܂ɂ͂±‚̋ȂàƒvƒŒƒC1-01☆2.9DOUBLE1812041391633NEVGM101.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)A.NAOKI‚lD‹g“c@ìF‚m—i”[“¤j1-02☆4.9DOUBLE2443061885138NEVGM102.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Y.IMAI—]—T‚ª‚ ‚él‚̓AƒŒƒ“ƒW‚ð2-01☆2.9DOUBLE1442041111338NEVGM201.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Masayuki.A“ïˆÕ“x‚U‚Å‚·I2-02☆4.6SINGLE2272721753448NEVGM202.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)M.IWAKURA‚˂΂˂΂²‚È‚²‚ÈB“ï“x‚V’ö“xB2-03☆4.0SINGLE2992722315515NEVGM203.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)KOUICHI TAKEUCHI‚W•ª‚Æ•t“_‚W•ª‚Ì—Z‡3-01☆3.3SINGLE285272220570NEGO_301.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)???_03‚©‚é‚­‰^“®B3-02☆4.0SINGLE2422721874720NEGO_302.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)DAISUKE MATSUDA‹È‚ƈê‘̂ɂȂê‚é‚“‚”‚…‚I3-03☆3.7SINGLE274272211577NEGO_303.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆3.8SINGLE2442721885811NEVGM401.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)DAISUKE.Hƒ_ƒ“ƒX‚̪Œ¹‚±‚±‚ÉII5-01☆5.6COUPLE293/3003062265854NEVGM501.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`‚`5-02☆4.7SINGLE363408280624NEVGM502.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Keisuke Ogiwara‚W•ª‚̂݃fƒXB6-01☆2.9SINGLE1952381502615NEVGM601.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)DAISUKE A.‚¿‚å‚Á‚ƌ㔼‚ª“‚ß‚©‚ÈH6-02☆6.0SINGLE2484081914755NEVGM602.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)SEIJI TOUMA‚»‚±‚܂Ń€ƒY‚©‚µ‚­‚͂Ȃ¢B7-01☆4.7SINGLE266408205637NEVGM701.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Norihiro Kitamura’†”Ղ̘A‘±“¥‚݂ͥ”ñŒðŒÝ‚ÅI7-02☆3.6DOUBLE316306244571NEVGM702.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)Y.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-03☆6.4SINGLE573544442720NEVGM703.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)HAJIME.I‚Ú‚æ‚ñìF•t“_‚W•ª‚𑽗p8-01☆4.9SINGLE2682722075642NEVGM801.mcs
NEVER GONNA MAKE(FACTORY DANCE TEAM MIX)???_22‚W•ª‚ª“¥‚݂₷‚¢‚Å‚·B„’è‚k‚u‚W8-02☆3.8SINGLE304306234498NEVGM802.mcs
never let you downSHOTA,SAITOH.‚Uƒpƒlƒ‹‚ÌŠy‚µ‚³‚ð‹l‚߂Ă݂܂µ‚½1-01☆2.5SOLO14325095937NVLYD101.mcs
never let you downKEISUKE.MŒã”¼‚É“q‚©‚Á‚Ă܂·B1-02☆5.0SINGLE2893431923941NVLYD102.mcs
never let you downA.NAOKI‚f‚‚”‚”‚‚ŽìF‚`|Q|Q|Q|1-03☆4.3DOUBLE2822811873535NVLYD103.mcs
never let you downHIROKI TAKAHASHI‚±‚̋ȑåD‚«‚ÈlŽd—lI2-01☆4.5SINGLE3292812185228NVLYD201.mcs
never let you downY.IMAI—]—T‚ª‚ ‚él‚̓AƒŒƒ“ƒW‚ð2-02☆3.3SOLO1661871101454NVLYD202.mcs
never let you downHAJIME.I‚Ú‚æ‚ñìFƒQ[ƒ€«‚ðdŽ‹2-03☆4.4SINGLE2652811764035NVLYD203.mcs
never let you downSAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-01☆4.4COUPLE289/2892811925725NELE_301.mcs
never let you downRyohei Sekiu‹È’Ê‚èv‚É‚±‚¾‚í‚蔲‚«‚Ü‚µ‚½B3-02☆4.1SINGLE3033122015114NELE_302.mcs
never let you downJUN.K‚¨‚¿‚éA‚ ‚ª‚éB4-01☆4.8SINGLE2472501644252NLYD_401.mcs
never let you downS.Okanoo—ˆ‚邾‚¯‹È‚ɇ‚킹‚Ü‚µ‚½B4-02☆4.9SINGLE401437266619NLYD_402.mcs
never let you downKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-01☆4.8DOUBLE372406247619NLYD_601.mcs
never let you downYuki Ichikawa‚Q‚c‚w‚ðƒvƒŒƒC‚µ‚Ä‚¢‚ê‚ΊȒPB6-02☆6.1SINGLE3953432626055NLYD_602.mcs
never let you downW.Shiomi‚Q‚c‚w‚Ì•ˆ–Ê‚ðŒ³‚É‚µ‚Ă܂·8-01☆4.5SINGLE3543752355510NVLYD801.mcs
never let you downW.Shiomi‚Q‚c‚w‚Ì•ˆ–Ê‚ðŒ³‚É‚µ‚Ă邪EEE8-02☆4.4DOUBLE384500255592NVLYD802.mcs
never let you downTOSHIMITU.KURITA㋉ŽÒŒü‚¯8-03☆4.7SINGLE3453752295018NVLYD803.mcs
NIGHT IN MOTIONH.KAWAKAMI“¯Žž‚ª‘½‚¢B1-01☆7.9SINGLE29732720264172NIGHT101.mcs
NIGHT IN MOTIONA.NAOKI‚lD‹g“c@ìF‚r‚t‚o‚d‚q@‚w1-02☆4.3DOUBLE3092622104928NIGHT102.mcs
NIGHT IN MOTIONYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚V2-01☆4.6SINGLE3612942466222NIGHT201.mcs
NIGHT IN MOTIONSUGAWARA TAKASHIŒã”¼‚Ì“¯Žž“¥‚Ý‚ªƒ|ƒCƒ“ƒg‚Å‚·B2-02☆7.4DOUBLE27232718563107NIGHT202.mcs
NIGHT IN MOTIONH.TARUMI‘«‚àƒŠƒYƒ€‚à‹@ŠB“I‚ÉEEE2-03☆5.4SINGLE3543272416238NIGHT203.mcs
NIGHT IN MOTION???_10ƒ}ƒjƒAƒbƒN‚ðŠÈ’P‚É‚µ‚½Š´‚¶5-01☆5.1SINGLE2742941876140NIGHT501.mcs
NIGHT IN MOTIONMits-hide Obata‚P‚U•ª‚R˜A‚ׂ̈Éì‚Á‚½‚悤‚È‚à‚Ì5-02☆6.3SOLO3685242516948NIGHT502.mcs
NIGHT IN MOTIONT.FUJIWARA“¯Žž“¥‚݂̗’II6-01☆7.8SINGLE29332720060261NIGHT601.mcs
NIGHT IN MOTIONKotaro KagawaƒIƒXƒXƒ‚ÍEEE‚Å‚«‚È‚¢B7-01☆5.5SINGLE3863272636638NIGHT701.mcs
NIGHT IN MOTIONTOSHIMITU.KURITA’´ã‹‰ŽÒŒü‚¯8-01☆4.6SINGLE3583602446311NIGHT801.mcs
NIGHT IN MOTIONHIROSHI.M‚Ù‚Æ‚ñ‚Ǖςí‚Á‚Ă܂¹‚ñB8-02☆6.9SINGLE2963272026687NIGHT802.mcs
NIGHT IN MOTIONShimamoto Satoshi‚P‚U•ª‚Ì‚ ‚炵`8-03☆7.2DOUBLE3454582356581NIGHT803.mcs
OH NICK PLEASE NOT SO QUICKYAMADA HIDETOSHI—«‚u‚n‚b‚`‚kŽx‰‡•ˆ–Ê1-01☆4.8SINGLE3012602334943OHNI_101.mcs
OH NICK PLEASE NOT SO QUICKKOUICHI TAKEUCHIƒjƒbƒN‚à‚¢‚¢‚¯‚ÇA•ˆ–Ê‚ª‚¢‚¢I3-01☆4.4SINGLE2762932144828OHNI_301.mcs
OH NICK PLEASE NOT SO QUICKTSUJI JUNNYA–{“–iƒ}ƒWj‚Å‚¨‚ǂ肽‚¢Žž‚Éc3-02☆6.1SINGLE3003582325660OHNI_302.mcs
OH NICK PLEASE NOT SO QUICKM.Yamamoto‰¹‡‚킹3-03☆5.4SINGLE2514561945233OHNI_303.mcs
OH NICK PLEASE NOT SO QUICKT.YASUDA’P’²‚ÈŽdオ‚è‚Å‚·4-01☆4.5SINGLE2803582175712OHNI_401.mcs
OH NICK PLEASE NOT SO QUICKS.KUROYANAGI‚P‚U•ª‘½—pI—v’ˆÓII5-01☆4.7SINGLE2882932236228OHNIC501.mcs
OH NICK PLEASE NOT SO QUICKDAISUKE A.–¼‚Ì’Ê‚èŽO˜A•„‚ðŽg‚Á‚Ä‚ ‚è‚Ü‚·B6-01☆5.6SINGLE2494231935336OHNI_601.mcs
OH NICK PLEASE NOT SO QUICKYuki Ichikawa‚n‚g@‚m‚h‚b‚jD‚«‚È‚ç•K‚¸I6-02☆4.6SINGLE2552601973451OHNI_602.mcs
OH NICK PLEASE NOT SO QUICKK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.2SINGLE2873252224416OHNI_801.mcs
ONE TWO(LITTLE BITCH)TOMOKAZU-M”ò‚ñ‚Å‚i‚t‚l‚o1-01☆3.2DOUBLE199217150766ONET_101.mcs
ONE TWO(LITTLE BITCH)Y_TATE–^‚b‚l‚̃mƒŠ‚ł͂µ‚á‚¢‚Å‚­‚¾‚³‚¢1-02☆6.7SINGLE23032617342100ONET_102.mcs
ONE TWO(LITTLE BITCH)murai mitsuru—V‚ñ‚Å‚¢‚ÄŠy‚µ‚¢ƒŠƒYƒ€‚Å‚·B1-03☆4.7SINGLE3374352544812ONET_103.mcs
ONE TWO(LITTLE BITCH)A.NAOKI‚lD‹g“c@ìF‚x‚nI@‚x‚nI1-04☆4.9DOUBLE2552901923056ONET_104.mcs
ONE TWO(LITTLE BITCH)J.GOUKE‚k‚u‚ð‚¨‚³‚¦‚ħì2-01☆3.4SINGLE2252531693418ONET_201.mcs
ONE TWO(LITTLE BITCH)YAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚Q2-02☆4.0SINGLE3182902404417ONET_202.mcs
ONE TWO(LITTLE BITCH)H.Sakurai‚³‚Á‚¿‚á‚ñƒIƒXƒXƒ2-03☆4.6DOUBLE2812902123443ONET_203.mcs
ONE TWO(LITTLE BITCH)TAKEHIRO-O‚i‚n‚j‚d‚q@ƒ_ƒ}‚·ŽÒ—LB3-01☆6.4SINGLE20029015119200ONET_301.mcs
ONE TWO(LITTLE BITCH)N.KAZUMA‚a‚t‚rš‚r‚s‚n‚o‚Å‹CŒy‚ɃWƒƒƒ“ƒv3-02☆4.1SINGLE3293262484711ONET_302.mcs
ONE TWO(LITTLE BITCH)SHiNiCHi SAiTHOŠy‚µ‚­Œƒ‚µ‚­ƒXƒeƒbƒvƒWƒƒƒ“ƒvI4-01☆5.4DOUBLE2552901924264ONET_401.mcs
ONE TWO(LITTLE BITCH)Yuto Jijiwa‚¯‚Á‚±‚¤Šy‚µ‚¢‚ÆŽv‚¢‚Ü‚·B5-01☆4.3SINGLE2272901712248ONET_501.mcs
ONE TWO(LITTLE BITCH)DAISUKE.HƒŠƒYƒ€‚æ‚­s‚±‚¤EEE5-02☆4.7SINGLE2612901973150ONET_502.mcs
ONE TWO(LITTLE BITCH)F.KATOU‚b‚n‚n‚k‚ȃ‰ƒbƒv‚ðˆÓޝ‚µ‚½‚ºI5-03☆4.4DOUBLE2953262224720ONET_503.mcs
ONE TWO(LITTLE BITCH)SHIGERU ARAIƒXƒJ‚Æ‚¢‚¦‚Η ‘Å‚¿I6-01☆6.0SINGLE2162531636178ONET_601.mcs
ONE TWO(LITTLE BITCH)K.Kinugawa”ò‚т܂­‚ê‚Ü‚·iÎ6-02☆6.1DOUBLE24329018330100ONET_602.mcs
ONE TWO(LITTLE BITCH)TAKU YAMAMOTOŒ»‘ãl‚Ì”æ‚ê‚ɂ͎΂߂¾‚ËI7-01☆4.7SOLO2212901664043ONET_701.mcs
ONE TWO(LITTLE BITCH)???_20ƒXƒJ‚ÌƒŠƒYƒ€7-02☆5.7SINGLE2953262224561ONET_702.mcs
ONE TWO(LITTLE BITCH)YOSHIHIKO MOTOYASU‚قǂ悢“ïˆÕ“x‚©‚ÈB7-03☆4.9SINGLE2892902183750ONET_703.mcs
ONE TWO(LITTLE BITCH)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.7SINGLE3142902374240ONET_801.mcs
ONE TWO(LITTLE BITCH)HIROSHI.M‰´A‚±‚ê‚΂Á‚©‚èEEEB8-02☆5.1SINGLE2972902244848ONET_802.mcs
ONE TWO(LITTLE BITCH)Shimamoto Satoshi‚±‚í‚ꂽ•ˆ–Ê‚Q8-03☆3.7DOUBLE3022902284610ONET_803.mcs
ONLY YOUKazuki.Koushi—x‚Á‚ÄŠy‚µ‚¢Å‚Œ†ìI1-01☆6.6SINGLE20920917350118ONLY_101.mcs
ONLY YOUA.NAOKI‚lD‹g“c@ìF‚n‚m‚k‚x@‚i1-02☆5.6DOUBLE1961861625189ONLY_102.mcs
ONLY YOUMasaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆4.1SINGLE1872791556014ONLY_201.mcs
ONLY YOUYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚S2-02☆5.6SINGLE2242091865280ONLY_202.mcs
ONLY YOUYUKI Yokota’x‚³‚ɃzƒŒ‚½‹È2-03☆3.3SINGLE1882091564317ONLY_203.mcs
ONLY YOUKOUICHI TAKEUCHI‚Þ‚¸‚©‚µ‚»‚¤‚ÅAŽÀ‚ÍŠÈ’PI3-01☆4.5SINGLE1791861484555ONLY_301.mcs
ONLY YOUTSUJI JUNNYA‚â‚Á‚Ï‚è’ÒŒN‚Í‚©‚Á‚±‚¢‚¢3-02☆5.0SINGLE2683722226320ONLY_302.mcs
ONLY YOUJUN.KŒ¾‚í‚ê‚Ă݂½‚¢BŒ¾‚Á‚Ă݂½‚¢4-01☆4.4DOUBLE1942091615342ONLY_401.mcs
ONLY YOUSAEKO.TƒEƒLƒEƒL‚g‚n‚o‚r‚s‚d‚oI4-02☆6.0DOUBLE2112551755781ONLY_402.mcs
ONLY YOU???_08ƒŒƒxƒ‹‚VA’†‹‰ŽÒŒü‚¯4-03☆4.1DOUBLE1882321564532ONLY_403.mcs
ONLY YOUTAISHI K.‚Ç‚ñ‚Ç‚ñ‚Þ‚¸‚©‚µ‚­‚Ȃ邼I4-04☆6.6SINGLE2663722206767ONLY_404.mcs
ONLY YOUHatamoto Yoheiu‚Q‚S•ª‰¹•„v‚ªŽg‚¦‚ê‚΂ȂŸB4-05☆4.6SINGLE1951861614458ONLY_405.mcs
ONLY YOUK.GOTOU‚È‚©‚È‚©D‚«5-01☆4.6SINGLE2312551916332ONLY_501.mcs
ONLY YOUOKAMOTO Taishi‚æ`‚­Œ©‚È‚¢‚ƊԈႢ‚Ü‚·B5-02☆3.4SINGLE247302205550ONLY_502.mcs
ONLY YOUK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-03☆5.6SINGLE3133722596432ONLY_503.mcs
ONLY YOUSHINYA.K‰½‚¾‚©ƒIƒŠƒIƒ“‚Ý‚½‚¢‚ÉEEE5-04☆4.5SINGLE2642792196523ONLY_504.mcs
ONLY YOUKENJI ENDA’x‚¢‚̂łȂñ‚Æ‚©‚È‚é6-01☆4.3SINGLE2292091905835ONLY_601.mcs
ONLY YOUK.KinugawaŠy‚µ‚­A‚Ü‚Á‚½‚è‚Æ“¥‚߂܂·B6-02☆3.9DOUBLE247279205629ONLY_602.mcs
ONLY YOUH.KAWAKAMI‚`‚j‚kŽ‚Ìì•iB6-03☆5.8SINGLE2082551724880ONLY_603.mcs
ONLY YOURyosuke.Tƒ{ƒ“ƒ{ƒ“ƒ{ƒ‹ƒ{ƒ‹ô7-01☆5.3SINGLE3563722957018ONLY_701.mcs
ONLY YOU???_20‚j‚d‚hìBƒtƒ@ƒ“ƒL[‚Å‚·7-02☆6.1SINGLE2893722396648ONLY_702.mcs
ONLY YOUYOSHIHIKO MOTOYASU‚Ü‚Á‚½‚èŒn‚Ì‚g‚‚‚‚‰‚Žf‚o‚‚7-03☆7.3SINGLE23427919452128ONLY_703.mcs
ONLY YOUD KYUTOKU‹M•û‚¾‚¯‚ÉA•ù‚°‚Ü‚·7-04☆4.0SINGLE2102551745719ONLY_704.mcs
ONLY YOUK.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆5.3SINGLE2142091775766ONLY_801.mcs
ONLY YOUYohei Maruyamaƒf[ƒ^–¼‚Ì’Ê‚è‚Å‚·B8-02☆5.3SINGLE2102321745962ONLY_802.mcs
ONLY YOUKOHEI.T‚Ü‚½[‚è‚¢‚«‚Ü‚µ‚傤B8-03☆4.0SINGLE2712792255912ONLY_803.mcs
ONLY YOU???_22‚Uƒpƒlƒ‹‚È•ˆ–ʂł·B„’è‚k‚u‚X8-04☆5.5SINGLE2372321965469ONLY_804.mcs
OPERATOR(Two Gees Mix)S.NIHEI“¥‚݂₷‚¢‚悤‚Éì‚è‚Ü‚µ‚½1-01☆3.3SINGLE2582691933413OPER_101.mcs
OPERATOR(Two Gees Mix)YAMADA HIDETOSHI— ‰¹’†S1-02☆4.9SINGLE3073032305038OPER_102.mcs
OPERATOR(Two Gees Mix)J.GOUKE‰¹‚É‚ ‚킹‚Ä“¥‚à‚¤2-01☆4.4SINGLE2703032025323OPER_201.mcs
OPERATOR(Two Gees Mix)Kubota MamoruÅŒã‚܂ŖY‚ꂸ‚É“¥‚ñ‚Å2-02☆3.9SINGLE1952691462535OPER_202.mcs
OPERATOR(Two Gees Mix)K.SUGAI‚r‚g‚o‚n‚o‚d‚O‚P^‚S^‚S•ª‚Ì‚Ý2-03☆4.3SINGLE1551341160155OPER_203.mcs
OPERATOR(Two Gees Mix)D.KAWABATAƒgƒŠƒbƒN‰SŽÒ‚É‚¨Š©‚ß5-01☆2.6SINGLE1902361421326OPER_501.mcs
OPERATOR(Two Gees Mix)T.MAMIYAʼn‚Éì‚Á‚½Ùì‚Å‚·B5-02☆3.2SINGLE2002691492319OPER_502.mcs
OPERATOR(Two Gees Mix)Katsuhiko KinoshitaƒIƒtƒBƒVƒƒƒ‹‚Ì•µˆÍ‹C‚ðŽc‚µ‚‚Â5-03☆4.0SINGLE2382691783628OPER_503.mcs
OPERATOR(Two Gees Mix)T.NAOYA‚b‚n‚t‚s‚h‚n‚m6-01☆3.8SINGLE2562691913921OPER_601.mcs
ORION.78(AMeuro-MIX)TOMOKAZU-M‚ƒ‚‰‚–‚‰‚Œ‚…‚æ‚è””{‚¦‚®‚¢1-01☆6.8DOUBLE3213932345775ORIO_101.mcs
ORION.78(AMeuro-MIX)T.MURATAƒXƒ‰ƒCƒh‚ðŽg‚Á‚ĉº‚³‚¢B1-02☆5.9SINGLE3334202426040ORIO_102.mcs
ORION.78(AMeuro-MIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-03☆5.8DOUBLE3203672335945ORIO_103.mcs
ORION.78(AMeuro-MIX)YAMADA HIDETOSHI˜‚ðŽg‚Á‚ĉº‚³‚¢1-04☆5.8SINGLE2803152045066ORIO_104.mcs
ORION.78(AMeuro-MIX)murai mitsuru‚¨‹C‚É“ü‚è‚̋ȂȂ̂Åì‚Á‚Ă݂½B1-05☆5.0SINGLE3483932536016ORIO_105.mcs
ORION.78(AMeuro-MIX)SHIBATA JUNICHI‚P‚U•ª‚ª–§W‚µ‚Ä‚¢‚Ü‚·I1-06☆5.9SINGLE4014202927129ORIO_106.mcs
ORION.78(AMeuro-MIX)YASUHIRO.O‚x‚`‚r‚t|‚V‚W‚r‚̃_ƒuƒ‹‚u‚…‚’1-07☆6.5DOUBLE3174202315862ORIO_107.mcs
ORION.78(AMeuro-MIX)YASUHIRO.O‚Q‚l‚a‚̃V[ƒPƒ“ƒX‚ð‚l‚h‚w1-08☆7.2SINGLE3194202325886ORIO_108.mcs
ORION.78(AMeuro-MIX)A.NAOKI‚lD‹g“c@ìF‚a‚`‚s‚s‚d‚m1-09☆7.3DOUBLE26439319248100ORIO_109.mcs
ORION.78(AMeuro-MIX)Masaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆4.3SINGLE2023671474911ORIO_201.mcs
ORION.78(AMeuro-MIX)???_02ƒŠƒYƒ€Žæ‚è‚É‚­‚¢‚Å‚·B2-02☆8.1SINGLE31042022654120ORIO_202.mcs
ORION.78(AMeuro-MIX)KEISUKE.S‚µ`‚Ú`‚è`‚½`‚Ä`ôiŒ¶’®j2-03☆6.1SINGLE3504202555945ORIO_203.mcs
ORION.78(AMeuro-MIX)H.BANDOƒŠƒYƒ€‚ðŠy‚µ‚ñ‚Å‚¢‚½‚¾‚¯‚ê‚ÎB2-04☆6.3SINGLE3833672796751ORIO_204.mcs
ORION.78(AMeuro-MIX)YUKI YokotaŠÈ’PEEE‚¾‚낤‚ÈA‚«‚Á‚Æ2-05☆3.9SINGLE2502101824033ORIO_205.mcs
ORION.78(AMeuro-MIX)TAKEHIRO-O‚a‚q‚`‚m‚c‚t‚m‚f@‰Ÿ‚µ‚悹‚é‘å”g3-01☆7.5SINGLE4074202966780ORIOA301.mcs
ORION.78(AMeuro-MIX)DAISUKE MATSUDAŽhŒƒ‚ð‹‚ß‚é‹M•û‚ÉEEEB3-02☆6.8SINGLE3824202786264ORIOA302.mcs
ORION.78(AMeuro-MIX)DAISUKE MATSUDA— ‘Å‚¿ƒŠƒYƒ€‚Ì‚s‚q‚h‚b‚jƒŒƒxƒ‹3-03☆4.0SINGLE2072101505428ORIOA303.mcs
ORION.78(AMeuro-MIX)Y.SAKAI‚½‚܂ɂ̓Aƒz•ˆ–Ê‚à‚¢‚¢‚æ‚ËB3-04☆4.7SINGLE403420293651ORIOA304.mcs
ORION.78(AMeuro-MIX)NAOyuki-Tachihara‚P‚U•ª‚Ì‘ê‚ðŒ©Ø‚ê‚é‚©IH3-05☆5.1SINGLE450420328692ORIOA305.mcs
ORION.78(AMeuro-MIX)Daisuke K.ŒöŽ®‚l‚r‚oŠg’£B‚k‚–D‚X4-01☆5.8DOUBLE3193672325944ORIO_401.mcs
ORION.78(AMeuro-MIX)t.mizuno–îˆó‚ªŒ©‚¦‚é‚©‚Ç‚¤‚©B4-02☆4.1SINGLE2052101493744ORIO_402.mcs
ORION.78(AMeuro-MIX)Masato T.‚à‚¤‚â‚߂ĂÁ‚Ăقǔæ‚ê‚Ü‚·B4-03☆5.6SOLO4573933336714ORIO_403.mcs
ORION.78(AMeuro-MIX)TAISHI K.‚Ó‚¦‚É‚ ‚킹‚ÄŠy‚µ‚­‚Ó‚à‚¤4-04☆6.7SINGLE3333672426073ORIO_404.mcs
ORION.78(AMeuro-MIX)???_09™~‚S4-05☆6.5SINGLE4224203076743ORIO_405.mcs
ORION.78(AMeuro-MIX)Y.TSUDA‚l‚`‚m‚h‚`‚b‚Æ•µˆÍ‹C‚Í‚¢‚Á‚µ‚åB5-01☆6.0SINGLE3984202906235ORIO_501.mcs
ORION.78(AMeuro-MIX)DAISUKE.H‰Ä‚ÌŽv‚¢o‚ðEEE5-02☆5.2SINGLE3484202536518ORIO_502.mcs
ORION.78(AMeuro-MIX)T.MAMIYAŽ©•ªA‚±‚ê‚ŃqƒQƒ_ƒ“ƒX‚µ‚Ü‚µ‚½B5-03☆0.0SINGLE1191058600ORIO_503.mcs
ORION.78(AMeuro-MIX)K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-04☆4.5SINGLE385420280650ORIO_504.mcs
ORION.78(AMeuro-MIX)SATOSHI.HƒIƒtƒBƒVƒƒƒ‹‚ð‚΂炵‚Ü‚µ‚½B5-05☆6.8SINGLE3634202646265ORIO_505.mcs
ORION.78(AMeuro-MIX)YOSHiHiKO KAJiYA‚±‚̋Ȃ̓‚¢•”•ª‚𗬂µ‚Ü‚·6-01☆7.1SINGLE3964202886768ORIO_601.mcs
ORION.78(AMeuro-MIX)DAISUKE A.ƒ{[ƒJƒ‹‚ÌŠ‚Í•‘‚Á‚Ăقµ‚¢‚Å‚·B6-02☆6.7SINGLE2713671975381ORIO_602.mcs
ORION.78(AMeuro-MIX)T.FUJIWARAƒ|ƒbƒvƒ“‚Æ‚c‚c‚q‚Ì—Z‡‚ªƒe[ƒ}B6-03☆5.6DOUBLE3224202345536ORIO_603.mcs
ORION.78(AMeuro-MIX)Michitaka Kimura‚±‚̋ȂŖ§W•ˆ–ʂ̊y‚µ‚³‚ð’m‚Á‚½6-04☆8.0SINGLE39442028765100ORIO_604.mcs
ORION.78(AMeuro-MIX)NAOTO M.‚Æ‚Á‚Ä‚à•ςȃXƒeƒbƒv‚Å‚·B6-05☆5.4SINGLE3344202435728ORIO_605.mcs
ORION.78(AMeuro-MIX)K.KinugawaƒAƒtƒ•—–¡ƒ_ƒuƒ‹ƒIƒŠƒIƒ“B6-06☆6.8DOUBLE3924202856361ORIO_606.mcs
ORION.78(AMeuro-MIX)H.KAWAKAMI–¼‘O‚قǓ‚­‚È‚¢B6-07☆8.4SINGLE35842026159147ORIO_607.mcs
ORION.78(AMeuro-MIX)Yuki IchikawaƒNƒŠƒA‚͉”\‚Å‚·B‹†‹ÉB6-08☆6.5SINGLE4594203346837ORIO_608.mcs
ORION.78(AMeuro-MIX)???_20‚©‚ç‚݂‚¢‚Ä‚«‚Ü‚·7-01☆6.5SINGLE3904202846549ORIO_701.mcs
ORION.78(AMeuro-MIX)TAKEDA.SYOUHEI‹Õ‚ɇ‚킹‚ÄEEE7-02☆6.7COUPLE331/3314202415866ORIO_702.mcs
ORION.78(AMeuro-MIX)N.NAGANO–îˆó‚Å•¶Žš‚ð•\Œ»‚µ‚½‚肵‚Ü‚µ‚½B7-03☆6.2SINGLE2682361954998ORIO_703.mcs
ORION.78(AMeuro-MIX)D KYUTOKU‰«“ê‚És‚«‚½‚¢‚©[IH7-04☆5.1SINGLE2623671915528ORIO_704.mcs
ORION.78(AMeuro-MIX)KAN.U‚Ü‚Á‚½‚肵‚Ä‚ç‚ê‚Ü‚¹‚ñ8-01☆6.3SOLO2874202095160ORIO_801.mcs
ORION.78(AMeuro-MIX)Keisuke OmoriƒnƒCƒXƒs[ƒh‚È‚çŠy‚Ȃ̂ÉEEE8-02☆6.6SINGLE3604202626856ORIO_802.mcs
ORION.78(AMeuro-MIX)HIROSHI.Mƒ}ƒjƒAƒbƒN‚æ‚èA‚â‚â‚Þ‚¸‚©‚µ‚ßB8-03☆5.9SINGLE3153672295949ORIO_803.mcs
ORION.78(AMeuro-MIX)Shimamoto Yuuki“¯Žž‰Ÿ‚µ‚ª‚·‚°‚¦[8-04☆6.0DOUBLE3524202565943ORIO_804.mcs
ORION.78(civilization mix)TOMOKAZU-M‚a‚`‚r‚h‚b‚Ȃ炱‚êˆÊ1-01☆2.3DOUBLE182200135439ORIOC101.mcs
ORION.78(civilization mix)HIROKI.N‚S‚X`‚T‚R¬ß‚ª‹ÈŽÒ‚Å‚·B1-02☆5.2SINGLE4234003154221ORIOC102.mcs
ORION.78(civilization mix)TADASHI.UMISHIMA‘ꂪ­‚µ’·‚¢‚©‚à1-03☆6.6SINGLE3204002424572ORIOC103.mcs
ORION.78(civilization mix)T.Hirano‚ß‚ñ‚»`‚ê@‚ς炻`‚ê2-01☆4.6SINGLE3594002683022ORIOC201.mcs
ORION.78(civilization mix)YUKIHIRO.Au‚Í‚Áv‚Á‚ăgƒR‚ª‹C‚É“ü‚Á‚Ă܂·2-02☆5.8SINGLE2914002173160ORIOC202.mcs
ORION.78(civilization mix)YUKI Yokota‘¬‚³‚䂦”z’u‚Ɉê‹ê˜J2-03☆2.7SINGLE2903002191512ORIOC203.mcs
ORION.78(civilization mix)A.NAOKI‚lD‹g“c@ìF‚l|‚x‚n‚r‚h‚c‚`3-01☆5.3DOUBLE4004002984723ORIOC301.mcs
ORION.78(civilization mix)???_05‰SŽÒ—pƒXƒeƒbƒv‚¨‚Ü‚¯iÎj3-02☆1.3SINGLE187200139012ORIOC302.mcs
ORION.78(civilization mix)KAZUYUKI.S–³—“ï‘è‚©‚ÈH4-01☆6.9SINGLE4924003674750ORIOC401.mcs
ORION.78(civilization mix)TUBASA.S—¼‘«‚Ó‚Ý‚ª‘½‚¢B4-02☆4.7SINGLE261350194387ORIOC402.mcs
ORION.78(civilization mix)T.YASUDAŽRê‚͂Ȃ¢‚Å‚·4-03☆4.8SINGLE3604002723622ORIOC403.mcs
ORION.78(civilization mix)Kouki.U‚Ƃ肠‚¦‚¸ì‚Á‚Ă݂½‚ÁƒX4-04☆5.6SINGLE3594002683743ORIOC404.mcs
ORION.78(civilization mix)t.mizuno“¯Žž‰Ÿ‚µ‚ª‘½‚¢‚Å‚·B4-05☆6.4SINGLE3114002322490ORIOC405.mcs
ORION.78(civilization mix)SATOSHI.HÕ‚ÉŽ—‚Ă邩‚àEEE5-01☆6.7SINGLE4334003234064ORIOC501.mcs
ORION.78(civilization mix)Yasunobu OkudaƒIƒLƒiƒ‚Ì•—‚ðŠ´‚¶‚Ä‚­‚¾‚³‚¢B7-01☆6.9SINGLE3554002653987ORIOC701.mcs
ORION.78(civilization mix)DAISUKE KAMISAKAÅ‚‚̃fƒL‚Å‚·I7-02☆5.8SINGLE4424003304135ORIOC702.mcs
ORION.78(civilization mix)RYO SAKAI‚¤‚¨‚¨‚¨‚¨‚¨‚¨‚¨B7-03☆6.3SINGLE3084002301993ORIOC703.mcs
ORION.78(civilization mix)Y.SAWADA‹Éˆ«‚Å‚·B8-01☆5.9SINGLE5046003764818ORIOC801.mcs
PARANOiATOMOKAZU-Mƒpƒ‰ƒmƒCƒA‚ð‚a‚‚“‚‰‚ƒ‚Å“¥‚Ý‚½‚¢1-01☆3.1DOUBLE2202251451633PARA_101.mcs
PARANOiATakashi.K‚æ‚肂݂̕ˆ–Ê‚ð–ÚŽw‚µ‚ÄEEE1-02☆5.7SINGLE3983602634353PARA_102.mcs
PARANOiAM.MOCHIDUKI‚R‚’‚„‚l‚h‚w•—ƒŠƒtƒ@ƒCƒ“1-03☆4.3SINGLE2873151901753PARA_103.mcs
PARANOiAM.MOCHIDUKI•Ï‘¬‰ñ“]•ˆ–Ê1-04☆1.7SINGLE208270137121PARA_104.mcs
PARANOiAYAMADA HIDETOSHIƒAƒNƒZƒ“ƒg‚P‚U•ª1-05☆6.0SINGLE3733602463571PARA_105.mcs
PARANOiAYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚bŠ´Šo‚łǂ¤‚¼1-06☆6.1DOUBLE3203602112292PARA_106.mcs
PARANOiAY_TATE—ð‘ã‚Ì•ˆ–Ê‚ð‚³‚ç‚ɬ‚º‚Ă݂܂µ‚½1-07☆5.4SINGLE3353602212858PARA_107.mcs
PARANOiAHIROKI.N‚P‚U•ª‚T˜A‚³‚¦“¥‚ß‚ê‚ÎEEEB1-08☆4.7SINGLE4314052854412PARA_108.mcs
PARANOiASHOTA,SAITOH.ƒXƒs[ƒhŠ´‚Ì’†‚ɃuƒŒ[ƒLŠ´B1-09☆4.9SINGLE3183602102944PARA_109.mcs
PARANOiAKazuki.Koushiƒpƒ‰ƒmƒCƒA‚ªD‚«‚Èl‚Öô1-10☆6.1SINGLE3203602113576PARA_110.mcs
PARANOiAJ.GOUKEƒpƒ‰‚d‚`‚r‚xƒVƒŠ[ƒY‚Ì‚P‚Â2-01☆1.3SINGLE241180159015PARA_201.mcs
PARANOiAY.IMAI‘S•”‚‚Ȃ°‚Ä‚R‚O‚OƒRƒ“ƒ{2-02☆5.3SINGLE3003601983055PARA_202.mcs
PARANOiAY.IMAI“ïˆÕ“xT‚¦–ÚA‰ñ‚Á‚Ä‚­‚¾‚³‚¢2-03☆2.1SINGLE202180133037PARA_203.mcs
PARANOiAHAJIME.I‚Ú‚æ‚ñìF‰ù‚©‚µ‚̃pƒ‰2-04☆4.8SINGLE3563602354030PARA_204.mcs
PARANOiAYUKIHIRO.A‚ ‚¦‚ăŒƒgƒ‚Á‚Û‚­H‚µ‚Ü‚µ‚½B2-05☆5.2SINGLE3433602273545PARA_205.mcs
PARANOiAK.SUGAI‚r‚g‚o‚o‚`‚q‚O‚R^‚W2-06☆6.4SINGLE3453602283882PARA_206.mcs
PARANOiAK.SUGAI‚r‚g‚o‚o‚`‚q‚O‚U^‚W2-07☆4.4SINGLE3703152443134PARA_207.mcs
PARANOiAK.SUGAI‚r‚g‚o‚o‚`‚q‚O‚T^‚X2-08☆5.0SINGLE3883602563935PARA_208.mcs
PARANOiAYUKI Yokotaƒm[ƒRƒƒ“ƒg2-09☆4.2SINGLE4003602643216PARA_209.mcs
PARANOiAKOSE F‚Q”N‚ÌŒŽ“ú‚ª‚Ó‚½‚½‚Ñ2-10☆4.6DOUBLE3493602313133PARA_210.mcs
PARANOiAWATANABE JUN‚a‚`‚r‚h‚bƒ`ƒƒƒŒƒ“ƒW‘O‚ÉEEE3-01☆3.2SINGLE2342701541139PARA_301.mcs
PARANOiAT.HIRASAWAÌ‚¾‚Á‚½‚烀ƒYƒC•ûH4-01☆4.6DOUBLE2832701871381PARA_401.mcs
PARANOiAKIMISHIMA TAKURO“ïˆÕ“x‚P‚OIH4-02☆5.5SINGLE5055403345317PARA_402.mcs
PARANOiAT.NAGSAKi‚o‚`‚q‚`‚m‚n‚h‚`—ûK—p4-03☆3.0SINGLE282270186446PARA_403.mcs
PARANOiAMIO.S“r’†‚ŃXƒeƒbƒv‚ª‹t–߂肵‚Ü‚·i‚¥4-04☆5.0SINGLE3643602403538PARA_404.mcs
PARANOiAMIO.Sƒx[ƒX‚ɇ‚킹‚½‚‚à‚è‚Å‚·B4-05☆6.5SINGLE3173602093985PARA_405.mcs
PARANOiAY.TSUDA—¼ŽÒ‚̃Rƒ“ƒ{”‚Í‚»‚낦‚Ü‚µ‚½B5-01☆7.1COUPLE309/30936020426124PARA_501.mcs
PARANOiAURABE HIROKIƒx[ƒVƒbƒN‚̃AƒŒƒ“ƒW‚Å‚·B5-02☆4.8SINGLE3854052543921PARA_502.mcs
PARANOiAURABE HIROKI‚¿‚å‚Á‚Æ‚«‚‚¢5-03☆5.7SINGLE4554503014834PARA_503.mcs
PARANOiA???_15‚l‚c‚o‚ðƒVƒ“ƒOƒ‹‚É‚µ‚½Š´‚¶‚Å‚·B6-01☆5.2SINGLE3933602603641PARA_601.mcs
PARANOiA???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆5.5DOUBLE4173602763650PARA_602.mcs
PARANOiAM.Ooebesuƒ}ƒjƒAƒbƒN{B‚k‚–‚W@‚P‚U•ªƒiƒV6-03☆5.4SINGLE3563602353850PARA_603.mcs
PARANOiAMITHUTOSHI NAKATAl‚É‚æ‚Á‚Ă͌ƒ“ï‚©‚àcB6-04☆5.4DOUBLE4413602914139PARA_604.mcs
PARANOiAMichitaka KimuraÅŒã‚Í‚W•ª“¯Žž“¥‚Ý’n–‚Å‚·6-05☆6.4SINGLE4113602724769PARA_605.mcs
PARANOiANOBUTAKA TSUTSUMI‘êEEEB6-06☆4.6SINGLE3943602604320PARA_606.mcs
PARANOiATAIGA.Oƒ_ƒT‚¢B7-01☆2.1SINGLE249315164132PARA_701.mcs
PARANOiAT.HanadaƒqƒbƒJƒP‚ª‚½‚­‚³‚ñ7-02☆6.1SINGLE3904502585150PARA_702.mcs
PARANOiATAKEDA.SYOUHEI“¯Žž‰Ÿ‚µ‘½‚µ7-03☆7.0SINGLE32136021221210PARA_703.mcs
PARANOiAK.KAWASEƒƒŠ‚Æ•’Ê‚Èo—ˆB7-04☆4.7SINGLE3773602493429PARA_704.mcs
PARANOiAYohei MaruyamaŒ´‹È‚Å‚à‚±‚̈ʂ̓CƒP‚éB8-01☆4.7SINGLE4063602684521PARA_801.mcs
PARANOiAT.OGINO‹gŽRìAÅŒã‚̘A‘Å‚ª‚ñ‚Î‚ê‚æI8-02☆5.2SINGLE516720341529PARA_802.mcs
PARANOiAW.Shiomi‘ƒXƒeƒbƒv”A‚T‚O‚OƒI[ƒo[8-03☆5.7SINGLE5044953334925PARA_803.mcs
PARANOiAW.Shiomi‚Ù‚Æ‚ñ‚Ç‹x‚݂Ȃµ‚̗̑͟•‰8-04☆5.6DOUBLE4794953174629PARA_804.mcs
PARANOIA EVOLUTIONWATANABE JUN‚a‚`‚r‚h‚bƒ`ƒƒƒŒƒ“ƒW‘O‚ÉEEE3-01☆3.7SINGLE2403501731430PARAE301.mcs
PARANOIA EVOLUTIONK.TAKEMURA‰¹‚ɇ‚킹‚Ă܂·B3-02☆5.4SINGLE4004002894629PARAE302.mcs
PARANOIA EVOLUTIONA.NAOKI‚f‚‚”‚”‚‚ŽìF‚¹‚ñ‚±‚¤‚µ‚á3-03☆5.7DOUBLE2968002141974PARAE303.mcs
PARANOIA EVOLUTION???_05ƒŠƒƒ“ƒo[ƒXƒeƒbƒv‘æ‚Q’eI3-04☆4.1SINGLE3333502412525PARAE304.mcs
PARANOIA EVOLUTIONYosuke Morita‰¹‚ɇ‚Á‚½ƒXƒeƒbƒv‚ªƒCƒCŠ´‚¶3-05☆6.3SINGLE4246003074552PARAE305.mcs
PARANOIA EVOLUTIONTOMOKAZU-M•Ï‘¥‚Uƒpƒl‚r‚r‚qI4-01☆5.7DOUBLE3734002703746PARAE401.mcs
PARANOIA EVOLUTIONT.HIRASAWAƒpƒ‰ƒmƒCƒA•ˆ–Ê‚Ìì‚è•û‚Å4-02☆5.1SINGLE3334002412052PARAE402.mcs
PARANOIA EVOLUTION???_07‚Þ‚Ó‚£[‚ñ–{l‚ªo—ˆ‚Ë‚¥4-03☆6.1SINGLE4244003073952PARAE403.mcs
PARANOIA EVOLUTIONJun T.ÅŒã‚Ì‚W•ª‚Æ“¯Žž‚ªƒ€ƒYƒCB4-04☆5.9SINGLE4804003474729PARAE404.mcs
PARANOIA EVOLUTIONS.Okanoƒpƒ‰ƒmƒCƒAƒ}ƒbƒNƒX‚ð—˜—p‚µ‚Ü‚µ‚½4-05☆5.9SINGLE4524003274434PARAE405.mcs
PARANOIA EVOLUTIONHIROKI.N“¥‚݂Â炢‘«•ˆ‚ðŽg‚Á‚Ă܂·B5-01☆5.8SINGLE4454003224533PARAE501.mcs
PARANOIA EVOLUTIONHIROAKI.MATSUUCHI“‚¢‚Å‚·6-01☆6.0SINGLE4634003354139PARAE601.mcs
PARANOIA EVOLUTION???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆5.6DOUBLE4134002993839PARAE602.mcs
PARANOIA EVOLUTIONMITHUTOSHI NAKATAŠy‚µ‚­ƒ_ƒ“ƒX`B6-03☆6.1SINGLE3515002543761PARAE603.mcs
PARANOIA EVOLUTIONSHIGERU ARAID‚«‚¾‚¯‚Ç“¥‚߂Ȃ¢ƒAƒiƒ^‚ÖB6-04☆1.9SINGLE193200139030PARAE604.mcs
PARANOIA EVOLUTIONToshihide FujitaƒGƒ{ƒŠƒ…[ƒVƒ‡ƒ“‚̃mƒŠ‚ªƒCƒC‚ÁI6-05☆6.2DOUBLE3294002384660PARAE605.mcs
PARANOIA EVOLUTIONT.NAOYA‚v‚`‚q‚m‚h‚m‚f6-06☆5.8SINGLE3844002784442PARAE606.mcs
PARANOIA EVOLUTIONH.MATSUDA‚©‚È‚è”æ‚ê‚Ü‚·EEEB6-07☆5.7SINGLE4264503084236PARAE607.mcs
PARANOIA EVOLUTIONNOBUTAKA TSUTSUMIƒXƒLƒbƒv‚à‚Ç‚«‚̂Ƃ±‚낪‚¢‚¢6-08☆5.7SINGLE3964002874538PARAE608.mcs
PARANOIA EVOLUTIONTAKESHI MATSUMOTO‘O”¼‚̓sƒ‡ƒ“ƒsƒ‡ƒ“‚͂˂ĉº‚³‚¢7-01☆7.1SINGLE3504002534094PARAE701.mcs
PARANOIA EVOLUTIONT.HanadaÅŒã‚̈ê•i‚Å‚·7-02☆6.2COUPLE400/4004002894651PARAE702.mcs
PARANOIA EVOLUTIOND KYUTOKUƒpƒ‰ƒmƒCƒA‚æ‰i‰“‚ÉEEE7-03☆4.2SINGLE2633501902232PARAE703.mcs
PARANOIA EVOLUTIONT.OGINO‘«‚łł«‚él‚͂ł«‚é‚©‚àB8-01☆7.0SINGLE3814002764879PARAE801.mcs
PARANOIA EVOLUTIONW.Shiomiƒeƒ“ƒ|‚Q‚O‚O‚ÅA‚P‚U•ª‚ ‚è8-02☆6.4SINGLE4244003074653PARAE802.mcs
PARANOIA EVOLUTIONW.Shiomiƒeƒ“ƒ|‚Q‚O‚O‚ÅA‚P‚U•ª‚ ‚è8-03☆6.3DOUBLE4194003034751PARAE803.mcs
PARANOIA EVOLUTIONShimamoto Yuuki‚·‚Á‚°‚¦[ŠÈ’PI8-04☆2.5DOUBLE8820063383PARAE804.mcs
PARANOIA EVOLUTIONShimamoto Yuukiƒm[ƒRƒƒ“ƒgEEE8-05☆5.9SINGLE4374003164834PARAE805.mcs
PARANOIA EVOLUTIONH.MURATA— ‘Å‚¿‚ªƒƒCƒ“‚Å‚·8-06☆7.0SINGLE3654002645179PARAE806.mcs
PARANOiA KCET(clean mix)TOMOKAZU-M‚Q‚l‚a–œÎI1-01☆4.6DOUBLE2933151932349PARAK101.mcs
PARANOiA KCET(clean mix)Takashi.K“{““‚̘A‘łɃm‚ê‚邯‘u‰õ‚Å‚·1-02☆5.7SINGLE4194052774142PARAK102.mcs
PARANOiA KCET(clean mix)YAMADA HIDETOSHI‚S˜A¨‚Q˜A‚ÌŒJ‚è•Ô‚µ1-03☆6.0DOUBLE3693602444066PARAK103.mcs
PARANOiA KCET(clean mix)Kazuki.Koushiƒ}ƒ^[ƒŠ‚¢‚±‚¤B1-04☆5.2SINGLE3113602052458PARAK104.mcs
PARANOiA KCET(clean mix)Kazuki.Koushi‚¢‚ë‚ñ‚ȃXƒeƒbƒv‚̃ƒhƒŒ[‚¾I1-05☆5.5SINGLE3124052062658PARAK105.mcs
PARANOiA KCET(clean mix)Kazuki.Koushiƒ}ƒjƒAƒbƒN‚Å–ž‘«‚Å‚«‚È‚¢‹M•û‚ÖI1-06☆5.8SINGLE3973602623464PARAK106.mcs
PARANOiA KCET(clean mix)HIROAKI.Tƒ}ƒjƒAƒbƒN‚̳“i‰»”łł·B1-07☆6.1SINGLE4154502743957PARAK107.mcs
PARANOiA KCET(clean mix)J.GOUKE‚¸‚炵‚Ä‚¢‚Ü‚·B2-01☆5.3SINGLE3033602003155PARAC201.mcs
PARANOiA KCET(clean mix)TAKENAKA TAKAHIRO‹È‚É‚ ‚킹‚½EEE‚‚à‚èB2-02☆4.3SINGLE2892701911371PARAC202.mcs
PARANOiA KCET(clean mix)T.Ochiaiƒ`ƒƒƒ`ƒƒƒbAƒ`ƒƒƒ`ƒƒƒb2-03☆4.6SINGLE3584052363024PARAC203.mcs
PARANOiA KCET(clean mix)T.Ochiai—Ž‚¿‚Ü‚·B—Ž‚¿‚Ü‚·B2-04☆4.6SINGLE3773602492933PARAC204.mcs
PARANOiA KCET(clean mix)Y.IMAIÅŒã‚܂Ŗû’f‚͋֕¨I2-05☆5.1SINGLE2953601953643PARAC205.mcs
PARANOiA KCET(clean mix)YUKIHIRO.A‰ü—Ç‚ðd‚Ë‚½Œ‹‰ÊEEEB2-06☆6.0SINGLE3753602483077PARAC206.mcs
PARANOiA KCET(clean mix)K.SUGAI‚r‚g‚o‚j‚b‚d‚O‚P^‚X2-07☆7.6SINGLE33531522152223PARAC207.mcs
PARANOiA KCET(clean mix)O.YAMAMOTO‚l‚`‚w•”•ª‚É‹C‚ð‚‚¯‚ÄB2-08☆6.6SINGLE4004502644570PARAC208.mcs
PARANOiA KCET(clean mix)T.FUKUZAKI–^ƒQ[ƒ€ŽGŽŽû˜^‚ÌŽ©Mì2-09☆6.2SINGLE4697203104449PARAC209.mcs
PARANOiA KCET(clean mix)TSUJI JUNNYA‘O”¼‚Ì‚ ‚ÌƒŠƒYƒ€‚ª–Y‚ê‚ç‚ê‚È‚¢B3-01☆5.9SINGLE29227019314145PARAK301.mcs
PARANOiA KCET(clean mix)A.NAOKI‚lD‹g“c@ìF‚T‚V‚R3-02☆6.1SINGLE5735853795618PARAK302.mcs
PARANOiA KCET(clean mix)M.Yamamoto‰¹‡‚킹3-03☆5.4SINGLE3413602254246PARAK303.mcs
PARANOiA KCET(clean mix)T.HIRASAWA‚â‚â— ‘Å‚¿“ü‚è4-01☆4.6SINGLE3233152132253PARAK401.mcs
PARANOiA KCET(clean mix)TUBASA.S‚È‚ñ‚Ç‚à‚È‚¨‚µ‚Ü‚µ‚½B4-02☆5.1SINGLE4013602653836PARAK402.mcs
PARANOiA KCET(clean mix)T.NAGSAKi“¯Žž“¥‚Ý‚¾‚¯‚Ì•ˆ–Ê@‚₹‚½‚¢l‚Ö4-03☆4.6SINGLE2721801800272PARAK403.mcs
PARANOiA KCET(clean mix)D.OSHIMA‚c‚d‚`‚c@‚d‚m‚c‚ւ̃Iƒ}[ƒWƒ…4-04☆4.8SINGLE512450338502PARAK404.mcs
PARANOiA KCET(clean mix)H.OIKAWA‚ƂĂà‹C‚É“ü‚Á‚Ä‚¢‚Ü‚·B4-05☆6.0SINGLE4003602643569PARAK405.mcs
PARANOiA KCET(clean mix)Natsumi.Kobayashi–îˆó”Ž©ŒÈÅ‚‹L˜^5-01☆5.6SINGLE600495397572PARAK501.mcs
PARANOiA KCET(clean mix)SoichI InabA‚±‚ꂪ•ó–ØŽRƒ_ƒ“ƒX5-02☆3.5SINGLE287270189862PARAK502.mcs
PARANOiA KCET(clean mix)OKAMOTO Taishiƒ^ƒCƒgƒ‹’Ê‚è‚Ì“à—e‚Å‚·B5-03☆6.1SINGLE3052702018764PARAK503.mcs
PARANOiA KCET(clean mix)HIDEAKI.O‚¨‚âA‰½‹C‚É‚S‚O‚OƒRƒ“ƒ{‚Å‚·‚Ë5-04☆5.3COUPLE400/4003602644240PARAK504.mcs
PARANOiA KCET(clean mix)Kazuhiko Chiba‰E‘«ŽE‚µB5-05☆4.9SINGLE3853602542939PARAK505.mcs
PARANOiA KCET(clean mix)SHINYA.K‘Ì—ÍŽ©–W‚Ü‚êI5-06☆6.2SINGLE4774053154648PARAK506.mcs
PARANOiA KCET(clean mix)KEIGO.H‚r‚h‚m‚f‚k‚d@ƒEƒ‰ƒqƒ‡ƒEƒV5-07☆6.1SINGLE3693602443772PARAK507.mcs
PARANOiA KCET(clean mix)JUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.8SINGLE3763602484554PARAK601.mcs
PARANOiA KCET(clean mix)???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆6.8SINGLE37936025034101PARAK602.mcs
PARANOiA KCET(clean mix)S.kentaro‚a‚`‚r‚h‚b‚P‚W‚O6-03☆2.0SINGLE2642701741016PARAK603.mcs
PARANOiA KCET(clean mix)MITHUTOSHI NAKATA‚â‚Á‚Ï‚èƒRƒŒ‚Å‚µ‚傤B6-04☆5.1SINGLE4073602693539PARAK604.mcs
PARANOiA KCET(clean mix)Michitaka Kimura‚¢‚ë‚ñ‚È‘«•ˆ‚ª‚l‚h‚w‚³‚ê‚Ă܂·6-05☆6.3SINGLE5005853304644PARAK605.mcs
PARANOiA KCET(clean mix)Toshihide FujitaŽv‚¢o‚Ì‘«•ˆ‚ª‘±X‚ÆB6-06☆4.7DOUBLE543360359491PARAK606.mcs
PARANOiA KCET(clean mix)K.Kinugawa‚Ç‚±‚©‚ÅŒ©‚½‘ê‚Ì•¡‡‚Å‚·B6-07☆4.8DOUBLE5033603324611PARAK607.mcs
PARANOiA KCET(clean mix)T.NAOYA‚b‚n‚t‚s‚h‚n‚m6-08☆5.4SINGLE4304052844231PARAK608.mcs
PARANOiA KCET(clean mix)NOBUTAKA TSUTSUMI‘ꂾ‚¯‚©‚à6-09☆3.8SINGLE418360276402PARAK609.mcs
PARANOiA KCET(clean mix)???_19‚P”N‘O‚Éì‚Á‚½‚â‚‚Ìì‚è’¼‚µB6-10☆6.8SINGLE4935853265359PARAK610.mcs
PARANOiA KCET(clean mix)KAZUYUKI K.‰‚d‚c‚h‚s7-01☆5.6SINGLE4243602803849PARAK701.mcs
PARANOiA KCET(clean mix)T.HanadaƒCƒ`ƒIƒV‚Å‚·B–ÚŽw‚¹ƒtƒ‹ƒRƒ“ƒ{I7-02☆5.3SINGLE573630379522PARAK702.mcs
PARANOiA KCET(clean mix)KAZUHITO TSUBOTA•Ï‘¥“I‚ȃXƒeƒbƒv‚̉žVB7-03☆5.6SINGLE3343152213272PARAK703.mcs
PARANOiA KCET(clean mix)INAGAKI KEIsukeƒIƒtƒBƒVƒƒƒ‹‚s‚q‚h‚b‚j‚ð‰ü—ÇB7-04☆5.1SINGLE3293152172071PARAK704.mcs
PARANOiA KCET(clean mix)TAKEDA.SYOUHEI‚W•ª“¥‚Ý—•‘7-05☆6.6SINGLE4003602643588PARAK705.mcs
PARANOiA KCET(clean mix)Kouzou.N¶‚«’n–‚ð‘ÌŠ´7-06☆7.7SINGLE42136027838186PARAK706.mcs
PARANOiA KCET(clean mix)YOSHIHIKO MOTOYASU­‚µ‚¾‚¯EE‚ª‚ñ‚΂Á‚ÄB7-07☆6.7SINGLE4304052843776PARAK707.mcs
PARANOiA KCET(clean mix)Fumihiro Ibuki‚킯‚í‚©‚ç‚ñI7-08☆5.0SINGLE5153603404912PARAK708.mcs
PARANOiA KCET(clean mix)Y.TAKEDAƒm[ƒRƒƒ“ƒgEEE7-09☆5.8SINGLE3393602244357PARAK709.mcs
PARANOiA KCET(clean mix)D.fujisakiƒWƒƒƒ“ƒv‚ÌŒã‚Ì‚W•ª˜A‘Å‚ªh‚¢B7-10☆5.7SINGLE4323602854051PARAK710.mcs
PARANOiA KCET(clean mix)F.ATHUSHI“Á‚ɂȂµ7-11☆5.7SINGLE3853602544750PARAK711.mcs
PARANOiA KCET(clean mix)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆5.1SINGLE3333602204338PARAK801.mcs
PARANOiA KCET(clean mix)W.Shiomi‚c‚c‚q‚ÌŠî–{ƒXƒeƒbƒv‚ÌW‘å¬8-02☆4.3SINGLE500360330461PARAK802.mcs
PARANOiA KCET(clean mix)W.ShiomiƒoƒbƒNƒŠƒYƒ€‚É•¹‚¹‚Ä8-03☆4.8DOUBLE3783602504723PARAK803.mcs
PARANOiA KCET(clean mix)TOSHIMITU.KURITA’´ã‹‰ŽÒŒü‚¯8-04☆5.2SINGLE4063602684832PARAK804.mcs
PARANOiA KCET(clean mix)Keisuke OmoriŽžŠÔ‚©‚¯‚½‚æ`8-05☆6.9SINGLE3424052264288PARAK805.mcs
PARANOiA KCET(clean mix)HIROSHI.MŒ³‚̃f[ƒ^–¼@‚d‚ki‚lj‚l‚h‚w8-06☆6.9SINGLE4043602675779PARAK806.mcs
PARANOIA MAX CLUB ANOTHER Ver.HIROKI TAKAHASHIƒIƒXƒXƒ‚Å‚·I2-01☆4.9SINGLE4305223004512PARDA201.mcs
PARANOIA MAX CLUB ANOTHER Ver.T.Ochiai‚Ƃɂ©‚­Šæ’£‚êI2-02☆5.0SINGLE3675222562936PARDA202.mcs
PARANOIA MAX CLUB ANOTHER Ver.N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆4.8SINGLE432570301489PARDA301.mcs
PARANOIA MAX CLUB ANOTHER Ver.2Fumihiro Ibuki‚Ü‚ ‚Ü‚ ‚Þ‚¸‚©‚µ‚¢‚©‚ÈIH7-01☆5.3SINGLE516570360498PARAA701.mcs
PARANOiA MAX(DIRTY MIX)T.MURATA‚o‚`‚q‚`‚m‚n‚h‚`‚炵‚¢‚Å‚·B1-01☆5.8SINGLE3743802613457PARD_101.mcs
PARANOiA MAX(DIRTY MIX)YAMADA HIDETOSHI— ‰¹‹­’²ƒAƒŒƒ“ƒW1-02☆6.1SINGLE3283802292681PARD_102.mcs
PARANOiA MAX(DIRTY MIX)Y_TATE‚¨‚̓Œƒ{‚àƒA[ƒP[ƒh‚Å—V‚Ñ‚½‚¢I1-03☆5.0COUPLE319/3193802232545PARD_103.mcs
PARANOiA MAX(DIRTY MIX)H.KAWAKAMI–^“X‚ÉŽû˜^Ï‚ÝB1-04☆7.9SINGLE5347603735278PARD_104.mcs
PARANOiA MAX(DIRTY MIX)Kazuki.KoushiHI‚¤‚債‚łƂ±‚¤‚¢‚¤‚Ç1-05☆5.4SINGLE3403802372756PARD_105.mcs
PARANOiA MAX(DIRTY MIX)Kazuki.Koushi‹Sƒpƒ‰ƒ}‚Å‚·I‚È‚ñ‚Æ‚©ƒNƒŠƒAiо1-06☆6.3SINGLE3633802533080PARD_106.mcs
PARANOiA MAX(DIRTY MIX)KEISUKE.M‘êB‚Å‚·‚ªƒŠƒYƒ€‚Í‚±‚¾‚í‚è—L‚èB1-07☆7.7COUPLE389/50838027131153PARD_107.mcs
PARANOiA MAX(DIRTY MIX)A.NAOKI‚lD‹g“c@ìF‚g‚t‚s‚t‚t1-08☆5.8DOUBLE3403802372869PARD_108.mcs
PARANOiA MAX(DIRTY MIX)K.HAYASE‹È‚ɇ‚킹‚½Šy‚µ‚¢•ˆ–ÊB1-09☆5.9SINGLE4564273185133PARD_109.mcs
PARANOiA MAX(DIRTY MIX)Masaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆5.7SINGLE3324272323751PARD_201.mcs
PARANOiA MAX(DIRTY MIX)J.GOUKE‚P‚W‚O{‚P‚X‚O{‚Q‚l‚a2-02☆5.7SINGLE3673802563357PARD_202.mcs
PARANOiA MAX(DIRTY MIX)J.GOUKEƒŠƒYƒ€‚æ‚­B2-03☆6.8SINGLE27633219222129PARD_203.mcs
PARANOiA MAX(DIRTY MIX)HIROKI TAKAHASHI‘S‚­V‚µ‚¢‰ðŽß‚ŧìB2-04☆5.7SINGLE4613803224533PARD_204.mcs
PARANOiA MAX(DIRTY MIX)Y.SAKAI‚a‚`‚r‚h‚bƒŒƒxƒ‹‚Å‚·2-05☆2.1SINGLE2592851811013PARD_205.mcs
PARANOiA MAX(DIRTY MIX)SUGAWARA TAKASHI“Á‚ɓ‚¢Š‚Í‚ ‚è‚Ü‚¹‚ñB2-06☆6.0SINGLE2783801943369PARD_206.mcs
PARANOiA MAX(DIRTY MIX)K.SUGAI‚r‚g‚o‚o‚`‚q‚O‚T^‚U2-07☆4.9SINGLE2763321921185PARD_207.mcs
PARANOiA MAX(DIRTY MIX)K.SUGAI‚r‚g‚o‚l‚`‚w‚O‚R^‚X2-08☆5.1SINGLE4133802884226PARD_208.mcs
PARANOiA MAX(DIRTY MIX)K.SUGAI‚r‚g‚o‚l‚`‚w‚O‚Q^‚X2-09☆7.3SINGLE37538026241103PARD_209.mcs
PARANOiA MAX(DIRTY MIX)K.SUGAI‚r‚g‚o‚l‚`‚w‚O‚V^‚X2-10☆6.3SINGLE4273802984459PARD_210.mcs
PARANOiA MAX(DIRTY MIX)K.SUGAI‚r‚g‚o‚l‚`‚w‚O‚U^‚X^—¼‘«’ˆÓ2-11☆7.8SINGLE40438028239120PARD_211.mcs
PARANOiA MAX(DIRTY MIX)T.FUKUZAKI‚¢‚í‚ä‚éulŠO‚k‚uviOOG2-12☆6.1DOUBLE3363802343075PARD_212.mcs
PARANOiA MAX(DIRTY MIX)WATANABE JUN‚a‚`‚r‚h‚bƒ`ƒƒƒŒƒ“ƒW‘O‚ÉEEE3-01☆4.3SINGLE2463321711357PARD_301.mcs
PARANOiA MAX(DIRTY MIX)K.TAKEMURA–³—‚µ‚Ä‚¢‚éƒgƒRƒ‚àB3-02☆6.4SINGLE4604753215049PARD_302.mcs
PARANOiA MAX(DIRTY MIX)YASUHIRO.O‚R‚’‚„‚Åo‚½ƒ}ƒj‚Ì•ˆ–Ê‚ð‚l‚h‚w3-03☆5.8SINGLE4163802903551PARD_303.mcs
PARANOiA MAX(DIRTY MIX)M.Yamamoto‰¹‡‚킹3-04☆5.3SINGLE4093802854531PARD_304.mcs
PARANOiA MAX(DIRTY MIX)T.HIRASAWAƒAƒiƒU[•À‚Ý4-01☆4.8SINGLE3023322111763PARD_401.mcs
PARANOiA MAX(DIRTY MIX)T.HIRASAWAƒNƒ‰ƒu•ˆ–ʂ̑ꉞV4-02☆5.0DOUBLE3823802673433PARD_402.mcs
PARANOiA MAX(DIRTY MIX)T.TSUKAMOTOˆê•—•Ï‚í‚Á‚½ƒXƒeƒbƒv‚Å‚·B4-03☆5.1SINGLE4043802824524PARD_403.mcs
PARANOiA MAX(DIRTY MIX)KAZUYUKI.S‚©‚È‚èæ‚ê‚Ü‚·iƒŠƒYƒ€j‚ª4-04☆5.8SINGLE4083802853751PARD_404.mcs
PARANOiA MAX(DIRTY MIX)Y.KAWABE‚±‚ñ‚È‚Ì‚à‚ ‚肾‚낤4-05☆6.0SINGLE1843801283469PARD_405.mcs
PARANOiA MAX(DIRTY MIX)Y.KAWABE‚Q‚Ž‚„Žž‚Ì–Ú•W‚¾‚Á‚½‚à‚Ì4-06☆6.0SINGLE4193802923955PARD_406.mcs
PARANOiA MAX(DIRTY MIX)m.suzuki‰ù‚©‚µ‚¢•ˆ–ʂŊy‚µ‚à‚¤`4-07☆5.6SINGLE3653802553551PARD_407.mcs
PARANOiA MAX(DIRTY MIX)MIO.SƒŠƒYƒ€‚ðŽáб‹¶‚킹‚Ă܂·B4-08☆6.3SINGLE3053802133083PARD_408.mcs
PARANOiA MAX(DIRTY MIX)RYU.O‚©‚È‚è̂̂à‚̂ł·‚ªEEE5-01☆4.7SINGLE4203802934314PARD_501.mcs
PARANOiA MAX(DIRTY MIX)SEIJI W.Œ‹\‹C‚É“ü‚Á‚Ă܂·5-02☆5.4SINGLE3523802463844PARD_502.mcs
PARANOiA MAX(DIRTY MIX)H.KondohƒoƒJ•ˆ–ÊB—v’ˆÓI‚X{{5-03☆5.9DOUBLE4083802853755PARD_503.mcs
PARANOiA MAX(DIRTY MIX)???_13‘Ì—ÍŸ•‰Iƒ_ƒCƒGƒbƒg‚É‚¨ƒXƒXƒ5-04☆4.8SINGLE3983802783724PARD_504.mcs
PARANOiA MAX(DIRTY MIX)Mits-hide ObataŒ©‚½–Ú‚æ‚è“¥‚݂ɂ­‚¢‚Å‚·B5-05☆5.5SINGLE3254752275136PARD_505.mcs
PARANOiA MAX(DIRTY MIX)JUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆4.8SINGLE463427323475PARD_601.mcs
PARANOiA MAX(DIRTY MIX)???_15ƒVƒ“ƒOƒ‹‚̃pƒ‰ƒŠƒo•—‚Å‚·B6-02☆5.2DOUBLE4583803204024PARD_602.mcs
PARANOiA MAX(DIRTY MIX)???_15‚l‚r‚o‚ðƒ_ƒuƒ‹‚É‚µ‚½Š´‚¶‚Å‚·B6-03☆6.0DOUBLE3753802623268PARD_603.mcs
PARANOiA MAX(DIRTY MIX)S.kentaro‚c‚`‚l‚x—‚l‚h‚w6-04☆2.1SINGLE2642851841016PARD_604.mcs
PARANOiA MAX(DIRTY MIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE6-05☆6.0DOUBLE3783802644159PARD_605.mcs
PARANOiA MAX(DIRTY MIX)Michitaka Kimura‚P”Ôʼn‚Éì‚Á‚½‚d‚c‚h‚s‚Å‚·6-06☆4.9SINGLE4174752914714PARD_606.mcs
PARANOiA MAX(DIRTY MIX)NAOTO M.‰S‚É‚à‚Ç‚Á‚Äì‚è‚Ü‚µ‚½B6-07☆5.1SINGLE4313803014126PARD_607.mcs
PARANOiA MAX(DIRTY MIX)NOBUTAKA TSUTSUMI‘êI6-08☆4.9SINGLE4233802954616PARD_608.mcs
PARANOiA MAX(DIRTY MIX)TAIGA.O‚o‚`‚q‚`‚a‚̃AƒŒƒ“ƒW‚Å‚·B7-01☆2.9SINGLE2503321741316PARD_701.mcs
PARANOiA MAX(DIRTY MIX)T.Hanadaƒ}ƒbƒNƒX‚à‚¢‚Á‚Æ‚­[HiÎj7-02☆7.8COUPLE361/36161725232180PARD_702.mcs
PARANOiA MAX(DIRTY MIX)T.HanadaŒ³‘cA‰˜‚ꕈ–ÊII7-03☆6.3SINGLE4757603325141PARD_703.mcs
PARANOiA MAX(DIRTY MIX)Kotaro KagawaŠÔˆá‚Á‚½ƒVƒ“ƒvƒ‹EƒCƒYEƒxƒXƒgB7-04☆5.8SINGLE3413802382770PARD_704.mcs
PARANOiA MAX(DIRTY MIX)TAKEDA.SYOUHEIƒŠƒYƒ€‚ɇ‚킹‚Ä7-05☆7.6SINGLE30038020944116PARD_705.mcs
PARANOiA MAX(DIRTY MIX)K.KAWASEƒCƒ}ƒCƒ`‚©IH7-06☆5.3SINGLE3783802643343PARD_706.mcs
PARANOiA MAX(DIRTY MIX)Shin-ichi MiyazakiìŽÒ‚àƒNƒŠƒA‚Å‚«‚Ü‚¹‚ñiÎj7-07☆5.4DOUBLE4433803094231PARD_707.mcs
PARANOiA MAX(DIRTY MIX)SATOSHI M.‰´“I‚o‚`‚q‚`‚m‚n‚‰‚`B7-08☆5.4SINGLE3054272132754PARD_708.mcs
PARANOiA MAX(DIRTY MIX)W.Shiomi‘O”¼ƒmƒŠƒmƒŠAŒã”¼‘Ì—ÍŸ•‰8-01☆5.9SINGLE4073802844053PARD_801.mcs
PARANOiA MAX(DIRTY MIX)W.Shiomi‚Ƃɂ©‚­‘Ì—ÍŸ•‰8-02☆5.8DOUBLE4013802803952PARD_802.mcs
PARANOiA MAX(DIRTY MIX)HIROSHI.M‚»‚ñ‚Ȃɂ͂ނ¸‚©‚µ‚­‚È‚¢‚Å‚·B8-03☆5.6SINGLE3946652754239PARD_803.mcs
PARANOiA RebirthTOMOKAZU-MƒŠƒo[ƒX‚ð‚a‚‚“‚‰‚ƒ‚Å“¥‚Ý‚½‚¢1-01☆3.0DOUBLE2212371471728PARAR101.mcs
PARANOiA RebirthTOMOKAZU-M‰½‚©‚ªˆá‚¤EEE1-02☆5.1DOUBLE4425222955216PARAR102.mcs
PARANOiA RebirthYASUHIRO.O‚r‚r‚qiƒ}ƒjƒAƒbƒNj‚ÌƒŠƒƒCƒN1-03☆5.4SINGLE4123792754536PARAR103.mcs
PARANOiA RebirthYAMADA HIDETOSHI— ‰¹‹­’²ƒAƒŒƒ“ƒW1-04☆5.7SINGLE3313792213956PARAR104.mcs
PARANOiA RebirthY_TATEƒx[ƒX‚͂Ȃº‚©‚Q‚Ž‚„‚l‚h‚w‚Ì•ˆ–Ê1-05☆8.0COUPLE385/35347425741170PARAR105.mcs
PARANOiA RebirthY_TATE‹Ã‚è‰ß‚¬‚Ė󕪂©‚ç‚È‚­‚È‚Á‚Ă܂·1-06☆5.7COUPLE362/3573792423854PARAR106.mcs
PARANOiA Rebirthmurai mitsuruƒŠƒYƒ€‚ðl‚¦‚é‚̂ɋê˜J‚µ‚Ü‚µ‚½B1-07☆6.7SINGLE4023792685173PARAR107.mcs
PARANOiA RebirthHIROKI TAKAHASHIÅŒã‚̃tƒŒ[ƒY‚Í–ã⃂ƒmI2-01☆5.0SINGLE4333792894522PARAR201.mcs
PARANOiA RebirthT.Ochiai‚e|‚Q‚Q‚Ì̆‚Í‚±‚̋Ȃ¾I2-02☆4.2SINGLE3603322403322PARAR202.mcs
PARANOiA RebirthT.Ochiaiƒgƒ“‚Å‚à‚È‚¢“ï‹È‚©‚àEEE2-03☆5.3SINGLE3323792223049PARAR203.mcs
PARANOiA Rebirth???_02ˆÈ‰º‚̋Ȃ̑W”Å2-04☆5.4SINGLE4703793144627PARAR204.mcs
PARANOiA RebirthO.YAMAMOTO‚P‚Í“‚Ü‚ê‚Ü‚µ‚½i‹ƒj2-05☆7.0SINGLE4074742725179PARAR205.mcs
PARANOiA RebirthK.TAKEMURA‚È‚ñ‚Æ‚©V‚µ‚¢‚à‚Ì‚ð‚‚­‚è‚Ü‚µ‚½2-06☆5.7SINGLE4734273165029PARAR206.mcs
PARANOiA RebirthTAKEHIRO-O‚d‚m‚c@‚n‚ec@I‚¦‚ñ‚ւ̉Á‘¬3-01☆6.7SINGLE6057594045527PARAR301.mcs
PARANOiA RebirthY.SAKAIƒ†ƒjƒ]ƒ“ê—p‚Ì•ˆ–ʂł·B3-02☆5.5SINGLE4203792804042PARAR302.mcs
PARANOiA RebirthK.WAKAKIƒpƒ‰ƒpƒ‰‚©‚­‚ß‚¢3-03☆4.9SINGLE2903791943138PARAR303.mcs
PARANOiA RebirthTakahiro.H‚s‚q‚h‚o‚ÌƒŠƒYƒ€‚Ńpƒ‰3-04☆5.5SINGLE3253792174147PARAR304.mcs
PARANOiA RebirthT.NAGSAKi••ˆ–Ê‚»‚Ì‚P‚Å‚·B4-01☆6.1SINGLE4743793174747PARAR401.mcs
PARANOiA RebirthT.YASUDA‚©‚È‚è”æ‚ê‚邯Žv‚¢‚Ü‚·4-02☆4.9SINGLE4403792944518PARAR402.mcs
PARANOiA RebirthY.KAWABE‚R‚’‚„Žž‚Ì–Ú•W‚¾‚Á‚½‚à‚Ì4-03☆7.3SINGLE4545223035081PARAR403.mcs
PARANOiA Rebirtht.mizuno‚Ç‚­‚Æ‚­‚ÌƒŠƒYƒ€‚Å‚·B4-04☆5.6SINGLE3683792463850PARAR404.mcs
PARANOiA RebirthTAISHI K.‹È‚ð‚æ‚­‚«‚¢‚Ä‚Ó‚à‚¤4-05☆6.2SINGLE4684273135442PARAR405.mcs
PARANOiA Rebirth???_11‹†‹É‚Ì‚q‚…‚‚‚‰‚’‚”‚ˆ‚ðŒ©‚¹‚悤5-01☆7.1SINGLE4725693154577PARAR501.mcs
PARANOiA Rebirth???_11‚o‚‚’‚‚ˆ‚…‚Œ‚Œ‚æ‚è‚͈Ղµ‚¢5-02☆5.8SINGLE4543793034342PARAR502.mcs
PARANOiA Rebirth???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-01☆5.0SINGLE4923793294515PARAR601.mcs
PARANOiA Rebirth???_15‚l‚`‚m‚h‚`‚b‚Å•¨‘«‚è‚È‚¢•û‚ÖB6-02☆5.3DOUBLE4873793254423PARAR602.mcs
PARANOiA RebirthM.Ooebesuu‚c‚d‚`‚s‚g@•vƒŒƒxƒ‹‚W6-03☆5.9SINGLE3953792644454PARAR603.mcs
PARANOiA RebirthMITHUTOSHI NAKATAÅIŒ`‘ÔIH6-04☆6.4SINGLE3973792654867PARAR604.mcs
PARANOiA RebirthMichitaka Kimura‚È‚ºÁ‚¦‚Ä‚µ‚Ü‚Á‚½‚ñ‚¾`i‹ƒj6-05☆7.3SINGLE4215222815287PARAR605.mcs
PARANOiA RebirthToshihide Fujita’†”ÕA“¥‚Ý•û•ª‚©‚ç‚È‚©‚Á‚½‚çc6-06☆5.4DOUBLE3684742464833PARAR606.mcs
PARANOiA RebirthYASUNORI.U“ª‚ª‚¨‚©‚µ‚­‚Ȃ肻‚¤‚Å‚·B6-07☆5.8SINGLE4253792844645PARAR607.mcs
PARANOiA RebirthH.MATSUDA‚¨‚Ü‚¯‚QBi”šj6-08☆6.4SINGLE5005693345145PARAR608.mcs
PARANOiA RebirthNOBUTAKA TSUTSUMI‘ꂾ‚炯6-09☆4.7SINGLE4223792824613PARAR609.mcs
PARANOiA RebirthYuki Ichikawa“‚¢ƒpƒ‰‚ª—~‚µ‚¢•û‚ÖB6-10☆6.7SINGLE5054273375351PARAR610.mcs
PARANOiA RebirthTAIGA.O‹ê‚¢7-01☆5.2SINGLE3573792383342PARAR701.mcs
PARANOiA RebirthT.Hanada‚Q‚SŽŸŒ³‚Ö‚Ì”à7-02☆6.3SINGLE4957593315241PARAR702.mcs
PARANOiA RebirthDAISUKE KAMISAKA‚T‚O‚O‚±‚¦‚¿‚á‚¢‚Ü‚µ‚½B7-03☆4.7SINGLE502379335475PARAR703.mcs
PARANOiA RebirthTAKEDA.SYOUHEI‘«‚ð‚­‚Ë‚ç‚·7-04☆7.6SINGLE40037926751104PARAR704.mcs
PARANOiA RebirthFumihiro Ibuki‚Ü‚ ‚Ü‚ H7-05☆5.4SINGLE4853793244922PARAR705.mcs
PARANOiA RebirthShin-ichi Miyazakiƒpƒ‰ƒŠƒo‚Ńpƒ‰‚l‚`‚w‚·‚邯cH7-06☆5.5SINGLE3583792393156PARAR706.mcs
PARANOiA RebirthY.TAKEDAƒŠƒYƒ€‚ÌŽæ‚è•û‚ª“Æ“ÁH7-07☆5.7SINGLE4144272764738PARAR707.mcs
PARANOiA RebirthSATOSHI M.‰´“I‚o‚`‚q‚`‚m‚n‚‰‚`‘æ‚Q’e7-08☆5.8SINGLE3713792483955PARAR708.mcs
PARANOiA RebirthW.ShiomiƒoƒbƒN‚ÌƒŠƒYƒ€‚ª‚²‚¿‚ᬂº8-01☆5.9SINGLE4744743175033PARAR801.mcs
PARANOiA RebirthW.Shiomi‚²‚¿‚ᬂºƒŠƒYƒ€‚Å8-02☆5.1DOUBLE4773793194817PARAR802.mcs
PARANOiA RebirthTOSHIMITU.KURITA’´ã‹‰ŽÒŒü‚¯8-03☆4.4SINGLE403379269469PARAR803.mcs
PARANOiA RebirthKOHEI.TÅ‚“ï“x‹ÈB8-04☆6.0SINGLE3665692444155PARAR804.mcs
patsennerY.IMAIƒAƒm‰¹‚ªƒ|ƒCƒ“ƒg‚ɂȂÁ‚Ă܂·2-01☆3.3SINGLE1931891403923PATC2201.mcs
patsennerSAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-01☆5.1COUPLE291/2912702125348PATS_301.mcs
PERFECT FREERyohei Seki‚S‚”‚ˆ‚Ì–^‹È•—A“¯Žž“¥‚݂܂݂êB3-01☆5.9SINGLE2422922016167PERF_301.mcs
PINK DINOSAURKOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆4.2DOUBLE2813062124917PINK_101.mcs
PINK DINOSAURYAMADA HIDETOSHIƒAƒNƒZƒ“ƒg‚P‚U•ª1-02☆4.7SINGLE2783062104336PINK_102.mcs
PINK DINOSAURA.NAOKI‚f‚‚”‚”‚‚ŽìF‚r‚h‚o‚o‚n1-03☆4.2SINGLE2462721853040PINK_103.mcs
PINK DINOSAURHIROAKI.T‹È‚Ƀmƒb‚Ăӂñ‚Å‚¢‚¯‚Ü‚·I1-04☆3.9SINGLE2852722153922PINK_104.mcs
PINK DINOSAURK.HAYASE‹È‚ɇ‚킹‚½‚ ‚è‚ӂꂽ•ˆ–ÊB1-05☆3.9SINGLE313340236524PINK_105.mcs
PINK DINOSAURT.HiranoŽéF‚Ì‹°—³2-01☆5.7SINGLE2363061784170PINK_201.mcs
PINK DINOSAURYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚R2-02☆4.5SINGLE2893062234230PINK_202.mcs
PINK DINOSAURSUGAWARA TAKASHI“¯Žž“¥‚݂ɒˆÓ‚µ‚Ä‚­‚¾‚³‚¢B2-03☆4.4SINGLE2802722114236PINK_203.mcs
PINK DINOSAURKOMOGUCHI.Y’Pƒ‚ɉ̺‚ɇ‚킹‚Ä2-04☆4.2SINGLE2663062013628PINK_204.mcs
PINK DINOSAURTAKEHIRO-O‚o‚h‚m‚j‚x@‚i‚i3-01☆4.3SINGLE2963402234915PINK_301.mcs
PINK DINOSAURF.ATHUSHI‘«Šµ‚炵‚ÉB3-02☆3.7DOUBLE2392721804216PINK_302.mcs
PINK DINOSAURK.WAKAKIƒrƒbƒNƒLƒ‡ƒEƒŠƒ…ƒE3-03☆3.4SINGLE2372721793415PINK_303.mcs
PINK DINOSAURTakahiro.H‘«‚V‚­‚ç‚¢3-04☆3.5SINGLE2242721693415PINK_304.mcs
PINK DINOSAURK.Komenoi‚¿‚å‚Á‚ÆŠÈ’P‚¾‚Á‚½‚©‚ÈH4-01☆3.7SINGLE2612721974614PINK_401.mcs
PINK DINOSAUR???_08ƒŒƒxƒ‹‚SA‰SŽÒŒü‚¯4-02☆2.0SINGLE158170119137PINK_402.mcs
PINK DINOSAURD.KAWABATAƒ}ƒjƒAƒbƒN‚̃AƒŒƒ“ƒWƒo[ƒWƒ‡ƒ“5-01☆4.3SINGLE2482721873637PINK_501.mcs
PINK DINOSAURURABE HIROKIˆê‹x‚݂ɂǂ¤‚¼B5-02☆3.0SINGLE245272185327PINK_502.mcs
PINK DINOSAURABE TaTsuMa‹CŒy‚É‚â‚낤I5-03☆4.8SINGLE2283061724140PINK_503.mcs
PINK DINOSAUR???_13‰¹‚ɇ‚킹‚邯‚¢‚¢‚©‚àIH5-04☆4.7SINGLE2873402164231PINK_504.mcs
PINK DINOSAURK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-05☆4.6SINGLE3233402444920PINK_505.mcs
PINK DINOSAURKatsuhiko KinoshitaƒCƒ[ƒW‚É‚ ‚킹‚Äì‚Á‚½•ˆ–Ê5-06☆1.4SINGLE169238127112PINK_506.mcs
PINK DINOSAURIchinose Shinta‚©‚ë‚â‚©‚É‚¨‚Ç‚Á‚Ăقµ‚¢‚Å‚·6-01☆4.1SINGLE2432721832838PINK_601.mcs
PINK DINOSAURKENJI ENDA‚ ‚¹‚ç‚È‚¯‚ê‚ΊyŸI6-02☆4.7SINGLE2752722074543PINK_602.mcs
PINK DINOSAURSHIGERU ARAI‚o‚`‚o‚`‚x‚`‚ÆŒ¾‚¦‚΃XƒLƒbƒvB6-03☆4.0SINGLE3143062375111PINK_603.mcs
PINK DINOSAUR???_18‘«‚¶‚ჀƒŠHi‚Q‚–Új6-04☆4.3SINGLE2513061894723PINK_604.mcs
PINK DINOSAURH.Yamaguchi‚È‚ñ‚©D‚«‚Å‚·B‚±‚Ì‹ÈB6-05☆4.1SINGLE2833062134816PINK_605.mcs
PINK DINOSAURKotaro KagawaŠy‚µ‚­ƒnƒl‚悤B7-01☆4.3SINGLE2562721933935PINK_701.mcs
PINK DINOSAURSEIJI TOUMA‚Ü‚ A‚±‚ñ‚È‚à‚ñ‚Å‚µ‚åB7-02☆3.5SINGLE2492721884510PINK_702.mcs
PINK DINOSAURYohei MaruyamaƒIƒtƒBƒVƒƒƒ‹‚ð’´‚¦‚Ă݂悤B8-01☆3.8SINGLE285306215517PINK_801.mcs
PINK DINOSAURHIROSHI.M‰´‚Ì’†‚ÅA€ƒCƒ`ƒIƒVI8-02☆5.3SINGLE2502721885356PINK_802.mcs
PINK DINOSAUR???_22ƒXƒLƒbƒv‚¾‚炯‚Å‚·B„’è‚k‚u‚Wª8-03☆3.9SINGLE325306245508PINK_803.mcs
PINK DINOSAURShimamoto Yuukiƒm[ƒRƒƒ“ƒgEEE8-04☆5.4SINGLE2863062165350PINK_804.mcs
PINK DINOSAURTHE PLAYSTATION2ƒ‰ƒXƒg‚Í‚½‚Á‚Õ‚è‰ñ‚Á‚Ä‚ËB8-05☆2.3SINGLE1592041201224PINK_805.mcs
Prince on a starY_TATEƒr[ƒgƒ}ƒjƒA”ł͖¢‚¾ƒNƒŠƒA‚Å‚«‚¸1-01☆5.2SINGLE2423261795143PRIN_101.mcs
Prince on a starEIJI O.‹È‚ªD‚«‚Ȃ̂Å1-02☆5.5SINGLE2702901994664PRIN_102.mcs
Prince on a starHIROKI TAKAHASHI‹È‚Ì•µˆÍ‹C‚ð‰ó‚³‚È‚¢ì‚èI2-01☆4.7SINGLE3233262384927PRIC1201.mcs
Prince on a starN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆7.0SINGLE30732622747104PRIN_301.mcs
Prince on a star???_04‚k‚–‚SD^‚l‚`‚q‚j3-02☆2.1SINGLE172145127046PRIN_302.mcs
Prince on a star???_04‚k‚–‚UD^‚l‚`‚q‚j3-03☆3.7SINGLE2442901803815PRIN_303.mcs
Prince on a starHIDEAKI KANEDAŠy‚µ‚ñ‚Å“¥‚ñ‚Å‚­‚¾‚³‚¢4-01☆5.2SINGLE3193622404935PRIN_401.mcs
Prince on a starHatamoto Yohei‚©‚È‚è’P’²‚Å‚·B4-02☆3.2SINGLE249290184442PRIN_402.mcs
Prince on a starHAJIME M.ÅŒã‚̃tƒŒ[ƒY5-01☆3.1SINGLE265290196460POSC1501.mcs
Prince on a starYuto JijiwaŠÈ’P‚È•û‚Å‚·B5-02☆3.8SINGLE2452531814817POSC1502.mcs
Prince on a star???_13­‚µAƒr[ƒgƒ}ƒjƒA•—IH5-03☆4.9SINGLE3083622274927POSC1503.mcs
Prince on a starH.YamaguchiƒNƒ‰ƒu‚Í‚±‚ê‚­‚ç‚¢‚µ‚©EEE6-01☆4.8SINGLE2733262014334PRIC1601.mcs
Prince on a starSEIJI TOUMAƒr[ƒ}ƒj•—‚ɃAƒŒƒ“ƒWB7-01☆6.7SINGLE3254352405173PRIN_701.mcs
PUT YOUR FAITH IN METakashi.Kƒ}ƒjƒAƒbƒN•ˆ–Ê‚ðƒhƒŒƒXƒAƒbƒv1-01☆3.6SINGLE2352701954314PUTY_101.mcs
PUT YOUR FAITH IN MEYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-02☆4.1SINGLE2152401793738PUTY_102.mcs
PUT YOUR FAITH IN MEYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚bŠ´Šo‚łǂ¤‚¼1-03☆5.0DOUBLE2233001853951PUTY_103.mcs
PUT YOUR FAITH IN MEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚y‚`‚l‚`‚r‚t1-04☆3.7SINGLE2182701813721PUTY_104.mcs
PUT YOUR FAITH IN MEFUMIHIRO ISHIWATAƒvƒŒÃìB‚µ‚Á‚Æ‚è‚Æƒ_ƒ“ƒX2-01☆4.4SINGLE2182401813745PUTY_201.mcs
PUT YOUR FAITH IN MESATOSHI.Hƒ‰ƒbƒv‚ÌƒŠƒYƒ€‚ð‚«‚´‚ñ‚Å‚­‚¾‚³‚¢5-01☆4.8SINGLE2573302144930PUTY_501.mcs
PUT YOUR FAITH IN MEKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆4.4COUPLE141/1412101173158PUTY_601.mcs
PUT YOUR FAITH IN MEMITHUTOSHI NAKATAˆÚ“®D‚«‚É‚ÍÅ“KB6-02☆4.5DOUBLE2163001804927PUTY_602.mcs
PUT YOUR FAITH IN MET.NAOYA‚c‚d‚m‚f‚d‚q6-03☆5.8SINGLE2554502125245PUTY_603.mcs
PUT YOUR FAITH IN MERYOHEI.T & KENICHI.T‘«‚T‚¾‚¯‚Ç­‚µ‚¾‚¯‚P‚U•ª‚ ‚邿B7-01☆3.5SINGLE1542101282340PUTY_701.mcs
PUT YOUR FAITH IN MEK.IKEMOTO‘«~‚V‚­‚ç‚¢‚Å‚·8-01☆3.7SINGLE2292701904116PUTY_801.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)YAMADA HIDETOSHI‰¹’Ê‚è‚Å‚·1-01☆4.5SINGLE1823301564625PUTYJ101.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)EIJI O.‚c‚c‚q‚É‚à‚Á‚Æ‚i‚`‚y‚y‚ð`1-02☆4.4SINGLE2413602065611PUTYJ102.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)HIROKI TAKAHASHIƒsƒAƒm‚ɇ‚킹‚ÄŠy‚µ‚à‚¤I2-01☆4.7SINGLE211450180638PUTYJ201.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)HAJIME.I‚Ú‚æ‚ñìF‚P‚U•ª‘êD‚«‚È•û‚Ö2-02☆4.6SINGLE272450233625PUTYJ202.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)Masato T.‰¹‚É‚ ‚Á‚½–Ê”’‚¢ƒXƒeƒbƒv‚Å‚·‚æB4-01☆5.7SINGLE2394502046335PYFIJ401.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)YOSHIHIKO MOTOYASUƒ‰ƒbƒv‚ƃsƒAƒm‚É‚ ‚킹‚Ü‚µ‚½B7-01☆5.0SINGLE2584502216515PUTYJ701.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)TATSURO SAKAGUCHI‚Q‚W¬ß–Ú‚É‚R‚Q•ª’ljÁ‚µ‚ĉº‚³‚¢7-02☆5.1SINGLE2464502107014PUTYJ702.mcs
PUT YOUR FAITH IN ME(Jazzy Groove)KOHEI.TƒsƒAƒm‚ɇ‚킹‚ÄB8-01☆5.1SINGLE2164501906418PUTYJ801.mcs
Queen's Jamaica(astria mix)J.GOUKEƒNƒ‰ƒu‚̋Ȃ̧ì‚̓€ƒY‚©‚Á‚½[B2-01☆4.4SINGLE1392341258918QJ_C2201.mcs
R3SINOMIYA.YƒJƒbƒRƒCƒC1-01☆5.7SINGLE3253922775534R3___101.mcs
R3SUGAWARA TAKASHI‚P“ú‚Åì‚èã‚°‚Ü‚µ‚½B2-01☆5.6SINGLE2793142385850R3___201.mcs
R3H.TARUMI–³’ƒ‚ł͂Ȃ¢‚¯‚Ç‚©‚È‚èƒn[ƒh2-02☆6.3SINGLE3144312675752R3___202.mcs
R3N.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆5.7SINGLE2893532465744R3___301.mcs
R3Yuto Jijiwa‹x‚Ý–³‚¢‚Å‚·5-01☆5.1SINGLE2563142185935R3___501.mcs
R3D.fujisakiʼn‚ÆÅŒã‚Ì‚P‚U•ª’n‘тɒˆÓI7-01☆5.1SINGLE3394712895116R3___701.mcs
R3(another version)H.KAWAKAMI‹È’Ê‚èB1-01☆6.2SINGLE3865883296133R3A__101.mcs
R3(another version)MURAI MITSURU‚¯‚Á‚±‚¤ŽžŠÔ‚ð‚©‚¯‚Äì‚è‚Ü‚µ‚½B5-01☆5.4SINGLE2943922505431R3A__501.mcs
R3(another version)TOSHIMITU.KURITA㋉ŽÒŒü‚¯8-01☆4.3SINGLE304353259538R3A__801.mcs
Remember You???_03‚Q‚c‚w‚æ‚è‚̃Xƒeƒbƒv3-01☆4.8SINGLE2472101664360REME_301.mcs
Remember YouA.NAOKI‚lD‹g“c@ìFƒAƒŠƒWƒSƒN3-02☆3.3DOUBLE2292101544515REME_302.mcs
Remember YouSAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-03☆3.9COUPLE245/2452361645222REME_303.mcs
Remember YouYOSHIHARU MIURA‚P‚U•ª‚ª‚í‚©‚è‚É‚­‚¢‚©‚àH4-01☆4.6DOUBLE2762881855033REMEM401.mcs
Remember YouKATSUHIKO KOBAYASHI‚Ü‚¾–Y‚ê‚ç‚ê‚È‚¢A‚ ‚Ìl5-01☆3.8SINGLE2382101605324REM_U501.mcs
Remember You???_13ÅŒã‚É’ˆÓ‚µ‚Ä‚ËI5-02☆3.0SINGLE259236174474REM_U502.mcs
Remember YouNAOTO M.‚Í‚¶‚߂͂©‚ñ‚½‚ñ‚¾‚¯‚Ç‚ ‚Æ‚©‚çc6-01☆4.6SINGLE2973671995217REMEM601.mcs
Remember YouM.HANABUSAŽv‚¢o‚¢‚Á‚Ï‚¢6-02☆7.4SINGLE3024202035796REMEM602.mcs
Remember YouTAKEO.U‚±‚ñ‚Ȃɓ‚­‚µ‚Ä—Ç‚©‚Á‚½‚ÌH6-03☆6.0SINGLE3204202155449REMEM603.mcs
Remember YouH.KAWAKAMI‚Ù‚Æ‚ñ‚Ç“¯ŽžB6-04☆6.6SINGLE25921017842190REMEM604.mcs
Remember YouH.MATSUDA‚¨‹C‚É“ü‚èB6-05☆8.2SINGLE35239323656146REMEM605.mcs
Remember YouN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»B7-01☆6.7SINGLE26021017545131REME_701.mcs
Remember YouD KYUTOKU—x‚èA‚ ‚È‚½‚ðŽv‚¢o‚·EEE7-02☆2.6SINGLE155183104560REME_702.mcs
Remember YouS.FUKUDAƒXƒeƒbƒv‚ÌƒŠƒYƒ€‚ª­‚µ“Æ“Á8-01☆3.9SINGLE2812621895317REME_801.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)WATANABE JUN‚c‚q‚n‚o@‚s‚g‚d@‚a‚n‚l‚a‚ÉŠ´ŽÓ3-01☆6.8SINGLE5516803906430RHYT_301.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)TSUJI JUNNYAŒÜŠìŒ´‚Z—”‰»‚Å`‚·3-02☆4.6SINGLE419425296504RHYT_302.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)A.NAOKI‚lD‹g“c@ìF— ”Ô’·3-03☆6.5DOUBLE26834018910054RHYT_303.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)Y.KAZAMAKIƒ†ƒjƒXƒJƒ|ƒŠƒXBƒ†ƒj•B3-04☆4.2SINGLE368382260494RHYT_304.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)???_05‚P‚Q•ª‘½‚µ‹r—Íã‚°‚æ3-05☆5.5SINGLE508552359569RHYT_305.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)NAOyuki-Tachiharaƒ`ƒƒƒŒƒ“ƒWƒ‚[ƒh‚ɉe‹¿‚³‚ê‚Ü‚µ‚½3-06☆6.1SINGLE4855523435332RHYT_306.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)SHiNiCHi SAiTHOuÅ‚èv‚ð•\Œ»‚µ‚½‚©‚Á‚½B4-01☆5.3DOUBLE3785522675126R&P__401.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)Y.KAWABE‚P‚U•ª‚Ó‚ß‚é‚Ì‚©•sˆÀ4-02☆4.8SINGLE395680279598R&P__402.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)Jun T.‚ ‚Ü‚è•Ï‚í‚Á‚ĂȂ¢B4-03☆4.9SINGLE462680327515R&P__403.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)takara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-04☆6.1SINGLE4365523085439R&P__404.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)K.TAKEMURA‚Ü‚ ‚Ü‚ ‚Å‚·B4-05☆5.3SINGLE4375103096213R&P__405.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)???_09™~‚T4-06☆7.4SINGLE5906804176337R&P__406.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)???_10Œ´‘èu‚`‚n‚r‚h‚l‚`v5-01☆6.9SINGLE2984672116670R&P__501.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)S.KUROYANAGI‚R˜A•„‚ ‚è‚P‚U•ª‚ ‚è‚Ì“ïŠÖI5-02☆5.3SINGLE4245523005915R&P__502.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)SEIJI W.‚©‚È‚èƒLƒcƒC‚Å‚·5-03☆4.9SINGLE400510283637R&P__503.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)Y.TSUDA˜A‘łɋC‚ð•t‚¯‚ê‚΂½‚Ô‚ñ‘åä•vB5-04☆4.6SINGLE441552312541R&P__504.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)SoichI InabA—ׂ̉ƂɈ͂¢‚ª‚Å‚«‚½‚Á‚Ä‚Ë5-05☆4.9SINGLE3403402403243R&P__505.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)ABE TaTsuMaƒ^ƒCƒ~ƒ“ƒO—Ç‚­‘–‚낤IiÎj5-06☆5.1SINGLE4234672996210R&P__506.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)F.KATOU—x‚鼕”i‚r‚`‚xE‚a‚n‚njŒxŽ@I5-07☆4.7DOUBLE457467323522R&P__507.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)Satoru HataŒxŽ‹’¡‚Q‚SŽžI5-08☆6.4SINGLE4706803326438R&P__508.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)SHINYA.KI”Ղ̃AƒŒ‚ÍŒ‹\ƒL‚Ü‚·5-09☆4.7SINGLE430510304535R&P__509.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)S.Fujisawaƒm[ƒRƒƒ“ƒgEEE5-10☆4.5SINGLE430382304485R&P__510.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)JUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.7SINGLE4275523025927R&P__601.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)HIROAKI.MATSUUCHI‰‚߂Ẵ_ƒuƒ‹•ˆ‚Å‚·Bo—ˆˆ«‚µ6-02☆4.8DOUBLE3023822134821R&P__602.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)S.SATAKE‚³‚ç‚É‚³‚ç‚ɓ‚¢‚Å‚·iÎj6-03☆7.3SINGLE5086803596257R&P__603.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)YASUNORI.Uƒtƒ‹ƒRƒ“‚ß‚´‚µ‚Ä‚ËB6-04☆5.2SINGLE4113822915421R&P__604.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)NIGHTMARE‹C‡‚Å‚·7-01☆6.0SINGLE4896803466421R&P__701.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)SEIJI.H‚½A‘½•ªƒcƒ‰ƒCEEE7-02☆4.8SINGLE411552291625R&P__702.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)N.NAGANO‹È‚ɇ‚킹‚ÄŠy‚µ‚ñ‚ʼnº‚³‚¢B7-03☆5.7SINGLE3804252694740R&P__703.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)W.Shiomi‚P‚U•ª‚ªŒ®‚Å‚·8-01☆5.6SINGLE4725523345518RNP__801.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)W.Shiomiƒ_ƒuƒ‹‚Å‚à‚P‚U•ª‚ªŒ®‚Å‚·8-02☆5.7DOUBLE4466373155228RNP__802.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)TOSHIMITU.KURITA’´ã‹‰ŽÒŒü‚¯8-03☆4.5SINGLE382382270546RNP__803.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)S.FUKUDAƒIƒtƒBƒVƒƒƒ‹ƒf[ƒ^‚æ‚è‚©‚ñ‚½‚ñ8-04☆5.9SINGLE3344252365843RNP__804.mcs
RHYTHM AND POLICE(K.O.G G3 Mix)H.MURATAƒm[ƒRƒƒ“ƒgEEE8-05☆6.0SINGLE4144672935241RNP__805.mcs
ROCK BEATYAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-01☆4.5SINGLE3333002444628ROCK_101.mcs
ROCK BEATTADASHI.UMISHIMAŒã”¼‚ª‚Æ‚ñ‚Å‚à‚È‚¢‚Å‚·1-02☆6.9SINGLE35230025844109ROCK_102.mcs
ROCK BEATK.SUGAI‚r‚g‚o‚q‚b‚a‚O‚P^‚V2-01☆5.9SINGLE2593001905568ROCK_201.mcs
ROCK BEATJUN.KŠâ’jB‚T‚®‚ç‚¢B4-01☆3.5DOUBLE1923001411631ROCK_401.mcs
ROCK BEATIchinose Shinta‚©‚Á‚±‚æ‚­‚¨‚Ç‚Á‚Ăقµ‚¢6-01☆6.1SINGLE2733002004880ROCK_601.mcs
ROCK BEATMITHUTOSHI NAKATA‚¢‚¢‹È‚Ȃ̂ÉEEEB6-02☆4.8SINGLE2943002164440ROCK_602.mcs
ROCK BEATYUJI.O‚ ‚Ì‚P‚U•ª”÷–­‚Å‚·‚©H7-01☆5.4SINGLE2683371974948ROCK_701.mcs
RUGGED ASHK.SUGAI‚r‚g‚o‚q‚t‚f‚O‚P^‚W2-01☆6.2SINGLE1973361835173RUGC2201.mcs
RUGGED ASHMits-hide Obataƒtƒ‹[ƒg‚ɂȂÁ‚½‹C•ª‚Å“¥‚ñ‚Å‚Ë5-01☆4.8SINGLE1275461215912RUGC2501.mcs
RUGGED ASHKiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆6.5COUPLE166/1663361544985RUGC2601.mcs
RUGGED ASHFumihiro Ibuki‚Ù‚Æ‚ñ‚Ç‚l‚`‚m‚h‚`‚b‚ÌƒŠƒYƒ€7-01☆3.5SINGLE194336181413RUGG_701.mcs
SAINT GOES MARCHING(REMIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆5.8DOUBLE3513932894046SAINT101.mcs
SAINT GOES MARCHING(REMIX)SHIBATA JUNICHIŒã”¼‚Ì‚R˜A•„‚ÅŽ€‚Êl‘½”I1-02☆5.6SINGLE491524405590SAINT102.mcs
SAINT GOES MARCHING(REMIX)Y.SAKAI¥”ñ‚Ql‚ŃvƒŒƒC‚µ‚ĉº‚³‚¢2-01☆6.8COUPLE275/2753492265387SAINT201.mcs
SAINT GOES MARCHING(REMIX)K.TAKEMURA‘O”¼ƒLƒc‚¢‚Å‚·B2-02☆6.1SINGLE3914373225733SAINT202.mcs
SAINT GOES MARCHING(REMIX)KOUICHI TAKEUCHI‘O”¼o—ˆ‚ê‚΂æ‚䂤‚©H3-01☆5.5SINGLE3344372754931SAIN_301.mcs
SAINT GOES MARCHING(REMIX)N.NAMIKAWA‰¹‚𒉎ÀÄŒ»B3-02☆5.6SINGLE3854803174825SAIN_302.mcs
SAINT GOES MARCHING(REMIX)Y.ISHIDA‰¹Šy‚É’‰ŽÀ‚ÉŽdã‚°‚½‚‚à‚è‚Å‚·B3-03☆7.6SINGLE4436993655669SAIN_303.mcs
SAINT GOES MARCHING(REMIX)T.TSUKAMOTO‚P‚T¬ß‚©‚çuƒJƒrv‚Æ•·‚±‚¦‚éc4-01☆6.7SINGLE3574372944965SAINT401.mcs
SAINT GOES MARCHING(REMIX)???_07”z’u‚ªƒ}ƒ“ƒlƒŠ‚µ‚È‚¢‚悤‚Éc4-02☆6.3SINGLE3765243104950SAINT402.mcs
SAINT GOES MARCHING(REMIX)???_09™~‚S4-03☆7.5SINGLE4445243665567SAINT403.mcs
SAINT GOES MARCHING(REMIX)Y.TSUDA‰½‰ñ‚à‚â‚邯‚‚©‚ê‚éB5-01☆5.7SINGLE3443932835435SAINT501.mcs
SAINT GOES MARCHING(REMIX)DAISUKE.HŠy‚µ‚­‚¨‚ǂ낤B5-02☆6.0SINGLE3433932824054SAINT502.mcs
SAINT GOES MARCHING(REMIX)KENJI ENDA‚Ƃɂ©‚­–îˆó‚ð‚æ‚­Œ©‚邱‚Æ6-01☆6.7SOLO3453492845078SAINT601.mcs
SAINT GOES MARCHING(REMIX)Michitaka KimuraD‚«‚ȋȂ¾‚Á‚½‚Ì‚ÉÁ‚¦‚Ä‚µ‚Ü‚Á‚½6-02☆7.9SINGLE3855243175297SAINT602.mcs
SAINT GOES MARCHING(REMIX)SHIGERU ARAIƒ}[ƒ`‚炵‚­ŒðŒÝ‚ÉB6-03☆4.3SINGLE323699266435SAINT603.mcs
SAINT GOES MARCHING(REMIX)M.HANABUSA‰Š‚ª–³‚¢‚̂Ŋ¦‚¢‚Å‚·6-04☆4.7SINGLE3523932904013SAINT604.mcs
SAINT GOES MARCHING(REMIX)???_19‚³‚ç‚ɂ‚炢‚©‚ÈEEE6-05☆8.1SINGLE4456123675787SAINT605.mcs
SAINT GOES MARCHING(REMIX)HIROSHI.MŒã‚¾‚é‚Ý‚µ‚Á‚ςȂµB8-01☆6.0SINGLE3845243165632SAINT801.mcs
SAMBA DE JANEIROTOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆2.3DOUBLE1962401481123SAMBA401.mcs
SAMBA DE JANEIROMasato T.‚±‚̋Ȃ̃_ƒuƒ‹‚ª—V‚ׂé‚Ì‚ª‚¢‚¢B4-02☆5.7DOUBLE3373202544164SAMBA402.mcs
SAMBA DE JANEIROS.KUROYANAGI‚Ü‚ñ‚ׂñ‚È‚­‚P‚U•ª‚Q˜A‚ªEEE5-01☆5.2SINGLE3054402304134SAMBA501.mcs
SAMBA DE JANEIROA.NAOKI‚lE‹g“c ìF‚c‚i ‚`‚l‚h‚f‚n5-02☆5.2DOUBLE2683202022567SAMBA502.mcs
SAMBA DE JANEIROS.SATAKE‚c‚c‚q‚Ì’†‚ňê”ÔD‚«‚Ȃ̂Å6-01☆6.8SINGLE25932019539109SAMBA601.mcs
SAMBA DE JANEIRONAOTO M.‰SŽÒ‚Þ‚«‚Å‚·B6-02☆6.8SINGLE2724002053592SAMBA602.mcs
SEXY PLANETA.NAOKI‚f‚‚”‚”‚‚ŽìFƒVƒFƒNƒV[3-01☆5.2DOUBLE2293601802360SEXY_301.mcs
SEXY PLANETY.KAZAMAKIƒVƒFƒNƒV[B‚»‚ê‚Í‚à‚¤3-02☆5.1SINGLE3233602554333SEXY_302.mcs
SEXY PLANETY.SAKAI‚l‚`‚m‚h‚`‚b‚Æ“¯“™‚Ì“ïˆÕ“xB3-03☆4.9DOUBLE2603152053744SEXY_303.mcs
SEXY PLANETSHiNiCHi SAiTHOì‚é‚̂ɋê˜J‚µ‚½c4-01☆4.9DOUBLE3103602454230SEXY_401.mcs
SEXY PLANETDaisuke K.“¯Žž“¥‚Ý‚ª‹­—óB‚k‚–D‚X4-02☆6.5DOUBLE3143602484778SEXY_402.mcs
SEXY PLANETMIO.S‚ ‚È‚½‚͉½‰ñ“]‚Å‚«‚Ü‚·‚©H4-03☆4.6SINGLE2613602062935SEXY_403.mcs
SEXY PLANETTAISHI K.Š´î‚Ì‚‚Ü‚è‚ð–îˆó‚Å•\Œ»4-04☆4.5SINGLE3153602484518SEXY_404.mcs
SEXY PLANETSHINYA.K‹È‚ðŠy‚µ‚Ý‚½‚¢l‚Ö5-01☆4.4SINGLE2773152183828SEXY_501.mcs
SEXY PLANETHIROAKI.MATSUUCHI‚Ü‚ ‚Ü‚ ‚Ìo—ˆ‚Å‚·6-01☆3.8SINGLE2593152041933SEXY_601.mcs
SEXY PLANETMITHUTOSHI NAKATA‚¤`‚ñƒZƒNƒV`B6-02☆5.8SINGLE3003602374854SEXY_602.mcs
SEXY PLANETYASUNORI.UF‹Cƒ€ƒ“ƒ€ƒ“‚Å‚·B6-03☆5.5SINGLE2673602114150SEXY_603.mcs
SEXY PLANETYASUNORI.UˆÓŠO‚ƃ€ƒYƒC‚©‚àB6-04☆4.8SINGLE2893602284329SEXY_604.mcs
SEXY PLANETTAKESHI MATSUMOTO‚Ü‚í‚él@‚‚’@‚a‚n‚w‚·‚élê—p7-01☆5.3SINGLE3933603104827SEXY_701.mcs
SEXY PLANETN.NAGANO— ‘Å‚¿—‚݂̕”•ªƒƒCƒ“‚Å‚·B7-02☆5.9SINGLE3123602464757SEXY_702.mcs
SEXY PLANETH.MURATAƒm[ƒRƒƒ“ƒgEEE8-01☆6.0SINGLE3203602525155SEXY_801.mcs
SHAKE YOUR BOOTYA.NAOKI‚lD‹g“c@ìF‚f‚n‚j‚h‚f‚d‚m1-01☆1.9DOUBLE12311288048SHAKE101.mcs
SHAKE YOUR BOOTYH.Sakurai‚³‚Á‚¿‚á‚ñ’ɦ‚ÌŽ¸”sì2-01☆5.0DOUBLE2022811455742SHAKE201.mcs
SHAKE YOUR BOOTYS.Okano“¯Žž“¥‚Ý‚ÍA‘S‚Ä‚»‚̂܂܂ł·B4-01☆5.6SINGLE3763662716831SHAKE401.mcs
Share My LoveHIROKI.N‚P‚U•ª˜A‘ňȊO‚Ì‚P‚U•ª‚͉¹‡‚킹1-01☆5.5SINGLE3044682155533SHARE101.mcs
Share My LoveYASUHIRO.Oƒ}ƒjƒAƒbƒN‚ÌƒŠƒƒCƒNƒo[ƒWƒ‡ƒ“1-02☆3.9SINGLE2352811663525SHARE102.mcs
Share My Love???_01‚©‚È‚è“ÁŽê‚ŃXB1-03☆4.7SINGLE2932812085833SHARE103.mcs
Share My LoveYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚U2-01☆4.5SINGLE2962812105032SHARE201.mcs
Share My LoveYUSUKE.KŽ„‚Ì’†‚Å‚Íì‚肪ŠÈ’P‚Å‚·3-01☆5.4SINGLE2853122025051SHAR_301.mcs
Share My LoveA.NAOKI‚f‚‚”‚”‚‚ŽìF‚m‚n‚g‚n‚g‚n‚m3-02☆3.6SOLO2402501703722SHAR_302.mcs
Share My LoveTOMOHIRO NAKAIƒŠƒYƒ€‚ɂ̂Á‚ăRƒ“ƒ{‚ð‚‚Ȃ²‚¤I3-03☆5.9SINGLE3403432416352SHAR_303.mcs
Share My Love???_04‚k‚–‚VD^‚l‚`‚q‚j3-04☆4.6SINGLE2522811785432SHAR_304.mcs
Share My Love???_04‚k‚–‚TD^‚l‚`‚q‚j3-05☆3.3SINGLE2082811472714SHAR_305.mcs
Share My LoveN.MIMURA㋉ƒpƒtƒH[ƒ}[Œü‚¯4-01☆5.8SINGLE2933122085164SHARE401.mcs
Share My Love???_08ƒŒƒxƒ‹‚P‚O4-02☆5.5DOUBLE2952812095260SHARE402.mcs
Share My LoveS.OkanołୂȂ¢‚R‚T‚WŒÂ‚Å‚·B4-03☆5.0SINGLE3583752546616SHARE403.mcs
Share My LoveHIROAKI.MATSUUCHIƒAƒiƒU[‚Ì­‚µã‚­‚ç‚¢‚Å‚·B6-01☆3.0SINGLE2382501692616SHARE601.mcs
Share My LoveKENJI ENDAƒŠƒYƒ€‚ª‘厖6-02☆5.5SINGLE2963122106644SHARE602.mcs
Share My LoveINAGAKI KEIsukeƒTƒr‚̃uƒŒƒCƒN‚ð•ö‚¹‚È‚©‚Á‚½7-01☆3.5SOLO2242811593118SHAR_701.mcs
Share My LoveSATOSHI M.‹CŽ‚¿—Ç‚­“¥‚ñ‚ʼnº‚³‚¢B7-02☆5.2SINGLE3303122346436SHAR_702.mcs
Share My LoveD KYUTOKU‚â‚â’P’²‚Å‚·B7-03☆5.4SINGLE2673121896345SHAR_703.mcs
Share My LoveToshiro Ohtsuka‘«‚Å‚â‚Á‚Ä‚­‚¾‚³‚¢8-01☆3.3SINGLE268281190453SHARE801.mcs
SHOOTING START.MURATAƒTƒr‚Í‘–‚è‚Ü‚·B1-01☆5.2SINGLE3993402734536SHOO_101.mcs
SHOOTING STARSOUSHIN.KŽè‚Å‚â‚Á‚Ä‚­‚¾‚³‚¢iÎj1-02☆6.1SINGLE4566803125239SHOO_102.mcs
SHOOTING START_YAMADAʼn‚Ì•û‚ðæ‚èØ‚ê‚ÎEEE1-03☆5.3SINGLE3705102535722SHOO_103.mcs
SHOOTING STARSHIBATA JUNICHIŽ©MìI‚c‚c‚q‚Ì—lX‚Ì•ˆ–Ê‚ªI1-04☆6.3SINGLE4886803345040SHOO_104.mcs
SHOOTING STARA.NAOKI‚f‚‚”‚”‚‚ŽìF|||||||{1-05☆4.2DOUBLE2622971793826SHOO_105.mcs
SHOOTING STAR???_01ƒ‚`‘å•ςŃXI1-06☆5.3DOUBLE3945102704329SHOO_106.mcs
SHOOTING STARK.HAYASE‚P‚U•ª‚𑽗pA˜‚ðŽg‚¦B1-07☆4.1SINGLE4083402804110SHOO_107.mcs
SHOOTING START.Hirano‰ñ‚ê‰ñ‚ê‚Ç‚±‚܂łà2-01☆2.7SINGLE236170161061SHOO_201.mcs
SHOOTING STARYOU.W—¬¯‚̂悤‚È–îˆó‚ð‘Å‚¿—Ž‚Æ‚¹I2-02☆4.4DOUBLE3373402313525SHOO_202.mcs
SHOOTING STARHAJIME.I‚Ú‚æ‚ñìFÅŒã‚Ƀgƒ‰ƒbƒv—L2-03☆5.6SINGLE3004682054047SHOO_203.mcs
SHOOTING STARMasayuki.A“ïˆÕ“x‚U‚ÅŒˆ‚Ü‚èI2-04☆5.7SINGLE2673401833371SHOO_204.mcs
SHOOTING STARO.YAMAMOTOƒAƒ“ƒrƒGƒ“ƒg‚ɇ‚킹‚Ă݂܂µ‚½2-05☆7.1SINGLE3325102274394SHOO_205.mcs
SHOOTING STARKOUICHI TAKEUCHI¯‚Ì—l‚É‹P‚¯I3-01☆5.3SINGLE3664252514730SHOO_301.mcs
SHOOTING STARWATANABE JUN‚S‚”‚ˆw“üŒãA‘¦ŽèŠ|‚¯‚½ˆ—ì3-02☆4.6SINGLE406510278497SHOO_302.mcs
SHOOTING STARSATOSHI ARIGA‚r‚s‚rI‘æ‹ã’eBƒnƒbƒs[’²‚Å‚f‚n3-03☆6.0SINGLE4594683155533SHOO_303.mcs
SHOOTING STARF.ATHUSHI“Á‚ɂȂµB3-04☆5.3SINGLE3805102604330SHOO_304.mcs
SHOOTING STARY.KAZAMAKIˆÀˆÕBi‚¾‚Á‚ÄEEEj3-05☆5.4SINGLE3243402222962SHOO_305.mcs
SHOOTING START.TSUKAMOTOƒ}ƒjƒAƒbƒN‚Í‚±‚ê‚­‚ç‚¢—~‚µ‚©‚Á‚½4-01☆4.8SINGLE3674252515015SHOO_401.mcs
SHOOTING STARTUBASA.S‚æ‚­‚Å‚«‚½AƒJƒiEEEH4-02☆4.5SINGLE3573402453626SHOO_402.mcs
SHOOTING STARH.OIKAWA‹È‚Ì•µˆÍ‹C‚ɇ‚킹‚Ă݂܂µ‚½B4-03☆7.7SINGLE38751026549108SHOO_403.mcs
SHOOTING START.Fukazawa‚±‚¾‚í‚è‚̈ê•iB4-04☆6.1SINGLE3364252304657SHOO_404.mcs
SHOOTING STARSAEKO.TŽv‚¢‚Á‚«‚è‹ì‚¯‚ĉº‚³‚¢B4-05☆5.4DOUBLE4014682754431SHOO_405.mcs
SHOOTING STARSAEKO.T‚q‚t‚mI‚q‚t‚mI‚Ђ½‚·‚ç‚q‚t‚mI4-06☆4.9SINGLE4083402804429SHOO_406.mcs
SHOOTING STARS.KUROYANAGI‘O”¼˜A‘ÅAŒã”¼“¯Žž5-01☆5.8SINGLE4035102764940SHOOT501.mcs
SHOOTING STARH.Kondoh‚V5-02☆4.2DOUBLE3123402142432SHOOT502.mcs
SHOOTING STARDAISUKE.H—¬¯ŒQII5-03☆4.9SINGLE3963402714629SHOOT503.mcs
SHOOTING START.MAMIYA‘Ì—ÍŸ•‰•ˆ–ʂ͂‚炢‚Å‚·B5-04☆5.8SINGLE4095102804144SHOOT504.mcs
SHOOTING STARYOSHiHiKO KAJiYAƒAƒbƒvƒ_ƒEƒ“‚ªŒƒ‚µ‚¢‚Å‚·6-01☆5.2SINGLE3464252374528SHOO_601.mcs
SHOOTING STARK.KinugawaŒðŒÝ‚É“¥‚ނ͓̂‚¢‚Å‚·B6-02☆5.3DOUBLE4165102854824SHOO_602.mcs
SHOOTING STARH.MATSUDA‚¨‚Ü‚¯‚PBiÎj6-03☆5.3SINGLE4225102894527SHOO_603.mcs
SHOOTING STARYuki IchikawaƒVƒ…[ƒeƒBƒ“ƒOƒXƒ^[Å‚Iiˆáj6-04☆4.9SINGLE462425317537SHOO_604.mcs
SHOOTING STARKAZUYUKI K.ƒƒƒfƒBƒbƒN‚ÅŠy‚µ‚߂镈–Ê7-01☆5.6SINGLE3584682454044SHOO_701.mcs
SHOOTING STARYasunobu Okuda—x‚è‚È‚ª‚çAŠè‚¢Ž–‚ð‚R‰ñi‰RjB7-02☆6.9SINGLE3065102105081SHOO_702.mcs
SHOOTING STARSEIJI TOUMAƒIƒXƒXƒEEE‚©‚ÈH7-03☆5.9SINGLE4145102845042SHOO_703.mcs
SHOOTING STARY.TAKEDA‰Æ’ë—p‚Æ‚¢‚¤Ž–‚Å­‚µ‹Éˆ«‚Ȃ̂àB7-04☆8.9SINGLE7626805226821SHOO_704.mcs
SHOOTING STARK.HIRAKAWAˆÓŠO‚ÆŠÈ’P‚©‚àEEE7-05☆5.9SINGLE3905102674645SHOO_705.mcs
SHOOTING STARW.ShiomiƒmƒŠ‚Æ—¬‚ê‚Ég‚ð”C‚¹‚Ä8-01☆5.7SINGLE4044682773943SHOO_801.mcs
SHOOTING STARW.ShiomiƒmƒŠ‚ÆƒŠƒYƒ€‚Ég‚ð”C‚¹‚Ä8-02☆5.7DOUBLE4004682743944SHOO_802.mcs
SHOOTING STARKOHEI.T‘–‚êI8-03☆4.2SINGLE390510267434SHOO_803.mcs
SHOOTING STAR???_22‚W•ª‘ꂾ‚炯‚Å‚·B„’è‚k‚u‚Wª8-04☆5.0SINGLE3805102604026SHOO_804.mcs
Silent HillTOMOKAZU-M‚µ‚Á‚­‚è‚Æ1-01☆3.6DOUBLE1902181311848SILE_101.mcs
Silent HillM.MOCHIDUKI‰SŽÒƒXƒeƒbƒvƒAƒbƒv—p•ˆ–Ê1-02☆1.0SINGLE153156106513SILE_102.mcs
Silent HillYAMADA HIDETOSHI‚`‚m‚n‚s‚g‚d‚q‚̕ʂu‚…‚’D1-03☆4.3SINGLE2512501743345SILE_103.mcs
Silent HillKEISUKE.M™X‚É·‚èオ‚Á‚Ä‚«‚Ü‚·B1-04☆3.7COUPLE212/2122501471843SILE_104.mcs
Silent HillEIJI O.‚S‚s‚g@‚o‚k‚t‚r‚Á‚Û‚¢‚Å‚·1-05☆5.3SINGLE3184062204732SILE_105.mcs
Silent HillT.Hirano‚¨‘O’B‚ÌD‚«‚ɂ͂³‚¹‚È‚¢I2-01☆7.1SINGLE5215003617244SILE_201.mcs
Silent HillY.SAKAI‚Ü‚Á‚½‚è“¥‚݂܂µ‚傤2-02☆2.9SINGLE227250157309SILE_202.mcs
Silent HillKubota Mamoru‚³‚í‚â‚©‚ȋȂɂ͎—‡‚í‚È‚¢2-03☆3.6SINGLE2322501612928SILE_203.mcs
Silent HillHAJIME.I‚Ú‚æ‚ñìF‚¢‚ë‚ñ‚È•ˆ–Ê\¬2-04☆4.9SINGLE2933122034340SILE_204.mcs
Silent HillFUMIHIRO ISHIWATAƒvƒŒÃìB‚W•ªƒXƒCƒbƒ`‚ŃJƒƒ„ƒJ2-05☆3.3SINGLE2692501863317SILE_205.mcs
Silent HillA.NAOKI‚f‚‚”‚”‚‚ŽìF‚o‚q‚n‚l‚h‚r3-01☆3.4DOUBLE2712501883616SILE_301.mcs
Silent HillTakahiro.H‘«‚U`‚V3-02☆4.3SINGLE2072501433641SILE_302.mcs
Silent HillH.OIKAWA‹È‚Ì•µˆÍ‹C‚ɇ‚킹‚Ă݂܂µ‚½B4-01☆6.4SINGLE2622811814399SILE_401.mcs
Silent HillS.KUROYANAGIƒXƒeƒbƒv”‚ÌŠ„‚ɂ͓‚¢‚©‚à5-01☆4.3SINGLE1732501203542SILE_501.mcs
Silent HillTomoyuki Takahashi’†‹‰ŽÒ‚̃Xƒ‰ƒCƒh—ûK—pH5-02☆5.1SINGLE3002502084064SILE_502.mcs
Silent HillSATOSHI.HƒmƒŠ‚â‚·‚¢•ˆ–ʂł·BŽ©Mì‚Å‚·B5-03☆4.0SINGLE312343216488SILE_503.mcs
Silent HillKENJI ENDA“¯‚¶ƒ^ƒCƒ~ƒ“ƒO‚Å“¯Žž“¥‚Ý6-01☆6.4SINGLE3232812244894SILE_601.mcs
Silent HillH.Yamaguchiì‚Á‚½‚͉̂ÄB‹Gß‹t‚Å‚·‚ËiÎj6-02☆4.0SINGLE2902812014422SILE_602.mcs
Silent HillKAZUHITO TSUBOTA—}‚¦–Ú‚ÉAŠy‚µ‚¢•ˆ–Ê‚Å‚à‚¢‚©‚ªH7-01☆4.2SINGLE2722811884227SILE_701.mcs
Silent HillSATOSHI HORIUCHIŠy‚µ‚ñ‚Å‚­‚¾‚³‚¢7-02☆3.6SINGLE2752811903715SILE_702.mcs
Silent HillSEIJI.H‚½A‘½•ªƒ€ƒYƒJƒVƒCEEE7-03☆5.2SINGLE3813752645326SILE_703.mcs
Silent HillKAZUTAKA SUEDA‚Ƃɂ©‚­‚ñ‚Å‚­‚¾‚³‚¢B7-04☆5.6SINGLE555500385682SILE_704.mcs
ska a go goN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆6.0SINGLE2714802356740SKAA_301.mcs
ska a go go(another version)TAIGA.OŒ©Ž–‚É‚“‚‹‚‚µ‚Ü‚µ‚½i”šj7-01☆5.3SINGLE3676402935420SKAAA701.mcs
SKY HIGH(DJ MIKO)???_10Œ´‘èu‚r‚s‚d‚w‚Q ‚m‚dv5-01☆4.0SINGLE2392722033232SHDJM501.mcs
SKY HIGH(DJ MIKO)A.NAOKI‚lD‹g“c@ìF‚r‚r5-02☆3.8DOUBLE2002721652532SHDJM502.mcs
SKY HIGH(DJ MIKO)K.IKEMOTO‘«~‚U‚­‚ç‚¢‚Å‚·8-01☆3.6SINGLE2102721742922SHDJM801.mcs
SKY HIGH(DJ MIKO)H.MURATAŠy‚ÉŠy‚µ‚­‚ӂ߂܂·B8-02☆4.2SINGLE2213061834421SHDJM802.mcs
SKY HIGH(LUCYFER)K.TAKEMURA‚¯‚Á‚±‚¤ƒ‰ƒN‚Å‚·B3-01☆5.6SINGLE3173992435833SKYH_301.mcs
SKY HIGH(LUCYFER)A.NAOKI‚f‚‚”‚”‚‚ŽìF“V‹ó‚É•‘‚¤‰HI3-02☆3.9DOUBLE2743192102824SKYH_302.mcs
SKY HIGH(LUCYFER)Y.KAZAMAKIƒXƒJƒCƒnƒCƒXƒJƒCƒnƒCƒXƒJƒCƒn[ƒC3-03☆4.5SINGLE2873592203527SKYH_303.mcs
SKY HIGH(LUCYFER)Daisuke K.ƒA[ƒP[ƒhŒü‚¯’²®Ï‚ÝB‚k‚–D‚W4-01☆4.2DOUBLE3333192664116SHLUC401.mcs
SKY HIGH(LUCYFER)???_09™~‚S4-02☆7.1SINGLE4486393446356SHLUC402.mcs
SKY HIGH(LUCYFER)ABE TaTsuMaƒ^ƒ`‚̈«‚¢ƒXƒeƒbƒv‚ª‚¢‚Á‚Ï‚¢B5-01☆5.6SINGLE3354792576328SHLUC501.mcs
SKY HIGH(LUCYFER)KATSUHIKO KOBAYASHI‹F‚è‚æA‚ ‚Ìl‚Ì‚à‚Æ‚Ö5-02☆5.4SINGLE3473592665734SHLUC502.mcs
SKY HIGH(LUCYFER)Satoru Hata‚±‚Ì–³ŒÀ‚Ì‹ó‚ð‰i‰“‚ÉB5-03☆6.3SINGLE3866392966243SHLUC503.mcs
SKY HIGH(LUCYFER)S.Fujisawaƒm[ƒRƒƒ“ƒgEEE5-04☆4.2SINGLE3433192634117SHLUC504.mcs
SKY HIGH(LUCYFER)T.Hirano‚P‚U•ª‚ÌŽR6-01☆6.5SINGLE3764792894463SHLUC601.mcs
SKY HIGH(LUCYFER)MITHUTOSHI NAKATAˆ¤‚ªŠ´‚¶‚ç‚ê‚éƒXƒeƒbƒvH6-02☆6.1SINGLE2814792165849SHLUC602.mcs
SKY HIGH(LUCYFER)M.HANABUSA޲‘«‚ª•Ï‚í‚é‚Ì‚ªŠy‚µ‚¢‚©‚à6-03☆5.6SINGLE3423992635235SHLUC603.mcs
SKY HIGH(LUCYFER)YASUNORI.U‹ó‚‚­•‘‚¢ã‚ª‚êII6-04☆5.0SINGLE3163192434243SHLUC604.mcs
SKY HIGH(LUCYFER)H.KAWAKAMIƒJƒƒZƒ“Ž‚Ìì•iB6-05☆4.9SINGLE3014392313132SHLUC605.mcs
SKY HIGH(LUCYFER)H.Yamaguchi—Fl‚©‚ç‚̈˗ŠB6-06☆5.1SINGLE2663192044545SHLUC606.mcs
SKY HIGH(LUCYFER)RYO.N.ƒmƒŠƒmƒŠ‚Å‚·B7-01☆6.0SINGLE3683992834747SHLUC701.mcs
SKY HIGH(LUCYFER)K.HIRAKAWA‹È‚Ç‚¨‚è‚Éì‚Á‚Ă݂܂µ‚½7-02☆5.0SINGLE3543992725516SHLUC702.mcs
SKY HIGH(LUCYFER)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆4.6SINGLE3123192393932SHLUC801.mcs
SKY HIGH(LUCYFER)T.OGINOŽè‚È‚çƒNƒŠƒA[‚Å‚«‚é‚©H8-02☆8.0SINGLE5056393886568SHLUC802.mcs
SKY HIGH(LUCYFER)W.Shiomi‚Ƃɂ©‚­ƒmƒŠƒmƒŠ‚Å8-03☆5.4SINGLE3433992744531SHLUC803.mcs
SKY HIGH(LUCYFER)W.Shiomi‚Ƃɂ©‚­ƒmƒŠƒmƒŠ‚Å8-04☆5.2DOUBLE3323592654434SHLUC804.mcs
SKY HIGH(LUCYFER)TOSHIMITU.KURITA㋉ŽÒŒü‚¯@‚¨‚·‚·‚ß8-05☆4.6SINGLE3043592335516SHLUC805.mcs
SMOKEYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.6SINGLE2242701983846SMOK_101.mcs
SMOKE???_02“¯Žž“¥‚ÝŒ™‚¢‚ÈlA‹ÖŽ~I2-01☆6.5SINGLE2405402134672SMOKE201.mcs
SMOKETakahiro.H‘«‚V‚‚­‚ç‚¢3-01☆3.9SINGLE2102701863327SMOK_301.mcs
SMOKEN.MIMURA‚k‚n‚u‚d‚Ý‚½‚­‹[Ž—ŽO˜A“ü‚ê‚Ă܂·4-01☆3.6SINGLE1802701593022SMOKE401.mcs
SMOKEtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-02☆5.4SINGLE2424052145033SMOKE402.mcs
SMOKEIchinose Shinta–{“–‚ÉŠy‚µ‚¢‚Å‚·6-01☆4.1SINGLE2302702044227SMOK_601.mcs
SMOKETAKU YAMAMOTO‚¯‚Á‚±‚¤ƒtƒcƒE‚©‚à7-01☆4.1SINGLE1802701594226SMOKE701.mcs
SMOKEKAZUHITO TSUBOTAƒ}ƒjƒAƒbƒN‚æ‚è‚ÍŠÈ’P‚Å‚µ‚傤B7-02☆4.6SINGLE2192701943945SMOKE702.mcs
SMOKETOMOFUMI YOSHIDA“¯Žž•s–¡‚É‹C‚ð•t‚¯‚ëB7-03☆4.8SINGLE2522702234445SMOKE703.mcs
SO MANY MENYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆5.0SINGLE2183001774248SOMA_101.mcs
SO MANY MENKOUICHI TAKEUCHI‚¿‚傤‚¹‚ñŽÒI‘Ò‚Â3-01☆5.2SINGLE3304812685819SOMA_301.mcs
SO MANY MENH.OIKAWA‚¢‚¢Š´‚¶‚¾‚ÆŽv‚¢‚Ü‚·B4-01☆5.0SINGLE2333001894646SOMA_401.mcs
SO MANY MENMURAI MITSURU‚k‚–D’á‚߂ł·B5-01☆3.6SINGLE2422401965113SMMEN501.mcs
SO MANY MENHAJIME M.‚º‚Љ̂¢‚È‚ª‚çI5-02☆3.4SINGLE1762401433915SMMEN502.mcs
SO MANY MENRYO.N.Œ‹\ƒ€ƒY‚¢‚Å‚·B7-01☆5.1SINGLE2762702245447SOMA_701.mcs
SO MANY MENKOHEI.T—¬‚ê‚邿‚¤‚É‚©‚ë‚â‚©‚ÉB8-01☆4.0SINGLE285360231484SOMA_801.mcs
SO MANY MENShimamoto Satoshi‚P‚U•ª~‚X8-02☆4.1DOUBLE2292701864425SOMA_802.mcs
SP TRIP MACHINE(JUNGLE MIX)KOUICHI KOSAKAƒm[ƒRƒƒ“ƒgEEE1-01☆5.3DOUBLE2833202225443SPTR_101.mcs
SP TRIP MACHINE(JUNGLE MIX)YAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-02☆6.3DOUBLE2583602025070SPTR_102.mcs
SP TRIP MACHINE(JUNGLE MIX)Masaki Hashimotoƒm[ƒRƒƒ“ƒgEEE2-01☆4.3DOUBLE2473201934223SPTR_201.mcs
SP TRIP MACHINE(JUNGLE MIX)T.TAMAI“ïˆÕ“x‚ðdŽ‹‚µ‚Ü‚µ‚½B2-02☆5.2SINGLE3353602624933SPTR_202.mcs
SP TRIP MACHINE(JUNGLE MIX)HAJIME.I‚Ú‚æ‚ñìFŠÈ’P‚©‚àH2-03☆4.5SINGLE2653602085016SPTR_203.mcs
SP TRIP MACHINE(JUNGLE MIX)???_02“¥‚݂ɂ­‚¢‚Å‚·2-04☆5.4SINGLE3003202354651SPTR_204.mcs
SP TRIP MACHINE(JUNGLE MIX)YUKIHIRO.Aì‚Á‚½–{l‚ªˆê”Ô‚í‚©‚è‚Ü‚¹‚ñB2-05☆5.0SINGLE3234802535517SPTR_205.mcs
SP TRIP MACHINE(JUNGLE MIX)K.SUGAI‚r‚g‚o‚r‚o‚s‚O‚Q^‚V2-06☆5.6SINGLE2733202145155SPTR_206.mcs
SP TRIP MACHINE(JUNGLE MIX)K.SUGAI‚r‚g‚o‚r‚o‚s‚O‚P^‚W^ŽžŠÔ·’ˆÓ2-07☆6.4SINGLE2633202065281SPTR_207.mcs
SP TRIP MACHINE(JUNGLE MIX)K.TAKEMURAƒŠƒYƒ€‚»‚̂܂ñ‚܂ł·B2-08☆5.8SINGLE2833602225750SPTR_208.mcs
SP TRIP MACHINE(JUNGLE MIX)T.FUKUZAKI‰ä‚ªƒGƒfƒBl¶i“äj‚ÌW‘å¬2-09☆5.6DOUBLE2956402315536SPTR_209.mcs
SP TRIP MACHINE(JUNGLE MIX)KOSE F‘«‚X‚­‚ç‚¢‚©‚È[2-10☆5.4DOUBLE2963202325445SPTR_210.mcs
SP TRIP MACHINE(JUNGLE MIX)TAKEHIRO-O‚r‚b‚g‚`‚t‚d‚q@–îˆó‚Ì—[—§3-01☆5.6SINGLE3203602515143SPTR_301.mcs
SP TRIP MACHINE(JUNGLE MIX)M.Yamamoto‰¹‡‚킹3-02☆5.1SINGLE2483201945339SPTR_302.mcs
SP TRIP MACHINE(JUNGLE MIX)Ryohei Seki‚â‚Á‚Ï‚s‚q‚h‚o‚Í— ‘Å‚¿•—‚Å‚µ‚åH3-03☆5.8SINGLE2793202194963SPTR_303.mcs
SP TRIP MACHINE(JUNGLE MIX)T.HIRASAWA‚S•ª‚΂Á‚©‚肾‚¯‚ÇEEE4-01☆3.6DOUBLE191160149092SPTR_401.mcs
SP TRIP MACHINE(JUNGLE MIX)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆5.9SINGLE2393601875853SPTR_402.mcs
SP TRIP MACHINE(JUNGLE MIX)SoichI InabAƒNƒZ‚ª‚ ‚邪ŒÂl“IƒIƒXƒXƒ5-01☆5.0SINGLE2523201973450SPTR_501.mcs
SP TRIP MACHINE(JUNGLE MIX)T.MAMIYA“¯Žž“¥‚݃VƒŠ[ƒY‘æ‚Qì‚Å‚·B5-02☆6.6SINGLE22332017518167SPTR_502.mcs
SP TRIP MACHINE(JUNGLE MIX)Kazuhiko ChibaƒgƒŠƒbƒv‚ÈŠ„‚ɂ͌‹\‚܂ƂàH5-03☆5.1SINGLE2213201734148SPTR_503.mcs
SP TRIP MACHINE(JUNGLE MIX)HIGASHI SENSHIROU—Fl‚ªì‚Á‚½‚d‚c‚h‚s‚Å‚·B5-04☆5.8SINGLE2723202135261SPTR_504.mcs
SP TRIP MACHINE(JUNGLE MIX)RYOHEI.T & KENICHI.TƒAƒiƒU[ƒŒƒxƒ‹Aˆê•”ƒ}ƒjƒAƒbƒNB7-01☆5.4SINGLE2033201594454SPTR_701.mcs
special energyJ.GOUKE‹È‚É‚¤‚Ü‚­‚ ‚킹‚½‚‚à‚è‚Å‚·2-01☆3.5SINGLE209245178569NRGC1201.mcs
special energyK.SUGAI‚r‚g‚o‚r‚o‚d‚O‚P^‚V2-02☆5.7SINGLE2232451906072NRGC1202.mcs
stomp to my beatYAMADA HIDETOSHI‚W‚ÌŽš“n‚è‚ ‚è‚Ü‚·1-01☆4.2DOUBLE2633012043926STOMP101.mcs
stomp to my beatYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-02☆4.7SINGLE2763342144332STOMP102.mcs
stomp to my beatKazuki.Koushi‚k‚u‚QFƒWƒƒƒ“ƒv‚Å‘u‰õIŠÈ’PGj1-03☆2.0SINGLE8813368144STOMP103.mcs
stomp to my beatA.NAOKI‚f‚‚”‚”‚‚ŽìF‚f‚`‚s‚s‚`‚m1-04☆5.1DOUBLE2403011863457STOMP104.mcs
stomp to my beatKubota MamoruÅ“ïŠÖ‚Í–³‰¹’n‘Ñ2-01☆3.9SINGLE1882671462537STOMP201.mcs
stomp to my beatY.IMAI‚W•ª˜A‘Å‚ð‚‚Ȃ°‚ç‚ê‚é‚©H2-02☆5.1SINGLE1872671453266STOMP202.mcs
stomp to my beatSUGAWARA TAKASHI”÷–­‚ɓ‚߂ɂȂÁ‚Ä‚¢‚Ü‚·B2-03☆5.2SINGLE2853342214743STOMP203.mcs
stomp to my beatK.SUGAI‚r‚g‚o‚r‚s‚n‚O‚P^‚V2-04☆5.0SINGLE2522671963560STOMP204.mcs
stomp to my beatH.BANDOÅŒãA‚‚Ȃª‚é‚©‚ÈH2-05☆5.9SINGLE2754012144552STOMP205.mcs
stomp to my beatTAKAHIRO.M‚P‚U•ª‚ªƒNƒZŽÒ3-01☆4.3SINGLE2093011623533STOM_301.mcs
stomp to my beatHIROSHI TAKENOUCHIƒŒƒxƒ‹‚S4-01☆1.8SINGLE1681671301512STOMP401.mcs
stomp to my beatHIROSHI TAKENOUCHIƒŒƒxƒ‹‚T4-02☆3.0SINGLE1702001321540STOMP402.mcs
stomp to my beatHIROSHI TAKENOUCHIƒŒƒxƒ‹‚V4-03☆4.5SINGLE2293011783440STOMP403.mcs
stomp to my beatY.KAWABEVƒ}ƒjƒAƒbƒN‚ÉŽ—‚Ă邩‚à4-04☆5.7SINGLE3134352435438STOMP404.mcs
stomp to my beatH.OIKAWA‚r‚j‚`‚Ì—ûK—p‚Éì‚Á‚½‚à‚̂ł·B4-05☆6.6SINGLE3495352715563STOMP405.mcs
stomp to my beatKazuhiko Chiba’x‚¢‚©‚çŽv‚Á‚½‚æ‚艽‚Æ‚©‚È‚éIH5-01☆5.1SINGLE2555351984926STOMP501.mcs
stomp to my beatKEIGO.H‚c‚n‚t‚a‚k‚d@‚l‚r‚o5-02☆3.7DOUBLE2432671893523STOMP502.mcs
stomp to my beatJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.4SINGLE3425352665925STOMP601.mcs
stomp to my beat???_16‚Ü‚ ‚Ü‚ 6-02☆4.8SINGLE2413341923739STOMP602.mcs
stomp to my beatTAIGA.O‚Ü[‚Ü[‚¾‚Á‚½B7-01☆3.6SINGLE1912671482429STOMP701.mcs
stomp to my beatRyosuke.Tƒ|ƒ“ƒsƒ“ƒ|ƒ“ƒsƒ“II7-02☆5.4SINGLE3595352796220STOMP702.mcs
stomp to my beatK.KAWASE‚Ü‚ ‚Ü‚ ‚Å‚·B7-03☆4.4SINGLE2673342074620STOMP703.mcs
stomp to my beatTATSURO SAKAGUCHIlŠÔŽ«‚ß‚½‚ç“¥‚߂܂·iÎj7-04☆6.5SINGLE3605352806155STOMP704.mcs
stomp to my beatHAJIME.I‚Ú‚æ‚ñìF’†”Õ‚ª–Ê”’‚¢8-01☆4.2SINGLE2483681934511STOMP801.mcs
stomp to my beatKOHEI.TƒXƒgƒ“ƒsƒ“ƒXƒgƒ“ƒsƒ“I8-02☆5.3SINGLE2934012284830STOMP802.mcs
STRICTLY BUSINESSSHOTA,SAITOH.ŒÃ“T“IƒXƒeƒbƒv‚ðW‚߂Ă¢‚Ü‚·B1-01☆1.6SINGLE150156111630STRI_101.mcs
STRICTLY BUSINESSSHIBATA JUNICHI‘¬“x‚Í’x‚¢‚Å‚·‚ª‚P‚U•ª‚ª˜A‘±‚ÅI1-02☆5.6SINGLE3984382966024STRI_102.mcs
STRICTLY BUSINESSJ.GOUKEƒXƒNƒ‰ƒbƒ`‚𓥂ÞB2-01☆4.8SINGLE2623751954921STRI_201.mcs
STRICTLY BUSINESSY.IMAI–Z‚µ‚¢ƒrƒWƒlƒXƒ}ƒ“‚̂悤‚É2-02☆4.5SINGLE2103131563239STRI_202.mcs
STRICTLY BUSINESSK.SUGAI‚r‚g‚o‚a‚t‚r‚O‚P^‚W2-03☆3.7SINGLE3002502235113STRI_203.mcs
STRICTLY BUSINESSY.ISHIDAƒrƒWƒlƒXF‚ðŽc‚µ‚‚“ï“xƒAƒbƒvB3-01☆6.0SINGLE3824062846037STRI_301.mcs
STRICTLY BUSINESSM.Yamamotô‚­‚Á‚½‚É‚µ‚Ă͂¢‚¢ƒfƒL3-02☆4.9SINGLE2833752104329STRI_302.mcs
STRICTLY BUSINESSHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆2.9SINGLE275250204460STRI_401.mcs
STRICTLY BUSINESSMURAI MITSURU—BˆêA‚c‚l‚ª‚È‚¢‚Ì‚Åì‚è‚Ü‚µ‚½B5-01☆4.5DOUBLE3343752485310STRIC501.mcs
STRICTLY BUSINESSDAISUKE A.ŽOŽO޵”Žq‚ª“Á’¥‚Å‚·B6-01☆3.2SINGLE2132191582626STRI_601.mcs
STRUT YOUR FUNKY STUFFN.KAZUMA—D‚µ‚ß‚©‚Šy‚µ‚¢‚Å‚·B3-01☆4.7SINGLE2963402284725STRU_301.mcs
STRUT YOUR FUNKY STUFFHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE257374198544STRUT401.mcs
STRUT YOUR FUNKY STUFFA.NAOKI‚f‚‚”‚”‚‚ŽìF‚v‚`‚a‚h‚r‚`‚a‚h5-01☆4.7DOUBLE2622722023451STRUT501.mcs
STRUT YOUR FUNKY STUFFRYO SAKAI‚₳‚µ‚¢ƒXƒeƒbƒv‚¾‚æB7-01☆0.2SINGLE891366800STRUT701.mcs
STRUT YOUR FUNKY STUFFH.MURATAƒm[ƒRƒƒ“ƒgEEE8-01☆5.6SINGLE2753062123970STRUT801.mcs
SUPER STARA.NAOKI‚lD‹g“c@ìF‚c‚c‚q@‚r‚s‚`‚q3-01☆5.5DOUBLE2702562104571SUPE_301.mcs
SUPER STARY.ISHIDAƒ‰ƒbƒv‚ɇ‚킹‚Ă݂½‚‚à‚è‚Å‚·B3-02☆5.7SINGLE4365123406514SUPE_302.mcs
SUPER STARN.KAZUMAƒŠƒYƒ€‚ª‚í‚©‚邯Šy‚µ‚¢II3-03☆5.9SINGLE3365122625839SUPE_303.mcs
SUPER STAR???_05‚¢‚´A‹C‡ˆê”­I3-04☆5.2SINGLE430512335664SUPE_304.mcs
SUPER STARJun T.Œø‰Ê‰¹‚É“¯Žž“¥‚ÝB4-01☆6.2SINGLE3205122495055SUPER401.mcs
SUPER STARD.OSHIMAƒxƒ^‚È‚d‚c‚h‚s‚ŃSƒƒ“ƒlB4-02☆5.5SINGLE3655122845626SUPER402.mcs
SUPER STARKouki.UƒLƒcƒC‚¾‚¯4-03☆5.3SINGLE3605122885918SUPER403.mcs
SUPER STARHIROKI.N‚R‚S`‚R‚U¬ß‚ͪ«‚ÅiÎjB5-01☆5.1SINGLE3595122806014SUPER501.mcs
SUPER STARKATSUHIKO KOBAYASHI–\‘–‚ðH‚¢Ž~‚ß‚ë5-02☆5.8SINGLE2955122305443SUPER502.mcs
SUPER STARH.KAWAKAMI“¯Žž‚ƕБ«‚Ì•¡‡6-01☆8.4SINGLE35151227356137SUPER601.mcs
SUPER STARTAKESHI MATSUMOTOƒ‰ƒXƒg‚ª‹S‚©‚ÈHŠæ’£‚Á‚ÂȂ°‚Ä7-01☆4.9SINGLE3305122576510SUPER701.mcs
SUPER STARD KYUTOKUƒXƒ^[‚ɂȂê‚é‚©H¯‚ɂȂ邩H7-02☆5.1SINGLE378512295649SUPER702.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)SHIBATA JUNICHI‰¹Šy‚ɇ‚킹‚Äì‚Á‚ÄŒ©‚Ü‚µ‚½I1-01☆5.1SINGLE507450339584SYNC_101.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)A.NAOKI‚lD‹g“c@ìF‚q‚dI‚hI‚j‚tI1-02☆4.2DOUBLE2252251502100SYNC_102.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_01ƒRƒb‚Ă܃XB1-03☆5.0SINGLE4104122745613SYNC_103.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)T.TAMAI‰SŽÒ—p‚Éì¬B2-01☆0.8SINGLE1151507709SYNC_201.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Kubota Mamoru‚k‚…‚”f‚“@‚f‚I‚ª‘S‚ÄH2-02☆3.5SINGLE2563001711730SYNC_202.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)HAJIME.I‚Ú‚æ‚ñìF— ”‚ð’†S‚É2-03☆4.6SINGLE3393372275021SYNC_203.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)S.ADACHI‚b‚l‚Ì‚²‚Æ‚­—x‚èŽU‚ê`I2-04☆8.4SINGLE40445027060123SYNC_204.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)M.IWAKURA‚²—˜—p‚ÍŒv‰æ“I‚ÉB“ï“x‚W’ö“xB2-05☆4.8SINGLE3553002375034SYNC_205.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)KOSE F‚¨‚Ç‚ê‚é‚Ó‚ß‚ñ‚ð–ÚŽw‚µ‚Ü‚µ‚½2-06☆3.8DOUBLE3143002104412SYNC_206.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)YUSUKE.Kˆê”Ôʼn‚Éì‚è‚Ü‚µ‚½3-01☆6.3SINGLE4036002695653SYNC_301.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_03ƒ}ƒjƒAƒbƒN‚ð‚©‚ñ‚½‚ñ‚É‚µ‚½‚â‚Â3-02☆4.8SINGLE2963001983349SYNC_302.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)YASUHIRO.OƒŠƒYƒ€’Ê‚è‚Éì»BŠy‚µ‚¢‚Å‚·3-03☆4.2SINGLE3373002254422SYNC_303.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Y.KAZAMAKI•’ÊB–I•’ÊB3-04☆4.2SINGLE3553002374522SYNC_304.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)RYOSUKE TAKASHIMA‚l‚`‚m‚h‚`‚b‚ª‚Å‚«‚ê‚ÎB3-05☆6.1SINGLE5124503426128SYNC_305.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_05‚±‚̃Xƒeƒbƒv‚àƒIƒXƒXƒI3-06☆6.0SINGLE4724503165933SYNC_306.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)NAOyuki-Tachihara‚T‚V‚R‚Ì‚Q‚–ÚBìŽÒ‚T‚V‚RÏB3-07☆5.6SINGLE573525383613SYNC_307.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)T.TSUKAMOTOƒm[ƒRƒƒ“ƒgEEE4-01☆4.6SINGLE4063752715410SYNC_401.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)T.NAGSAKi‘¦È•ˆ–Ê‚»‚Ì‚P4-02☆4.4SINGLE2241501500189SYNC_402.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Y.KAWABE–{“–‚Í‚x‚͂̂‚à‚èc4-03☆6.0SINGLE3124122085647SYNC_403.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)H.OIKAWAD‚«‚È—l‚É‚µ‚Ü‚µ‚½B4-04☆8.3SINGLE38060025459122SYNC_404.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆5.8SINGLE3833752565146SYNC_405.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_09™~‚T4-06☆7.1SINGLE6135624106728SYNC_406.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)SEIJI W.Šî–{“I‚ɂ̓ƒƒfƒB[’Ê‚è‚Å‚·5-01☆5.7SINGLE3703752475742SYNC_501.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)HIROKI.Nƒ{[ƒJƒ‹A‰¹‡‚킹‚Å‚·B5-02☆4.4SINGLE385375257557SYNC_502.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Yuto Jijiwaƒ”ƒH[ƒJƒ‹‚Æ‚ ‚Á‚ĂȂ¢‚©‚à5-03☆5.7SINGLE2973371985452SYNC_503.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Tetsuya S.‚±‚Ì–¼‹È‚ð‚º‚Ð‰SŽÒ‚ÌŠF—l‚ÉB5-04☆1.3COUPLE80/8011253029SYNC_504.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Keisuke OgiwaraŽ„‚ªì‚邯A‚¢‚Â‚à‚±‚ñ‚È•—‚Éi‹ƒ6-01☆4.6SINGLE3003002004235SYNC_601.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_16‰Â‚à‚È‚­•s‰Â‚à‚È‚­6-02☆6.1SINGLE3734122494655SYNC_602.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)KENJI ENDAŒðŒÝ“¥‚Ý‚Åì‚Á‚Ä‚ ‚è‚Ü‚·6-03☆6.1SOLO3953752645553SYNC_603.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)MITHUTOSHI NAKATA“¯Žž‰Ÿ‚µ‚É’ˆÓB6-04☆6.2SINGLE3313752215760SYNC_604.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)SHIGERU ARAI‚Ƃ肠‚¦‚¸A΂Á‚ĉº‚³‚¢B6-05☆7.1SINGLE30030020038125SYNC_605.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_18‘«‚¶‚ჀƒŠ‚©‚ÈH6-06☆5.0SINGLE2843751905821SYNC_606.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_19‹†‹É‚̈ê•iB6-07☆6.5SINGLE5465623656431SYNC_607.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)N_Watanabe‚u‚‚ƒ‚‚Œ‚ɇ‚킹‚½ƒXƒeƒbƒv‚Å‚·7-01☆6.4SINGLE4164122785357SYNC_701.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)Yasunobu OkudaƒIƒXƒXƒ‚̈ê•iII7-02☆5.9SINGLE2983751996248SYNC_702.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)DAISUKE KAMISAKA‹C‚¢‚½‚ç‚S‚O‚O‚±‚¦‚Ä‚¢‚Ü‚µ‚½B7-03☆4.1SINGLE4023002694813SYNC_703.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)???_21— ‘Å‚¿—ûK—p‚Å‚·B7-04☆5.0SINGLE3673002454841SYNC_704.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)KAZUTAKA SUEDA‚È‚©‚È‚©‚¢‚¢Š´‚¶B7-05☆5.3SINGLE530487354594SYNC_705.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)D KYUTOKU‚²—˜—p‚ÍŒv‰æ“I‚ÉI7-06☆4.7SINGLE2983371995723SYNC_706.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)K.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.5SINGLE3763752514839SYNC_801.mcs
SYNCHRONIZED LOVE(Red Monster Hyper Mix)H.MURATAƒIƒtƒBƒVƒƒƒ‹“I‚Å‚·‚݂܂¹‚ñB8-02☆5.9SINGLE3453752314854SYNC_802.mcs
TEMPLE OF LOVEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚P‚O‚o‚q‚`‚k‚t‚u5-01☆4.3DOUBLE2752841913932TOLUV501.mcs
TEMPLE OF LOVEH.MURATAƒm[ƒRƒƒ“ƒgEEE8-01☆5.1SINGLE3062842134750TEMP_801.mcs
THAT'S THE WAY '98A.NAOKI‚f‚‚”‚”‚‚ŽìF‚`‚g‚`@‚`‚g‚`3-01☆4.8DOUBLE2142511683062TTW98301.mcs
THAT'S THE WAY '98TOMOKAZU-M‚r‚‚Œ‚ƒ_ƒuƒ‹‚µ‚½‚©‚Á‚½ˆ×4-01☆3.9DOUBLE2632832074717TTW98401.mcs
THAT'S THE WAY '98HIROKI.NÅŒã‚͂̂ñ‚т肵‚ĉº‚³‚¢B5-01☆5.1SINGLE2422831905247TTW98501.mcs
THAT'S THE WAY '98ABE TaTsuMa‚¯‚Á‚±‚¤ˆÕ‚µ‚ßB5-02☆4.4SINGLE2252511774836TTW98502.mcs
THAT'S THE WAY '98Kiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-01☆5.9COUPLE208/2082511634687TTW98601.mcs
THAT'S THE WAY '98TOMOFUMI YOSHIDAƒ‰ƒbƒv‚̺‚ɇ‚킹‚ĉº‚³‚¢B7-01☆6.1COUPLE348/3484722746143TTW98701.mcs
THAT'S THE WAY '98D KYUTOKU‰ä‚ª“¹‚ðs‚¯I7-02☆5.3SINGLE2793772195930TTW98702.mcs
THAT'S THE WAY '98H.MURATAƒm[ƒRƒƒ“ƒgEEE8-01☆4.2SINGLE2392511884532THA98801.mcs
THAT'S THE WAY(I LIKE IT)M.MOCHIDUKIcƒ~ƒ‰[•ˆ–Ê1-01☆2.6SINGLE1481901182120THATS101.mcs
THAT'S THE WAY(I LIKE IT)S.NIHEIƒŠƒYƒ€‚ɇ‚킹‚Äì‚è‚Ü‚µ‚½1-02☆3.7SINGLE2032171624126THATS102.mcs
THAT'S THE WAY(I LIKE IT)H.BANDO‚¢‚«‚ ‚½‚è‚΂Á‚½‚èB2-01☆5.7SINGLE2642992116057THATS201.mcs
THAT'S THE WAY(I LIKE IT)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆3.7SINGLE1762171415418TTWAY401.mcs
THAT'S THE WAY(I LIKE IT)KEIGO.H‚r‚h‚m‚f‚k‚d@‚h@‚Œ‚‰‚‹‚…@‚‰‚”5-01☆4.4SINGLE1801901445642THATS501.mcs
THAT'S THE WAY(I LIKE IT)M.OoebesuƒcƒCƒ“ƒr[Bu‚s‚g‚d@‚R‚v‚`‚xv6-01☆4.0SINGLE2322171854334THATS601.mcs
THAT'S THE WAY(I LIKE IT)???_16‚È‚ñ‚Å‚±‚ñ‚È•ˆ–ʂɂȂÁ‚½‚Ì‚¾‚낤6-02☆4.8SINGLE2713262175329THATS602.mcs
THAT'S THE WAY(I LIKE IT)M.HANABUSA‚Ü‚é‚Á‚«‚è‚V‚W‚ðƒCƒ[ƒW‚µ‚Ü‚µ‚½6-03☆6.3SINGLE3114352495754THATS603.mcs
THAT'S THE WAY(I LIKE IT)Kouzou.NƒAƒiƒU[‚Å‚·7-01☆2.9SINGLE208272166420TTW__701.mcs
THAT'S THE WAY(I LIKE IT)Kouzou.Nƒ}ƒjƒAƒbƒN‚Å‚·7-02☆6.2SINGLE2082721664296TTW__702.mcs
THAT'S THE WAY(I LIKE IT)HAJIME.I‚Ú‚æ‚ñìFƒ\ƒ‚ÉŽ—‚½ƒŠƒYƒ€8-01☆2.8SINGLE212217169443THATS801.mcs
THE 7 JUMPTOMOKAZU-M‚±‚ñ‚ÈŠ´‚¶1-01☆2.5DOUBLE1852061381132THE7_101.mcs
THE 7 JUMPKazuki.KoushiƒLƒŒƒC‚É‚P‚U•ª‚ðŽg‚Á‚½Å‚Œ†ìI1-02☆4.9SINGLE2482751853954THE7_102.mcs
THE 7 JUMPYASUHIRO.Oƒ}ƒjƒAƒbƒN‚ÌƒŠƒƒCƒNƒo[ƒWƒ‡ƒ“1-03☆4.0SINGLE2273101703422THE7_103.mcs
THE 7 JUMPA.NAOKI‚lD‹g“c@ìF‚â‚Á‚½‚à‚ñŸ‚¿1-04☆5.5SINGLE2002751492686THE7_104.mcs
THE 7 JUMPHIROAKI.TƒWƒƒƒ“ƒv‚ƃXƒLƒbƒv‚ªƒƒCƒ“‚Å‚·B1-05☆4.4DOUBLE1592751192750THE7_105.mcs
THE 7 JUMPJ.GOUKE‹È‚É‚ ‚킹‚ÄB2-01☆3.9SINGLE1772411323136THE7_201.mcs
THE 7 JUMPYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚S‚O2-02☆4.2SINGLE3032752274724THE7_202.mcs
THE 7 JUMPHAJIME.I‚Ú‚æ‚ñìF‹È‚Ì•µˆÍ‹C‚»‚̂܂Ü2-03☆3.7SINGLE2223101663019THE7_203.mcs
THE 7 JUMPKEISUKE.S‚µ‚¸‚©‚È‚±‚Í‚ñ‚Ì`ôiˆá‚¤j2-04☆5.8SINGLE2443101823082THE7_204.mcs
THE 7 JUMPO.YAMAMOTO“¯Žž‰Ÿ‚µ‚ª‚V‚OŒÂ‚Å‚·B2-05☆5.2SINGLE2282751703070THE7_205.mcs
THE 7 JUMPM.IWAKURA’µ‚˂܂µ‚傤B“ï“x‚V’ö“xB2-06☆3.5SINGLE2582751933317THE7_206.mcs
THE 7 JUMPH.TARUMI‰Ì‚¢‚È‚ª‚çƒvƒŒƒC‚Å‚«‚é‚©‚à2-07☆4.8SINGLE2532751894545THE7_207.mcs
THE 7 JUMPY.ISHIDA”Žš‚É‚±‚¾‚í‚Á‚Ă݂܂µ‚½B3-01☆5.6SINGLE2732412043984THE7_301.mcs
THE 7 JUMPtakara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-01☆6.9SINGLE3355512515080THE7_401.mcs
THE 7 JUMPK.GOTOU˜”Õ‚ªƒJƒM‚©I5-01☆5.3SINGLE2502751874461THE7_501.mcs
THE 7 JUMPK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-02☆4.8SINGLE3394132544816THE7_502.mcs
THE 7 JUMPNAOTO M.ƒgƒŠƒbƒN‚®‚ç‚¢‚̂ނ¸‚©‚µ‚³‚Å‚·B6-01☆4.2SINGLE2932752195024THE7_601.mcs
THE 7 JUMPToshihide Fujita•à‚¢‚Ä‚¢‚ê‚ÎF‚ñ‚ÈŽ–‚ ‚è‚Ü‚·B6-02☆5.4DOUBLE2565511914039THE7_602.mcs
THE EARTH LIGHTH.KAWAKAMIÀ‚¯‚Ü‚·B1-01☆7.7COUPLE443/4434713146783EARTH101.mcs
THE EARTH LIGHTSINOMIYA.Y‚±‚ê‚ðƒCƒ`ƒIƒV‚É‚µ‚Ä‚à‚æ‚©‚Á‚½1-02☆5.2SINGLE4384353116211EARTH102.mcs
THE EARTH LIGHTY.IMAI‹È‚Ì”¼‚΂ɃAƒs[ƒ‹ƒ|ƒCƒ“ƒg—L‚è2-01☆4.7SINGLE2432901723053TELC2201.mcs
THE EARTH LIGHTN.NAMIKAWAƒr[ƒgƒ}ƒjƒA’‰ŽÀÄŒ»‚Å‚·B3-01☆6.3SINGLE4634713296633EARTH301.mcs
THE EARTH LIGHTTAKESHI.NUMAO‹È‚Éæ‚¹‚Ü‚µ‚½B3-02☆4.7SINGLE401435285643EARTH302.mcs
THE EARTH LIGHTSAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-03☆5.1COUPLE303/3033982155025EARTH303.mcs
THE EARTH LIGHTKouki.U‚P‚U•ª‚ªEEE4-01☆5.1SINGLE3523982505919EARTH401.mcs
THE EARTH LIGHTY.TSUDAƒr[ƒgƒ}ƒjƒA‚ð‚à‚Æ‚Éì‚è‚Ü‚µ‚½B5-01☆5.4SINGLE4364713096814TELC2501.mcs
THE EARTH LIGHTMits-hide ObataŒƒ‚µ‚¢‚̂ɈӊO‚ÆŠy‚µ‚­“¥‚߂܂·5-02☆6.2SINGLE4064712886740TELC2502.mcs
THE EARTH LIGHTYASUSHI.Fƒgƒ‰ƒ“–½II6-01☆5.3SINGLE4154352956614TELC2601.mcs
THE EARTH LIGHTIchinose Shinta‚±‚ê‚ðƒtƒ‹ƒRƒ“ƒ{‚µ‚½‚ç‚·‚²‚·‚¬‚é6-02☆5.1SINGLE3423622436026TELC2602.mcs
THE EARTH LIGHT???_17‰´“I—DGÜiÎj6-03☆5.9SINGLE3393622415252TELC2603.mcs
THE EARTH LIGHTRyosuke.Tƒgƒ‰ƒ“@‚c‚c‚qioA‚µ‚È‚¢‚©‚ÈH7-01☆5.4SINGLE4405073126713EARTH701.mcs
THE EARTH LIGHTF.ATHUSHI“Á‚ɂȂµ7-02☆5.7SINGLE3804352705533EARTH702.mcs
THE EARTH LIGHTTOSHIMITU.KURITA㋉ŽÒŒü‚¯@‚¨‚·‚·‚ß8-01☆4.9SINGLE3034352154919EARTH801.mcs
THE RACEYAMADA HIDETOSHIƒ|[ƒY‚ðƒL‚߂ĂËI1-01☆4.5DOUBLE2542861893044RACE_101.mcs
THE RACETAKENAKA TAKAHIROƒ{[ƒJƒ‹‚É‚ ‚킹‚Ü‚µ‚½B2-01☆4.0SINGLE2112861573626RACE_201.mcs
THE RACEK.SUGAI‚r‚g‚o‚q‚`‚b‚O‚P^‚W^—¼‘«’ˆÓ2-02☆5.4SINGLE3073572284050RACE_202.mcs
THE RACEM.Yamamoto‰¹‡‚킹3-01☆5.5SINGLE3043212265250RACE_301.mcs
THE RACETAKAHIRO.M‹È‚ɇ‚킹‚Äì‚Á‚½‚Í‚¸‚¾‚ªc3-02☆1.9SINGLE1532141131310RACE_302.mcs
THE RACEYUUSUKE.M‚r‚`‚l‚à‚Ñ‚Á‚­‚èIƒAƒ†ƒŒƒfƒB[5-01☆4.3COUPLE357/360357265565RACE_501.mcs
THE RACEF.KATOU‚r‚r‚q‘S‹È‘Sƒ‚[ƒhƒNƒŠƒA‹L”OI5-02☆4.7DOUBLE3373572515318RACE_502.mcs
THE RACEKatsuhiko Kinoshita‰¹‚É‚ ‚킹‚Ä5-03☆3.5SINGLE2072861543314RACE_503.mcs
THE RACEM.OoebesuƒŒƒxƒ‹‚VB‚P‚U•ªƒiƒV6-01☆4.3SINGLE2782862073832RACE_601.mcs
THE RACES.SATAKEƒMƒ^[‘åD‚«I6-02☆5.3SINGLE3702862754850RACE_602.mcs
THE RACESHIGERU ARAI‘O”¼‘ê‚É“ä‚̃lƒ^”z’u‚ ‚èB6-03☆5.7SINGLE3233932404842RACE_603.mcs
THE RACE???_18ŽÔD‚«‚Å‚·‚©`H6-04☆4.2SINGLE1582501174136RACE_604.mcs
THE RACEKouzou.N’ÊÌuƒuƒ“ƒuƒ“ƒXƒeƒbƒvv7-01☆4.0SINGLE1722501285718RACE_701.mcs
THE RACE???_21ƒXƒLƒbƒv—ûK—pi’†‹‰j7-02☆4.2SINGLE3413212534516RACE_702.mcs
THE RACERYO.N.Ìì‚Á‚½•¨‚Å‚·B7-03☆5.1SINGLE2942862184153RACE_703.mcs
THE RACEK.MASIMAƒGƒ“ƒWƒ“‰¹‚Éæ‚Á‚ÄB8-01☆5.3SINGLE2112501576154RACE_801.mcs
the rhyme brokersShimamoto Satoshi—Ç‚¢‚Å‚«‚Å‚·B8-01☆5.2SINGLE2503411895935RHYME801.mcs
The Theme from Flo-JackY_TATE‹@ŠB“I‚È•ˆ–ʂł·B¶‘«’ˆÓ1-01☆2.9SINGLE234186143555TFFLO101.mcs
The Theme from Flo-JackH.TARUMIƒXƒ[ƒeƒ“ƒ|‚¾‚¯‚NJ­‚È‚¢‚©‚à2-01☆6.1SINGLE3243251986862FLOC1201.mcs
The Theme from Flo-JackHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆2.3SINGLE167139104580TTFFJ401.mcs
The Theme from Flo-JackTAKU YAMAMOTO‚|‚†‚Œ‚‚Æ‚¢‚Á‚½‚çƒRƒŒ7-01☆4.9SINGLE2102321286446TFFLO701.mcs
The Theme from Flo-JackSATOSHI M.‚q•‚a‚Æ‚¢‚¦‚̓RƒŒI7-02☆4.2SINGLE1951621225743TFFLO702.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)A.NAOKI‚lD‹g“c@ìF‚R†3-01☆5.1DOUBLE2502841745148THEM_301.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)Kei.U— ‘Å‚¿‚ª‘½‚­‚È‚Á‚Ă܂·B5-01☆4.1SINGLE2722841895219TFETD501.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)S.SATAKE‚±‚̉f‰æ¡Œ©‚Ü‚µ‚½6-01☆6.4SINGLE2275681586556TFETD601.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)YOSHiHiKO KAJiYAƒtƒbƒgƒ[ƒN‚Ì—ûK‚É¥”ñ6-02☆8.0SINGLE30256821046164TFETD602.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)N.NAMIKAWA‰¹‚𒉎ÀÄŒ»B7-01☆5.1SINGLE1695681175919THEME701.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)SEIJI.H‚½A‘½•ªƒLƒcƒCEEE7-02☆5.3SINGLE2843551975935THEME702.mcs
THEME FROM ENTER THE DRAGON(Revival 2001 MIX)K.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.9SINGLE3993552776244THEME801.mcs
think ya better DYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.6SINGLE3052721994339TYBD_101.mcs
think ya better DHIROKI TAKAHASHI‚P‚U•ª‚𓥂މõŠ´‚ª‚‡‚‚‚„I2-01☆4.7SINGLE3363062195031THINK201.mcs
think ya better DTAKENAKA TAKAHIRO‚P‚U~‚R‚̃‰ƒbƒVƒ…‚Å‚·B2-02☆4.1SINGLE2913061904518THINK202.mcs
think ya better D???_03ƒXƒs[ƒhƒXƒeƒbƒvI3-01☆5.5SINGLE3585442344637THIN_301.mcs
think ya better DYASUHIRO.OŒã”¼‚Í‚W•ª‚̃mƒ“ƒXƒgƒbƒv3-02☆3.5DOUBLE343272224459THIN_302.mcs
think ya better D???_04‚k‚–‚P‚OD^‚l‚`‚q‚j3-03☆5.5SINGLE3655442385531THIN_303.mcs
think ya better DM.Yamamoto‚±‚̋ȃƒ“ƒO‚Å‚â‚肽‚¢3-04☆4.7SINGLE3003741963430THIN_304.mcs
think ya better DHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.2SINGLE2662721733039TYBD_401.mcs
think ya better DY.TSUDA‚Ƃɂ©‚­‚â‚₱‚µ‚¢B5-01☆3.9SINGLE372306243537TYBD_501.mcs
think ya better DYuto Jijiwaƒ^ƒCƒ~ƒ“ƒO‚³‚¦‚‚©‚ß‚ê‚ΊȒP5-02☆5.1SINGLE3292722155052TYBD_502.mcs
think ya better DTomoyuki Takahashi‚P‚U•ªƒsƒAƒm˜A‘ŃXƒeƒbƒviÎj5-03☆3.9SINGLE331306216529TYBD_503.mcs
think ya better D???_20Šy‚µ‚­7-01☆5.9SINGLE3925442565938TYBD_701.mcs
think ya better DSATOSHI M.’P’²‚Ì’†‚̃€ƒY‚©‚µ‚³B7-02☆6.4SINGLE3003401964483TYBD_702.mcs
think ya better DHAJIME.I‚Ú‚æ‚ñìF–³“ï‚È•ˆ–Ê‚É8-01☆4.0SINGLE2963061934517TYBD_801.mcs
TOGETHER & FOREVER(CAPTAIN JACK)TSUJI JUNNYAƒTƒr‚Ì•”•ª‚Ì‚ðæ‚èØ‚ê‚é‚©H3-01☆5.8SINGLE3363002374668T&FCJ301.mcs
TOGETHER & FOREVER(CAPTAIN JACK)TAISHI K.‚b‚`‚o‚s‚`‚h‚m@‚i‚`‚b‚jƒoƒ“ƒUƒC4-01☆6.5SINGLE3153002224595T&FCJ401.mcs
TOGETHER & FOREVER(CAPTAIN JACK)K.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚a5-01☆4.7SINGLE3533372495024T&FCJ501.mcs
TOGETHER & FOREVER(NINEBALL feat...)TSUJI JUNNYAˆÓŠO‚ÆŠy‚µ‚¢‚©‚àEEE3-01☆4.3SINGLE2873002113730T&F9B301.mcs
TRIP MACHINEYAMADA HIDETOSHI‚l‚`‚m‚h‚`‚b‚̕ʂu‚…‚’D1-01☆5.2SINGLE2823202173753TRIP_101.mcs
TRIP MACHINEKazuki.Koushi‚X‚O“x“¥‚Ý‚ªD‚«‚È•û‚Ö•ù‚®1-02☆2.3SINGLE174240133231TRIP_102.mcs
TRIP MACHINEJ.GOUKE‚d‚w‚k|‚s‚q‚h‚o@‚l‚`‚b‚g‚h‚m‚d2-01☆5.8SINGLE2744002105840TRIP_201.mcs
TRIP MACHINEY.SAKAI’†”Õ‚ªƒJƒM‚Å‚·B2-02☆3.9DOUBLE309320237478TRIP_202.mcs
TRIP MACHINEY.IMAI‚È‚©‚È‚©ƒgƒŠƒbƒL[B‚æ‚­Œ©‚Ä2-03☆5.1SINGLE2202801693560TRIP_203.mcs
TRIP MACHINEK.SUGAI‚r‚g‚o‚s‚q‚o‚O‚P^‚V2-04☆5.7SINGLE2462801893483TRIP_204.mcs
TRIP MACHINEM.Yamamoto‚R‚’‚„‚¾‚ƃYƒŒ‚Ü‚·3-01☆3.9SINGLE2462801893724TRIP_301.mcs
TRIP MACHINETakahiro.H‚æ‚è•s‹K‘¥‚É3-02☆4.5SINGLE2703202075023TRIP_302.mcs
TRIP MACHINET.HIRASAWAƒŠƒgƒ‹Š|‚¯‚Ä‚àH4-01☆3.5DOUBLE182240140271TRIP_401.mcs
TRIP MACHINESoichI InabA‚±‚ê‚ŃgƒŠƒbƒv‚͓‚¢‚©‚à5-01☆5.0SINGLE2423201862067TRIP_501.mcs
TRIP MACHINET.MAMIYA“¯Žž“¥‚݃VƒŠ[ƒY‘æ‚Pì‚Å‚·B5-02☆5.7SINGLE21124016213157TRIP_502.mcs
TRIP MACHINEK.WAKAKIƒgƒŠƒbƒv‚µ‚Ü‚·7-01☆4.0SINGLE2363201814017TRIP_701.mcs
TRIP MACHINEK.KAWASEŠy‚µ‚­“¥‚߂܂·‚æB7-02☆4.3SINGLE2613202003230TRIP_702.mcs
TRIP MACHINEK.KAWASÊȂñ‚ƂȂ­ì‚Á‚½ƒ„ƒc‚Å‚·B7-03☆5.1COUPLE212/2112801632672TRIP_703.mcs
TRIP MACHINENorihiro Kitamura‚R‚’‚„‚Ì‚l‚c‚o‚Ì‘W•Ò‚Å‚·7-04☆4.1DOUBLE3323202554016TRIP_704.mcs
TRIP MACHINE CLIMAXYAMADA HIDETOSHI— ‰¹Šî’²1-01☆5.1SINGLE2983602273346TRIPC101.mcs
TRIP MACHINE CLIMAXmurai mitsuru‚¢‚â‚ÈƒŠƒYƒ€‚ɂł«‚Ă܂·B1-02☆6.1SINGLE3605402744653TRIPC102.mcs
TRIP MACHINE CLIMAXHIROKI.NƒgƒŠƒvƒb‚ĉº‚³‚¢iÎjB1-03☆5.1SINGLE3663602794728TRIPC103.mcs
TRIP MACHINE CLIMAXHIROKI.NŒã”¼‚ªŸ•‰‚Å‚·B1-04☆5.2DOUBLE3663602794334TRIPC104.mcs
TRIP MACHINE CLIMAXH.KAWAKAMI–Z‚µ‚¢‘«•ˆ‚Å‚·B1-05☆6.0SOLO3443602624363TRIPC105.mcs
TRIP MACHINE CLIMAXSINOMIYA.Y‚±‚Ì‹ÈD‚«‚Å‚·1-06☆5.5COUPLE426/4264953244623TRIPC106.mcs
TRIP MACHINE CLIMAXEIJI O.— ‘Å‚¿D‚«‚Å‚·1-07☆5.7SOLO3183602424552TRIPC107.mcs
TRIP MACHINE CLIMAXYASUHIRO.OŒã”¼‚̘A‘Å‚ªŸ•‰1-08☆5.3SINGLE3734052844526TRIPC108.mcs
TRIP MACHINE CLIMAXA.NAOKI‚lD‹g“c@ìF‚l‚d‚h‚i‚h‚m1-09☆5.0DOUBLE3337202534325TRIPC109.mcs
TRIP MACHINE CLIMAXT.TAMAI“ïˆÕ“x‚ðdŽ‹‚µ‚Ü‚µ‚½B2-01☆6.0SINGLE3803602895152TRIPC201.mcs
TRIP MACHINE CLIMAXHIROKI TAKAHASHIƒŒƒxƒ‹‚VD‚T‚­‚ç‚¢‚©‚ÈH2-02☆4.6SINGLE3263602484918TRIPC202.mcs
TRIP MACHINE CLIMAXHAJIME.I‚Ú‚æ‚ñìF–³“ï‚Éì‚è‚Ü‚µ‚½2-03☆5.4SINGLE3114052374137TRIPC203.mcs
TRIP MACHINE CLIMAXSUGAWARA TAKASHIŽ©•ª‚ł̓NƒŠƒA‚Å‚«‚Ü‚¹‚ñB2-04☆6.4DOUBLE3603602744473TRIPC204.mcs
TRIP MACHINE CLIMAXH.BANDO‚Ƃ肠‚¦‚¸‘«‚WEEE‚©‚ÈH2-05☆6.8SINGLE2803602134988TRIPC205.mcs
TRIP MACHINE CLIMAXF.ATHUSHIŒã”¼‚ª‚¯‚Á‚±‚¤ƒLƒe‚Ü‚·B3-01☆5.6SINGLE3363602564348TRIPC301.mcs
TRIP MACHINE CLIMAXK.TAKEMURA‰¹‚ɇ‚킹‚Ü‚­‚è‚Å‚·B3-02☆6.6SINGLE3754052865559TRIPC302.mcs
TRIP MACHINE CLIMAXTakahiro.H‚s‚q‚h‚o‚Á‚Û‚­‚µ‚Ă݂½‚‚à‚è3-03☆5.5SINGLE3043602315143TRIPC303.mcs
TRIP MACHINE CLIMAXRyohei Sekiƒ_Eƒ_Eƒ_Eƒ_Eƒ_Eƒ_ƒ_ƒbƒ_ƒbô3-04☆5.6SINGLE3443602624944TRIPC304.mcs
TRIP MACHINE CLIMAXT.HIRASAWA–‚‚ª·‚µ‚½EEE4-01☆6.4SINGLE3063602334081TRIPC401.mcs
TRIP MACHINE CLIMAXJUN.K‚R‚dB4-02☆4.5DOUBLE3133602383823TRIPC402.mcs
TRIP MACHINE CLIMAX???_07Œ™‚¶‚á‚È‚¢‚æI‚±‚Ì”z’uI4-03☆5.4SINGLE3443602624442TRIPC403.mcs
TRIP MACHINE CLIMAXJun T.‰„X‚Æ‘±‚­‚W•ªB4-04☆5.7SINGLE4454053394923TRIPC404.mcs
TRIP MACHINE CLIMAXN.MIMURA•À‘å’ï‚Ì‘«•ˆ‚¶‚á–ž‘«‚Å‚«‚È‚¢•û‚Ö4-05☆5.0SINGLE4064503094813TRIPC405.mcs
TRIP MACHINE CLIMAXtakara.naitoŽO˜A•„‚ðH•v‚µ‚ÄŽg‚¢‚Ü‚µ‚½B4-06☆5.8SINGLE3583602734851TRIPC406.mcs
TRIP MACHINE CLIMAXt.mizuno‚ӂ݂₷‚¢‚ÆŽv‚¢‚Ü‚·B4-07☆5.2SINGLE3223602453645TRIPC407.mcs
TRIP MACHINE CLIMAXMIO.SƒŠƒYƒ€‚Ég‚ðˆÏ‚˂Ă݂ĉº‚³‚¢B4-08☆5.2SINGLE2683602044540TRIPC408.mcs
TRIP MACHINE CLIMAX???_09™~‚U4-09☆9.5SINGLE51363039156169TRIPC409.mcs
TRIP MACHINE CLIMAXS.Okano“Á‚É— ”‚ð‘‚₵‚Ü‚µ‚½B4-10☆5.3SINGLE4073603104531TRIPC410.mcs
TRIP MACHINE CLIMAXKei.UƒIƒtƒBƒVƒƒƒ‹‚Ì‚æ‚è‚͂‚Ȃ°‚â‚·‚¢5-01☆5.0SINGLE3263602484332TRIPC501.mcs
TRIP MACHINE CLIMAXH.Kondoh‚X{5-02☆6.1DOUBLE3293602504467TRIPC502.mcs
TRIP MACHINE CLIMAXDAISUKE.H‚­‚é‚Á‚Ä‚µ‚Ü‚¨‚¤I5-03☆4.9SINGLE3773602874127TRIPC503.mcs
TRIP MACHINE CLIMAXURABE HIROKI‚‚©‚ê‚Ü‚·B5-04☆5.1SINGLE3804502894322TRIPC504.mcs
TRIP MACHINE CLIMAXTetsuya S.ƒgƒŠƒbƒv‚炵‚³‚ª—Ç‚­o‚½•ˆ–Ê‚¾‚æ5-05☆4.9COUPLE294/2943152244936TRIPC505.mcs
TRIP MACHINE CLIMAXT.MAMIYAƒVƒŠ[ƒYŠ®Œ‹•ÒA“ïˆÕ“x‚àƒ„ƒo‚ßB5-06☆7.4SINGLE28536021733189TRIPC506.mcs
TRIP MACHINE CLIMAXK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-07☆4.5SINGLE439360334492TRIPC507.mcs
TRIP MACHINE CLIMAXHIGASHI SENSHIROU‚«‚‚¢‚©‚àEEEB5-08☆6.3SINGLE4154503164848TRIPC508.mcs
TRIP MACHINE CLIMAXSATOSHI.H‚ß‚´‚¹ƒtƒ‹ƒRƒ“ƒ{5-09☆6.1SINGLE4484953415133TRIPC509.mcs
TRIP MACHINE CLIMAXJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆5.9SINGLE4174503184737TRIPC601.mcs
TRIP MACHINE CLIMAXKeisuke OgiwaraŽ©•ª“I‚É‚ÍAƒ„ƒPƒNƒ\‚Å‚·iÎ6-02☆4.6SINGLE3043602313726TRIPC602.mcs
TRIP MACHINE CLIMAXS.SATAKE— ‘Å‚¿‚Í‚ ‚Ü‚è‚È‚¢‚Å‚·iÎj6-03☆6.4SINGLE4344053314946TRIPC603.mcs
TRIP MACHINE CLIMAXT.FUJIWARAƒgƒŠƒbƒvŠ´‚𖡂킦‚Ü‚·i”šj6-04☆5.6SINGLE2563601955546TRIPC604.mcs
TRIP MACHINE CLIMAXMITHUTOSHI NAKATA‚±‚ꂼƒgƒŠƒbƒvIH6-05☆6.9SINGLE3674502794676TRIPC605.mcs
TRIP MACHINE CLIMAXMichitaka Kimura”æ‚ê‚Ü‚·6-06☆8.2SINGLE39072029754115TRIPC606.mcs
TRIP MACHINE CLIMAXToshihide FujitaƒGƒLƒTƒCƒeƒBƒ“ƒOI6-07☆4.5DOUBLE3583602734812TRIPC607.mcs
TRIP MACHINE CLIMAXT.NAOYA‚c‚d‚m‚f‚d‚q6-08☆6.6SINGLE3764502864566TRIPC608.mcs
TRIP MACHINE CLIMAXM.TOKUMOTO•s‰Â”\‚È•ˆ–ʂł͂Ȃ¢‚Í‚¸6-09☆5.4DOUBLE3663602794241TRIPC609.mcs
TRIP MACHINE CLIMAXNOBUTAKA TSUTSUMI­‚µŠÈ’P‚Å‚·6-10☆3.7SINGLE2263601722415TRIPC610.mcs
TRIP MACHINE CLIMAXTAKESHI MATSUMOTO‚¢‚»‚ª‚µ‚¢‚Å‚·7-01☆5.6DOUBLE3654052784636TRIPC701.mcs
TRIP MACHINE CLIMAXYasunobu Okuda‚Ƃ肠‚¦‚¸“‚ßB7-02☆5.3SINGLE3364052564134TRIPC702.mcs
TRIP MACHINE CLIMAXDAISUKE KAMISAKA‘«‚X“ü–å—p‚Å‚·B7-03☆4.8SINGLE3973603024517TRIPC703.mcs
TRIP MACHINE CLIMAXSATOSHI HORIUCHIƒ}ƒjƒAƒbƒNEEE‚®‚ç‚¢7-04☆5.2SINGLE3343602544338TRIPC704.mcs
TRIP MACHINE CLIMAXYOSHIHIKO MOTOYASU‚Ü‚ ‚Ü‚ ‚Ü‚ ‚È“ïˆÕ“x‚ÅB7-05☆5.7SINGLE3844052924538TRIPC705.mcs
TRIP MACHINE CLIMAXD.fujisaki‚s‚q‚h‚o‚Æ‚¢‚Á‚½‚ç— ‘Å‚¿I7-06☆5.4SINGLE3573602724737TRIPC706.mcs
TRIP MACHINE CLIMAXK.IKEMOTO‘«~‚X‚­‚ç‚¢‚Å‚·8-01☆5.8SINGLE3635852764941TRIPC801.mcs
TRIP MACHINE(luv mix)TOMOKAZU-M‚±‚ê‚à‚a‚‚“‚‰‚ƒ‹t‚É1-01☆3.8DOUBLE2422801734117TRIPL101.mcs
TRIP MACHINE(luv mix)TOMOKAZU-M‚s‚q‚h‚o–œÎI1-02☆4.6DOUBLE3203202284231TRIPL102.mcs
TRIP MACHINE(luv mix)Takashi.KÅŒãA‰ñ‚ê‚Ü‚·iÎj1-03☆5.0SINGLE3543202534738TRIPL103.mcs
TRIP MACHINE(luv mix)YAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-04☆5.7SINGLE3203602284354TRIPL104.mcs
TRIP MACHINE(luv mix)SHIBATA JUNICHIŒã”¼•”•ª‚ª“‚¢‚Å‚·B1-05☆5.0SINGLE450480321518TRIPL105.mcs
TRIP MACHINE(luv mix)???_01‘«‚ª‚à‚‚ê‚ăRƒP‚È‚¢‚Å‚ËB1-06☆4.3DOUBLE3533202524915TRIPL106.mcs
TRIP MACHINE(luv mix)J.GOUKE‹È‚É‚ ‚킹‚Ă݂܂µ‚½B2-01☆4.8SINGLE3063202184435TRIPL201.mcs
TRIP MACHINE(luv mix)TAKENAKA TAKAHIRO‹È‚É‚ ‚킹‚ÄŒy‰õ‚ÉB2-02☆3.9SINGLE3032802164119TRIPL202.mcs
TRIP MACHINE(luv mix)HAJIME.I‚Ú‚æ‚ñìF”÷–­‚È–îˆó”z’u2-03☆5.7SINGLE3083602205150TRIPL203.mcs
TRIP MACHINE(luv mix)YUKIHIRO.A•sˆÀ’è‚Å‚·B2-04☆5.1SINGLE3183202275040TRIPL204.mcs
TRIP MACHINE(luv mix)K.SUGAI‚r‚g‚o‚s‚k‚u‚O‚P^‚V2-05☆3.7SINGLE354320253436TRIPL205.mcs
TRIP MACHINE(luv mix)Takahiro.H‘«‚W‚Â3-01☆4.9SINGLE3033202164539TRIPL301.mcs
TRIP MACHINE(luv mix)Y.KAWABE‚Q”Ô–Ú‚É‚±‚ê‚ð‰Ÿ‚µ‚Ü‚·4-01☆5.8SINGLE3403202434466TRIPL401.mcs
TRIP MACHINE(luv mix)MIO.S‘ê‚ðŒðŒÝ‚É“¥‚߂邿‚¤‚É‚µ‚Ü‚µ‚½B4-02☆4.1SINGLE2933202095014TRIPL402.mcs
TRIP MACHINE(luv mix)SAEKO.T“Æ“Á‚ȃx[ƒXƒŠƒYƒ€‚ÉSŒ4-03☆4.4DOUBLE3223202304523TRIPL403.mcs
TRIP MACHINE(luv mix)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-04☆5.6SINGLE3503202504756TRIPL404.mcs
TRIP MACHINE(luv mix)H.Kondoh‚X5-01☆5.8DOUBLE3713602656639TRIPL501.mcs
TRIP MACHINE(luv mix)SoichI InabAƒAƒiƒU[‚ª‚Å‚«‚é‚̂Ȃç5-02☆4.7SINGLE2462801754640TRIPL502.mcs
TRIP MACHINE(luv mix)HIDEAKI.OD‚«‚©Œ™‚¢‚©‚ ‚È‚½‚͂ǂÁ‚¿HI5-03☆5.1COUPLE341/3413202434941TRIPL503.mcs
TRIP MACHINE(luv mix)KEITA.I‚»‚±‚»‚±‚Ìo—ˆ‚΂¦A­XƒNƒZ—L‚è5-04☆4.7COUPLE307/3073202194333TRIPL504.mcs
TRIP MACHINE(luv mix)T.MAMIYA“‚·‚¬‚Ä“ïˆÕ“x‚ð‰º‚°‚Ü‚µ‚½B5-05☆7.2SINGLE26428018848193TRIPL505.mcs
TRIP MACHINE(luv mix)YASUSHI.F—x‚è‚â‚·‚¢o—ˆ‚Ç‚·‚£6-01☆4.2SINGLE3663202614613TRIPL601.mcs
TRIP MACHINE(luv mix)Kiyotaka.YAMamoto‚b‚‚•‚‚Œ‚…‚É‚à‚Á‚ÆŒõ‚ðI6-02☆6.3COUPLE220/22024015742106TRIPL602.mcs
TRIP MACHINE(luv mix)???_19“¯Žž‚ӂ݂̗ûK‚ÉB6-03☆7.9SINGLE35236025148189TRIPL603.mcs
TRIP MACHINE(luv mix)YOSHIHIKO MOTOYASUƒnƒ}‚Á‚Ăقµ‚¢‚Å‚·B7-01☆5.0SINGLE3233202304144TRIPL701.mcs
TRIP MACHINE(luv mix)T.OGINO‚¯‚Á‚±‚¤ƒ€ƒYƒJƒVƒCB8-01☆5.7SINGLE4404803145427TRIPL801.mcs
TUBTHUMPINGYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-01☆4.9SINGLE1932331785352TUBT_101.mcs
TUBTHUMPINGFUMIHIRO ISHIWATAƒvƒŒÃìB‚æ‚èAƒJƒbƒR‚æ‚­2-01☆4.1SINGLE1802071663644TUBTH201.mcs
TUBTHUMPINGTSUJI JUNNYAÂXŒ§‚̌܊쌴‚ÉZ‚ñ‚Å‚Ü[‚·I3-01☆6.8SINGLE22820721150185TUBT_301.mcs
TUBTHUMPING???_07ƒV[ƒPƒ“ƒXŒ©‚¦‚é‚©‚È‚Ÿc4-01☆5.8SINGLE2553892365543TUBT_401.mcs
TUBTHUMPINGHatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆5.0SINGLE1752071623970TUBT_402.mcs
TUBTHUMPINGKazuhiko Chiba™X‚É–§“x‚ªEEE5-01☆4.2SINGLE1832071693745TUBT_501.mcs
TUBTHUMPINGKotaro Kagawa”÷–­‚È’x‚³‚ª‚¢‚¢Š´‚¶B7-01☆4.5SINGLE2453372275616TUBT_701.mcs
TUBTHUMPINGT.OGINO‹gŽRìA’x‚¢‚¯‚ÇA‹C‚ð‚Ê‚­‚ÈI8-01☆5.4SINGLE2583632395835TUBT_801.mcs
TUBTHUMPINGK.Itou‚‚Ȃ¢‚ʼnº‚³‚¢8-02☆6.2SINGLE464415430750TUBT_802.mcs
TUBTHUMPINGTHE PLAYSTATION2ƒm[ƒRƒƒ“ƒgEEE8-03☆4.2SINGLE1361811263752TUBT_803.mcs
TURN ME ON(HEAVENLY MIX)YASUHIRO.OŒã”¼‚̃V[ƒPƒ“ƒX‚É’–Ú1-01☆5.4SINGLE3453392523851TURN_101.mcs
TURN ME ON(HEAVENLY MIX)T_YAMADA‚ÆA‰“`‚¢I1-02☆4.9DOUBLE3203822344128TURN_102.mcs
TURN ME ON(HEAVENLY MIX)K.HAYASEƒXƒLƒbƒv‚ðŒð‚¦‚½V‚µ‚¢•ˆ–ÊB1-03☆4.9SINGLE3723822724818TURN_103.mcs
TURN ME ON(HEAVENLY MIX)SAKAI TAKAHISAƒm[ƒRƒƒ“ƒgEEE3-01☆5.5COUPLE266/2662971944463TURN_301.mcs
TURN ME ON(HEAVENLY MIX)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-01☆4.5SINGLE3843392814617TURN_401.mcs
TURN ME ON(HEAVENLY MIX)S.KUROYANAGIƒLƒbƒNƒhƒ‰ƒ€‚ðŠî’²‚Æ‚µ‚Ä‚¢‚Ü‚·5-01☆3.6SINGLE2252541641157TMOHM501.mcs
TURN ME ON(HEAVENLY MIX)T.MAMIYAƒCƒL‚¸‚«’ˆÓiÎj5-02☆5.7SINGLE3103392273369TMOHM502.mcs
TURN ME ON(HEAVENLY MIX)KAZUYUKI K.‚P‚U•ª‚T˜A‚Æ‚W•ª“¯Žž‰Ÿ‚µ‚ªƒƒCƒ“7-01☆5.9SINGLE3733822734748TURN_701.mcs
TURN ME ON(HEAVENLY MIX)Norihiro Kitamuraƒ‰ƒbƒv’n‘шȊO‚ÍŠy‚Å‚·7-02☆5.0DOUBLE3363822464128TURN_702.mcs
Typical Tropical???_03‚a‚`‚l‚a‚d‚dÅ‚I3-01☆3.8SINGLE2642742004119TYPI_301.mcs
Typical TropicalS.KUROYANAGIƒTƒr‚ɃXƒLƒbƒv“ü‚ê‚Ü‚µ‚½5-01☆4.1SINGLE3153082395412TYPIC501.mcs
Typical TropicalHIROKI.NƒXƒLƒbƒvAƒXƒLƒbƒviÎj5-02☆3.8SINGLE2653082014710TYPIC502.mcs
Typical TropicalSATOSHI.H—z‹C‚É—x‚Á‚Ä‚­‚¾‚³‚¢5-03☆5.0SINGLE2793762125127TYPIC503.mcs
Typical TropicalIchinose Shinta‰¹‚É‚ ‚Á‚ĂċCŽ‚¿‚¢‚¢6-01☆4.4SINGLE2572741954037TYPIC601.mcs
Typical TropicalH.KAWAKAMI“¯Žž‚ª‘½‚¢B6-02☆7.3SINGLE26927420453211TYPIC602.mcs
Typical TropicalINAGAKI KEIsukeŽÎ‚߃Xƒeƒbƒv‚ðãŽè‚­“¥‚߂Ȃ¢‚Æ7-01☆4.2SOLO2312741752841TYPI_701.mcs
UPSIDE DOWNS.NIHEI“¥‚݂₷‚¢‚悤‚Éì‚è‚Ü‚µ‚½1-01☆3.3SINGLE2102481713020UPSI_101.mcs
UPSIDE DOWNYAMADA HIDETOSHI‚u‚n‚b‚`‚k@‚l‚h‚w1-02☆4.8SINGLE2462792005337UPSI_102.mcs
UPSIDE DOWNmurai mitsuruƒAƒbƒvƒTƒCƒh‚ð“‚­‚µ‚Ü‚µ‚½B1-03☆5.1SINGLE3154032576017UPSI_103.mcs
UPSIDE DOWNTADASHI.UMISHIMAƒŠƒYƒ€‚ɇ‚Á‚Ă܂·1-04☆4.9SINGLE2754032245814UPSI_104.mcs
UPSIDE DOWNMASAHIRO.YŽ©•ª‚ł͋C‚É“ü‚Á‚Ă܂·‚ªEEE2-01☆4.1DOUBLE1962481594628UPSI_201.mcs
UPSIDE DOWNH.BANDO“¯Žž‚ÉŠµ‚ê‚Ä‚­‚¾‚³‚¢B2-02☆7.0SINGLE2974962424886UPSI_202.mcs
UPSIDE DOWNKOUICHI TAKEUCHIƒtƒ‹ƒRƒ“ƒ{‚Å‚«‚é‚©‚ÈH3-01☆5.5SINGLE2853412325642UPSI_301.mcs
UPSIDE DOWN???_04‚k‚–‚WD^‚l‚`‚q‚j3-02☆6.7SINGLE2464032006068UPSI_302.mcs
UPSIDE DOWNM.Yamamoto‰¹‡‚킹3-03☆5.1SINGLE2784032265820UPSI_303.mcs
UPSIDE DOWNK.TAKEMURAº‚Ɖ¹Šy‚Ü‚ñ‚܂ł·B4-01☆5.8SINGLE2744032235940UPSI_401.mcs
UPSIDE DOWNSEIJI W.ƒTƒr‚̘A‘Å‚ªƒ|ƒCƒ“ƒg5-01☆6.1SINGLE2934342396146UPSI_501.mcs
UPSIDE DOWN???_13‚P‚U•ª‚Ì–îˆó‚É’ˆÓI5-02☆4.6SINGLE2783722265612UPSI_502.mcs
UPSIDE DOWNIchinose Shinta“¯Žž‚È‚µ@‹x‚݂Ȃµ6-01☆3.0SINGLE310248252490UPSI_601.mcs
UPSIDE DOWN???_18‚¢‚©‚ª‚Å‚µ‚傤‚©B6-02☆4.9SINGLE2164031765915UPSI_602.mcs
UPSIDE DOWNTOMOFUMI YOSHIDAº‚ɇ‚킹‚ĉº‚³‚¢B7-01☆6.0SINGLE2714032215350UPSI_701.mcs
UPSIDE DOWNYUJI.O•’ʂɊy‚µ‚ñ‚ʼnº‚³‚¢B7-02☆4.8SINGLE2363101924239UPSI_702.mcs
UPSIDE DOWNKOHEI.T㶉E‰ºB8-01☆5.0SINGLE2414031965917UPSI_801.mcs
VOL.4YAMADA HIDETOSHI— ‰¹’†S1-01☆4.7SINGLE2914532443821VOL4_101.mcs
VOL.4SINOMIYA.YƒŠƒYƒ€‚ð‚Æ‚é‚̂ɋê˜J‚µ‚½1-02☆4.8SINGLE370412311651VOL4_102.mcs
VOL.4TADASHI.UMISHIMA‘ꂪ‚·‚²‚¢‚±‚ƂɂȂÁ‚Ă܂·1-03☆4.9SINGLE386412324584VOL4_103.mcs
VOL.4SUGAWARA TAKASHI‚©‚È‚è“‚߂ɂȂÁ‚Ä‚¢‚Ü‚·B2-01☆6.5SINGLE3774123177339VOL4_201.mcs
VOL.4K.TAKEMURA‰¹‚ɇ‚킹‚Ü‚­‚è‚Ü‚µ‚½B2-02☆5.5SINGLE3754123156216VOL4_202.mcs
VOL.4H.BANDO‚¯‚Á‚±‚¤–Ê”’‚¢‚ÆŽv‚¤B2-03☆5.1SINGLE364412306726VOL4_203.mcs
VOL.4TSUJI JUNNYA‘«‚Å‘SƒRƒ“ƒ{‚Í•s‰Â”\‚â‚ë3-01☆6.2SINGLE3584123015642VOL4_301.mcs
VOL.4Y.KAWABE¡‰ñ‚Ì‚½‚ß‚ÉƒŠƒƒCƒN‚µ‚½‚à‚Ì4-01☆5.9SINGLE3254122735639VOL4_401.mcs
VOL.4Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-02☆4.6SINGLE352412296602VOL4_402.mcs
VOL.4???_09™~‚Q4-03☆5.6SINGLE3714533127016VOL4_403.mcs
VOL.4D.KAWABATA™X‚É–îˆó‚ª‘‚¦‚é‹Ù’£Š´‚ð5-01☆3.8SINGLE1913301602026VOL.4501.mcs
VOL.4Michitaka KimuraÁ‚¦‚½‹È‘½‚¢‚Å‚·‚æ‚Ë`i‹ƒj6-01☆5.4SINGLE3825363216811VOL4_601.mcs
VOL.4SHIGERU ARAI‚¿‚å‚Á‚Ɠ‚߂̃gƒŠƒbƒNB6-02☆5.0SINGLE2172881822764VOL4_602.mcs
VOL.4Toshihide Fujita‘Ì—Í‘ª’è‚ðŽv‚¢o‚µ‚ĉº‚³‚¢B6-03☆5.1DOUBLE2984952504425VOL4_603.mcs
VOL.4Yuki Ichikawaƒpƒ^[ƒ“‚ðŒ©Ø‚ê‚΂¢‚¯‚é‚©‚ÆB6-04☆5.2SINGLE400453336606VOL4_604.mcs
VOL.4SATOSHI HORIUCHI‹È‚̂ǂ̕”•ª‚É‚ ‚킹‚é‚©‚Å‚·7-01☆4.5SINGLE309536260641VOL4_701.mcs
VOL.4Fumihiro IbukiÅ‹­B7-02☆5.1SINGLE3334532807110VOL4_702.mcs
VOL.4Keisuke Omori‰¹‚æ‚­‚«‚¢‚Ä`8-01☆5.7SINGLE3154122657724VOL4_801.mcs
VOL.4KOHEI.T©‚ç“®‚ÖB8-02☆5.1SINGLE2764952327014VOL4_802.mcs
VOL.4K.MASIMAƒ€ƒY‚¢B8-03☆6.5SINGLE3494122937345VOL4_803.mcs
WALKIE TALKIETOMOKAZU-MŒ’N‚Í•à‚­‚±‚Æ‚©‚ç1-01☆1.0DOUBLE161138113015WALK_101.mcs
WALKIE TALKIESOUSHIN.K‚¢‚­‚‚ ‚é‚©‚È‚±‚Ì‚d‚c‚h‚s1-02☆6.6SINGLE4565533216544WALK_102.mcs
WALKIE TALKIEH.KAWAKAMIƒI[ƒ‹“¯ŽžB1-03☆7.2SINGLE28527620146285WALK_103.mcs
WALKIE TALKIEA.NAOKI‚f‚‚”‚”‚‚ŽìF‚f‚d‚s‚`1-04☆4.8DOUBLE2572761812861WALK_104.mcs
WALKIE TALKIEH.Sakurai‚³‚Á‚¿‚á‚ñƒCƒ`ƒIƒV2-01☆3.8DOUBLE2452761723821WALK_201.mcs
WALKIE TALKIEKOUICHI TAKEUCHIƒmƒŠƒmƒŠ‚ɂȂ낤I3-01☆5.0SINGLE2913112054345WALK_301.mcs
WALKIE TALKIEABE TaTsuMa‚©‚Ȃ胃“ƒpƒ^[ƒ“B5-01☆5.5SINGLE3134142205134WALK_501.mcs
WALKIE TALKIEKeisuke Ogiwara‚±‚Ì‹ÈA‚Ç‚¤‚æHiޏ—ç6-01☆4.3SINGLE2412761703536WALK_601.mcs
WALKIE TALKIEIchinose Shinta‹È‚É‚ ‚킹‚ăXƒeƒbƒvƒWƒƒƒ“ƒv6-02☆4.9SINGLE2582761823753WALK_602.mcs
WALKIE TALKIEK.KinugawaƒXƒLƒbƒv‚µ‚½‚¢lŒü‚¯iÎ6-03☆3.6DOUBLE276311194466WALK_603.mcs
WALKIE TALKIE???_18ƒCƒ`ƒIƒV‚Å‚·B6-04☆4.7SINGLE2262761593846WALK_604.mcs
WALKIE TALKIED.fujisaki‚µ‚‚±‚¢‚قǂɃrƒWƒXƒeƒbƒvB7-01☆3.7SINGLE3162762223917WALK_701.mcs
WALKIE TALKIEF.ATHUSHI­‚µ‚“ï“x‚̃Xƒ‰ƒCƒhƒXƒeƒbƒvB7-02☆4.7SINGLE2702761904242WALK_702.mcs
WALKIE TALKIEYohei Maruyama•ˆ–Ê‚ªŒ©‚É‚­‚¢‚©‚àB8-01☆5.1SINGLE2742761934652WALK_801.mcs
WALKIE TALKIEW.Shiomiƒ{[ƒJƒ‹‚ÆƒŠƒYƒ€‚É•¹‚¹‚Ă܂·8-02☆5.5SINGLE3163802224743WALK_802.mcs
WALKIE TALKIEW.Shiomiƒ{[ƒJƒ‹‚ÆƒŠƒYƒ€‚É•¹‚¹‚Ă܂·8-03☆5.4DOUBLE3033802134639WALK_803.mcs
WALKIE TALKIEShimamoto Satoshi‰ñ‚ê‚é‚©‚àH8-04☆4.2SINGLE2702761904427WALK_804.mcs
WILD RUSHTAKEHIRO-O‚r‚b‚g‚`‚l‚`‚m‚d@Ž©‘R‚Ì‹ºˆÐ3-01☆6.2SINGLE3233001405677WILD_301.mcs
WILD RUSHK.TAKEMURA‚È‚ñ‚Æ‚©‰¹‚ɇ‚킹‚Ü‚µ‚½B3-02☆4.5SINGLE3423201486318WILD_302.mcs
WILD RUSHA.NAOKI‚lD‹g“c@ìF‚`@@@‚c‚q3-03☆4.5DOUBLE2953001285227WILD_303.mcs
WILD RUSHY.ISHIDA‚ ‚È‚½‚Ì‚c‚c‚q—͂𑪒肵‚Ü‚·B3-04☆5.0SINGLE3923201705236WILD_304.mcs
WILD RUSHKouki.U‚±‚¾‚í‚è‚̈ê•iiHj4-01☆4.3SINGLE3192801385621WILD_401.mcs
WILD RUSHt.mizunoƒCƒ`ƒIƒV‚Å‚·iÎj4-02☆3.4SINGLE2862201244117WILD_402.mcs
WILD RUSHMURAI MITSURUƒŠƒYƒ€‚ª•Ï‚í‚é‹È‚ÅŠy‚µ‚¢‚Å‚·B5-01☆5.2SINGLE3723001615842WILD_501.mcs
WILD RUSHJUNICHI OƒKƒ“ƒoƒbƒeƒNƒŠƒA[‚µ‚ĉº‚³‚¢II6-01☆4.1SINGLE380300165669WILD_601.mcs
WILD RUSHS.SATAKE‚±‚̋Ȃd‚c‚h‚sì‚é‚Ì‘å•ςłµ‚½6-02☆6.1SINGLE3803201656065WILD_602.mcs
WILD RUSHT.Hirano‚`‚l|‚R‚o•Û‘¶Œv‰æì•i6-03☆3.9SINGLE2961801284737WILD_603.mcs
WILD RUSHNAOTO M.‰SŽÒ‚Ìl‚É‚à‚Á‚Ä‚±‚¢‚Å‚·B6-04☆3.4SINGLE2752201193622WILD_604.mcs
WILD RUSHSHIGERU ARAI‹¥ˆ«•ˆ–Ê’ˆÓB–ƒA[ƒP[ƒh—p6-05☆7.6SINGLE31732014054125WILD_605.mcs
WILD RUSHTAKEO.U‘¬“x•ω»‚É‹C‚ð‚‚¯‚ÄI6-06☆3.7SINGLE3432601495313WILD_606.mcs
WILD RUSHTAKESHI MATSUMOTO‚¸‚ê‚͉ƒë—p‚ɇ‚킹‚Ä‚ ‚è‚Ü‚·B7-01☆5.5SINGLE3143201366047WILD_701.mcs
WILD RUSHTAKU YAMAMOTO‘O”¼‚ª‚¢‚¢Š´‚¶7-02☆4.9SINGLE3072801335638WILD_702.mcs
WILD RUSHT.Hanada•…‚Á‚Ä‚¢‚é‚©‚à’m‚ê‚Ü‚¹‚ñEEE7-03☆6.2COUPLE333/3332601445489WILD_703.mcs
WILD RUSHToshiro Ohtsuka‹È‚ªD‚«‚Å‚·8-01☆4.0SINGLE301320130577WILD_801.mcs
WILD RUSHKeisuke Omori‚µ‚Ô‚­ì‚è‚Ü‚µ‚½`8-02☆5.2SINGLE2983001296241WILD_802.mcs
WONDA(SPEED K MIX)YUSUKE.KˆÙ—l‚ȃXƒLƒbƒv‚ª‘½‚¢‚Å‚·3-01☆4.3SINGLE3893402755210WONDA301.mcs
WONDA(SPEED K MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìF‚x‚`‚j‚d‚j‚t‚r‚n3-02☆4.3SINGLE3203402262533WONDA302.mcs
WONDA(SPEED K MIX)YASUHIRO.O‚¿‚å‚Á‚Æ•sŽv‹c‚ȃV[ƒPƒ“ƒX‚Å‚·3-03☆4.7SINGLE3313402343238WONDA303.mcs
WONDA(SPEED K MIX)TOMOKAZU-Mƒm[ƒRƒƒ“ƒgEEE4-01☆5.2DOUBLE3985102814724WONDA401.mcs
WONDA(SPEED K MIX)N.MIMURA“‚¢‚Å‚·BˆùŽðŒã‚̃vƒŒƒC‚͋֎~4-02☆4.5SINGLE343680242498WONDA402.mcs
WONDA(SPEED K MIX)K.KomenoiŠÊƒR[ƒq[‚ŃXƒeƒbƒvI4-03☆4.8COUPLE383/3833402714029WONDA403.mcs
WONDA(SPEED K MIX)K.TAKEMURA‹C‚É“ü‚Á‚Ă܂·B4-04☆5.4SINGLE3883822745231WONDA404.mcs
WONDA(SPEED K MIX)Hatamoto Yoheiƒm[ƒRƒƒ“ƒgEEE4-05☆4.3SINGLE2412971703137WONDA405.mcs
WONDA(SPEED K MIX)S.SATAKE‚c‚l‚w‚Û‚¢‚Ì‚ðì‚è‚Ü‚µ‚½6-01☆7.8SINGLE39768028154102WONDA601.mcs
WONDA(SPEED K MIX)TAKEO.U‚c‚n‚t‚a‚k‚dD‚«‚ɂ̓sƒbƒ^ƒŠB6-02☆5.3DOUBLE3733402644144WONDA602.mcs
WONDA(SPEED K MIX)K.IKEMOTO‘«~‚W‚­‚ç‚¢‚Å‚·8-01☆5.4SINGLE3563402524347WONDA801.mcs
WONDA(SPEED K MIX)H.MURATAƒm[ƒRƒƒ“ƒgEEE8-02☆5.0SINGLE3813402694334WONDA802.mcs
WONDERLAND(UKS MIX)SOUSHIN.Kƒƒ“ƒ_[ƒ‰ƒ“ƒh‘åDƒLƒ“ƒO‚Å‚·Ž„B1-01☆5.1SINGLE3024802305124WOND_101.mcs
WONDERLAND(UKS MIX)YAMADA HIDETOSHI‚r‚r‚q‚̕ʂu‚…‚’D1-02☆5.6SINGLE2663842073753WOND_102.mcs
WONDERLAND(UKS MIX)TAKENAKA TAKAHIROƒ‰ƒ“•ƒXƒLƒbƒv‚Å‚·BÅŒã‚ÍEE2-01☆5.0SINGLE2824482204822WOND_201.mcs
WONDERLAND(UKS MIX)K.SUGAI‚r‚g‚o‚v‚c‚k‚O‚P^‚U^‰ñ“]‰Â2-02☆3.6SINGLE2652562064911WOND_202.mcs
WONDERLAND(UKS MIX)M.IWAKURA“ǂ݂Â炢‚©‚àB“ï“x‚W’ö“xB2-03☆5.1SINGLE3104802365422WOND_203.mcs
WONDERLAND(UKS MIX)KOUICHI TAKEUCHI‚±‚±‚Í•sŽv‹c‚È¢ŠE3-01☆5.1SINGLE3045122314825WOND_301.mcs
WONDERLAND(UKS MIX)A.NAOKI‚f‚‚”‚”‚‚ŽìFƒ{ƒ{ƒ{ƒ{ƒ{ƒ{ƒ{ƒ{3-02☆5.2DOUBLE2302561753372WOND_302.mcs
WONDERLAND(UKS MIX)RYOSUKE TAKASHIMAƒ‰ƒbƒv‚ðŠo‚¦‚ëI3-03☆5.4SINGLE3423842606028WOND_303.mcs
WONDERLAND(UKS MIX)H.OIKAWAƒ‰ƒbƒv‚ɇ‚킹‚Ü‚µ‚½B4-01☆7.2SINGLE3485122656181WOND_401.mcs
WONDERLAND(UKS MIX)takara.naito‚º‚ЃvƒŒƒC‚µ‚Ă݂ĉº‚³‚¢B4-02☆5.9SINGLE2975122314552WOND_402.mcs
WONDERLAND(UKS MIX)???_09™~‚R4-03☆6.7SINGLE3405122595766WOND_403.mcs
WONDERLAND(UKS MIX)Mits-hide Obataê—pƒRƒ“ƒgƒ[ƒ‰‚¸‚ê•KŽŠ‚Å‚·cB5-01☆5.5DOUBLE3554802776123WOND_501.mcs
WONDERLAND(UKS MIX)M.OoebesuŒðŒÝ‚Ƀ`ƒƒƒŒƒ“ƒWBƒŒƒxƒ‹‚U6-01☆3.5SINGLE2222561692625WOND_601.mcs
WONDERLAND(UKS MIX)KAZUHITO TSUBOTA‚r‚r‚q‚̃pƒ[ƒAƒbƒv”Å7-01☆5.1SINGLE3024162304924WOND_701.mcs
WONDERLAND(UKS MIX)K.Itou‚ª‚ñ‚΂è‚Ü‚µ‚½8-01☆5.2SINGLE2894482204330WOND_801.mcs
WONDERLAND(UKS MIX)KOHEI.T‚©‚È‚è–Z‚µ‚¢•ˆ–ʂł·B8-02☆5.4SINGLE3654802786122WOND_802.mcs
XANADUS.NIHEIƒA[ƒP[ƒh‚̃Xƒeƒbƒv‚ðÄŒ»‚µ‚½•¨1-01☆3.4SINGLE2132591772821XANA_101.mcs
XANADUSOUSHIN.K‚¢‚â[•œŠˆ‚µ‚Ä–{“–‚É—Ç‚©‚Á‚½1-02☆4.0SINGLE240357199428XANA_102.mcs
XANADUHIROKI.N‘å‘̉¹‡‚킹‚Å‚·B1-03☆4.5SINGLE273519227546XANA_103.mcs
XANADUKEISUKE.M‚¨‹C‚É“ü‚è‚̃Uƒi‚Å‚·B1-04☆4.9SINGLE2282921943651XANA_104.mcs
XANADUA.NAOKI‚f‚‚”‚”‚‚ŽìF‚f‚n‚j‚t‚q‚`‚j‚t1-05☆3.7SINGLE2042591692729XANA_105.mcs
XANADUNAOyuki-Tachihara‹È‚Ì•µˆÍ‹C‚É”ä—Ⴕ‚Ä“ïˆÕ“x‚à‘‰Á3-01☆6.0SINGLE3003572494859XANA_301.mcs
XANADUt.mizuno‹C‚𔲂©‚È‚¢‚ÅB4-01☆2.9SINGLE11629296331XANA_401.mcs
XANADUMURAI MITSURU¶‰E‚ɂӂç‚ê‚éƒXƒeƒbƒvBƒ€ƒYƒCB5-01☆3.6DOUBLE2602592165111XANA_501.mcs
XANADUURABE HIROKI‚º‚Гñl‚ÅB5-02☆2.1COUPLE109/11312990048XANA_502.mcs
XANADUT.MAMIYAV‹Œ‚l‚`‚m‚h‚`‚b‚Ì’†ŠÔ‚̂‚à‚肪5-03☆3.9SINGLE2202591834422XANA_503.mcs
XANADUS.SATAKEo—ˆ‚È‚¢EEE‚Å‚·‚æ‚ËH6-01☆6.8SINGLE5235194357010XAXA_601.mcs
XANADUYasunobu OkudaˆÕ‚µ‚·‚¬‚¸A“‚·‚¬‚¸A‚Å‚·‚ËB7-01☆4.1SINGLE2002591664826XANA_701.mcs
XANADUHAJIME.I‚Ú‚æ‚ñìFƒ‰ƒXƒg‚ª‹S‚Å‚·8-01☆5.2SINGLE2493892074135XANA_801.mcs
Young ForeverH.KAWAKAMI‚²‚ñ‘¾Ž‚É‘¡‚Á‚½‚â‚ÂB1-01☆5.5SINGLE3073152193765YOUN_101.mcs
Young ForeverA.NAOKI‚f‚‚”‚”‚‚ŽìF‚xD‚e‚d‚u‚d‚q1-02☆4.3DOUBLE2432451732161YOUN_102.mcs
Young ForeverJ.GOUKE“r’†‚Å‚ ‚«‚é‚©‚àEEE2-01☆4.6SINGLE2883152055525YOUNG201.mcs
Young ForeverKubota Mamoru‚s‚q‚h‚b‚j—ûK’†‚Ì•û‚Í•KŒ©2-02☆3.0SINGLE1942101411931YOUNG202.mcs
Young ForeverYAMAZAKI TAKESHI‚s‚`‚j‚d‚l‚h‚w@‚m‚nD‚R‚P2-03☆3.6SINGLE344315250482YOUNG203.mcs
Young ForeverKEISUKE.Sƒ^ƒ“ƒ^ƒ^ƒ^ƒ“ô2-04☆4.9SINGLE3804202714915YOUNG204.mcs
Young ForeverMasayuki.A“ïˆÕ“x‚U‚Å‚µ‚傤H2-05☆5.0SINGLE2282801664550YOUNG205.mcs
Young ForeverRYOSUKE TAKASHIMAƒXƒLƒbƒv‚â“¯Žž“¥‚Ý’ˆÓ3-01☆4.8SINGLE3553502584724YOUN_301.mcs
Young Forever???_04‚k‚–‚WDƒIƒXƒXƒ^‚l‚`‚q‚j3-02☆4.3SINGLE3383152415713YOUN_302.mcs
Young ForeverJUN.KŽá‚¢‚Á‚Ä‚¢‚¢‚ÈB4-01☆3.9DOUBLE2552801853424YOUNG401.mcs
Young ForeverKei.U‚â‚è‚â‚·‚³‚ðl‚¦‚Äì‚è‚Ü‚µ‚½B5-01☆3.5SINGLE2782801983414YOUNG501.mcs
Young ForeverKei.U‚r‚s‚d‚o|‚W‚Ì‚c‚n‚t‚a‚k‚d5-02☆3.8DOUBLE2882802053522YOUNG502.mcs
Young ForeverDAISUKE.H‚¢‚‚܂łàŽá‚­‚¢‚½‚¢EEE5-03☆6.1COUPLE326/3243502324767YOUNG503.mcs
Young ForeverK.SANOƒ€ƒY‚³ƒ‰ƒ“ƒN@‚`5-04☆4.5SINGLE3763502685810YOUNG504.mcs
Young ForeverSatoru Hata—Ñ›‚ß‚®‚݂̋Ȗ¼‚©‚ç‚Æ‚Á‚½B5-05☆4.9SINGLE3773502696217YOUNG505.mcs
\ No newline at end of file diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/ddr5thmixdatabank/Dance Dance Revolution 5th Mix Data Bank DIET VERSION.rar b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/ddr5thmixdatabank/Dance Dance Revolution 5th Mix Data Bank DIET VERSION.rar new file mode 100644 index 0000000..0efb0ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/EDITS/ddr5thmixdatabank/Dance Dance Revolution 5th Mix Data Bank DIET VERSION.rar differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/LIST b/ddr/DDR 573 digital arcade edit tools/EDITS/LIST new file mode 100644 index 0000000..dff9ab2 --- /dev/null +++ b/ddr/DDR 573 digital arcade edit tools/EDITS/LIST @@ -0,0 +1,25 @@ +Ok, this has always been a question, now here is the answer. Once and for all. + +I do not have many pictures right now, but this guide will tell you how to build a stepmania machine. + +Things you will need: +A computer with an AGP Slot +J-Pac (www.ultimarc.com) (PS2 is better then USB) +ArcadeVGA (www.ultimarc.com) +Screw Driver +Wire + +Things I Recomend: +Sound Blaster Live 5.1 + +Ok, heres the deal. Take the DDR PCB out of the ddr machine. With the ArcadeVGA installed on the PC run the VGA cord fromt he PC to the JPac. Then run the JPac to the computer's PS2 keyboard slot. Plug the jamma harnest into the JPac. + +Take the screw driver and take the 2 metal panels that cover the pad controll boards off of the pad. These panels will be the one to the right of 1P Up and to the left of 2P Up. Now that you are looking at the two controll boards, you will see 4 pad connectors, 1 power connector and 1 main connector running to each board. Use a small length of wire to bridge Wire 1 of the main connector (black) to Wire 3 of the main connector (white). This will allow the JPac to controll the entire pad now, not just 4 of the 8 arrows. You can now re-assemble the pad. + +Now, using the screw terminals on the jpac run a wire from a ground and a button screw to the service button, because the service button will not work with the JPac regularly. + +Install the JPac software and turn of "Shift Keys". If you do not the 1P start button will not work right. + +Now for Stepmania. You need to use Stepmania CN Arcade Build 5 to make this function right. With the JPac it often picks up single depressions as double taps due to the way the sensors are set up. AB5 offers a Debounce function that will stop that. Setting Debounce = 0.060000 stopped that issue for me without hindering performance. I have seen sever AAs of Max. with it, so I know it is not too big. + +For the lights, you will need to contact Charles Lohr about purchasing a lights controller. I hve used his units and they work perfectly. Go to www.CNLohr.net for contact information. diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MCS2DWI-converter/mcs2dwi.zip b/ddr/DDR 573 digital arcade edit tools/EDITS/MCS2DWI-converter/mcs2dwi.zip new file mode 100644 index 0000000..0f055f9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MCS2DWI-converter/mcs2dwi.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT new file mode 100644 index 0000000..af9b0be Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT-full b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT-full new file mode 100644 index 0000000..b97cdaf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/CARD.DAT-full differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/cartoonheroesoni.psx b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/cartoonheroesoni.psx new file mode 100644 index 0000000..48dda9a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/cartoonheroesoni.psx differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frecklesedit.psx b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frecklesedit.psx new file mode 100644 index 0000000..2f6cfc2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frecklesedit.psx differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.mc b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.mc new file mode 100644 index 0000000..f887103 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.psx b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.psx new file mode 100644 index 0000000..1295e0b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/frozendev.psx differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/5thmix.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/5thmix.mcs new file mode 100644 index 0000000..f54abef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/5thmix.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/CS5th AM NEW ƒŠƒ“ƒNƒf-ƒ^ VER 1 _JP.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/CS5th AM NEW ƒŠƒ“ƒNƒf-ƒ^ VER 1 _JP.mcs new file mode 100644 index 0000000..7125074 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/CS5th AM NEW ƒŠƒ“ƒNƒf-ƒ^ VER 1 _JP.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/Tsugaru_1.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/Tsugaru_1.mcs new file mode 100644 index 0000000..234047e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/Tsugaru_1.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/belovin.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/belovin.mcs new file mode 100644 index 0000000..60e5296 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/belovin.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr A.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr A.mcs new file mode 100644 index 0000000..e2bb0f2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr A.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr Sync.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr Sync.mcs new file mode 100644 index 0000000..f88d90f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr Sync.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr V.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr V.mcs new file mode 100644 index 0000000..d4b81d0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/bmr V.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/choni.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/choni.mcs new file mode 100644 index 0000000..c513b96 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/choni.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/freckles.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/freckles.mcs new file mode 100644 index 0000000..a450c13 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/freckles.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/frozendev.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/frozendev.mcs new file mode 100644 index 0000000..f887103 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/frozendev.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/genom.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/genom.mcs new file mode 100644 index 0000000..0e56ded Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/genom.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/mcs.htm b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/mcs.htm new file mode 100644 index 0000000..3bb3fb7 --- /dev/null +++ b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/mcs.htm @@ -0,0 +1,28 @@ + + + + Index of /ddredit/mcs + + +

Index of /ddredit/mcs

+ + + + + + + + + + + + + + + + + + +
[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[   ]tsugcpl.mcs07-May-2005 23:18 8.1K 
[   ]tb-cpl.mcs07-May-2005 23:19 8.1K 
[   ]sakura.mcs07-May-2005 23:18 8.1K 
[   ]pf-paras.mcs07-May-2005 23:19 8.1K 
[   ]genom.mcs07-May-2005 23:47 8.1K 
[   ]frozendev.mcs07-May-2005 23:18 8.1K 
[   ]freckles.mcs07-May-2005 23:18 8.1K 
[   ]choni.mcs07-May-2005 23:18 8.1K 
[   ]bmr V.mcs07-May-2005 23:47 8.1K 
[   ]bmr Sync.mcs07-May-2005 23:47 8.1K 
[   ]bmr A.mcs07-May-2005 23:47 8.1K 
[   ]belovin.mcs07-May-2005 23:19 8.1K 
[   ]Tsugaru_1.mcs07-May-2005 23:18 8.1K 
[   ]CS5th AM NEW ƒŠƒ“ƒNƒf-ƒ^ VER 1 _JP.mcs07-May-2005 23:19 16K 
[   ]5thmix.mcs07-May-2005 23:19 8.1K 

+
Apache/2.2.16 (Ubuntu) Server at dougk-ff7.net Port 80
+ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/pf-paras.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/pf-paras.mcs new file mode 100644 index 0000000..fff58c4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/pf-paras.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/sakura.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/sakura.mcs new file mode 100644 index 0000000..7a21685 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/sakura.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tb-cpl.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tb-cpl.mcs new file mode 100644 index 0000000..73917c9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tb-cpl.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tsugcpl.mcs b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tsugcpl.mcs new file mode 100644 index 0000000..d7f0036 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/mcs/tsugcpl.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/sakuraedit.psx b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/sakuraedit.psx new file mode 100644 index 0000000..b933628 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/MoreSteploaderStuff/sakuraedit.psx differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/ORIGSTUFF.zip b/ddr/DDR 573 digital arcade edit tools/EDITS/ORIGSTUFF.zip new file mode 100644 index 0000000..9492da3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/ORIGSTUFF.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/EDITS/OtherEdits.zip b/ddr/DDR 573 digital arcade edit tools/EDITS/OtherEdits.zip new file mode 100644 index 0000000..15cb0ec Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EDITS/OtherEdits.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - +2003+.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - +2003+.mc new file mode 100644 index 0000000..2c8d703 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - +2003+.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - AUDACITY.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - AUDACITY.mc new file mode 100644 index 0000000..ff87f87 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/1998 - SINGLE - AUDACITY.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, NOVEMBER - SINGLE - HISTORIA.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, NOVEMBER - SINGLE - HISTORIA.mc new file mode 100644 index 0000000..95d1504 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, NOVEMBER - SINGLE - HISTORIA.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, november - SINGLE - SHP20N02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, november - SINGLE - SHP20N02.mc new file mode 100644 index 0000000..85e9c0b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/20, november - SINGLE - SHP20N02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/321 STARS - SINGLE - SHP32101.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/321 STARS - SINGLE - SHP32101.mc new file mode 100644 index 0000000..9882e5e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/321 STARS - SINGLE - SHP32101.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - 9.1.1..mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - 9.1.1..mcs new file mode 100644 index 0000000..5c90a99 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - 9.1.1..mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - SPEKIO11.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - SPEKIO11.mcs new file mode 100644 index 0000000..f9e9035 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/5.1.1 - SINGLE - SPEKIO11.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/59 - SINGLE - 592@08.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/59 - SINGLE - 592@08.mc new file mode 100644 index 0000000..8fcff9a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/59 - SINGLE - 592@08.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - BMR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - BMR.mcs new file mode 100644 index 0000000..e2bb0f2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - BMR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - DA BIG A.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - DA BIG A.mcs new file mode 100644 index 0000000..073e215 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/A - SINGLE - DA BIG A.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - SINGLE - MY KETSU.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - SINGLE - MY KETSU.mcs new file mode 100644 index 0000000..74a9a6d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - SINGLE - MY KETSU.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - VODKA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - VODKA.mcs new file mode 100644 index 0000000..a64f325 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABSOLUTE - VODKA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABYSS - SINGLE - ABYSSMAL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABYSS - SINGLE - ABYSSMAL.mcs new file mode 100644 index 0000000..e241e33 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ABYSS - SINGLE - ABYSSMAL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - DOUBLES - MJAFROP.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - DOUBLES - MJAFROP.mcs new file mode 100644 index 0000000..a9d4029 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - DOUBLES - MJAFROP.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - SINGLE - .........mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - SINGLE - .........mcs new file mode 100644 index 0000000..58fab5b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFRONOVA PRIMEVAL - SINGLE - .........mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFTER THE GAME OF LOVE - SINGLE - 10C4FOY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFTER THE GAME OF LOVE - SINGLE - 10C4FOY.mcs new file mode 100644 index 0000000..9a561ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AFTER THE GAME OF LOVE - SINGLE - 10C4FOY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (303 BASSMIX) - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (303 BASSMIX) - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..40c7a9f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (303 BASSMIX) - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - DOUBLES - MJAM3ONI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - DOUBLES - MJAM3ONI.mcs new file mode 100644 index 0000000..22255a4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - DOUBLES - MJAM3ONI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - EASTSIDE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - EASTSIDE.mcs new file mode 100644 index 0000000..7ee4f1a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - EASTSIDE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - MJAM3ONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - MJAM3ONS.mcs new file mode 100644 index 0000000..403ead8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P (AM EAST mix) - SINGLE - MJAM3ONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - 10 B3FOY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - 10 B3FOY.mcs new file mode 100644 index 0000000..1509609 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - 10 B3FOY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - C3P0R2D2.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - C3P0R2D2.mcs new file mode 100644 index 0000000..8bb64cd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/AM-3P - SINGLE - C3P0R2D2.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - DRKDREAM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - DRKDREAM.mcs new file mode 100644 index 0000000..668d54e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - DRKDREAM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - NYTEMARE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - NYTEMARE.mcs new file mode 100644 index 0000000..35858fd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Across the nightmare - SINGLE - NYTEMARE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 AZ BEAT MIX) - SINGLE - B4ZADEAD.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 AZ BEAT MIX) - SINGLE - B4ZADEAD.mc new file mode 100644 index 0000000..11b3ca9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 AZ BEAT MIX) - SINGLE - B4ZADEAD.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 ZA BEAT MIX) - SINGLE - CORE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 ZA BEAT MIX) - SINGLE - CORE.mcs new file mode 100644 index 0000000..913b0fc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U (B4 ZA BEAT MIX) - SINGLE - CORE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - IIDX VERSION.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - IIDX VERSION.mcs new file mode 100644 index 0000000..b0ce67e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - IIDX VERSION.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - YONEX.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - YONEX.mcs new file mode 100644 index 0000000..eb3015b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/B4U - SINGLE - YONEX.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BE LOVIN - SINGLE - HYPNO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BE LOVIN - SINGLE - HYPNO.mcs new file mode 100644 index 0000000..4c99821 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BE LOVIN - SINGLE - HYPNO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - CONST.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - CONST.mcs new file mode 100644 index 0000000..774766e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - CONST.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - FYNALLZ.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - FYNALLZ.mcs new file mode 100644 index 0000000..7fb6a8d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BREAK DOWN ! - SINGLE - FYNALLZ.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2 U (K.O.G. G3 MIX) - SINGLE - roxor.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2 U (K.O.G. G3 MIX) - SINGLE - roxor.mcs new file mode 100644 index 0000000..f7c13bc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2 U (K.O.G. G3 MIX) - SINGLE - roxor.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (K.O.G G3 MIX) - SINGLE - B2ME.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (K.O.G G3 MIX) - SINGLE - B2ME.mcs new file mode 100644 index 0000000..4bed7da Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (K.O.G G3 MIX) - SINGLE - B2ME.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - DOUBLE - FNL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - DOUBLE - FNL.mcs new file mode 100644 index 0000000..ab21f3f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - DOUBLE - FNL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - EN FUEGO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - EN FUEGO.mcs new file mode 100644 index 0000000..bb2f207 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - EN FUEGO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - JED28.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - JED28.mcs new file mode 100644 index 0000000..7e544f0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U (ORCHESTRA-GROOV) - SINGLE - JED28.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - DOUBLES - LITESOUT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - DOUBLES - LITESOUT.mcs new file mode 100644 index 0000000..e30104a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - DOUBLES - LITESOUT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U02.mc new file mode 100644 index 0000000..9a2ec78 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U03.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U03.mc new file mode 100644 index 0000000..1128975 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BRILLIANT 2U - SINGLE - SHPB2U03.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BROKEN MY HEART - SINGLE - TAK0 MAN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BROKEN MY HEART - SINGLE - TAK0 MAN.mcs new file mode 100644 index 0000000..3308e21 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BROKEN MY HEART - SINGLE - TAK0 MAN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (BLUE FIRE MIX) - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (BLUE FIRE MIX) - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..5ec01a1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (BLUE FIRE MIX) - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (MOMO MIX) - SINGLE - FINALS1.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (MOMO MIX) - SINGLE - FINALS1.mcs new file mode 100644 index 0000000..3646172 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR (MOMO MIX) - SINGLE - FINALS1.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - 3UNDMIX3.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - 3UNDMIX3.mc new file mode 100644 index 0000000..11961df Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - 3UNDMIX3.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - STM-BURN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - STM-BURN.mcs new file mode 100644 index 0000000..81622be Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNIN' THE FLOOR - SINGLE - STM-BURN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - DOUBLES - SPEKIO18.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - DOUBLES - SPEKIO18.mcs new file mode 100644 index 0000000..e450654 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - DOUBLES - SPEKIO18.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - ANNOTATE.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - ANNOTATE.mc new file mode 100644 index 0000000..959826b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - ANNOTATE.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - FLY-HIGH.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - FLY-HIGH.mc new file mode 100644 index 0000000..3ce1441 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BURNING HEAT! - SINGLE - FLY-HIGH.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT02.mc new file mode 100644 index 0000000..21b95dd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT03.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT03.mc new file mode 100644 index 0000000..c49cbc7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/BUTTERFLY - SINGLE - SHPBUT03.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - CHINCHIN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - CHINCHIN.mcs new file mode 100644 index 0000000..5831617 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - CHINCHIN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - DOGFIGHT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - DOGFIGHT.mcs new file mode 100644 index 0000000..50d720d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAN'T STOP FALLIN' IN LOVE (SPEED MIX) - SINGLE - DOGFIGHT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (heart) - SINGLE - CANDY-01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (heart) - SINGLE - CANDY-01.mc new file mode 100644 index 0000000..ba4258a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (heart) - SINGLE - CANDY-01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - DOUBLES - MJCANDY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - DOUBLES - MJCANDY.mcs new file mode 100644 index 0000000..ca63169 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - DOUBLES - MJCANDY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - ANA-GEKI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - ANA-GEKI.mcs new file mode 100644 index 0000000..bd1a5ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - ANA-GEKI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - MEATLOAF.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - MEATLOAF.mcs new file mode 100644 index 0000000..144ffbe Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY (star) - SINGLE - MEATLOAF.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY )heart) - SINGLE - SHPCDH01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY )heart) - SINGLE - SHPCDH01.mc new file mode 100644 index 0000000..4066467 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANDY )heart) - SINGLE - SHPCDH01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANT STOP FALLIN' IN LOVE - SINGLE - HOOCHIE!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANT STOP FALLIN' IN LOVE - SINGLE - HOOCHIE!.mcs new file mode 100644 index 0000000..b462e1e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CANT STOP FALLIN' IN LOVE - SINGLE - HOOCHIE!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTAIN JACK - SINGLE - JACKED..mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTAIN JACK - SINGLE - JACKED..mcs new file mode 100644 index 0000000..39e290c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTAIN JACK - SINGLE - JACKED..mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTIAN JACK - SINGLE - DRILL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTIAN JACK - SINGLE - DRILL.mcs new file mode 100644 index 0000000..52e5455 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CAPTIAN JACK - SINGLE - DRILL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - BARBIE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - BARBIE.mcs new file mode 100644 index 0000000..cf592f4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - BARBIE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - T00N.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - T00N.mcs new file mode 100644 index 0000000..be3965d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CARTOON HEROES (Speedy Mix) - SINGLE - T00N.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - CELEU-S - (Standard).mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - CELEU-S - (Standard).mc new file mode 100644 index 0000000..efe9317 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - CELEU-S - (Standard).mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - MJCELONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - MJCELONS.mcs new file mode 100644 index 0000000..c66a6d9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CELEBRATE NITE (EURO TRANCE STYLE) - SINGLE - MJCELONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COLORS (for EXTREME) - SINGLE - Tourmal.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COLORS (for EXTREME) - SINGLE - Tourmal.mcs new file mode 100644 index 0000000..2c3b949 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COLORS (for EXTREME) - SINGLE - Tourmal.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COWGIRL - SINGLE - C0SM1C0W.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COWGIRL - SINGLE - C0SM1C0W.mcs new file mode 100644 index 0000000..c8e774e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/COWGIRL - SINGLE - C0SM1C0W.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH - SINGLE - MAX2-009.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH - SINGLE - MAX2-009.mcs new file mode 100644 index 0000000..a97eb3a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH - SINGLE - MAX2-009.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH! - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH! - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..68e0151 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CRASH! - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CUTIE CHASER (Morning Mix) - SINGLE - CUMO@8.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CUTIE CHASER (Morning Mix) - SINGLE - CUMO@8.mc new file mode 100644 index 0000000..fa2a10e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/CUTIE CHASER (Morning Mix) - SINGLE - CUMO@8.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Cutie Chaser - single - TAILCHASR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Cutie Chaser - single - TAILCHASR.mcs new file mode 100644 index 0000000..a53b6e1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Cutie Chaser - single - TAILCHASR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - D2R-01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - D2R-01.mc new file mode 100644 index 0000000..51cb503 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - D2R-01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - S 2 R.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - S 2 R.mcs new file mode 100644 index 0000000..b090106 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/D2R - SINGLE - S 2 R.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - DOUBLES - HUMANE .mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - DOUBLES - HUMANE .mcs new file mode 100644 index 0000000..63e0d58 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - DOUBLES - HUMANE .mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - ARGUMENT.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - ARGUMENT.mc new file mode 100644 index 0000000..44627be Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - ARGUMENT.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - DIEMELDI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - DIEMELDI.mcs new file mode 100644 index 0000000..c539438 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAIKENKAI - SINGLE - DIEMELDI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - DAMMIT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - DAMMIT.mcs new file mode 100644 index 0000000..2fe41c2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - DAMMIT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - ONI 2.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - ONI 2.mcs new file mode 100644 index 0000000..adbd859 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DAM DARIRAM - SINGLE - ONI 2.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLE - NOSPACE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLE - NOSPACE.mcs new file mode 100644 index 0000000..73e14fe Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLE - NOSPACE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLES - MJDEADE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLES - MJDEADE.mcs new file mode 100644 index 0000000..ecfce85 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - DOUBLES - MJDEADE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - EPILEPSY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - EPILEPSY.mcs new file mode 100644 index 0000000..3453181 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - EPILEPSY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - RE-MA2DP.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - RE-MA2DP.mc new file mode 100644 index 0000000..9f881ec Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DEAD END - SINGLE - RE-MA2DP.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DIVE (more deep & deeper style) - SINGLE - 6FTUNDER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DIVE (more deep & deeper style) - SINGLE - 6FTUNDER.mcs new file mode 100644 index 0000000..883711d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DIVE (more deep & deeper style) - SINGLE - 6FTUNDER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO IT RIGHT - SINGLE - WRONG-O!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO IT RIGHT - SINGLE - WRONG-O!.mcs new file mode 100644 index 0000000..d2cd63e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO IT RIGHT - SINGLE - WRONG-O!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - BOUSOU-01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - BOUSOU-01.mc new file mode 100644 index 0000000..02e86ad Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - BOUSOU-01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - OHUREMEM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - OHUREMEM.mcs new file mode 100644 index 0000000..6456c69 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DO YOU REMEMBER ME - SINGLE - OHUREMEM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DON'T STOP! (2nd AMD MIX) - SINGLE - STM-STOP.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DON'T STOP! (2nd AMD MIX) - SINGLE - STM-STOP.mcs new file mode 100644 index 0000000..0e75400 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DON'T STOP! (2nd AMD MIX) - SINGLE - STM-STOP.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - EXTRA-SP.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - EXTRA-SP.mcs new file mode 100644 index 0000000..e155256 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - EXTRA-SP.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - TOMMYROT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - TOMMYROT.mcs new file mode 100644 index 0000000..0752bbe Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT (K.O.G MIX) - SINGLE - TOMMYROT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - 9C 8FOY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - 9C 8FOY.mcs new file mode 100644 index 0000000..0168500 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - 9C 8FOY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - KEI!DROP.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - KEI!DROP.mcs new file mode 100644 index 0000000..de20e83 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP OUT - SINGLE - KEI!DROP.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..b6f8d79 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SSR-RX.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SSR-RX.mc new file mode 100644 index 0000000..c7f023e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB (System S.F. Mix) - SINGLE - SSR-RX.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - DEFUSED.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - DEFUSED.mcs new file mode 100644 index 0000000..7da2c3e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - DEFUSED.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - JED.EX.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - JED.EX.mc new file mode 100644 index 0000000..a70fc86 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DROP THE BOMB - SINGLE - JED.EX.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - DEBUKETU.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - DEBUKETU.mcs new file mode 100644 index 0000000..7f3197c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - DEBUKETU.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - XOP!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - XOP!.mcs new file mode 100644 index 0000000..1419375 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DXY! - SINGLE - XOP!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - BOOM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - BOOM.mcs new file mode 100644 index 0000000..cf02784 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - BOOM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - CYCLAMEN.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - CYCLAMEN.mc new file mode 100644 index 0000000..d394942 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (B4 ZA BEAT MIX) - SINGLE - CYCLAMEN.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - DREAM.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - DREAM.mc new file mode 100644 index 0000000..e596c76 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - DREAM.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - GAYRAVER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - GAYRAVER.mcs new file mode 100644 index 0000000..51b44f3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE (Down Bird SOTA Mix) - SINGLE - GAYRAVER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE - SINGLE - DYNASTY.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE - SINGLE - DYNASTY.mc new file mode 100644 index 0000000..7c0cdbd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/DYNAMITE RAVE - SINGLE - DYNASTY.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - DOUBLES - INFINITY.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - DOUBLES - INFINITY.mc new file mode 100644 index 0000000..7a7e894 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - DOUBLES - INFINITY.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - Single - ALLSTARS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - Single - ALLSTARS.mcs new file mode 100644 index 0000000..1cd5055 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution - Single - ALLSTARS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution [godai edit] - SINGLE - OM_OMES!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution [godai edit] - SINGLE - OM_OMES!.mcs new file mode 100644 index 0000000..73e7859 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dance Dance Revolution [godai edit] - SINGLE - OM_OMES!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - SINGLE - SACK!!!!O.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - SINGLE - SACK!!!!O.mcs new file mode 100644 index 0000000..6c80c69 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - SINGLE - SACK!!!!O.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - Single - shit.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - Single - shit.mcs new file mode 100644 index 0000000..1006963 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Destiny Lovers - Single - shit.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Do It Right (Harmonized 2Step Mix) - SINGLE - PORSION.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Do It Right (Harmonized 2Step Mix) - SINGLE - PORSION.mc new file mode 100644 index 0000000..8479a48 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Do It Right (Harmonized 2Step Mix) - SINGLE - PORSION.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dont Stop - single - NOSTOPS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dont Stop - single - NOSTOPS.mcs new file mode 100644 index 0000000..9bdd09f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dont Stop - single - NOSTOPS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dr. LOVE - SINGLE - SHPDLV01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dr. LOVE - SINGLE - SHPDLV01.mc new file mode 100644 index 0000000..913d1b5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dr. LOVE - SINGLE - SHPDLV01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dynamite Rave- Single - Mineshft.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dynamite Rave- Single - Mineshft.mcs new file mode 100644 index 0000000..9c5ab53 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Dynamite Rave- Single - Mineshft.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - SINGLE - SHABURE!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - SINGLE - SHABURE!.mcs new file mode 100644 index 0000000..3b39edc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - SINGLE - SHABURE!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - single - NOPLSURE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - single - NOPLSURE.mcs new file mode 100644 index 0000000..d289d4b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTACY - single - NOPLSURE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY (midnight blue mix) - SINGLE - MJECSONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY (midnight blue mix) - SINGLE - MJECSONS.mcs new file mode 100644 index 0000000..bf140dc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY (midnight blue mix) - SINGLE - MJECSONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY -MIDNIGHT BLUE MIX- - SOBLUE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY -MIDNIGHT BLUE MIX- - SOBLUE.mcs new file mode 100644 index 0000000..f153a71 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ECSTASY -MIDNIGHT BLUE MIX- - SOBLUE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/EL RITMO TROPICAL - SINGLE - SHPRTM01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/EL RITMO TROPICAL - SINGLE - SHPRTM01.mc new file mode 100644 index 0000000..9e0c018 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/EL RITMO TROPICAL - SINGLE - SHPRTM01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - B-TUNED.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - B-TUNED.mc new file mode 100644 index 0000000..eb4aca1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - B-TUNED.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - OFF KEY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - OFF KEY.mcs new file mode 100644 index 0000000..77d5a7a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ELECTRO TUNED - SINGLE - OFF KEY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - DOUBLES - MJENDOF.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - DOUBLES - MJENDOF.mcs new file mode 100644 index 0000000..5b06390 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - DOUBLES - MJENDOF.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - SHPEOC02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - SHPEOC02.mc new file mode 100644 index 0000000..b9ccd0e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - SHPEOC02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - UZ-END OF THE CENTURY+.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - UZ-END OF THE CENTURY+.mc new file mode 100644 index 0000000..22537c6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/END OF THE CENTURY - SINGLE - UZ-END OF THE CENTURY+.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - (NOSTALMIX) - SINGLE - IIDXVER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - (NOSTALMIX) - SINGLE - IIDXVER.mcs new file mode 100644 index 0000000..ba4bc55 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - (NOSTALMIX) - SINGLE - IIDXVER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - DOUBLES - STEP THIS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - DOUBLES - STEP THIS.mcs new file mode 100644 index 0000000..8ff6b82 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - DOUBLES - STEP THIS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - SINGLE - STM-ERA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - SINGLE - STM-ERA.mcs new file mode 100644 index 0000000..618b5ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ERA - SINGLE - STM-ERA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Exoctic Ethnic - double - REVENG.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Exoctic Ethnic - double - REVENG.mcs new file mode 100644 index 0000000..adb17e2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Exoctic Ethnic - double - REVENG.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - GROOVEMAX.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - GROOVEMAX.mc new file mode 100644 index 0000000..6cbf5bc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - GROOVEMAX.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - OASIS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - OASIS.mcs new file mode 100644 index 0000000..acb1092 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FANTASY - SINGLE - OASIS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FIREFLY - SINGLE - UZ-FIRE+.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FIREFLY - SINGLE - UZ-FIRE+.mc new file mode 100644 index 0000000..a0022f2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FIREFLY - SINGLE - UZ-FIRE+.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FRECKLES - SINGLE - BLEMISH.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FRECKLES - SINGLE - BLEMISH.mcs new file mode 100644 index 0000000..a9ed41f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/FRECKLES - SINGLE - BLEMISH.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Freckles - single - SOBAKASU.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Freckles - single - SOBAKASU.mcs new file mode 100644 index 0000000..e3c116e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Freckles - single - SOBAKASU.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray (for EXTREME) - SINGLE - SPEKIO29.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray (for EXTREME) - SINGLE - SPEKIO29.mcs new file mode 100644 index 0000000..39c0641 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray (for EXTREME) - SINGLE - SPEKIO29.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray -single - Icicle.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray -single - Icicle.mcs new file mode 100644 index 0000000..713aa8c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Frozen Ray -single - Icicle.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GEMELAN DE COUPLE - SINGLE - F3.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GEMELAN DE COUPLE - SINGLE - F3.mcs new file mode 100644 index 0000000..d2be72c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GEMELAN DE COUPLE - SINGLE - F3.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOM SCREAMS - DOUBLE - MJGENOM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOM SCREAMS - DOUBLE - MJGENOM.mcs new file mode 100644 index 0000000..92f2e9b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOM SCREAMS - DOUBLE - MJGENOM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOME SCREAMS - SINGLE - Genom.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOME SCREAMS - SINGLE - Genom.mcs new file mode 100644 index 0000000..0e56ded Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENOME SCREAMS - SINGLE - Genom.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENTLE STRESS - SINGLE - 10C5FOY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENTLE STRESS - SINGLE - 10C5FOY.mcs new file mode 100644 index 0000000..948aa38 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GENTLE STRESS - SINGLE - 10C5FOY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET02.mc new file mode 100644 index 0000000..280696e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET03.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET03.mc new file mode 100644 index 0000000..a48bc86 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GET UP'N MOVE - SINGLE - SHPGET03.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUATION - SINGLE - SHPGDN01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUATION - SINGLE - SHPGDN01.mc new file mode 100644 index 0000000..63ce71d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUATION - SINGLE - SHPGDN01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUISTIC CYBER -SINGLE- gungho.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUISTIC CYBER -SINGLE- gungho.mcs new file mode 100644 index 0000000..efc1f37 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GRADUISTIC CYBER -SINGLE- gungho.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - GROOVE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - GROOVE.mcs new file mode 100644 index 0000000..b712b01 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - GROOVE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - SHPGRV01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - SHPGRV01.mc new file mode 100644 index 0000000..846f9e3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE - SINGLE - SHPGRV01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - BOOTY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - BOOTY.mcs new file mode 100644 index 0000000..073f4d6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - BOOTY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GRAVE2K1.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GRAVE2K1.mcs new file mode 100644 index 0000000..02915cd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GRAVE2K1.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GROOVE2K.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GROOVE2K.mcs new file mode 100644 index 0000000..f81cca0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GROOVE 2001 - SINGLE - GROOVE2K.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gamelan de Couple - SINGLE - DABAREMX.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gamelan de Couple - SINGLE - DABAREMX.mc new file mode 100644 index 0000000..0badcd6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gamelan de Couple - SINGLE - DABAREMX.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GenomE Screams - double - YUSCREAM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GenomE Screams - double - YUSCREAM.mcs new file mode 100644 index 0000000..90aba5b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/GenomE Screams - double - YUSCREAM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Genome Screams - single - SCREAMIN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Genome Screams - single - SCREAMIN.mcs new file mode 100644 index 0000000..55327da Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Genome Screams - single - SCREAMIN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gentle Stress (AMD SEXUAL MIX) -single- 2XSTRESS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gentle Stress (AMD SEXUAL MIX) -single- 2XSTRESS.mcs new file mode 100644 index 0000000..f251774 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Gentle Stress (AMD SEXUAL MIX) -single- 2XSTRESS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Graduation - single - SEMPAI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Graduation - single - SEMPAI.mcs new file mode 100644 index 0000000..1d34517 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Graduation - single - SEMPAI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - DOUBLE - MJHEALMX.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - DOUBLE - MJHEALMX.mcs new file mode 100644 index 0000000..3c06384 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - DOUBLE - MJHEALMX.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - HURTHEAL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - HURTHEAL.mcs new file mode 100644 index 0000000..c924ed9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - HURTHEAL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - RAPTURE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - RAPTURE.mcs new file mode 100644 index 0000000..0c1f6c8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION (ANGELIC MIX) - SINGLE - RAPTURE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - FOX-VISN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - FOX-VISN.mcs new file mode 100644 index 0000000..7e721ba Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - FOX-VISN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - MJHEALV.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - MJHEALV.mcs new file mode 100644 index 0000000..46d5862 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - DOUBLES - MJHEALV.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - HAMMERHV.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - HAMMERHV.mcs new file mode 100644 index 0000000..e3f5a3c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - HAMMERHV.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - VIOLENCE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - VIOLENCE.mcs new file mode 100644 index 0000000..87209b1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HEALING VISION - SINGLE - VIOLENCE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGER - SINGLE - STM-HIGH.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGER - SINGLE - STM-HIGH.mcs new file mode 100644 index 0000000..3e93edf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGER - SINGLE - STM-HIGH.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHER - SINGLE - LOWER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHER - SINGLE - LOWER.mcs new file mode 100644 index 0000000..db90cb1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHER - SINGLE - LOWER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - GARDEN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - GARDEN.mcs new file mode 100644 index 0000000..4a2200d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - GARDEN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - SPEKIO26.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - SPEKIO26.mcs new file mode 100644 index 0000000..70864a7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HIGHS OFF U - SINGLE - SPEKIO26.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLD ON ME - SINGLE - SHPHON01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLD ON ME - SINGLE - SHPHON01.mc new file mode 100644 index 0000000..97b9029 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLD ON ME - SINGLE - SHPHON01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - ANOTHER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - ANOTHER.mcs new file mode 100644 index 0000000..46a09b8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - ANOTHER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - STM-HOL9.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - STM-HOL9.mcs new file mode 100644 index 0000000..574a818 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HOLIC - SINGLE - STM-HOL9.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - HALL9000.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - HALL9000.mc new file mode 100644 index 0000000..5030768 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - HALL9000.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - NOTFUNNY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - NOTFUNNY.mcs new file mode 100644 index 0000000..7f1c2ae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA - SINGLE - NOTFUNNY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - MJHYSONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - MJHYSONS.mcs new file mode 100644 index 0000000..ffcd845 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - MJHYSONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - WHEE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - WHEE.mcs new file mode 100644 index 0000000..4115acd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/HYSTERIA 2001 - SINGLE - WHEE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Healing Vision -Angelic Mix- Double - TUNLVISION.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Healing Vision -Angelic Mix- Double - TUNLVISION.mcs new file mode 100644 index 0000000..a0c659a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Healing Vision -Angelic Mix- Double - TUNLVISION.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Heaven is a '57 metallic gray (gimmix) - SINGLE - SHPH5700.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Heaven is a '57 metallic gray (gimmix) - SINGLE - SHPH5700.mc new file mode 100644 index 0000000..37d841d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Heaven is a '57 metallic gray (gimmix) - SINGLE - SHPH5700.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - SHPMIR04.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - SHPMIR04.mc new file mode 100644 index 0000000..2391d00 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - SHPMIR04.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - TRUST ME.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - TRUST ME.mcs new file mode 100644 index 0000000..065773b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I BELIEVE IN MIRACLES - SINGLE - TRUST ME.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I do I do I do - single - NOIDONT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I do I do I do - single - NOIDONT.mcs new file mode 100644 index 0000000..ac54b52 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I do I do I do - single - NOIDONT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU - SINGLE - SHPIGG01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU - SINGLE - SHPIGG01.mc new file mode 100644 index 0000000..3e271e8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU - SINGLE - SHPIGG01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU! - SINGLE - GOT ME!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU! - SINGLE - GOT ME!.mcs new file mode 100644 index 0000000..e856cbf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M GONNA GET YOU! - SINGLE - GOT ME!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - IMPROVED.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - IMPROVED.mc new file mode 100644 index 0000000..c3051e3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - IMPROVED.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - SEIZURE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - SEIZURE.mcs new file mode 100644 index 0000000..3526117 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/I'M IN THE MOOD FOR DANCING - SINGLE - SEIZURE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - GO AWAY!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - GO AWAY!.mcs new file mode 100644 index 0000000..c2db60d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - GO AWAY!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - SURVIVOR.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - SURVIVOR.mc new file mode 100644 index 0000000..7d8c877 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IF YOU WERE HERE - SINGLE - SURVIVOR.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - DOUBLE - MJINSERT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - DOUBLE - MJINSERT.mcs new file mode 100644 index 0000000..7b943ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - DOUBLE - MJINSERT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - BAKAYARO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - BAKAYARO.mcs new file mode 100644 index 0000000..988c6c2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - BAKAYARO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - MAXXINSERTION.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - MAXXINSERTION.mcs new file mode 100644 index 0000000..2565281 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/INSERTiON - SINGLE - MAXXINSERTION.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - DOUBLES - 1GIGAOHM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - DOUBLES - 1GIGAOHM.mcs new file mode 100644 index 0000000..7cf3d9b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - DOUBLES - 1GIGAOHM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - SINGLE - MEGAMIX.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - SINGLE - MEGAMIX.mcs new file mode 100644 index 0000000..9279ffb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/IRRESISTIBLEMENT - SINGLE - MEGAMIX.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE (AMD SWING MIX) - SINGLE - SHPJJA02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE (AMD SWING MIX) - SINGLE - SHPJJA02.mc new file mode 100644 index 0000000..a3b5957 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE (AMD SWING MIX) - SINGLE - SHPJJA02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE - SINGLE - 10 B2FOY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE - SINGLE - 10 B2FOY.mcs new file mode 100644 index 0000000..d46ee40 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JAM JAM REGGAE - SINGLE - 10 B2FOY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - GUILEFUL.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - GUILEFUL.mc new file mode 100644 index 0000000..d66b7d8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - GUILEFUL.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - SHPJET01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - SHPJET01.mc new file mode 100644 index 0000000..647be5c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/JET WORLD - SINGLE - SHPJET01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - ANOTHER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - ANOTHER.mcs new file mode 100644 index 0000000..075bc64 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - ANOTHER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - SPEKIO16.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - SPEKIO16.mcs new file mode 100644 index 0000000..812aa12 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KAKUMEI - SINGLE - SPEKIO16.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - M2FINAL!.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - M2FINAL!.mc new file mode 100644 index 0000000..8ce69b3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - M2FINAL!.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - SPEKIO14.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - SPEKIO14.mcs new file mode 100644 index 0000000..8fe854e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KEEP ON MOVIN' - SINGLE - SPEKIO14.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - BAD MAMA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - BAD MAMA.mcs new file mode 100644 index 0000000..f793fac Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - BAD MAMA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - SPEKIO17.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - SPEKIO17.mcs new file mode 100644 index 0000000..f854ad6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/KIND LADY - SINGLE - SPEKIO17.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Kiss Me All Night Long - SINGLE - SHPKMA01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Kiss Me All Night Long - SINGLE - SHPKMA01.mc new file mode 100644 index 0000000..8791712 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Kiss Me All Night Long - SINGLE - SHPKMA01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - CLUMSILY.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - CLUMSILY.mc new file mode 100644 index 0000000..09bad77 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - CLUMSILY.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - SPEKIO32.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - SPEKIO32.mcs new file mode 100644 index 0000000..89009a6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/L'amour et la liberte' (DDR Ver.) - SINGLE - SPEKIO32.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA COPA DE LA VIDA - SINGLE - CERVEZA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA COPA DE LA VIDA - SINGLE - CERVEZA.mcs new file mode 100644 index 0000000..2b673c4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA COPA DE LA VIDA - SINGLE - CERVEZA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA - SINGLE - SHPSEN01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA - SINGLE - SHPSEN01.mc new file mode 100644 index 0000000..ebfa29d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA - SINGLE - SHPSEN01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA VIRTUAL - SINGLE - LOCO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA VIRTUAL - SINGLE - LOCO.mcs new file mode 100644 index 0000000..82db354 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LA SENORITA VIRTUAL - SINGLE - LOCO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - DOUBLE - MJLEADC.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - DOUBLE - MJLEADC.mcs new file mode 100644 index 0000000..9f2c861 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - DOUBLE - MJLEADC.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - Holy 16th.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - Holy 16th.mcs new file mode 100644 index 0000000..0504217 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - Holy 16th.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - leadfoot.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - leadfoot.mcs new file mode 100644 index 0000000..3b1acac Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LEADING CYBER - SINGLE - leadfoot.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET THE BEAT HIT 'EM R&B - DOUBLES - WORD BEAT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET THE BEAT HIT 'EM R&B - DOUBLES - WORD BEAT.mcs new file mode 100644 index 0000000..5bb1b8a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET THE BEAT HIT 'EM R&B - DOUBLES - WORD BEAT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GET DOWN - SINGLE - SHPLGD01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GET DOWN - SINGLE - SHPLGD01.mc new file mode 100644 index 0000000..49e24f0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GET DOWN - SINGLE - SHPLGD01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - LETS NOT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - LETS NOT.mcs new file mode 100644 index 0000000..a20739f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - LETS NOT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - lets_more-16b.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - lets_more-16b.mc new file mode 100644 index 0000000..cdb3268 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LET'S GROOVE - SINGLE - lets_more-16b.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - LITTLE-EX.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - LITTLE-EX.mcs new file mode 100644 index 0000000..47f4517 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - LITTLE-EX.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - SHPBIT02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - SHPBIT02.mc new file mode 100644 index 0000000..6774996 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LITTLE BITCH - SINGLE - SHPBIT02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LIVING IN AMERICA - SINGLE - TOURISM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LIVING IN AMERICA - SINGLE - TOURISM.mcs new file mode 100644 index 0000000..a81fee8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LIVING IN AMERICA - SINGLE - TOURISM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LONG TRAIN RUNNIN' - SINGLE - AMTRAK.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LONG TRAIN RUNNIN' - SINGLE - AMTRAK.mcs new file mode 100644 index 0000000..d8336f1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LONG TRAIN RUNNIN' - SINGLE - AMTRAK.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - DOUBLES - LOOK AT ME.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - DOUBLES - LOOK AT ME.mcs new file mode 100644 index 0000000..c458c69 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - DOUBLES - LOOK AT ME.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - 1LASTCRY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - 1LASTCRY.mcs new file mode 100644 index 0000000..6990ddb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - 1LASTCRY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - LOKSOBAD.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - LOKSOBAD.mcs new file mode 100644 index 0000000..18a2b8a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOOK TO THE SKY - SINGLE - LOKSOBAD.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - LUVMERAW.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - LUVMERAW.mcs new file mode 100644 index 0000000..73bb210 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - LUVMERAW.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - STM-LAT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - STM-LAT.mcs new file mode 100644 index 0000000..c95ef66 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE AGAIN TONIGHT - SINGLE - STM-LAT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - DOUBLES - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - DOUBLES - SPEKIO.mcs new file mode 100644 index 0000000..c746d87 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - DOUBLES - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - LOVEONI 1.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - LOVEONI 1.mcs new file mode 100644 index 0000000..e014656 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - LOVEONI 1.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - SPEKIO33.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - SPEKIO33.mcs new file mode 100644 index 0000000..04a43c4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SHINE - SINGLE - SPEKIO33.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SUGAR - SINGLE - JUMPMEL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SUGAR - SINGLE - JUMPMEL.mcs new file mode 100644 index 0000000..33e24de Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVE LOVE SUGAR - SINGLE - JUMPMEL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVIN' YOU - SINGLE - SINGLE - HIGH.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVIN' YOU - SINGLE - SINGLE - HIGH.mcs new file mode 100644 index 0000000..9613d84 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LOVIN' YOU - SINGLE - SINGLE - HIGH.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LUV TO ME (DISCO MIX) - SINGLE - SHPL2M01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LUV TO ME (DISCO MIX) - SINGLE - SHPL2M01.mc new file mode 100644 index 0000000..281142f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/LUV TO ME (DISCO MIX) - SINGLE - SHPL2M01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/La Senorita - DOUBLES - MJSENOR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/La Senorita - DOUBLES - MJSENOR.mcs new file mode 100644 index 0000000..edf7e5b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/La Senorita - DOUBLES - MJSENOR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - DARKSOME.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - DARKSOME.mc new file mode 100644 index 0000000..aee716a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - DARKSOME.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - MORPHINE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - MORPHINE.mcs new file mode 100644 index 0000000..76e22ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Last Message - SINGLE - MORPHINE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) - SINGLE - SPEKIO15.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) - SINGLE - SPEKIO15.mcs new file mode 100644 index 0000000..4e984e8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) - SINGLE - SPEKIO15.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) SINGLE - RAINBOW.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) SINGLE - RAINBOW.mcs new file mode 100644 index 0000000..405c064 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Look To The Sky (True Color Mix) SINGLE - RAINBOW.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Love shine - double - love hurts.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Love shine - double - love hurts.mcs new file mode 100644 index 0000000..daf43ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Love shine - double - love hurts.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAHOU NO TOBIRA (The Theme of Space Maco) - SINGLE - WABBIT!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAHOU NO TOBIRA (The Theme of Space Maco) - SINGLE - WABBIT!.mcs new file mode 100644 index 0000000..6d471eb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAHOU NO TOBIRA (The Theme of Space Maco) - SINGLE - WABBIT!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - MJMATONS .mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - MJMATONS .mcs new file mode 100644 index 0000000..781672b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - MJMATONS .mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - SUMMER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - SUMMER.mcs new file mode 100644 index 0000000..584fb49 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN (K.O.G MIX) - SINGLE - SUMMER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN - SINGLE - VER.K.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN - SINGLE - VER.K.mcs new file mode 100644 index 0000000..f0528b9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MATSURI JAPAN - SINGLE - VER.K.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - DOUBLE - MJMAX300.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - DOUBLE - MJMAX300.mcs new file mode 100644 index 0000000..d88a963 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - DOUBLE - MJMAX300.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - SINGLE - ITG__300.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - SINGLE - ITG__300.mcs new file mode 100644 index 0000000..0b5e2e5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAX 300 - SINGLE - ITG__300.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - M-OVER01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - M-OVER01.mc new file mode 100644 index 0000000..52bfcb6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - M-OVER01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - NOLIMITS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - NOLIMITS.mcs new file mode 100644 index 0000000..b1ac95c Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXIMUM OVERDRIVE - SINGLE - NOLIMITS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - GEKI-LT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - GEKI-LT.mcs new file mode 100644 index 0000000..f6831d5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - GEKI-LT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - X-DRIVE!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - X-DRIVE!.mcs new file mode 100644 index 0000000..508bf97 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MAXX UNLIMITED - SINGLE - X-DRIVE!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - DORANEKO.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - DORANEKO.mc new file mode 100644 index 0000000..1311536 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - DORANEKO.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - SPEKIO31.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - SPEKIO31.mcs new file mode 100644 index 0000000..17bbe44 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MI-KE-NE-CO ROCK - SINGLE - SPEKIO31.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - FIRE&ICE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - FIRE&ICE.mcs new file mode 100644 index 0000000..6efe728 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - FIRE&ICE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - Sphinx.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - Sphinx.mcs new file mode 100644 index 0000000..b76f362 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MIDNITE BLAZE - SINGLE - Sphinx.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MOBO MOGA - SINGLE - SHPMMOB02.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MOBO MOGA - SINGLE - SHPMMOB02.mc new file mode 100644 index 0000000..d9c87c9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MOBO MOGA - SINGLE - SHPMMOB02.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MR. T - SINGLE - PITYFOOL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MR. T - SINGLE - PITYFOOL.mcs new file mode 100644 index 0000000..b76efc5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MR. T - SINGLE - PITYFOOL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - JUMPY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - JUMPY.mcs new file mode 100644 index 0000000..332e424 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - JUMPY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - MJMYSONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - MJMYSONS.mcs new file mode 100644 index 0000000..5abdd04 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE (TOMMY'S SMILE MIX) - SINGLE - MJMYSONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - DOUBLES - HOTHEAVY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - DOUBLES - HOTHEAVY.mcs new file mode 100644 index 0000000..c650fab Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - DOUBLES - HOTHEAVY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - CHO GOOD.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - CHO GOOD.mcs new file mode 100644 index 0000000..cb562e8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - CHO GOOD.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - SNOWCONE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - SNOWCONE.mcs new file mode 100644 index 0000000..b39ef2e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SUMMER LOVE - SINGLE - SNOWCONE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SWEET DARLIN' - DOUBLES - PALSWEET.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SWEET DARLIN' - DOUBLES - PALSWEET.mc new file mode 100644 index 0000000..3f11049 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/MY SWEET DARLIN' - DOUBLES - PALSWEET.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Maho no Tibira - SINGLE - SHPMHT01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Maho no Tibira - SINGLE - SHPMHT01.mc new file mode 100644 index 0000000..49508bc Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Maho no Tibira - SINGLE - SHPMHT01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Make It Better - single - PELVICS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Make It Better - single - PELVICS.mcs new file mode 100644 index 0000000..9a7fda8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Make It Better - single - PELVICS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Miracle Moon - (L.E.D LIGHT STYLE MIX) - SINGLE - SPEKIO28.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Miracle Moon - (L.E.D LIGHT STYLE MIX) - SINGLE - SPEKIO28.mcs new file mode 100644 index 0000000..b46f44f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Miracle Moon - (L.E.D LIGHT STYLE MIX) - SINGLE - SPEKIO28.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mobo Moga - Single - Lounging.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mobo Moga - Single - Lounging.mcs new file mode 100644 index 0000000..8b16411 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mobo Moga - Single - Lounging.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mr T Take Me Higher - Single - MrLarpus.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mr T Take Me Higher - Single - MrLarpus.mcs new file mode 100644 index 0000000..a3cfa11 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Mr T Take Me Higher - Single - MrLarpus.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORI.mcs new file mode 100644 index 0000000..345ce90 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORNERY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORNERY.mcs new file mode 100644 index 0000000..f4778e2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/NORI NORI NORI - SINGLE - NORNERY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - JAZZHOLE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - JAZZHOLE.mcs new file mode 100644 index 0000000..3c88792 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - JAZZHOLE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - jazz_ver2max4.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - jazz_ver2max4.mc new file mode 100644 index 0000000..1c8fde2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ON THE JAZZ - SINGLE - jazz_ver2max4.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - ABNORMAL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - ABNORMAL.mcs new file mode 100644 index 0000000..272e06f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - ABNORMAL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - LENGTHEN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - LENGTHEN.mcs new file mode 100644 index 0000000..e76b323 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORDINARY WORLD - SINGLE - LENGTHEN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 (civilization mix) - SINGLE - CIV1@09.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 (civilization mix) - SINGLE - CIV1@09.mcs new file mode 100644 index 0000000..aedc2cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 (civilization mix) - SINGLE - CIV1@09.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - 10A 6ROB.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - 10A 6ROB.mcs new file mode 100644 index 0000000..22f03a0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - 10A 6ROB.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - TAMANEGI.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - TAMANEGI.mcs new file mode 100644 index 0000000..8733b07 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ORION.78 - SINGLE - TAMANEGI.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Orion 78 civilization mix - DOUBLE - MJORIOCV.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Orion 78 civilization mix - DOUBLE - MJORIOCV.mcs new file mode 100644 index 0000000..fd7751b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Orion 78 civilization mix - DOUBLE - MJORIOCV.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA ETERNAL - SINGLE - HELLISH.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA ETERNAL - SINGLE - HELLISH.mcs new file mode 100644 index 0000000..f31e7bd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA ETERNAL - SINGLE - HELLISH.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA REBIRTH - SINGLE - DOOM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA REBIRTH - SINGLE - DOOM.mcs new file mode 100644 index 0000000..3adfa41 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOIA REBIRTH - SINGLE - DOOM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA ETERNAL - SINGLE - U-R-FUKT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA ETERNAL - SINGLE - U-R-FUKT.mcs new file mode 100644 index 0000000..14f7ede Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA ETERNAL - SINGLE - U-R-FUKT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - 12olushn.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - 12olushn.mcs new file mode 100644 index 0000000..84a86b1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - 12olushn.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - AARONOIA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - AARONOIA.mcs new file mode 100644 index 0000000..2a4dea8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA EVOLUTION - SINGLE - AARONOIA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - 765 GATTA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - 765 GATTA.mcs new file mode 100644 index 0000000..b7918bb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - 765 GATTA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - CRACKOON.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - CRACKOON.mcs new file mode 100644 index 0000000..71877b3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA KCET ~Clean Mix~ - SINGLE - CRACKOON.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA SURVIVOR - SINGLE - ORIGIN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA SURVIVOR - SINGLE - ORIGIN.mcs new file mode 100644 index 0000000..dfcb7b9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA SURVIVOR - SINGLE - ORIGIN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA survivor - SINGLE - ONI.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA survivor - SINGLE - ONI.mc new file mode 100644 index 0000000..d73af9a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PARANOiA survivor - SINGLE - ONI.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PINK ROSE - SINGLE - SHPPKR01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PINK ROSE - SINGLE - SHPPKR01.mc new file mode 100644 index 0000000..a140b69 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/PINK ROSE - SINGLE - SHPPKR01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Pink Rose - SINGLE - VIOLET.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Pink Rose - SINGLE - VIOLET.mcs new file mode 100644 index 0000000..846add1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Pink Rose - SINGLE - VIOLET.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/REMEMBER YOU - TRY2GOON.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/REMEMBER YOU - TRY2GOON.mcs new file mode 100644 index 0000000..a802e4d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/REMEMBER YOU - TRY2GOON.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - KANTAN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - KANTAN.mcs new file mode 100644 index 0000000..4e103ef Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - KANTAN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - TRICKIE.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - TRICKIE.mc new file mode 100644 index 0000000..421d1bf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/RHYTHM AND POLICE - SINGLE - TRICKIE.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Remember You - SINGLE - MURI DA!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Remember You - SINGLE - MURI DA!.mcs new file mode 100644 index 0000000..5db1521 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Remember You - SINGLE - MURI DA!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - THETAINT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - THETAINT.mcs new file mode 100644 index 0000000..b63608d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - THETAINT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - TOAST.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - TOAST.mcs new file mode 100644 index 0000000..a98d1f4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SAINT GOES MARCHING - SINGLE - TOAST.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SANATARY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SANATARY.mcs new file mode 100644 index 0000000..84af530 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SANATARY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SINGLE - SANA=MAX.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SINGLE - SANA=MAX.mc new file mode 100644 index 0000000..fc529ca Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SANA MORETTE NE ENTE - SINGLE - SANA=MAX.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - CLOSETED.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - CLOSETED.mcs new file mode 100644 index 0000000..9d81667 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - CLOSETED.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..9f8ff13 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SECRET RENDEZVOUS - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SENORITA (Speedy Mix) - SINGLE - 425C.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SENORITA (Speedy Mix) - SINGLE - 425C.mcs new file mode 100644 index 0000000..0ae5b4d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SENORITA (Speedy Mix) - SINGLE - 425C.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - S-PLA-01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - S-PLA-01.mc new file mode 100644 index 0000000..a4183d2 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - S-PLA-01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - dumb.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - dumb.mcs new file mode 100644 index 0000000..9f921c8 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET (MOMO MIX) - SINGLE - dumb.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET - SINGLE - KURTEN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET - SINGLE - KURTEN.mcs new file mode 100644 index 0000000..ef73420 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SEXY PLANET - SINGLE - KURTEN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SHARE MY LOVE - SINGLE - STINGY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SHARE MY LOVE - SINGLE - STINGY.mcs new file mode 100644 index 0000000..a0b8e87 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SHARE MY LOVE - SINGLE - STINGY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - DOUBLES - ROCKBOTM.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - DOUBLES - ROCKBOTM.mcs new file mode 100644 index 0000000..bbecbb5 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - DOUBLES - ROCKBOTM.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - SINGLE - SHPSHM01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - SINGLE - SHPSHM01.mc new file mode 100644 index 0000000..39fb51e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SKY HIGH (DJ MIKO) - SINGLE - SHPSHM01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - DOUBLE - BENDMIND.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - DOUBLE - BENDMIND.mcs new file mode 100644 index 0000000..ee529a7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - DOUBLE - BENDMIND.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - SINGLE - BOUSOU-2.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - SINGLE - BOUSOU-2.mcs new file mode 100644 index 0000000..866a1cd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SO DEEP - SINGLE - BOUSOU-2.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SOMEWHERE OVER THE RAINBOW - SINGLE - EMERALD.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SOMEWHERE OVER THE RAINBOW - SINGLE - EMERALD.mc new file mode 100644 index 0000000..ff1843e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SOMEWHERE OVER THE RAINBOW - SINGLE - EMERALD.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - SPEKIO13.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - SPEKIO13.mcs new file mode 100644 index 0000000..b099b27 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - SPEKIO13.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - STILL-01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - STILL-01.mc new file mode 100644 index 0000000..70f6f3e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART (MOMO MIX) - SINGLE - STILL-01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - FORGETYA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - FORGETYA.mcs new file mode 100644 index 0000000..ebc7808 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - FORGETYA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - IHEARTU!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - IHEARTU!.mcs new file mode 100644 index 0000000..144a9ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/STILL IN MY HEART - SINGLE - IHEARTU!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - HAS-BEEN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - HAS-BEEN.mcs new file mode 100644 index 0000000..69dbcbf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - HAS-BEEN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - MJSUPONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - MJSUPONS.mcs new file mode 100644 index 0000000..afdb294 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SUPER STAR (DJ NIKAIDO & E.ISOMURA REMIX) - SINGLE - MJSUPONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNC - SINGLE - BMR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNC - SINGLE - BMR.mcs new file mode 100644 index 0000000..f88d90f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNC - SINGLE - BMR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - ONI(LV9).mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - ONI(LV9).mc new file mode 100644 index 0000000..44cd46a Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - ONI(LV9).mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - STOPTIME.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - STOPTIME.mcs new file mode 100644 index 0000000..0dbc950 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/SYNCHRONIZED LOVE - SINGLE - STOPTIME.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill (3rd Christmas Mix) - SINGLE - KWANZAA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill (3rd Christmas Mix) - SINGLE - KWANZAA.mcs new file mode 100644 index 0000000..2382509 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill (3rd Christmas Mix) - SINGLE - KWANZAA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill - SINGLE - SHPSLH01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill - SINGLE - SHPSLH01.mc new file mode 100644 index 0000000..f6c1806 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Silent Hill - SINGLE - SHPSLH01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - HEYMR.DJ.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - HEYMR.DJ.mcs new file mode 100644 index 0000000..db3c1b1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - HEYMR.DJ.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - SKILLFUL.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - SKILLFUL.mc new file mode 100644 index 0000000..362c4b9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin The Disc - SINGLE - SKILLFUL.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the Disc - DOUBLE - MJSPIND.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the Disc - DOUBLE - MJSPIND.mcs new file mode 100644 index 0000000..83e379f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the Disc - DOUBLE - MJSPIND.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the disk -double- headspin.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the disk -double- headspin.mcs new file mode 100644 index 0000000..c16c377 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Spin the disk -double- headspin.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sweet Sweet Love Magic - SINGLE - MAGICAL.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sweet Sweet Love Magic - SINGLE - MAGICAL.mcs new file mode 100644 index 0000000..ec44cab Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sweet Sweet Love Magic - SINGLE - MAGICAL.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync - double- syncrun .mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync - double- syncrun .mcs new file mode 100644 index 0000000..cdc83bf Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync - double- syncrun .mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync -double- outsync.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync -double- outsync.mcs new file mode 100644 index 0000000..bd5e21f Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Sync -double- outsync.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TEARS - SINGLE - SPEKIO38.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TEARS - SINGLE - SPEKIO38.mcs new file mode 100644 index 0000000..1b55d42 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TEARS - SINGLE - SPEKIO38.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - -JUMP!!-.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - -JUMP!!-.mc new file mode 100644 index 0000000..18fed74 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - -JUMP!!-.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - TEL1@08.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - TEL1@08.mc new file mode 100644 index 0000000..2ca21ce Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TELEPHONE OPERATOR - SINGLE - TEL1@08.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - DOUBLE - NANANANA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - DOUBLE - NANANANA.mcs new file mode 100644 index 0000000..b0f8709 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - DOUBLE - NANANANA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SOULLESS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SOULLESS.mcs new file mode 100644 index 0000000..60871c0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SOULLESS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SPEKIO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SPEKIO.mcs new file mode 100644 index 0000000..5fb3423 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE CENTRE OF THE HEART - SINGLE - SPEKIO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE LEAST 100sec - SINGLE - LEAST333.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE LEAST 100sec - SINGLE - LEAST333.mcs new file mode 100644 index 0000000..64e7c78 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/THE LEAST 100sec - SINGLE - LEAST333.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE (Luv Mix) - MINDF69K.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE (Luv Mix) - MINDF69K.mcs new file mode 100644 index 0000000..8667d0e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE (Luv Mix) - MINDF69K.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - DOUBLE - MJCLIMAX.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - DOUBLE - MJCLIMAX.mcs new file mode 100644 index 0000000..eea3cc3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - DOUBLE - MJCLIMAX.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - SINGLE - KABLOOEY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - SINGLE - KABLOOEY.mcs new file mode 100644 index 0000000..00c37f7 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TRIP MACHINE CLIMAX - SINGLE - KABLOOEY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - DOKRINGO.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - DOKRINGO.mc new file mode 100644 index 0000000..051dec6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - DOKRINGO.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - MJTSUONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - MJTSUONS.mcs new file mode 100644 index 0000000..591ec59 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU (APPLE MIX) - SINGLE - MJTSUONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - BMR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - BMR.mcs new file mode 100644 index 0000000..234047e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - BMR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - FEVERISH.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - FEVERISH.mcs new file mode 100644 index 0000000..6b0e9bd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TSUGARU - SINGLE - FEVERISH.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - DAYBREAK.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - DAYBREAK.mcs new file mode 100644 index 0000000..d42859e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - DAYBREAK.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - MIDNIGHT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - MIDNIGHT.mcs new file mode 100644 index 0000000..39384ed Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWILIGHT ZONE - SINGLE - MIDNIGHT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWINBEE-GENERATION X - SINGLE - SHPTBX01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWINBEE-GENERATION X - SINGLE - SHPTBX01.mc new file mode 100644 index 0000000..a1e3928 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/TWINBEE-GENERATION X - SINGLE - SHPTBX01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Trip Machine CLIMAX - double - BADMACHN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Trip Machine CLIMAX - double - BADMACHN.mcs new file mode 100644 index 0000000..f9fbdcb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Trip Machine CLIMAX - double - BADMACHN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V (for EXTREME) - SINGLE - SPEKIO35.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V (for EXTREME) - SINGLE - SPEKIO35.mcs new file mode 100644 index 0000000..a051714 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V (for EXTREME) - SINGLE - SPEKIO35.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - Double - KENCHAN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - Double - KENCHAN.mcs new file mode 100644 index 0000000..7ec8234 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - Double - KENCHAN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - SINGLE - BMR.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - SINGLE - BMR.mcs new file mode 100644 index 0000000..d4b81d0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/V - SINGLE - BMR.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - ALLPURTY.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - ALLPURTY.mcs new file mode 100644 index 0000000..821e8cd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - ALLPURTY.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - SOVAIN.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - SOVAIN.mcs new file mode 100644 index 0000000..38bf93b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/VANITY ANGEL - SINGLE - SOVAIN.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WAKA LAKA - DOUBLE - MJWAKA.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WAKA LAKA - DOUBLE - MJWAKA.mcs new file mode 100644 index 0000000..fd34ac9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WAKA LAKA - DOUBLE - MJWAKA.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WE WILL ROCK YOU - SINGLE - RKMYWORLD.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WE WILL ROCK YOU - SINGLE - RKMYWORLD.mcs new file mode 100644 index 0000000..f9ff7ee Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WE WILL ROCK YOU - SINGLE - RKMYWORLD.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WHITE LOVERS - SINGLE - SHPWHL01.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WHITE LOVERS - SINGLE - SHPWHL01.mc new file mode 100644 index 0000000..5a9533e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WHITE LOVERS - SINGLE - SHPWHL01.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH (PCM REMIX) - SINGLE - MJWLONS.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH (PCM REMIX) - SINGLE - MJWLONS.mcs new file mode 100644 index 0000000..317f2bd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH (PCM REMIX) - SINGLE - MJWLONS.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - MOREWILD.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - MOREWILD.mcs new file mode 100644 index 0000000..7ffd988 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - MOREWILD.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - RIDER.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - RIDER.mcs new file mode 100644 index 0000000..e032095 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/WILD RUSH - SINGLE - RIDER.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Waka Laka - double - yakamaka.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Waka Laka - double - yakamaka.mcs new file mode 100644 index 0000000..88f153e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Waka Laka - double - yakamaka.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/XENON - SINGLE - SHOK!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/XENON - SINGLE - SHOK!.mcs new file mode 100644 index 0000000..8929e60 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/XENON - SINGLE - SHOK!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Xenon -double- krypton.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Xenon -double- krypton.mcs new file mode 100644 index 0000000..6b882ba Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/Xenon -double- krypton.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single supernova.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single supernova.mcs new file mode 100644 index 0000000..7c3eaae Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single supernova.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single the fro.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single the fro.mcs new file mode 100644 index 0000000..3bde7fd Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/afronova single the fro.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/am-3p (am east mix) - double - EASTMP3.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/am-3p (am east mix) - double - EASTMP3.mcs new file mode 100644 index 0000000..e18cf3b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/am-3p (am east mix) - double - EASTMP3.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/be lovin single lovesall.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/be lovin single lovesall.mcs new file mode 100644 index 0000000..8512817 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/be lovin single lovesall.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/broken my heart -single - heartbreak.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/broken my heart -single - heartbreak.mcs new file mode 100644 index 0000000..01bf1a0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/broken my heart -single - heartbreak.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate - SINGLE - SPEKIO12.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate - SINGLE - SPEKIO12.mcs new file mode 100644 index 0000000..1062f28 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate - SINGLE - SPEKIO12.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate nite - single - AMANDA!!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate nite - single - AMANDA!!.mcs new file mode 100644 index 0000000..71eece4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/celebrate nite - single - AMANDA!!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/colors - single - RAINBOW.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/colors - single - RAINBOW.mcs new file mode 100644 index 0000000..8aca111 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/colors - single - RAINBOW.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/e-motion - SINGLE - E-ROSION.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/e-motion - SINGLE - E-ROSION.mcs new file mode 100644 index 0000000..8ef1140 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/e-motion - SINGLE - E-ROSION.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ever snow - SINGLE - 3UNDMIX5.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ever snow - SINGLE - 3UNDMIX5.mc new file mode 100644 index 0000000..6e0ac48 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/ever snow - SINGLE - 3UNDMIX5.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - DOUBLES - MJEXOTIC.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - DOUBLES - MJEXOTIC.mcs new file mode 100644 index 0000000..9a6915d Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - DOUBLES - MJEXOTIC.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - EE_FAST.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - EE_FAST.mc new file mode 100644 index 0000000..988d9b0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - EE_FAST.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - SPEKIO22.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - SPEKIO22.mcs new file mode 100644 index 0000000..dd5624e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/exotic ethnic - SINGLE - SPEKIO22.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/feeling of love - SINGLE - MALAISE.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/feeling of love - SINGLE - MALAISE.mcs new file mode 100644 index 0000000..f1d6345 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/feeling of love - SINGLE - MALAISE.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/groove 2001 - double - groove2k .mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/groove 2001 - double - groove2k .mcs new file mode 100644 index 0000000..f81cca0 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/groove 2001 - double - groove2k .mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - WEIRDO.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - WEIRDO.mcs new file mode 100644 index 0000000..76d2893 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - WEIRDO.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - Y2R-01.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - Y2R-01.mcs new file mode 100644 index 0000000..1a4fd01 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/i feel... - SINGLE - Y2R-01.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/max 300 -double- mumbo300.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/max 300 -double- mumbo300.mcs new file mode 100644 index 0000000..03148c9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/max 300 -double- mumbo300.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/rain of sorrow - SINGLE - DROUGHT.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/rain of sorrow - SINGLE - DROUGHT.mcs new file mode 100644 index 0000000..ec048f3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/rain of sorrow - SINGLE - DROUGHT.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single handaru.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single handaru.mcs new file mode 100644 index 0000000..8977a55 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single handaru.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single magnolia.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single magnolia.mcs new file mode 100644 index 0000000..afb93cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sakura single magnolia.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sync (EXTREME version) - SINGLE - JEOPARDY.mc b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sync (EXTREME version) - SINGLE - JEOPARDY.mc new file mode 100644 index 0000000..f4c51ee Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/sync (EXTREME version) - SINGLE - JEOPARDY.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/tears -single- crying.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/tears -single- crying.mcs new file mode 100644 index 0000000..ee031fb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/tears -single- crying.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - LOMGD00D.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - LOMGD00D.mcs new file mode 100644 index 0000000..72e4641 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - LOMGD00D.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - SPEKIO34.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - SPEKIO34.mcs new file mode 100644 index 0000000..112b383 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/the legend of MAX - SINGLE - SPEKIO34.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - CRAMP!.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - CRAMP!.mcs new file mode 100644 index 0000000..a8578f6 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - CRAMP!.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - F2.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - F2.mcs new file mode 100644 index 0000000..8d205e4 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/think ya better D - SINGLE - F2.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/true.... (Trance Sunrise Mix) - SINGLE - FALSE....mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/true.... (Trance Sunrise Mix) - SINGLE - FALSE....mcs new file mode 100644 index 0000000..8c95ce9 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/true.... (Trance Sunrise Mix) - SINGLE - FALSE....mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/xenon - DOUBLE - MJXENON.mcs b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/xenon - DOUBLE - MJXENON.mcs new file mode 100644 index 0000000..6b1c37b Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/EditsFromTheCardDatIUsed/xenon - DOUBLE - MJXENON.mcs differ diff --git a/ddr/DDR 573 digital arcade edit tools/Programs/CardTransferTools/MemcardRex 0.8.zip b/ddr/DDR 573 digital arcade edit tools/Programs/CardTransferTools/MemcardRex 0.8.zip new file mode 100644 index 0000000..37c195e Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/Programs/CardTransferTools/MemcardRex 0.8.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/Programs/DDREDITMAX/newest/DDREditMAX2.zip b/ddr/DDR 573 digital arcade edit tools/Programs/DDREDITMAX/newest/DDREditMAX2.zip new file mode 100644 index 0000000..08b4dad Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/Programs/DDREDITMAX/newest/DDREditMAX2.zip differ diff --git a/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.gme b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.gme new file mode 100644 index 0000000..09f69cb Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.gme differ diff --git a/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.mc b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.mc new file mode 100644 index 0000000..f78ebe1 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/1.mc differ diff --git a/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/2.gme b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/2.gme new file mode 100644 index 0000000..5f65cc3 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/Sortthedudes/4THMIX/blockone/2.gme differ diff --git a/ddr/DDR 573 digital arcade edit tools/Steploader/src/StepLoader.cpp b/ddr/DDR 573 digital arcade edit tools/Steploader/src/StepLoader.cpp new file mode 100644 index 0000000..973132d --- /dev/null +++ b/ddr/DDR 573 digital arcade edit tools/Steploader/src/StepLoader.cpp @@ -0,0 +1,914 @@ +/**************************************************************************** +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*****************************************************************************/ + +#include +#include +#include + +unsigned long getOffset(unsigned long songID, char* filename); +void loadData(FILE* infile, unsigned char data[33554432], char* filename); +void printUsage(); +int getSlotAvailable(unsigned int stepMode, unsigned int songID); + +short assignedTable[65536]; + +int main(int argc, char* argv[]) +{ + FILE* infile; + FILE* outfile; + int numberOfEdits = 0; + int a,c; + + unsigned char *data; + data=(unsigned char *)malloc(33554432*sizeof(unsigned char)); + + for(a = 0; a < 65536; a++) + assignedTable[a] = 0; + + if((argc == 1) || + (strcmp(argv[1],"/help") == 0) || + (strcmp(argv[1],"/?") == 0) || + (strcmp(argv[1],"--help") == 0) || + (strcmp(argv[1],"--?") == 0)) + { + printUsage(); + return 0; + } + + data[33554431] = '!'; + + numberOfEdits = argc - 3; + + infile = fopen(argv[1], "rb"); + outfile = fopen(argv[2], "wb"); + + if(infile == NULL) + { + printf("Error opening file \"%s\" - File does not exist or is in use by another program.", argv[1]); + return 1; + } + + if(outfile == NULL) + { + printf("Couldn't create file \"%s\" - Check for disk space and appropriate permissions.", argv[2]); + return 2; + } + +// for(int b = 0; b < 33554432; b++) +// data[b] = fgetc(infile); + fread(data, 1, 33554432, infile); + + fclose(infile); + + for(c = 0; c < numberOfEdits; c++) + { + infile = fopen(argv[c+3], "r"); + + if(infile == NULL) + { + char* tempFilename = argv[c+3]; + strcat(tempFilename, ".mcs"); + + infile = fopen(argv[c+3], "r"); + + if(infile == NULL) + printf("Error opening edit file: \"%s\" - File does not exist or is in use by another program. Skipping...", argv[c+3]); + else + loadData(infile, data, argv[c+3]); + } + else + loadData(infile, data, argv[c+3]); + + fclose(infile); + } + +// for(int zz = 0; zz < 33554432; zz++) +// fprintf(outfile, "%c", data[zz]); + fwrite(data, 1, 33554432, outfile); + + fclose(outfile); + free(data); + return 0; +} + +unsigned long getOffset(unsigned long songID, char* filename) +{ + if(songID == 0x00D4) + return 0x01C00000; //MIDNITE BLAZE + if(songID == 0x00D5) + return 0x01C04000; //ORION.78 CIVILIZATION MIX + if(songID == 0x00D6) + return 0x01C08000; //SHARE MY LOVE + if(songID == 0x00D3) + return 0x01C0C000; //GROOVE + if(songID == 0x012A) + return 0x01C10000; //GROOVE 2K1 + if(songID == 0x0129) + return 0x01C14000; //LET THE BEAT HIT 'EM CLASSIC R&B STYLE + if(songID == 0x012D) + return 0x01C18000; //DO IT RIGHT + if(songID == 0x012C) + return 0x01C1C000; //LOOK TO THE SKY + if(songID == 0x012E) + return 0x01C20000; //ON THE JAZZ + if(songID == 0x012B) + return 0x01C24000; //HEALING VISION ANGELIC MIX + if(songID == 0x012F) + return 0x01C28000; //DIVE - MORE DEEP AND DEEPER + if(songID == 0x0130) + return 0x01C2C000; //NORI NORI NORI + if(songID == 0x0131) + return 0x01C30000; //CENTRE OF THE HEART + if(songID == 0x0132) + return 0x01C34000; //LOVIN' YOU + if(songID == 0x0133) + return 0x01C38000; //ORDINARY WORLD + if(songID == 0x0135) + return 0x01C3C000; //SOMEWHERE OVER THE RAINBOW + if(songID == 0x0136) + return 0x01C40000; //FANTASY (DDRMAX) + if(songID == 0x0137) + return 0x01C44000; //WITCH DOCTOR + if(songID == 0x0138) + return 0x01C48000; //DO YOU REMEMBER ME + if(songID == 0x013A) + return 0x01C4C000; //HIGHS OFF U + if(songID == 0x013B) + return 0x01C50000; //MIRACLE + if(songID == 0x013C) + return 0x01C54000; //TWILIGHT ZONE + if(songID == 0x013D) + return 0x01C58000; //COWGIRL + if(songID == 0x0140) + return 0x01C5C000; //I'M IN THE MOOD FOR DANCING + if(songID == 0x0141) + return 0x01C60000; //LET'S GROOVE + if(songID == 0x0144) + return 0x01C64000; //WWW.BLONDE GIRL + if(songID == 0x0145) + return 0x01C68000; //MAX300 (GUESS) + if(songID == 0x0146) + return 0x01C6C000; //TRUE... + if(songID == 0x0147) + return 0x01C70000; //MY SWEET DARLIN' + if(songID == 0x0148) + return 0x01C74000; //SOBAKASU FRECKLES + if(songID == 0x0149) + return 0x01C78000; //SO DEEP + if(songID == 0x014A) + return 0x01C7C000; //FIREFLY + if(songID == 0x014B) + return 0x01C80000; //YOZORA NO MUKO + if(songID == 0x014C) + return 0x01C84000; //EXOTIC ETHNIC + if(songID == 0x014D) + return 0x01C88000; //CANDY STAR + if(songID == 0x014E) + return 0x01C8C000; //TRUE... TRANCE SUNRISE + if(songID == 0x00EC) + return 0x01C90000; //ASBOLUTE + if(songID == 0x0101) + return 0x01C94000; //ABYSS + if(songID == 0x007C) + return 0x01C98000; //AFRONOVA + if(songID == 0x00BC) + return 0x01C9C000; //LOVE AGAIN TONIGHT + if(songID == 0x00BB) + return 0x01CA0000; //B4U + if(songID == 0x000B) + return 0x01CA4000; //BRILLIANT 2U + if(songID == 0x000D) + return 0x01CA8000; //BRILLIANT 2U ORCHESTRAL GROOVE + if(songID == 0x00ED) + return 0x01CAC000; //BROKEN MY HEART + if(songID == 0x00B8) + return 0x01CB0000; //BURNING TEH FLOOR + if(songID == 0x002A) + return 0x01CB4000; //PARANOIA CLEAN + if(songID == 0x00B7) + return 0x01CB8000; //TRIP MACHINE CLIMAX + if(songID == 0x007F) + return 0x01CBC000; //DEAD END + if(songID == 0x0083) + return 0x01CC0000; //LUV TO ME AMD 2ND MIX + if(songID == 0x009A) + return 0x01CC4000; //DROP OUT + if(songID == 0x00EE) + return 0x01CC8000; //DXY! + if(songID == 0x007E) + return 0x01CCC000; //DYNAMITE RAVE + if(songID == 0x00EB) + return 0x01CD0000; //ECSTASY + if(songID == 0x007D) + return 0x01CD4000; //END OF THE CENTURY + if(songID == 0x00C6) + return 0x01CD8000; //ERA + if(songID == 0x00E9) + return 0x01CDC000; //HEALING VISION + if(songID == 0x00B9) + return 0x01CE0000; //HIGHER + if(songID == 0x009F) + return 0x01CE4000; //HYSTERIA + if(songID == 0x010D) + return 0x01CE8000; //INSERTION + if(songID == 0x0080) + return 0x01CEC000; //LA SENORITA + if(songID == 0x010E) + return 0x01CF0000; //CSFIL SPEED MIX + if(songID == 0x002B) + return 0x01CF4000; //TRIP MACHINE LUV MIX + if(songID == 0x00FB) + return 0x01CF8000; //MATSURI JAPAN + if(songID == 0x00BA) + return 0x01CFC000; //ORION.78 AMEURO MIX + if(songID == 0x00DD) + return 0x01D00000; //CELEBRATE NITE + if(songID == 0x00C5) + return 0x01D04000; //HOLIC + if(songID == 0x001B) + return 0x01D08000; //PARANOIA + if(songID == 0x001D) + return 0x01D0C000; //PARANOIA MAX DIRTY MIX + if(songID == 0x00A0) + return 0x01D10000; //PARANOIA EVOLUTION + if(songID == 0x0082) + return 0x01D14000; //PARANOIA REBIRTH + if(songID == 0x0102) + return 0x01D18000; //SANA MOLETTE NE ENTE + if(songID == 0x00DE) + return 0x01D1C000; //SEXY PLANET + if(songID == 0x0081) + return 0x01D20000; //SILENT HILL + if(songID == 0x0019) + return 0x01D24000; //AM-3P + if(songID == 0x00EA) + return 0x01D28000; //STILL IN MY HEART + if(songID == 0x009B) + return 0x01D2C000; //CSFIL + if(songID == 0x00BE) + return 0x01D30000; //MY SUMMER LOVE + if(songID == 0x00C4) + return 0x01D34000; //.59 + if(songID == 0x008B) + return 0x01D38000; //DROP THE BOMB + if(songID == 0x009E) + return 0x01D3C000; //SUPER STAR + if(songID == 0x009C) + return 0x01D40000; //WILD RUSH + if(songID == 0x0151) + return 0x01D44000; //LONG TRAIN RUNNIN' + if(songID == 0x0152) + return 0x01D48000; //MAXIMUM OVERDRIVE + if(songID == 0x0153) + return 0x01D4C000; //THERE YOU'LL BE (GUESS) + if(songID == 0x0154) + return 0x01D50000; //WAKA LAKA + if(songID == 0x0156) + return 0x01D54000; //D2R (GUESS) + if(songID == 0x0157) + return 0x01D58000; //DESTINY (GUESS) + if(songID == 0x0158) + return 0x01D5C000; //LIVING IN AMERICA + if(songID == 0x015A) + return 0x01D60000; //SWEET SWEET LOVE MAGIC + if(songID == 0x015B) + return 0x01D64000; //EVER SNOW (GUESS) + if(songID == 0x015D) + return 0x01D68000; //THE REFLEX + if(songID == 0x0160) + return 0x01D6C000; //IT'S RAINING MEN + if(songID == 0x0162) + return 0x01D70000; //SECRET RENDEZ-VOUS + if(songID == 0x0163) + return 0x01D74000; //LITTLE BOY + if(songID == 0x0164) + return 0x01D78000; //RAIN OF SORROW + if(songID == 0x0165) + return 0x01D7C000; //MAXX UNLIMITED + if(songID == 0x0166) + return 0x01D80000; //DIVE TO THE NIGHT (GUESS) + if(songID == 0x0167) + return 0x01D84000; //TSUGARU + if(songID == 0x0168) + return 0x01D88000; //BREAKDOWN + if(songID == 0x0169) + return 0x01D8C000; //BURNING HEAT! + if(songID == 0x016B) + return 0x01D90000; //FANTASY (MAX2) (GUESS) + if(songID == 0x016C) + return 0x01D94000; //I FEEL... + if(songID == 0x016D) + return 0x01D98000; //CANDY STAR + if(songID == 0x016E) + return 0x01D9C000; //SPIN THE DISC + if(songID == 0x0173) + return 0x01DA0000; //KAKUMEI + if(songID == 0x0174) + return 0x01DA4000; //AFRONOVA FROM NONSTOP MEGAMIX (GUESS) + if(songID == 0x0175) + return 0x01DA8000; //AM-3P AM EAST MIX + if(songID == 0x0176) + return 0x01DAC000; //BRILLIANT 2U KOG G3 MIX + if(songID == 0x0177) + return 0x01DB0000; //B4U B4 ZA BEAT MIX + if(songID == 0x0178) + return 0x01DB4000; //DROP OUT KOG MIX (GUESS) + if(songID == 0x0179) + return 0x01DB8000; //DYNAMITE RAVE B4 ZA BEAT MIX (GUESS) + if(songID == 0x017A) + return 0x01DBC000; //HYSTERIA 2001 + if(songID == 0x017B) + return 0x01DC0000; //MATSURI JAPAN NONSTOP MEGAMIX + if(songID == 0x017C) + return 0x01DC4000; //SEXY PLANET NONSTOP MEGAMIX + if(songID == 0x017D) + return 0x01DC8000; //SUPER STAR NONSTOP MEGAMIX + if(songID == 0x017E) + return 0x01DCC000; //STILL IN MY HEART MOMO MIX + if(songID == 0x017F) + return 0x01DD0000; //WILD RUSH NONSTOP MEGAMIX + if(songID == 0x0180) + return 0x01DD4000; //BURNIN' THE FLOOR BLUE FIRE MIX + if(songID == 0x0181) + return 0x01DD8000; //TSUGARU APPLE MIX + if(songID == 0x0182) + return 0x01DDC000; //ECSTASY MIDNIGHT BLUE MIX (GUESS) + if(songID == 0x0183) + return 0x01DE0000; //SILENT HILL 3RD CHRISTMAS MIX + if(songID == 0x0184) + return 0x01DE4000; //CELEBRATE NITE EURO TRANCE MIX + if(songID == 0x0185) + return 0x01DE8000; //HIGHER NEXT MORNING MIX (GUESS) + if(songID == 0x0186) + return 0x01DEC000; //MY SUMMER LOVE (TOMMY'S SMILE MIX) + if(songID == 0x001A) + return 0x01DF0000; //TRIP MACHINE + if(songID == 0x001C) + return 0x01DF4000; //SP-TRIP MACHINE JUNGLE MIX + if(songID == 0x002E) + return 0x01DF8000; //KEEP ON MOVIN' + if(songID == 0x008A) + return 0x01DFC000; //CUTIE CHASER + if(songID == 0x00FC) + return 0x01E00000; //REMEMBER YOU + if(songID == 0x010B) + return 0x01E04000; //AFRONOVA PRIMEVAL + if(songID == 0x00B6) + return 0x01E08000; //BABY BABY GIMME YOUR LOVE + if(songID == 0x0085) + return 0x01E0C000; //GRADIUSIC CYBER (AMD G5 MIX) + if(songID == 0x008C) + return 0x01E10000; //LA SENORITA VIRTUAL + if(songID == 0x00C3) + return 0x01E14000; //LEADING CYBER + if(songID == 0x00C9) + return 0x01E18000; //DON'T STOP AMD 2ND MIX + if(songID == 0x00EF) + return 0x01E1C000; //MR. T (TAKE ME HIGHER) + if(songID == 0x00F1) + return 0x01E20000; //I WAS THE ONE + if(songID == 0x00F3) + return 0x01E24000; //ELECTRO TUNED + if(songID == 0x0086) + return 0x01E28000; //GENTLE STRESS (AMD SEXUAL MIX) + if(songID == 0x000E) + return 0x01E2C000; //MAKE IT BETTER + if(songID == 0x00F4) + return 0x01E30000; //PARANOIA ETERNAL + if(songID == 0x0089) + return 0x01E34000; //AFTER THE GAME OF LOVE + if(songID == 0x002C) + return 0x01E38000; //LOVE THIS FEELING + if(songID == 0x000A) + return 0x01E3C000; //PUT YOUR FAITH IN ME + if(songID == 0x0084) + return 0x01E40000; //JAM JAM REGGAE (AMD SWING MIX) + if(songID == 0x002D) + return 0x01E44000; //THINK YA BETTER D + if(songID == 0x0076) + return 0x01E48000; //DAM DARIRAM + if(songID == 0x00E1) + return 0x01E4C000; //SYNCHRONIZED LOVE + if(songID == 0x0121) + return 0x01E50000; //SKY HIGH + if(songID == 0x0007) + return 0x01E54000; //LET'S GET DOWN + if(songID == 0x0018) + return 0x01E58000; //I BELIEVE IN MIRACLES + if(songID == 0x00E5) + return 0x01E5C000; //RHYTHM AND POLICE + if(songID == 0x0017) + return 0x01E60000; //IF YOU WERE HERE + if(songID == 0x0016) + return 0x01E64000; //GET UP'N MOVE + if(songID == 0x0009) + return 0x01E68000; //BUTTERFLY + if(songID == 0x0023) + return 0x01E6C000; //EL RITMO TROPICAL + if(songID == 0x0078) + return 0x01E70000; //CAPTAIN JACK + if(songID == 0x0013) + return 0x01E74000; //LITTLE BITCH + if(songID == 0x00B4) + return 0x01E78000; //SAINT GOES MARCHING + if(songID == 0x013E) + return 0x01E7C000; //TELEPHONE OPERATOR + if(songID == 0x0197) + return 0x01E80000; //MEMORIES + if(songID == 0x0198) + return 0x01E84000; //CRASH! (GUESS) + if(songID == 0x019B) + return 0x01E88000; //VANITY ANGEL + if(songID == 0x0054) + return 0x01E8C000; //GENOM SCREAMS + if(songID == 0x0039) + return 0x01E90000; //BE IN MY PARADISE + if(songID == 0x0046) + return 0x01E94000; //SKA A GO GO + if(songID == 0x003E) + return 0x01E98000; //DR. LOVE + if(songID == 0x004B) + return 0x01E9C000; //LUV TO ME DISCO MIX + if(songID == 0x0043) + return 0x01EA0000; //R3 + if(songID == 0x0037) + return 0x01EA4000; //5.1.1. + if(songID == 0x0033) + return 0x01EA8000; //JAM JAM REGGAE + if(songID == 0x003A) + return 0x01EAC000; //E-MOTION + if(songID == 0x0049) + return 0x01EB0000; //CELEBRATE + if(songID == 0x003D) + return 0x01EB4000; //20, NOVEMBER + if(songID == 0x01A5) + return 0x01EB8000; //DROP THE BOMB (SYSTEM SF MIX) + if(songID == 0x014F) + return 0x01EBC000; //KIND LADY + if(songID == 0x0150) + return 0x01EC0000; //SO IN LOVE + if(songID == 0x008D) + return 0x01EC4000; //AM-3P 303 BASS MIX + if(songID == 0x01AC) + return 0x01EC8000; //CUTIE CHASER (MORNING MIX) + if(songID == 0x01A6) + return 0x01ECC000; //DYNAMITE RAVE (DOWN BIRD SOTA MIX) + if(songID == 0x019D) + return 0x01ED0000; //DO IT RIGHT (HARMONIZED 2STEP MIX) + if(songID == 0x01A0) + return 0x01ED4000; //LOOK TO THE SKY TRUE COLOR MIX + if(songID == 0x01B0) + return 0x01ED8000; //WE WILL ROCK YOU + if(songID == 0x01B1) + return 0x01EDC000; //IRRESISTIBLEMENT + if(songID == 0x01B3) + return 0x01EE0000; //SPEED OVER BEETHOVEN + if(songID == 0x01C2) + return 0x01EE4000; //WE ARE THE CHAMPIONS + if(songID == 0x01AF) + return 0x01EE8000; //LA COPA DE LA VIDA + if(songID == 0x01B2) + return 0x01EEC000; //CARTOON HEROES + if(songID == 0x01C3) + return 0x01EF0000; //I DO I DO I DO + if(songID == 0x01E3) + return 0x01EF4000; //BURNING THE FLOOR MOMO MIX + if(songID == 0x01E5) + return 0x01EF8000; //SENORITA SPEEDY MIX + if(songID == 0x01B4) + return 0x01EFC000; //KISS KISS KISS + if(songID == 0x01B5) + return 0x01F00000; //LOVE LOVE SUGAR + if(songID == 0x01B6) + return 0x01F04000; //L'AMOUR ET LA LIBERTE + if(songID == 0x01B8) + return 0x01F08000; //DESTINY LOVERS + if(songID == 0x01B9) + return 0x01F0C000; //THE LEAST 100 SECONDS + if(songID == 0x01BA) + return 0x01F10000; //GAMELAN DE COUPLE + if(songID == 0x01BC) + return 0x01F14000; //MOBO*MOGA + if(songID == 0x01BD) + return 0x01F18000; //BE LOVIN + if(songID == 0x01BE) + return 0x01F1C000; //MIRACLE MOON + if(songID == 0x01C0) + return 0x01F20000; //V + if(songID == 0x01C1) + return 0x01F24000; //A + if(songID == 0x01C4) + return 0x01F28000; //COLORS + if(songID == 0x01C7) + return 0x01F2C000; //WHITE LOVERS + if(songID == 0x01C8) + return 0x01F30000; //FROZEN RAY + if(songID == 0x01CA) + return 0x01F34000; //FEELING OF LOVE + if(songID == 0x01CB) + return 0x01F38000; //DAIKENKAI + if(songID == 0x01CC) + return 0x01F3C000; //DOOR OF MAGIC + if(songID == 0x01CD) + return 0x01F40000; //HOLD ON ME + if(songID == 0x01CE) + return 0x01F44000; //JET WORLD + if(songID == 0x01C6) + return 0x01F48000; //KISS ME ALL NIGHT LONG + if(songID == 0x01CF) + return 0x01F4C000; //HAPPY WEDDING + if(songID == 0x01B7) + return 0x01F50000; //I'M GONNA GET YOU + if(songID == 0x01D5) + return 0x01F54000; //SYNC + if(songID == 0x01D6) + return 0x01F58000; //STOIC + if(songID == 0x01D7) + return 0x01F5C000; //321 STARS + if(songID == 0x01C5) + return 0x01F60000; //STAY + if(songID == 0x01BB) + return 0x01F64000; //JANEJANA + if(songID == 0x01D4) + return 0x01F68000; //MIKENEKO ROCK + if(songID == 0x01DB) + return 0x01F6C000; //SAKURA + if(songID == 0x01DD) + return 0x01F70000; //HEAVEN IS A '57 METALLIC GREY + if(songID == 0x01D9) + return 0x01F74000; //TWINBEE GENERATION X + if(songID == 0x01DA) + return 0x01F78000; //XENON + if(songID == 0x01C9) + return 0x01F7C000; //LAST MESSAGE + if(songID == 0x01DC) + return 0x01F80000; //PINK ROSE + if(songID == 0x01DF) + return 0x01F84000; //LA BAMBA + if(songID == 0x01E2) + return 0x01F88000; //AIR + if(songID == 0x01E6) + return 0x01F8C000; //ACROSS THE NIGHTMARE + if(songID == 0x01D1) + return 0x01F90000; //BAG + if(songID == 0x01D2) + return 0x01F94000; //THE LEGEND OF MAX + if(songID == 0x01BF) + return 0x01F98000; //GRADUATION + if(songID == 0x01AD) + return 0x01F9C000; //LOVE SHINE + if(songID == 0x01AE) + return 0x01FA0000; //PARANOIA SURVIVOR + if(songID == 0x01D0) + return 0x01FA4000; //PARANOIA SURVIVOR MAX + if(songID == 0x01D3) + return 0x01FA8000; //AOI SHOUDOU + if(songID == 0x01D8) + return 0x01FAC000; //1998 + if(songID == 0x01DE) + return 0x01FB0000; //HYPER EUROBEAT + if(songID == 0x01E0) + return 0x01FB4000; //DANCE DANCE REVOLUTION + if(songID == 0x01E1) + return 0x01FB8000; //TRIP MACHINE SURVIVOR + if(songID == 0x01E4) + return 0x01FBC000; //TEARS +/* if(songID == 0x0000) + return 0x01FC0000; // + if(songID == 0x0000) + return 0x01FC4000; // + if(songID == 0x0000) + return 0x01FC8000; // + if(songID == 0x0000) + return 0x01FCC000; // + if(songID == 0x0000) + return 0x01FD0000; // + if(songID == 0x0000) + return 0x01FD4000; // + if(songID == 0x0000) + return 0x01FD8000; // + if(songID == 0x0000) + return 0x01FDC000; // + if(songID == 0x0000) + return 0x01FE0000; // + if(songID == 0x0000) + return 0x01FE4000; // + if(songID == 0x0000) + return 0x01FE8000; // + if(songID == 0x0000) + return 0x01FEC000; // + if(songID == 0x0000) + return 0x01FF0000; // + if(songID == 0x0000) + return 0x01FF4000; // + if(songID == 0x0000) + return 0x01FF8000; // + if(songID == 0x0000) + return 0x01FFC000; //*/ + printf("Error: Unrecognized songID in file \"%s\": \"%X\"\n", filename, songID); + return 0x01FFC000; //This slot should be unused. +} + +void loadData(FILE* infile, unsigned char data[33554432], char* filename) +{ + bool extendedFormat = false; + long tempIndex = 0; + long tempIndex2 = 0; + unsigned long offset = 0; + int slotOffset = 0; //This number determines the offset from 'offset' where the data goes + //based on single/double and which edit slot(s) are used; + unsigned char inputData[8192]; + unsigned char outputData[4096]; + unsigned long songID = 0; + unsigned int stepMode = 0; + unsigned int MDAT[2]; + unsigned int machineCode[2]; + unsigned int songIDbytes[2]; + unsigned int difficultyLevel; + unsigned int difficultyFeet; + unsigned int freezeFlag; + int f,g,h,y,z; +// for(int e = 0; e < 8192; e++) +// inputData[e] = fgetc(infile); + fread(inputData, 1, 8192, infile); +// inputData[777]; //MSB of songID +// inputData[776]; //LSB of songID + + songID = inputData[777] * 256; + songID &= 0x0000FFFF; + songID += inputData[776]; + + stepMode = inputData[710]; + + offset = getOffset(songID, filename); + + if(offset == 33538048) + return; + + slotOffset = getSlotAvailable(stepMode, songID); + + if(slotOffset == -1) + { + if(stepMode == 0 || stepMode == 1) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Too many singles/couples edits used already for that song. Skipping...\n", filename); + } + else if(stepMode == 2) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Too many double edits used already for that song. Skipping...\n", filename); + } + else if(stepMode == 3) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: 6Panel edits are not supported on this version. Skipping...\n", filename); + } + else + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Invalid step type found. Skipping...\n", filename); + } + return; + } + + + MDAT[0] = inputData[704]; + MDAT[1] = inputData[705]; + + machineCode[0] = inputData[688]; + machineCode[1] = inputData[689]; + + songIDbytes[0] = inputData[708]; + songIDbytes[1] = inputData[709]; + + stepMode = inputData[710]; + + difficultyLevel = inputData[711]; + difficultyFeet = inputData[778]; + + freezeFlag = inputData[779]; + + if(freezeFlag == 3) + extendedFormat = true; + +/* Begin 4-byte intro */ + outputData[0] = '\xAD'; + outputData[1] = '\xDE'; + outputData[2] = '\xCE'; + outputData[3] = '\xFA'; +/* End 4-byte intro */ + +/* Begin title strip */ + outputData[4] = 0x5B; + + if(inputData[178] == 130) //If the name is written in Unicode instead, for some reason... + { + outputData[5] = inputData[22]; + outputData[6] = inputData[23]; + outputData[7] = inputData[24]; + outputData[8] = inputData[25]; + outputData[9] = inputData[26]; + outputData[10] = inputData[27]; + outputData[11] = inputData[28]; + outputData[12] = inputData[29]; + } + else + { + outputData[5] = inputData[178]; + outputData[6] = inputData[179]; + outputData[7] = inputData[180]; + outputData[8] = inputData[181]; + outputData[9] = inputData[182]; + outputData[10] = inputData[183]; + outputData[11] = inputData[184]; + outputData[12] = inputData[185]; + } + outputData[13] = 0x5D; +/* End 4-byte intro */ + + outputData[14] = 0; // ??? + outputData[15] = 0; // ??? + outputData[16] = 0; // ??? + outputData[17] = 0; // ??? + outputData[18] = 0; // ??? + outputData[19] = stepMode; + outputData[20] = 2; // ??? + outputData[21] = 2; // ??? + outputData[22] = 2; // ??? + outputData[23] = 17; // ??? + outputData[24] = 1; // ??? + outputData[25] = 0; // ??? + outputData[26] = 5; // ??? + outputData[27] = 0; // ??? + outputData[28] = 32; // ??? + outputData[29] = 0; // ??? + outputData[30] = 1; // ??? + outputData[31] = 0; // ??? + outputData[32] = 0; // ??? + outputData[33] = 0; // ??? + outputData[34] = 0; // ??? + outputData[35] = 0; // ??? + outputData[36] = 2; // ??? + outputData[37] = 0; // ??? + outputData[38] = 0; // ??? + outputData[39] = 0; // ??? + outputData[40] = 0; // ??? + outputData[41] = 0; // ??? + outputData[42] = 0; // ??? + outputData[43] = 0; // ??? + +//The bytes from 14 through 43 are currently unknown! + +/* Beginning of --DanceDanceRevolution-- line */ + outputData[44] = '-'; + outputData[45] = '-'; + outputData[46] = 'D'; + outputData[47] = 'a'; + outputData[48] = 'n'; + outputData[49] = 'c'; + outputData[50] = 'e'; + outputData[51] = 'D'; + outputData[52] = 'a'; + outputData[53] = 'n'; + outputData[54] = 'c'; + outputData[55] = 'e'; + outputData[56] = 'R'; + outputData[57] = 'e'; + outputData[58] = 'v'; + outputData[59] = 'o'; + outputData[60] = 'l'; + outputData[61] = 'u'; + outputData[62] = 't'; + outputData[63] = 'i'; + outputData[64] = 'o'; + outputData[65] = 'n'; + outputData[66] = '-'; + outputData[67] = '-'; + outputData[68] = machineCode[0]; + outputData[69] = machineCode[1]; +/* End of --DanceDanceRevolution--** line */ + + for(f = 0; f < 14; f++) + { + tempIndex = 70 + f; + outputData[tempIndex] = 0; + } + + if(extendedFormat) + { + outputData[84] = MDAT[0]; + outputData[85] = MDAT[1]; + } + else + { + outputData[84] = MDAT[0]; + outputData[85] = MDAT[1] - 1; + } + outputData[86] = 0; + outputData[87] = 0; + outputData[88] = songIDbytes[0]; + outputData[89] = songIDbytes[1]; + + outputData[90] = stepMode; + outputData[91] = difficultyLevel; + + for(g = 0; g < 56; g++) + { + tempIndex = 92 + g; + outputData[tempIndex] = 0; + } + + for(h = 0; h < 16; h++) + { + tempIndex = 148 + h; + tempIndex2 = 768 + h; + outputData[tempIndex] = inputData[tempIndex2]; + } + + if(extendedFormat) + { + for(y = 0; y < 3676; y++) + { + tempIndex = 164 + y; + tempIndex2 = 1040 + y; + outputData[tempIndex] = inputData[tempIndex2]; + } + for(y = 0; y < 256; y++) + { + tempIndex = 3840 + y; + outputData[tempIndex] = '\x00'; + } + } + else + { + for(y = 0; y < 3932; y++) + { + tempIndex = 164 + y; + tempIndex2 = 784 + y; + outputData[tempIndex] = inputData[tempIndex2]; + } + } + + for(z = 0; z < 4096; z++) + { + tempIndex = offset + slotOffset + z; + data[tempIndex] = outputData[z]; + } + return; +} + +void printUsage() +{ + printf("StepLoader.exe usage:\n"); + printf(" StepLoader (inputfile) (outputfile) edit1 [...]\n"); + printf("StepLoader uses .mcs-formatted files. Specifying the .mcs extension is not necessary.\n"); + return; +} + +int getSlotAvailable(unsigned int stepMode, unsigned int songID) +{ + if(stepMode == 0 || stepMode == 1) + { + if((assignedTable[songID] & 1)) + if((assignedTable[songID] & 2)) + return -1; + else + { + assignedTable[songID] |= 2; + return 4096; + } + else + { + assignedTable[songID] |= 1; + return 0; + } + } + else if(stepMode == 2) + { + if((assignedTable[songID] & 4)) + if((assignedTable[songID] & 8)) + return -1; + else + { + assignedTable[songID] |= 8; + return 12288; + } + else + { + assignedTable[songID] |= 4; + return 8192; + } + } + else + return true; +} diff --git a/ddr/DDR 573 digital arcade edit tools/Steploader/src/main.cpp b/ddr/DDR 573 digital arcade edit tools/Steploader/src/main.cpp new file mode 100644 index 0000000..cc7a584 --- /dev/null +++ b/ddr/DDR 573 digital arcade edit tools/Steploader/src/main.cpp @@ -0,0 +1,904 @@ +/**************************************************************************** +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*****************************************************************************/ + +#include +#include +#include + +unsigned long getOffset(unsigned long songID, char* filename); +void loadData(FILE* infile, unsigned int data[33554432], char* filename); +void printUsage(); +int getSlotAvailable(unsigned int stepMode, unsigned int songID); + +short assignedTable[65536]; + +int main(int argc, char* argv[]) +{ + FILE* infile; + FILE* outfile; + int numberOfEdits = 0; + + unsigned int *data; + data=(unsigned int *)malloc(33554432*sizeof(unsigned int)); + + for(int a = 0; a < 65536; a++) + assignedTable[a] = 0; + + if((argc == 1) || + (strcmp(argv[1],"/help") == 0) || + (strcmp(argv[1],"/?") == 0) || + (strcmp(argv[1],"--help") == 0) || + (strcmp(argv[1],"--?") == 0)) + { + printUsage(); + return 0; + } + + data[33554431] = '!'; + + numberOfEdits = argc - 3; + + infile = fopen(argv[1], "r"); + outfile = fopen(argv[2], "w"); + + if(infile == NULL) + { + printf("Error opening file \"%s\" - File does not exist or is in use by another program.", argv[1]); + return 1; + } + + if(outfile == NULL) + { + printf("Couldn't create file \"%s\" - Check for disk space and appropriate permissions.", argv[2]); + return 2; + } + + for(int b = 0; b < 33554432; b++) + data[b] = fgetc(infile); + + fclose(infile); + + for(int c = 0; c < numberOfEdits; c++) + { + infile = fopen(argv[c+3], "r"); + + if(infile == NULL) + { + char* tempFilename = argv[c+3]; + strcat(tempFilename, ".mcs"); + + infile = fopen(argv[c+3], "r"); + + if(infile == NULL) + printf("Error opening edit file: \"%s\" - File does not exist or is in use by another program. Skipping...", argv[c+3]); + else + loadData(infile, data, argv[c+3]); + } + else + loadData(infile, data, argv[c+3]); + + fclose(infile); + } + + for(int zz = 0; zz < 33554432; zz++) + fprintf(outfile, "%c", data[zz]); + + fclose(outfile); + free(data); + return 0; +} + +unsigned long getOffset(unsigned long songID, char* filename) +{ + if(songID == 0x00D4) + return 0x01C00000; //MIDNITE BLAZE + if(songID == 0x00D5) + return 0x01C04000; //ORION.78 CIVILIZATION MIX + if(songID == 0x00D6) + return 0x01C08000; //SHARE MY LOVE + if(songID == 0x00D3) + return 0x01C0C000; //GROOVE + if(songID == 0x012A) + return 0x01C10000; //GROOVE 2K1 + if(songID == 0x0129) + return 0x01C14000; //LET THE BEAT HIT 'EM CLASSIC R&B STYLE + if(songID == 0x012D) + return 0x01C18000; //DO IT RIGHT + if(songID == 0x012C) + return 0x01C1C000; //LOOK TO THE SKY + if(songID == 0x012E) + return 0x01C20000; //ON THE JAZZ + if(songID == 0x012B) + return 0x01C24000; //HEALING VISION ANGELIC MIX + if(songID == 0x012F) + return 0x01C28000; //DIVE - MORE DEEP AND DEEPER + if(songID == 0x0130) + return 0x01C2C000; //NORI NORI NORI + if(songID == 0x0131) + return 0x01C30000; //CENTRE OF THE HEART + if(songID == 0x0132) + return 0x01C34000; //LOVIN' YOU + if(songID == 0x0133) + return 0x01C38000; //ORDINARY WORLD + if(songID == 0x0135) + return 0x01C3C000; //SOMEWHERE OVER THE RAINBOW + if(songID == 0x0136) + return 0x01C40000; //FANTASY (DDRMAX) + if(songID == 0x0137) + return 0x01C44000; //WITCH DOCTOR + if(songID == 0x0138) + return 0x01C48000; //DO YOU REMEMBER ME + if(songID == 0x013A) + return 0x01C4C000; //HIGHS OFF U + if(songID == 0x013B) + return 0x01C50000; //MIRACLE + if(songID == 0x013C) + return 0x01C54000; //TWILIGHT ZONE + if(songID == 0x013D) + return 0x01C58000; //COWGIRL + if(songID == 0x0140) + return 0x01C5C000; //I'M IN THE MOOD FOR DANCING + if(songID == 0x0141) + return 0x01C60000; //LET'S GROOVE + if(songID == 0x0144) + return 0x01C64000; //WWW.BLONDE GIRL + if(songID == 0x0145) + return 0x01C68000; //MAX300 (GUESS) + if(songID == 0x0146) + return 0x01C6C000; //TRUE... + if(songID == 0x0147) + return 0x01C70000; //MY SWEET DARLIN' + if(songID == 0x0148) + return 0x01C74000; //SOBAKASU FRECKLES + if(songID == 0x0149) + return 0x01C78000; //SO DEEP + if(songID == 0x014A) + return 0x01C7C000; //FIREFLY + if(songID == 0x014B) + return 0x01C80000; //YOZORA NO MUKO + if(songID == 0x014C) + return 0x01C84000; //EXOTIC ETHNIC + if(songID == 0x014D) + return 0x01C88000; //CANDY STAR + if(songID == 0x014E) + return 0x01C8C000; //TRUE... TRANCE SUNRISE + if(songID == 0x00EC) + return 0x01C90000; //ASBOLUTE + if(songID == 0x0101) + return 0x01C94000; //ABYSS + if(songID == 0x007C) + return 0x01C98000; //AFRONOVA + if(songID == 0x00BC) + return 0x01C9C000; //LOVE AGAIN TONIGHT + if(songID == 0x00BB) + return 0x01CA0000; //B4U + if(songID == 0x000B) + return 0x01CA4000; //BRILLIANT 2U + if(songID == 0x000D) + return 0x01CA8000; //BRILLIANT 2U ORCHESTRAL GROOVE + if(songID == 0x00ED) + return 0x01CAC000; //BROKEN MY HEART + if(songID == 0x00B8) + return 0x01CB0000; //BURNING TEH FLOOR + if(songID == 0x002A) + return 0x01CB4000; //PARANOIA CLEAN + if(songID == 0x00B7) + return 0x01CB8000; //TRIP MACHINE CLIMAX + if(songID == 0x007F) + return 0x01CBC000; //DEAD END + if(songID == 0x0083) + return 0x01CC0000; //LUV TO ME AMD 2ND MIX + if(songID == 0x009A) + return 0x01CC4000; //DROP OUT + if(songID == 0x00EE) + return 0x01CC8000; //DXY! + if(songID == 0x007E) + return 0x01CCC000; //DYNAMITE RAVE + if(songID == 0x00EB) + return 0x01CD0000; //ECSTASY + if(songID == 0x007D) + return 0x01CD4000; //END OF THE CENTURY + if(songID == 0x00C6) + return 0x01CD8000; //ERA + if(songID == 0x00E9) + return 0x01CDC000; //HEALING VISION + if(songID == 0x00B9) + return 0x01CE0000; //HIGHER + if(songID == 0x009F) + return 0x01CE4000; //HYSTERIA + if(songID == 0x010D) + return 0x01CE8000; //INSERTION + if(songID == 0x0080) + return 0x01CEC000; //LA SENORITA + if(songID == 0x010E) + return 0x01CF0000; //CSFIL SPEED MIX + if(songID == 0x002B) + return 0x01CF4000; //TRIP MACHINE LUV MIX + if(songID == 0x00FB) + return 0x01CF8000; //MATSURI JAPAN + if(songID == 0x00BA) + return 0x01CFC000; //ORION.78 AMEURO MIX + if(songID == 0x00DD) + return 0x01D00000; //CELEBRATE NITE + if(songID == 0x00C5) + return 0x01D04000; //HOLIC + if(songID == 0x001B) + return 0x01D08000; //PARANOIA + if(songID == 0x001D) + return 0x01D0C000; //PARANOIA MAX DIRTY MIX + if(songID == 0x00A0) + return 0x01D10000; //PARANOIA EVOLUTION + if(songID == 0x0082) + return 0x01D14000; //PARANOIA REBIRTH + if(songID == 0x0102) + return 0x01D18000; //SANA MOLETTE NE ENTE + if(songID == 0x00DE) + return 0x01D1C000; //SEXY PLANET + if(songID == 0x0081) + return 0x01D20000; //SILENT HILL + if(songID == 0x0019) + return 0x01D24000; //AM-3P + if(songID == 0x00EA) + return 0x01D28000; //STILL IN MY HEART + if(songID == 0x009B) + return 0x01D2C000; //CSFIL + if(songID == 0x00BE) + return 0x01D30000; //MY SUMMER LOVE + if(songID == 0x00C4) + return 0x01D34000; //.59 + if(songID == 0x008B) + return 0x01D38000; //DROP THE BOMB + if(songID == 0x009E) + return 0x01D3C000; //SUPER STAR + if(songID == 0x009C) + return 0x01D40000; //WILD RUSH + if(songID == 0x0151) + return 0x01D44000; //LONG TRAIN RUNNIN' + if(songID == 0x0152) + return 0x01D48000; //MAXIMUM OVERDRIVE + if(songID == 0x0153) + return 0x01D4C000; //THERE YOU'LL BE (GUESS) + if(songID == 0x0154) + return 0x01D50000; //WAKA LAKA + if(songID == 0x0156) + return 0x01D54000; //D2R (GUESS) + if(songID == 0x0157) + return 0x01D58000; //DESTINY (GUESS) + if(songID == 0x0158) + return 0x01D5C000; //LIVING IN AMERICA + if(songID == 0x015A) + return 0x01D60000; //SWEET SWEET LOVE MAGIC + if(songID == 0x015B) + return 0x01D64000; //EVER SNOW (GUESS) + if(songID == 0x015D) + return 0x01D68000; //THE REFLEX + if(songID == 0x0160) + return 0x01D6C000; //IT'S RAINING MEN + if(songID == 0x0162) + return 0x01D70000; //SECRET RENDEZ-VOUS + if(songID == 0x0163) + return 0x01D74000; //LITTLE BOY + if(songID == 0x0164) + return 0x01D78000; //RAIN OF SORROW + if(songID == 0x0165) + return 0x01D7C000; //MAXX UNLIMITED + if(songID == 0x0166) + return 0x01D80000; //DIVE TO THE NIGHT (GUESS) + if(songID == 0x0167) + return 0x01D84000; //TSUGARU + if(songID == 0x0168) + return 0x01D88000; //BREAKDOWN + if(songID == 0x0169) + return 0x01D8C000; //BURNING HEAT! + if(songID == 0x016B) + return 0x01D90000; //FANTASY (MAX2) (GUESS) + if(songID == 0x016C) + return 0x01D94000; //I FEEL... + if(songID == 0x016D) + return 0x01D98000; //CANDY STAR + if(songID == 0x016E) + return 0x01D9C000; //SPIN THE DISC + if(songID == 0x0173) + return 0x01DA0000; //KAKUMEI + if(songID == 0x0174) + return 0x01DA4000; //AFRONOVA FROM NONSTOP MEGAMIX (GUESS) + if(songID == 0x0175) + return 0x01DA8000; //AM-3P AM EAST MIX + if(songID == 0x0176) + return 0x01DAC000; //BRILLIANT 2U KOG G3 MIX + if(songID == 0x0177) + return 0x01DB0000; //B4U B4 ZA BEAT MIX + if(songID == 0x0178) + return 0x01DB4000; //DROP OUT KOG MIX (GUESS) + if(songID == 0x0179) + return 0x01DB8000; //DYNAMITE RAVE B4 ZA BEAT MIX (GUESS) + if(songID == 0x017A) + return 0x01DBC000; //HYSTERIA 2001 + if(songID == 0x017B) + return 0x01DC0000; //MATSURI JAPAN NONSTOP MEGAMIX + if(songID == 0x017C) + return 0x01DC4000; //SEXY PLANET NONSTOP MEGAMIX + if(songID == 0x017D) + return 0x01DC8000; //SUPER STAR NONSTOP MEGAMIX + if(songID == 0x017E) + return 0x01DCC000; //STILL IN MY HEART MOMO MIX + if(songID == 0x017F) + return 0x01DD0000; //WILD RUSH NONSTOP MEGAMIX + if(songID == 0x0180) + return 0x01DD4000; //BURNIN' THE FLOOR BLUE FIRE MIX + if(songID == 0x0181) + return 0x01DD8000; //TSUGARU APPLE MIX + if(songID == 0x0182) + return 0x01DDC000; //ECSTASY MIDNIGHT BLUE MIX (GUESS) + if(songID == 0x0183) + return 0x01DE0000; //SILENT HILL 3RD CHRISTMAS MIX + if(songID == 0x0184) + return 0x01DE4000; //CELEBRATE NITE EURO TRANCE MIX + if(songID == 0x0185) + return 0x01DE8000; //HIGHER NEXT MORNING MIX (GUESS) + if(songID == 0x0186) + return 0x01DEC000; //MY SUMMER LOVE (TOMMY'S SMILE MIX) + if(songID == 0x001A) + return 0x01DF0000; //TRIP MACHINE + if(songID == 0x001C) + return 0x01DF4000; //SP-TRIP MACHINE JUNGLE MIX + if(songID == 0x002E) + return 0x01DF8000; //KEEP ON MOVIN' + if(songID == 0x008A) + return 0x01DFC000; //CUTIE CHASER + if(songID == 0x00FC) + return 0x01E00000; //REMEMBER YOU + if(songID == 0x010B) + return 0x01E04000; //AFRONOVA PRIMEVAL + if(songID == 0x00B6) + return 0x01E08000; //BABY BABY GIMME YOUR LOVE + if(songID == 0x0085) + return 0x01E0C000; //GRADIUSIC CYBER (AMD G5 MIX) + if(songID == 0x008C) + return 0x01E10000; //LA SENORITA VIRTUAL + if(songID == 0x00C3) + return 0x01E14000; //LEADING CYBER + if(songID == 0x00C9) + return 0x01E18000; //DON'T STOP AMD 2ND MIX + if(songID == 0x00EF) + return 0x01E1C000; //MR. T (TAKE ME HIGHER) + if(songID == 0x00F1) + return 0x01E20000; //I WAS THE ONE + if(songID == 0x00F3) + return 0x01E24000; //ELECTRO TUNED + if(songID == 0x0086) + return 0x01E28000; //GENTLE STRESS (AMD SEXUAL MIX) + if(songID == 0x000E) + return 0x01E2C000; //MAKE IT BETTER + if(songID == 0x00F4) + return 0x01E30000; //PARANOIA ETERNAL + if(songID == 0x0089) + return 0x01E34000; //AFTER THE GAME OF LOVE + if(songID == 0x002C) + return 0x01E38000; //LOVE THIS FEELING + if(songID == 0x000A) + return 0x01E3C000; //PUT YOUR FAITH IN ME + if(songID == 0x0084) + return 0x01E40000; //JAM JAM REGGAE (AMD SWING MIX) + if(songID == 0x002D) + return 0x01E44000; //THINK YA BETTER D + if(songID == 0x0076) + return 0x01E48000; //DAM DARIRAM + if(songID == 0x00E1) + return 0x01E4C000; //SYNCHRONIZED LOVE + if(songID == 0x0121) + return 0x01E50000; //SKY HIGH + if(songID == 0x0007) + return 0x01E54000; //LET'S GET DOWN + if(songID == 0x0018) + return 0x01E58000; //I BELIEVE IN MIRACLES + if(songID == 0x00E5) + return 0x01E5C000; //RHYTHM AND POLICE + if(songID == 0x0017) + return 0x01E60000; //IF YOU WERE HERE + if(songID == 0x0016) + return 0x01E64000; //GET UP'N MOVE + if(songID == 0x0009) + return 0x01E68000; //BUTTERFLY + if(songID == 0x0023) + return 0x01E6C000; //EL RITMO TROPICAL + if(songID == 0x0078) + return 0x01E70000; //CAPTAIN JACK + if(songID == 0x0013) + return 0x01E74000; //LITTLE BITCH + if(songID == 0x00B4) + return 0x01E78000; //SAINT GOES MARCHING + if(songID == 0x013E) + return 0x01E7C000; //TELEPHONE OPERATOR + if(songID == 0x0197) + return 0x01E80000; //MEMORIES + if(songID == 0x0198) + return 0x01E84000; //CRASH! (GUESS) + if(songID == 0x019B) + return 0x01E88000; //VANITY ANGEL + if(songID == 0x0054) + return 0x01E8C000; //GENOM SCREAMS + if(songID == 0x0039) + return 0x01E90000; //BE IN MY PARADISE + if(songID == 0x0046) + return 0x01E94000; //SKA A GO GO + if(songID == 0x003E) + return 0x01E98000; //DR. LOVE + if(songID == 0x004B) + return 0x01E9C000; //LUV TO ME DISCO MIX + if(songID == 0x0043) + return 0x01EA0000; //R3 + if(songID == 0x0037) + return 0x01EA4000; //5.1.1. + if(songID == 0x0033) + return 0x01EA8000; //JAM JAM REGGAE + if(songID == 0x003A) + return 0x01EAC000; //E-MOTION + if(songID == 0x0049) + return 0x01EB0000; //CELEBRATE + if(songID == 0x003D) + return 0x01EB4000; //20, NOVEMBER + if(songID == 0x01A5) + return 0x01EB8000; //DROP THE BOMB (SYSTEM SF MIX) + if(songID == 0x014F) + return 0x01EBC000; //KIND LADY + if(songID == 0x0150) + return 0x01EC0000; //SO IN LOVE + if(songID == 0x008D) + return 0x01EC4000; //AM-3P 303 BASS MIX + if(songID == 0x01AC) + return 0x01EC8000; //CUTIE CHASER (MORNING MIX) + if(songID == 0x01A6) + return 0x01ECC000; //DYNAMITE RAVE (DOWN BIRD SOTA MIX) + if(songID == 0x019D) + return 0x01ED0000; //DO IT RIGHT (HARMONIZED 2STEP MIX) + if(songID == 0x01A0) + return 0x01ED4000; //LOOK TO THE SKY TRUE COLOR MIX + if(songID == 0x01B0) + return 0x01ED8000; //WE WILL ROCK YOU + if(songID == 0x01B1) + return 0x01EDC000; //IRRESISTIBLEMENT + if(songID == 0x01B3) + return 0x01EE0000; //SPEED OVER BEETHOVEN + if(songID == 0x01C2) + return 0x01EE4000; //WE ARE THE CHAMPIONS + if(songID == 0x01AF) + return 0x01EE8000; //LA COPA DE LA VIDA + if(songID == 0x01B2) + return 0x01EEC000; //CARTOON HEROES + if(songID == 0x01C3) + return 0x01EF0000; //I DO I DO I DO + if(songID == 0x01E3) + return 0x01EF4000; //BURNING THE FLOOR MOMO MIX + if(songID == 0x01E5) + return 0x01EF8000; //SENORITA SPEEDY MIX + if(songID == 0x01B4) + return 0x01EFC000; //KISS KISS KISS + if(songID == 0x01B5) + return 0x01F00000; //LOVE LOVE SUGAR + if(songID == 0x01B6) + return 0x01F04000; //L'AMOUR ET LA LIBERTE + if(songID == 0x01B8) + return 0x01F08000; //DESTINY LOVERS + if(songID == 0x01B9) + return 0x01F0C000; //THE LEAST 100 SECONDS + if(songID == 0x01BA) + return 0x01F10000; //GAMELAN DE COUPLE + if(songID == 0x01BC) + return 0x01F14000; //MOBO*MOGA + if(songID == 0x01BD) + return 0x01F18000; //BE LOVIN + if(songID == 0x01BE) + return 0x01F1C000; //MIRACLE MOON + if(songID == 0x01C0) + return 0x01F20000; //V + if(songID == 0x01C1) + return 0x01F24000; //A + if(songID == 0x01C4) + return 0x01F28000; //COLORS + if(songID == 0x01C7) + return 0x01F2C000; //WHITE LOVERS + if(songID == 0x01C8) + return 0x01F30000; //FROZEN RAY + if(songID == 0x01CA) + return 0x01F34000; //FEELING OF LOVE + if(songID == 0x01CB) + return 0x01F38000; //DAIKENKAI + if(songID == 0x01CC) + return 0x01F3C000; //DOOR OF MAGIC + if(songID == 0x01CD) + return 0x01F40000; //HOLD ON ME + if(songID == 0x01CE) + return 0x01F44000; //JET WORLD + if(songID == 0x01C6) + return 0x01F48000; //KISS ME ALL NIGHT LONG + if(songID == 0x01CF) + return 0x01F4C000; //HAPPY WEDDING + if(songID == 0x01B7) + return 0x01F50000; //I'M GONNA GET YOU + if(songID == 0x01D5) + return 0x01F54000; //SYNC + if(songID == 0x01D6) + return 0x01F58000; //STOIC + if(songID == 0x01D7) + return 0x01F5C000; //321 STARS + if(songID == 0x01C5) + return 0x01F60000; //STAY + if(songID == 0x01BB) + return 0x01F64000; //JANEJANA + if(songID == 0x01D4) + return 0x01F68000; //MIKENEKO ROCK + if(songID == 0x01DB) + return 0x01F6C000; //SAKURA + if(songID == 0x01DD) + return 0x01F70000; //HEAVEN IS A '57 METALLIC GREY + if(songID == 0x01D9) + return 0x01F74000; //TWINBEE GENERATION X + if(songID == 0x01DA) + return 0x01F78000; //XENON + if(songID == 0x01C9) + return 0x01F7C000; //LAST MESSAGE + if(songID == 0x01DC) + return 0x01F80000; //PINK ROSE + if(songID == 0x01DF) + return 0x01F84000; //LA BAMBA + if(songID == 0x01E2) + return 0x01F88000; //AIR + if(songID == 0x01E6) + return 0x01F8C000; //ACROSS THE NIGHTMARE + if(songID == 0x01D1) + return 0x01F90000; //BAG + if(songID == 0x01D2) + return 0x01F94000; //THE LEGEND OF MAX + if(songID == 0x01BF) + return 0x01F98000; //GRADUATION + if(songID == 0x01AD) + return 0x01F9C000; //LOVE SHINE + if(songID == 0x01AE) + return 0x01FA0000; //PARANOIA SURVIVOR + if(songID == 0x01D0) + return 0x01FA4000; //PARANOIA SURVIVOR MAX + if(songID == 0x01D3) + return 0x01FA8000; //AOI SHOUDOU + if(songID == 0x01D8) + return 0x01FAC000; //1998 + if(songID == 0x01DE) + return 0x01FB0000; //HYPER EUROBEAT + if(songID == 0x01E0) + return 0x01FB4000; //DANCE DANCE REVOLUTION + if(songID == 0x01E1) + return 0x01FB8000; //TRIP MACHINE SURVIVOR + if(songID == 0x01E4) + return 0x01FBC000; //TEARS +/* if(songID == 0x0000) + return 0x01FC0000; // + if(songID == 0x0000) + return 0x01FC4000; // + if(songID == 0x0000) + return 0x01FC8000; // + if(songID == 0x0000) + return 0x01FCC000; // + if(songID == 0x0000) + return 0x01FD0000; // + if(songID == 0x0000) + return 0x01FD4000; // + if(songID == 0x0000) + return 0x01FD8000; // + if(songID == 0x0000) + return 0x01FDC000; // + if(songID == 0x0000) + return 0x01FE0000; // + if(songID == 0x0000) + return 0x01FE4000; // + if(songID == 0x0000) + return 0x01FE8000; // + if(songID == 0x0000) + return 0x01FEC000; // + if(songID == 0x0000) + return 0x01FF0000; // + if(songID == 0x0000) + return 0x01FF4000; // + if(songID == 0x0000) + return 0x01FF8000; // + if(songID == 0x0000) + return 0x01FFC000; //*/ + printf("Error: Unrecognized songID in file \"%s\": \"%X\"\n", filename, songID); + return 0x01FFC000; //This slot should be unused. +} + +void loadData(FILE* infile, unsigned int data[33554432], char* filename) +{ + bool extendedFormat = false; + long tempIndex = 0; + long tempIndex2 = 0; + unsigned long offset = 0; + int slotOffset = 0; //This number determines the offset from 'offset' where the data goes + //based on single/double and which edit slot(s) are used; + unsigned int inputData[8192]; + unsigned int outputData[4096]; + unsigned long songID = 0; + unsigned int stepMode = 0; + unsigned int MDAT[2]; + unsigned int machineCode[2]; + unsigned int songIDbytes[2]; + unsigned int difficultyLevel; + unsigned int difficultyFeet; + unsigned int freezeFlag; + for(int e = 0; e < 8192; e++) + inputData[e] = fgetc(infile); +// inputData[777]; //MSB of songID +// inputData[776]; //LSB of songID + + songID = inputData[777] * 256; + songID &= 0x0000FFFF; + songID += inputData[776]; + + stepMode = inputData[710]; + + offset = getOffset(songID, filename); + + if(offset == 33538048) + return; + + slotOffset = getSlotAvailable(stepMode, songID); + + if(slotOffset == -1) + { + if(stepMode == 0 || stepMode == 1) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Too many singles/couples edits used already for that song. Skipping...\n", filename); + } + else if(stepMode == 2) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Too many double edits used already for that song. Skipping...\n", filename); + } + else if(stepMode == 3) + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: 6Panel edits are not supported on this version. Skipping...\n", filename); + } + else + { + printf("Unable to insert the edit data in file \"%s\" -\nReason: Invalid step type found. Skipping...\n", filename); + } + return; + } + + + MDAT[0] = inputData[704]; + MDAT[1] = inputData[705]; + + machineCode[0] = inputData[688]; + machineCode[1] = inputData[689]; + + songIDbytes[0] = inputData[708]; + songIDbytes[1] = inputData[709]; + + stepMode = inputData[710]; + + difficultyLevel = inputData[711]; + difficultyFeet = inputData[778]; + + freezeFlag = inputData[779]; + + if(freezeFlag == 3) + extendedFormat = true; + +/* Begin 4-byte intro */ + outputData[0] = '\xAD'; + outputData[1] = '\xDE'; + outputData[2] = '\xCE'; + outputData[3] = '\xFA'; +/* End 4-byte intro */ + +/* Begin title strip */ + outputData[4] = 0x5B; + + if(inputData[178] == 130) //If the name is written in Unicode instead, for some reason... + { + outputData[5] = inputData[22]; + outputData[6] = inputData[23]; + outputData[7] = inputData[24]; + outputData[8] = inputData[25]; + outputData[9] = inputData[26]; + outputData[10] = inputData[27]; + outputData[11] = inputData[28]; + outputData[12] = inputData[29]; + } + else + { + outputData[5] = inputData[178]; + outputData[6] = inputData[179]; + outputData[7] = inputData[180]; + outputData[8] = inputData[181]; + outputData[9] = inputData[182]; + outputData[10] = inputData[183]; + outputData[11] = inputData[184]; + outputData[12] = inputData[185]; + } + outputData[13] = 0x5D; +/* End 4-byte intro */ + + outputData[14] = 0; // ??? + outputData[15] = 0; // ??? + outputData[16] = 0; // ??? + outputData[17] = 0; // ??? + outputData[18] = 0; // ??? + outputData[19] = stepMode; + outputData[20] = 2; // ??? + outputData[21] = 2; // ??? + outputData[22] = 2; // ??? + outputData[23] = 17; // ??? + outputData[24] = 1; // ??? + outputData[25] = 0; // ??? + outputData[26] = 5; // ??? + outputData[27] = 0; // ??? + outputData[28] = 32; // ??? + outputData[29] = 0; // ??? + outputData[30] = 1; // ??? + outputData[31] = 0; // ??? + outputData[32] = 0; // ??? + outputData[33] = 0; // ??? + outputData[34] = 0; // ??? + outputData[35] = 0; // ??? + outputData[36] = 2; // ??? + outputData[37] = 0; // ??? + outputData[38] = 0; // ??? + outputData[39] = 0; // ??? + outputData[40] = 0; // ??? + outputData[41] = 0; // ??? + outputData[42] = 0; // ??? + outputData[43] = 0; // ??? + +//The bytes from 14 through 43 are currently unknown! + +/* Beginning of --DanceDanceRevolution-- line */ + outputData[44] = '-'; + outputData[45] = '-'; + outputData[46] = 'D'; + outputData[47] = 'a'; + outputData[48] = 'n'; + outputData[49] = 'c'; + outputData[50] = 'e'; + outputData[51] = 'D'; + outputData[52] = 'a'; + outputData[53] = 'n'; + outputData[54] = 'c'; + outputData[55] = 'e'; + outputData[56] = 'R'; + outputData[57] = 'e'; + outputData[58] = 'v'; + outputData[59] = 'o'; + outputData[60] = 'l'; + outputData[61] = 'u'; + outputData[62] = 't'; + outputData[63] = 'i'; + outputData[64] = 'o'; + outputData[65] = 'n'; + outputData[66] = '-'; + outputData[67] = '-'; + outputData[68] = machineCode[0]; + outputData[69] = machineCode[1]; +/* End of --DanceDanceRevolution--** line */ + + for(int f = 0; f < 14; f++) + { + tempIndex = 70 + f; + outputData[tempIndex] = 0; + } + + if(extendedFormat) + { + outputData[84] = MDAT[0]; + outputData[85] = MDAT[1]; + } + else + { + outputData[84] = MDAT[0]; + outputData[85] = MDAT[1] - 1; + } + outputData[86] = 0; + outputData[87] = 0; + outputData[88] = songIDbytes[0]; + outputData[89] = songIDbytes[1]; + + outputData[90] = stepMode; + outputData[91] = difficultyLevel; + + for(int g = 0; g < 56; g++) + { + tempIndex = 92 + g; + outputData[tempIndex] = 0; + } + + for(int h = 0; h < 16; h++) + { + tempIndex = 148 + h; + tempIndex2 = 768 + h; + outputData[tempIndex] = inputData[tempIndex2]; + } + + if(extendedFormat) + { + for(int y = 0; y < 3676; y++) + { + tempIndex = 164 + y; + tempIndex2 = 1040 + y; + outputData[tempIndex] = inputData[tempIndex2]; + } + } + else + { + for(int y = 0; y < 3932; y++) + { + tempIndex = 164 + y; + tempIndex2 = 784 + y; + outputData[tempIndex] = inputData[tempIndex2]; + } + } + + for(int z = 0; z < 4096; z++) + { + tempIndex = offset + slotOffset + z; + data[tempIndex] = outputData[z]; + } + return; +} + +void printUsage() +{ + printf("StepLoader.exe usage:\n"); + printf(" StepLoader (inputfile) (outputfile) edit1 [...]\n"); + printf("StepLoader uses .mcs-formatted files. Specifying the .mcs extension is not necessary.\n"); + return; +} + +int getSlotAvailable(unsigned int stepMode, unsigned int songID) +{ + if(stepMode == 0 || stepMode == 1) + { + if((assignedTable[songID] & 1)) + if((assignedTable[songID] & 2)) + return -1; + else + { + assignedTable[songID] |= 2; + return 4096; + } + else + { + assignedTable[songID] |= 1; + return 0; + } + } + else if(stepMode == 2) + { + if((assignedTable[songID] & 4)) + if((assignedTable[songID] & 8)) + return -1; + else + { + assignedTable[songID] |= 8; + return 12288; + } + else + { + assignedTable[songID] |= 4; + return 8192; + } + } + else + return true; +} diff --git a/ddr/DDR 573 digital arcade edit tools/a.exe b/ddr/DDR 573 digital arcade edit tools/a.exe new file mode 100644 index 0000000..bd62957 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/a.exe differ diff --git a/ddr/DDR 573 digital arcade edit tools/cygwin1.dll b/ddr/DDR 573 digital arcade edit tools/cygwin1.dll new file mode 100644 index 0000000..71cde86 Binary files /dev/null and b/ddr/DDR 573 digital arcade edit tools/cygwin1.dll differ diff --git a/ddr/DDREditMAX/ddreditmax.zip b/ddr/DDREditMAX/ddreditmax.zip new file mode 100644 index 0000000..48cfe13 Binary files /dev/null and b/ddr/DDREditMAX/ddreditmax.zip differ diff --git a/ddr/DDREditMAX2/DDReditMAX2-35191-ja.zip b/ddr/DDREditMAX2/DDReditMAX2-35191-ja.zip new file mode 100644 index 0000000..ced81e9 Binary files /dev/null and b/ddr/DDREditMAX2/DDReditMAX2-35191-ja.zip differ diff --git a/ddr/Minimaid care package/10850097_10204524172921031_4242292839030726166_n.jpg b/ddr/Minimaid care package/10850097_10204524172921031_4242292839030726166_n.jpg new file mode 100644 index 0000000..c662e65 Binary files /dev/null and b/ddr/Minimaid care package/10850097_10204524172921031_4242292839030726166_n.jpg differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/GFDM/libdevice.dll b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/GFDM/libdevice.dll new file mode 100644 index 0000000..95db534 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/GFDM/libdevice.dll differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 1.pdf b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 1.pdf new file mode 100644 index 0000000..20d6881 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 1.pdf differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 2.pdf b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 2.pdf new file mode 100644 index 0000000..f7a767e Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 2.pdf differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 3.pdf b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 3.pdf new file mode 100644 index 0000000..62c78c3 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 3.pdf differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 4.pdf b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 4.pdf new file mode 100644 index 0000000..4269dec Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/MINIMAID INSTRUCTION MANUAL 4.pdf differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/~$NIMAID INSTRUCTION MANUAL 3.docx b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/~$NIMAID INSTRUCTION MANUAL 3.docx new file mode 100644 index 0000000..257a876 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MANUALS/~$NIMAID INSTRUCTION MANUAL 3.docx differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/custom15khz.txt b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/custom15khz.txt new file mode 100644 index 0000000..0989559 --- /dev/null +++ b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/custom15khz.txt @@ -0,0 +1,2 @@ +remove 640,480 +ModeLine "640x480@60i" 11.97 640 664 736 760 480 484 492 525 +Hsync +Vsync Interlace \ No newline at end of file diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres.zip b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres.zip new file mode 100644 index 0000000..ff057ef Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres.zip differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres1.exe b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres1.exe new file mode 100644 index 0000000..60a0c52 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/quickres1.exe differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.exe b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.exe new file mode 100644 index 0000000..0bd62b4 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.exe differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.zip b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.zip new file mode 100644 index 0000000..1a5dea2 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/soft15khz.zip differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/testgrid.zip b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/testgrid.zip new file mode 100644 index 0000000..1b54c1d Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/MONITOR/testgrid.zip differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01049.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01049.JPG new file mode 100644 index 0000000..f61e044 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01049.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01050.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01050.JPG new file mode 100644 index 0000000..19b95ef Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01050.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01051.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01051.JPG new file mode 100644 index 0000000..55780a4 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01051.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01052.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01052.JPG new file mode 100644 index 0000000..fd62205 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01052.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01053.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01053.JPG new file mode 100644 index 0000000..6ee23fe Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01053.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01054.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01054.JPG new file mode 100644 index 0000000..b835797 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01054.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01055.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01055.JPG new file mode 100644 index 0000000..18dde9e Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01055.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01056.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01056.JPG new file mode 100644 index 0000000..e3f8af8 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01056.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01057.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01057.JPG new file mode 100644 index 0000000..c00d102 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01057.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01058.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01058.JPG new file mode 100644 index 0000000..1bdcf77 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01058.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01059.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01059.JPG new file mode 100644 index 0000000..56a8142 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01059.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01060.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01060.JPG new file mode 100644 index 0000000..63fddc5 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01060.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01061.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01061.JPG new file mode 100644 index 0000000..61a5188 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01061.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01062.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01062.JPG new file mode 100644 index 0000000..12c6df1 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01062.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01063.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01063.JPG new file mode 100644 index 0000000..d21ea24 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01063.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01064.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01064.JPG new file mode 100644 index 0000000..c79b0cf Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01064.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01075.JPG b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01075.JPG new file mode 100644 index 0000000..24c69a0 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/Pictures/DSC01075.JPG differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/minimaidaccesslib.lib b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/minimaidaccesslib.lib new file mode 100644 index 0000000..7afeb8c Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/OTHER/minimaidaccesslib.lib differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP70.DLL b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP70.DLL new file mode 100644 index 0000000..3131f46 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP70.DLL differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP71.DLL b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP71.DLL new file mode 100644 index 0000000..9ed0d17 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCP71.DLL differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCR70.DLL b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCR70.DLL new file mode 100644 index 0000000..0694269 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/MSVCR70.DLL differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/msvcr71.dll b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/msvcr71.dll new file mode 100644 index 0000000..9d9e028 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/IF STEPMANIA OR OITG REQUESTS IT/msvcr71.dll differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/Keymaps.ini b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/Keymaps.ini new file mode 100644 index 0000000..71b6976 --- /dev/null +++ b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/Keymaps.ini @@ -0,0 +1,32 @@ +[dance] +Controller1_Back=,,Key_escape +Controller1_Down=Key_m,,Key_down +Controller1_Insert Coin=Key_d,,Key_F1 +Controller1_Left=Key_o,,Key_left +Controller1_MenuDown=,,Key_end +Controller1_MenuLeft=Key_u,,Key_delete +Controller1_MenuRight=Key_w,,Key_pgdn +Controller1_MenuUp=,,Key_home +Controller1_Operator=Key_b,,Key_scroll lock +Controller1_Right=Key_q,,Key_right +Controller1_Select=,,Key_right shift +Controller1_Start=Key_i,,Key_enter +Controller1_Up=Key_k,,Key_up +Controller1_UpLeft= +Controller1_UpRight= +Controller2_Back=,,Key_num lock +Controller2_Down=Key_n,,Key_KP 2 +Controller2_Insert Coin=Key_a +Controller2_Left=Key_p,,Key_KP 4 +Controller2_MenuDown=,,Key_KP + +Controller2_MenuLeft=Key_v,,Key_KP / +Controller2_MenuRight=Key_x,,Key_KP * +Controller2_MenuUp=,,Key_KP - +Controller2_Operator= +Controller2_Right=Key_r,,Key_KP 6 +Controller2_Select=,,Key_KP 0 +Controller2_Start=Key_j,,Key_KP enter +Controller2_Up=Key_l,,Key_KP 8 +Controller2_UpLeft=,,Key_KP 7 +Controller2_UpRight=,,Key_KP 9 + diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/OpenITG beta 2-setup.exe b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/OpenITG beta 2-setup.exe new file mode 100644 index 0000000..7a21bd6 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/OpenITG beta 2-setup.exe differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/StepMania.ini b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/StepMania.ini new file mode 100644 index 0000000..e501ce6 --- /dev/null +++ b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/StepMania.ini @@ -0,0 +1,252 @@ +[Options] +AdditionalFolders= +AdditionalSongFolders= +AllowExtraPlayerOptions=0 +AllowExtraStage=0 +AllowMultipleHighScoreWithSameName=0 +AllowOldKeyboardInput=1 +AllowUnacceleratedRenderer=0 +AnisotropicFiltering=0 +ArcadeOptionsNavigation=1 +AttractSoundFrequency=1 +AutoMapOnJoyChange=1 +AutoPlay=0 +AutogenGroupCourses=0 +AutogenSteps=0 +BGBrightness=0.400000 +BackgroundMode=2 +BannerCache=1 +BlinkGameplayButtonLightsOnNote=1 +BoostAppPriority=2 +BreakComboToGetItem=0 +CelShadeModels=0 +CenterImageAddHeight=0 +CenterImageAddWidth=0 +CenterImageTranslateX=0 +CenterImageTranslateY=0 +CoinMode=2 +CoinsPerCredit=1 +ComboContinuesBetweenSongs=1 +ConstantUpdateDeltaSeconds=0.000000 +CourseEdits=0 +CourseSortOrder=1 +CoursesToShowRanking= +CustomMaxSeconds=120 +CustomMaxSizeMB=5 +CustomMaxStepSizeKB=30 +CustomSongPreviews=0 +CustomsLoadMax=50 +CustomsLoadTimeout=5.000000 +DancePointsForOni=0 +DebugInputDrivers=0 +DebugLights=0 +DebugTheme=0 +DefaultLocalProfileIDP1= +DefaultLocalProfileIDP2= +DefaultModifiers=1.5x, Hallway, metal, FailEndOfSong +DelayedBack=0 +DelayedCreditsReconcile=1 +DelayedModelDelete=0 +DelayedScreenLoad=0 +DelayedTextureDelete=0 +DisableScreenSaver=1 +DisplayAspectRatio=1.333333 +DisplayColorDepth=32 +DisplayHeight=480 +DisplayWidth=640 +Disqualification=1 +EasterEggs=0 +EasterEggs2=1 +EditorShowBGChangesPlay=0 +EndlessBreakEnabled=1 +EndlessBreakLength=5 +EndlessNumStagesUntilBreak=5 +EventMode=1 +FailOffForFirstStageEasy=1 +FailOffInBeginner=1 +FastLoad=0 +ForceLogFlush=0 +ForceMipMaps=0 +GetRankingName=1 +GiveUpTime=2.500000 +GlobalOffsetSeconds=0.000000 +GradeWeightBoo=-6 +GradeWeightGood=0 +GradeWeightGreat=2 +GradeWeightHitMine=-6 +GradeWeightMarvelous=5 +GradeWeightMiss=-12 +GradeWeightNG=0 +GradeWeightOK=5 +GradeWeightPerfect=4 +HiddenSongs=1 +HideDefaultNoteSkin=1 +IgnoredMessageWindows= +InputDebounceTime=0.000000 +InputDrivers= +Interlaced=0 +JudgeWindowAdd=0.000000 +JudgeWindowScale=1.000000 +JudgeWindowSecondsAttack=0.130000 +JudgeWindowSecondsBoo=0.180000 +JudgeWindowSecondsGood=0.135000 +JudgeWindowSecondsGreat=0.102000 +JudgeWindowSecondsMarvelous=0.021500 +JudgeWindowSecondsMine=0.070000 +JudgeWindowSecondsOK=0.320000 +JudgeWindowSecondsPerfect=0.043000 +JudgeWindowSecondsRoll=0.350000 +Language= +LastConnectedServer= +LastSeenInputDevices=Keyboard,MonkeyKeyboard +LastSeenMemory=1023 +LastSeenVideoDriver=RADEON 9600 SERIES +LifeDeltaPercentChangeBoo=-0.050000 +LifeDeltaPercentChangeGood=0.000000 +LifeDeltaPercentChangeGreat=0.004000 +LifeDeltaPercentChangeHitMine=-0.050000 +LifeDeltaPercentChangeMarvelous=0.008000 +LifeDeltaPercentChangeMiss=-0.100000 +LifeDeltaPercentChangeNG=-0.080000 +LifeDeltaPercentChangeOK=0.008000 +LifeDeltaPercentChangePerfect=0.008000 +LifeDifficultyScale=1.000000 +LightsAheadSeconds=0.050000 +LightsChartsInMenus=0 +LightsDriver=parallel +LightsFalloffSeconds=0.100000 +LightsStepsDifficulty=hard,medium +LockCourseDifficulties=0 +LogCheckpoints=0 +LogFPS=1 +LogSkips=0 +LogToDisk=1 +LongVerSongSeconds=150.000000 +MachineName= +MarathonVerSongSeconds=300.000000 +MarvelousTiming=2 +MaxHighScoresPerListForMachine=10 +MaxHighScoresPerListForPlayer=1 +MaxRecentScoresForMachine=100 +MaxRecentScoresForPlayer=20 +MaxRegenComboAfterFail=10 +MaxRegenComboAfterMiss=10 +MaxTextureResolution=2048 +MemoryCardOsMountPointP1= +MemoryCardOsMountPointP2= +MemoryCardProfileImportSubdirs=In The Groove +MemoryCardProfileSubdir=In The Groove 2 +MemoryCardUsbBusP1=-1 +MemoryCardUsbBusP2=-1 +MemoryCardUsbLevelP1=-1 +MemoryCardUsbLevelP2=-1 +MemoryCardUsbPortP1=-1 +MemoryCardUsbPortP2=-1 +MemoryCards=0 +MenuTimer=1 +MercifulBeginner=1 +MercifulDrain=0 +MercifulSuperMeter=1.000000 +MinPercentageForMachineCourseHighScore=0.000100 +MinPercentageForMachineSongHighScore=0.500000 +Minimum1FullSongInCourses=1 +MonkeyInput=0 +MoveRandomToEnd=0 +MovieColorDepth=32 +MovieDrivers= +MusicWheelSwitchSpeed=10 +MusicWheelUsesSections=1 +NetworkStartOffset=-3.000000 +NumBackgrounds=8 +OnlyDedicatedMenuButtons=0 +PAL=0 +PadStickSeconds=0.050000 +PalettedBannerCache=0 +PercentScoreWeightBoo=-6 +PercentScoreWeightGood=0 +PercentScoreWeightGreat=2 +PercentScoreWeightHitMine=-6 +PercentScoreWeightMarvelous=5 +PercentScoreWeightMiss=-12 +PercentScoreWeightNG=0 +PercentScoreWeightOK=5 +PercentScoreWeightPerfect=4 +PercentageScoring=1 +PickExtraStage=0 +PreferredSortUsesGroups=0 +Premium=0 +ProductID=5 +ProgressiveLifebar=0 +ProgressiveNonstopLifebar=0 +ProgressiveStageLifebar=0 +RefreshRate=0 +RegenComboAfterFail=10 +RegenComboAfterMiss=5 +ScoringType=0 +ScreenTestMode=0 +ServerWaitSeconds=2.000000 +ShowBanners=1 +ShowBeginnerHelper=0 +ShowCaution=1 +ShowDancingCharacters=0 +ShowDanger=1 +ShowInstructions=1 +ShowLoadingWindow=1 +ShowLogOutput=0 +ShowLyrics=1 +ShowNativeLanguage=1 +ShowSelectGroup=1 +ShowSongOptions=0 +ShowStats=0 +SignProfileData=1 +SmoothLines=1 +SoloSingle=0 +SongEdits=0 +SongsPerPlay=3 +SoundDevice= +SoundDrivers= +SoundResampleQuality=1 +SoundVolume=0.700000 +SoundVolumeAttract=0.350000 +SoundWriteAhead=0 +SubSortByNumSteps=1 +SuperMeterPercentChangeBoo=0.000000 +SuperMeterPercentChangeGood=0.000000 +SuperMeterPercentChangeGreat=0.020000 +SuperMeterPercentChangeHitMine=-0.400000 +SuperMeterPercentChangeMarvelous=0.050000 +SuperMeterPercentChangeMiss=-0.200000 +SuperMeterPercentChangeNG=-0.200000 +SuperMeterPercentChangeOK=0.040000 +SuperMeterPercentChangePerfect=0.040000 +TextureColorDepth=32 +TexturePreload=0 +ThreadedInput=1 +ThreadedMovieDecode=1 +TimeMeterSecondsChangeBoo=-2.000000 +TimeMeterSecondsChangeGood=-1.000000 +TimeMeterSecondsChangeGreat=-0.500000 +TimeMeterSecondsChangeHitMine=-2.000000 +TimeMeterSecondsChangeMarvelous=0.200000 +TimeMeterSecondsChangeMiss=-4.000000 +TimeMeterSecondsChangeNG=-4.000000 +TimeMeterSecondsChangeOK=0.000000 +TimeMeterSecondsChangePerfect=0.000000 +Timestamping=0 +TrilinearFiltering=0 +TugMeterPercentChangeBoo=-0.040000 +TugMeterPercentChangeGood=0.000000 +TugMeterPercentChangeGreat=0.004000 +TugMeterPercentChangeHitMine=-0.080000 +TugMeterPercentChangeMarvelous=0.010000 +TugMeterPercentChangeMiss=-0.080000 +TugMeterPercentChangeNG=-0.080000 +TugMeterPercentChangeOK=0.008000 +TugMeterPercentChangePerfect=0.008000 +TwoPlayerRecovery=0 +UseUnlockSystem=1 +VideoRenderers=opengl,d3d +VisualDelaySeconds=0.000000 +Vsync=1 +Windowed=0 + diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/parallel_lights_io-openitg.dll b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/parallel_lights_io-openitg.dll new file mode 100644 index 0000000..3e97f17 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/OITG/parallel_lights_io-openitg.dll differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/3.9+_redux_Win.zip b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/3.9+_redux_Win.zip new file mode 100644 index 0000000..a64e501 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/3.9+_redux_Win.zip differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania-3.9.exe b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania-3.9.exe new file mode 100644 index 0000000..55bcc15 Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania-3.9.exe differ diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania.ini b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania.ini new file mode 100644 index 0000000..6a48fac --- /dev/null +++ b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/StepMania.ini @@ -0,0 +1,328 @@ +[Debug] +ForceLogFlush=0 +LogCheckpoints=0 +LogFPS=1 +LogSkips=0 +LogToDisk=1 +ShowLoadingWindow=1 +ShowLogOutput=0 +Timestamping=0 + +[Editor] +ShiftIsUsedAsAreaSelector=1 +ShowBGChangesPlay=0 + +[Options] +AdditionalFolders= +AdditionalSongFolders= +AllowExtraStage=1 +AllowUnacceleratedRenderer=0 +AlwaysAllowExtraStage2=0 +AnisotropicFiltering=0 +AnnouncerInExtraStageEvaluation=1 +AnnouncerInExtraStageGameplay=1 +ArcadeOptionsNavigation=1 +AttackMinesLength=7.000000 +AttractSoundFrequency=0 +AutoMapJoysticks=1 +AutoPlay=0 +AutoRestart=0 +AutogenGroupCourses=1 +AutogenSteps=1 +BGBrightness=0.800000 +BackgroundCache=1 +BackgroundMode=3 +BannerCache=1 +BlinkGameplayButtonLightsOnNote=0 +BoostAppPriority=-1 +BreakComboToGetItem=0 +Caution=1 +CelShadeModels=0 +CenterImageScaleX=1.000000 +CenterImageScaleY=1.000000 +CenterImageTranslateX=0 +CenterImageTranslateY=0 +CoinMode=2 +CoinsPerCredit=1 +ComboContinuesBetweenSongs=0 +ConstantUpdateDeltaSeconds=0.000000 +CourseSortOrder=0 +CoursesToShowRanking=Courses/DDRMAX/NaokiStandard.crs,Courses/DDRMAX/ParanoiaBrothers.crs,Courses/Samples/PlayersBest1-4.crs +DancePointsForOni=0 +DarkExtraStage=1 +DebounceTime=0.010000 +DefaultLocalProfileIDP1= +DefaultLocalProfileIDP2= +DelayedCreditsReconcile=0 +DelayedEscape=1 +DelayedModelDelete=0 +DelayedScreenLoad=0 +DelayedTextureDelete=1 +DisableScreenSaver=1 +DisplayColorDepth=32 +DisplayHeight=480 +DisplayWidth=640 +Disqualification=0 +EasterEggs=1 +EditModeDoesntSavePlusFeatures=0 +EndlessBreakEnabled=1 +EndlessBreakLength=5 +EndlessStagesUntilBreak=5 +EventMode=0 +EventModeIgnoresSelectable=0 +EventModeIgnoresUnlock=0 +FadeBackgroundsOnTransition=0 +FastLoad=1 +FastLoadExisitingCacheOnly=0 +FirstRun=0 +ForceMipMaps=0 +GetRankingName=1 +GlobalOffsetSeconds=0.000000 +GradePercentTier01=1.000000 +GradePercentTier02=1.000000 +GradePercentTier03=0.930000 +GradePercentTier04=0.800000 +GradePercentTier05=0.650000 +GradePercentTier06=0.450000 +GradePercentTier07=-99999.000000 +GradePercentTier08=0.000000 +GradePercentTier09=0.000000 +GradePercentTier10=0.000000 +GradePercentTier11=0.000000 +GradePercentTier12=0.000000 +GradePercentTier13=0.000000 +GradePercentTier14=0.000000 +GradePercentTier15=0.000000 +GradePercentTier16=0.000000 +GradePercentTier17=0.000000 +GradePercentTier18=0.000000 +GradePercentTier19=0.000000 +GradePercentTier20=0.000000 +GradeTier02IsAllPerfects=1 +GradeTier02RequiresFC=0 +GradeTier02RequiresNoMiss=0 +GradeTier03RequiresFC=0 +GradeTier03RequiresNoMiss=0 +GradeWeightBoo=-4 +GradeWeightGood=0 +GradeWeightGreat=1 +GradeWeightHitMine=-8 +GradeWeightHoldNG=0 +GradeWeightHoldOK=6 +GradeWeightMarvelous=2 +GradeWeightMiss=-8 +GradeWeightPerfect=2 +GradeWeightRollNG=0 +GradeWeightRollOK=6 +HiddenSongs=0 +HideDefaultNoteSkin=0 +HowToPlay=1 +IgnoredMessageWindows= +Interlaced=0 +JudgeWindowAdd=0.000000 +JudgeWindowScale=1.000000 +JudgeWindowSecondsAttack=0.135000 +JudgeWindowSecondsBoo=0.180000 +JudgeWindowSecondsGood=0.135000 +JudgeWindowSecondsGreat=0.090000 +JudgeWindowSecondsHidden=0.045000 +JudgeWindowSecondsHold=0.250000 +JudgeWindowSecondsMarvelous=0.022500 +JudgeWindowSecondsMine=0.090000 +JudgeWindowSecondsPerfect=0.045000 +JudgeWindowSecondsRoll=0.300000 +Language= +LastSeenInputDevices=Keyboard +LastSeenMemory=1023 +LastSeenVideoDriver=RADEON 9600 SERIES +LifeDeltaPercentChangeBoo=-0.040000 +LifeDeltaPercentChangeGood=0.000000 +LifeDeltaPercentChangeGreat=0.004000 +LifeDeltaPercentChangeHidden=0.250000 +LifeDeltaPercentChangeHitMine=-0.160000 +LifeDeltaPercentChangeHoldNG=-0.080000 +LifeDeltaPercentChangeHoldOK=0.008000 +LifeDeltaPercentChangeMarvelous=0.008000 +LifeDeltaPercentChangeMiss=-0.080000 +LifeDeltaPercentChangeMissHidden=0.000000 +LifeDeltaPercentChangePerfect=0.008000 +LifeDeltaPercentChangeRollNG=-0.080000 +LifeDeltaPercentChangeRollOK=0.008000 +LifeDeltaPercentNoRecoverChangeBoo=-0.040000 +LifeDeltaPercentNoRecoverChangeGood=0.000000 +LifeDeltaPercentNoRecoverChangeGreat=0.000000 +LifeDeltaPercentNoRecoverChangeHidden=0.000000 +LifeDeltaPercentNoRecoverChangeHitMine=-0.160000 +LifeDeltaPercentNoRecoverChangeHoldNG=-0.080000 +LifeDeltaPercentNoRecoverChangeHoldOK=0.000000 +LifeDeltaPercentNoRecoverChangeMarvelous=0.000000 +LifeDeltaPercentNoRecoverChangeMiss=-0.080000 +LifeDeltaPercentNoRecoverChangeMissHidden=0.000000 +LifeDeltaPercentNoRecoverChangePerfect=0.000000 +LifeDeltaPercentNoRecoverChangeRollNG=-0.080000 +LifeDeltaPercentNoRecoverChangeRollOK=0.000000 +LifeDeltaPercentSuddenDeathChangeBoo=-1.000000 +LifeDeltaPercentSuddenDeathChangeGood=-1.000000 +LifeDeltaPercentSuddenDeathChangeGreat=0.000000 +LifeDeltaPercentSuddenDeathChangeHidden=0.000000 +LifeDeltaPercentSuddenDeathChangeHitMine=-1.000000 +LifeDeltaPercentSuddenDeathChangeHoldNG=-1.000000 +LifeDeltaPercentSuddenDeathChangeHoldOK=0.000000 +LifeDeltaPercentSuddenDeathChangeMarvelous=0.000000 +LifeDeltaPercentSuddenDeathChangeMiss=-1.000000 +LifeDeltaPercentSuddenDeathChangeMissHidden=0.000000 +LifeDeltaPercentSuddenDeathChangePerfect=0.000000 +LifeDeltaPercentSuddenDeathChangeRollNG=-1.000000 +LifeDeltaPercentSuddenDeathChangeRollOK=0.000000 +LifeDifficultyScale=1.000000 +LifePercentInitialValue=0.500000 +LifePercentNoRecoverInitialValue=1.000000 +LifePercentSuddenDeathInitialValue=1.000000 +LightsDriver=Parallel +LightsFalloffSeconds=0.080000 +LightsFalloffUsesBPM=0 +LightsIgnoreHolds=0 +LightsStepsDifficulty=medium +LockCourseDifficulties=1 +LockExtraStageDifficulty=1 +LongVerSeconds=150.000000 +MachineName=NoName +MarathonVerSeconds=300.000000 +MarvelousTiming=2 +MaxHighScoresPerListForMachine=10 +MaxHighScoresPerListForPlayer=3 +MaxRegenComboAfterFail=10 +MaxRegenComboAfterMiss=10 +MaxTextureResolution=2048 +MemoryCardOsMountPointP1= +MemoryCardOsMountPointP2= +MemoryCardProfileSubdir=StepMania +MemoryCardUsbBusP1=-1 +MemoryCardUsbBusP2=-1 +MemoryCardUsbLevelP1=-1 +MemoryCardUsbLevelP2=-1 +MemoryCardUsbPortP1=-1 +MemoryCardUsbPortP2=-1 +MemoryCards=0 +MenuTimer=1 +MercifulDrain=1 +MercifulSuperMeter=1 +MinPercentageForMachineCourseHighScore=0.001000 +MinPercentageForMachineSongHighScore=0.500000 +Minimum1FullSongInCourses=0 +MoveRandomToEnd=0 +MovieColorDepth=32 +MusicWheelSwitchSpeed=10 +MusicWheelUsesSections=1 +NonstopUsesExtremeScoring=0 +NumArcadeStages=3 +NumBackgrounds=10 +NumGradeTiersUsed=7 +OniExtraStage1=1 +OniExtraStage2=1 +PAL=0 +PadStickSeconds=0.000000 +PalettedBackgroundCache=0 +PalettedBannerCache=0 +PercentScoreWeightBoo=0 +PercentScoreWeightGood=0 +PercentScoreWeightGreat=1 +PercentScoreWeightHitMine=-2 +PercentScoreWeightHoldNG=0 +PercentScoreWeightHoldOK=3 +PercentScoreWeightMarvelous=3 +PercentScoreWeightMiss=0 +PercentScoreWeightPerfect=2 +PercentScoreWeightRollNG=0 +PercentScoreWeightRollOK=3 +PercentageScoring=0 +PickExtraStage=0 +PickModsForExtraStage=0 +PlayAttackSounds=1 +PlayMineSound=1 +PlayerSongs=1 +PlayerSongsLengthLimitInSeconds=150.000000 +PlayerSongsLoadLimit=25 +PlayerSongsLoadTimeout=5.000000 +PlayerSongsUseBGChanges=1 +PlayerSongsUseBackgrounds=1 +PlayerSongsUseBanners=1 +PlayerSongsUseCDTitles=1 +PlayerSongsUseLyrics=1 +PositiveAnnouncerOnly=0 +Premium=0 +ProductID=1 +ProgressiveLifebar=0 +ProgressiveNonstopLifebar=0 +ProgressiveStageLifebar=0 +RandomAttacksLength=5.000000 +RefreshRate=0 +RegenComboAfterFail=10 +RegenComboAfterMiss=5 +RollTapTimingIsAffectedByJudge=1 +ScaleMeterRatings=0 +ScoringType=0 +ScreenTestMode=0 +ShowBackgroundsInSSM=1 +ShowBanners=1 +ShowBeginnerHelper=0 +ShowDancingCharacters=1 +ShowDanger=1 +ShowLyrics=1 +ShowNative=1 +ShowSelectGroup=1 +ShowSongOptions=1 +ShowStats=0 +ShuffleNotesInDanceRave=1 +SignProfileData=0 +SmoothLines=1 +SoloSingle=0 +SoundDevice= +SoundDrivers= +SoundResampleQuality=1 +SoundWriteAhead=0 +SubSortByNumSteps=0 +SuperMeterPercentChangeBoo=0.000000 +SuperMeterPercentChangeGood=0.000000 +SuperMeterPercentChangeGreat=0.020000 +SuperMeterPercentChangeHidden=0.200000 +SuperMeterPercentChangeHitMine=-0.400000 +SuperMeterPercentChangeHoldNG=-0.200000 +SuperMeterPercentChangeHoldOK=0.040000 +SuperMeterPercentChangeMarvelous=0.050000 +SuperMeterPercentChangeMiss=-0.200000 +SuperMeterPercentChangeMissHidden=0.000000 +SuperMeterPercentChangePerfect=0.040000 +SuperMeterPercentChangeRollNG=-0.200000 +SuperMeterPercentChangeRollOK=0.040000 +TextureColorDepth=32 +TexturePreload=0 +ThreadedInput=1 +ThreadedMovieDecode=1 +TimeBetweenRandomAttacks=2.000000 +TrilinearFiltering=0 +TugMeterPercentChangeBoo=-0.010000 +TugMeterPercentChangeGood=0.000000 +TugMeterPercentChangeGreat=0.004000 +TugMeterPercentChangeHidden=0.250000 +TugMeterPercentChangeHitMine=-0.040000 +TugMeterPercentChangeHoldNG=-0.020000 +TugMeterPercentChangeHoldOK=0.008000 +TugMeterPercentChangeMarvelous=0.010000 +TugMeterPercentChangeMiss=-0.020000 +TugMeterPercentChangeMissHidden=0.000000 +TugMeterPercentChangePerfect=0.008000 +TugMeterPercentChangeRollNG=-0.020000 +TugMeterPercentChangeRollOK=0.008000 +TwoPlayerRecovery=1 +UnlockUsesMachineProfileStats=1 +UnlockUsesPlayerProfileStats=0 +UseCatalogXML=1 +UseDedicatedMenuButtons=1 +UseLongSongs=1 +UseMarathonSongs=1 +UseUnlockSystem=0 +VideoRenderers=opengl,d3d +Vsync=1 +Windowed=0 + diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/keymaps.ini b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/keymaps.ini new file mode 100644 index 0000000..48e1687 --- /dev/null +++ b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/keymaps.ini @@ -0,0 +1,42 @@ +[dance] +0-0=0-111,,0-166 +0-1=0-113,,0-167 +0-10=,0-171,0-169 +0-11=,0-172,0-170 +0-12=0-100,,0-133 +0-13=0-98,,0-161 +0-14=,, +0-15=,, +0-16=,, +0-17=,, +0-18=,, +0-19=,, +0-2=0-107,,0-164 +0-3=0-109,,0-165 +0-4=,, +0-5=,, +0-6=0-105,,0-130 +0-7=0-50,,0-132 +0-8=0-117,,0-127 +0-9=0-119,, +1-0=0-112,,0-177 +1-1=0-114,,0-179 +1-10=,,0-185 +1-11=,,0-186 +1-12=,, +1-13=,, +1-14=,, +1-15=,, +1-16=,, +1-17=,, +1-18=,, +1-19=,, +1-2=0-108,,0-181 +1-3=0-110,,0-175 +1-4=,,0-180 +1-5=,,0-182 +1-6=0-106,,0-189 +1-7=,,0-160 +1-8=0-118,,0-183 +1-9=0-120,,0-184 + diff --git a/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/parallel_lights_io.dll b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/parallel_lights_io.dll new file mode 100644 index 0000000..e9504da Binary files /dev/null and b/ddr/Minimaid care package/MINIMAID CARE PACKAGE 0.93/STEPMANIA & OITG/STEPMANIA/parallel_lights_io.dll differ diff --git a/ddr/Minimaid care package/TG9Em2j.jpg b/ddr/Minimaid care package/TG9Em2j.jpg new file mode 100644 index 0000000..99927d2 Binary files /dev/null and b/ddr/Minimaid care package/TG9Em2j.jpg differ diff --git a/ddr/Minimaid care package/minimaid led patterns b/ddr/Minimaid care package/minimaid led patterns new file mode 100644 index 0000000..de5d4fe --- /dev/null +++ b/ddr/Minimaid care package/minimaid led patterns @@ -0,0 +1,42 @@ +There are 4 red LEDs plus a blue LED. The blue LED is under control of +the PC software and is generally meaningless from a board operation +point-of-view. The provided stepmania and openitg drivers cause it to +mimic the bass neons. + +The 4 red LEDs give some status about the board operation. They are +numbered from right to left and are identified by the lettering on the +board as D3, D4, D5, and D6, though they're referred to as "LED1", +"LED2", "LED3", and "LED4", respectively. + +LED1 is on for every 250 out of 1000 polls of the USB keyboard emulation +interface. Since this interface is polled 1000 times per second (at all +times by Windows but only while being used under Linux), it should flash +once per second. + +LED2 is similar to LED1 but reflects the "generic" (vendor specific) HID +interface. This is what's generally used by custom input drivers. Note +that most of these drivers disable keyboard event inputs, which will +cause LED1 to stop flashing when they're actually in use. + +Note that LED1 and LED2 will flash at a rate that is dependent on the +actual attained poll rate of the device. This can be used as a visual +indicator of your poll rate. If they're flashing once per second, +you're at 1000Hz. If it's every 2 seconds, you're polling at 500Hz. +While the board asks for 1000Hz, some OSes (the Ubuntu patched Linux +kernels seem the most common example) run somewhat slower, but +everything tested seems to do at least 500Hz, which is still probably +faster than any normal use could require. + +LED3 is on for every 250 of 1000 USB start-of-frame packets received by +the board. The USB specification requires that there be 1000 SOFs every +second. Therefore, this LED should always flash once per second, +regardless of activity on LED1 or LED2, as long as USB is connected and +the OS running. If it's doing something else, suspect a problem with +your OS or USB drivers. + +LED4 is on whenever the board thinks it's receiving a "valid" video +signal and has the video passthrough function enabled. This can be used +to verify that you're actually outputting the kind of video that you +think you are and/or that your DIP switch settings for video modes are +correct. Note that if you have the DIP switches set to "free range", +this LED will always be on as the board considers any signal (even no diff --git a/ddr/Minimaid care package/mmconnectors.jpg b/ddr/Minimaid care package/mmconnectors.jpg new file mode 100644 index 0000000..e73485b Binary files /dev/null and b/ddr/Minimaid care package/mmconnectors.jpg differ diff --git a/ddr/Minimaid care package/vXNevyA.jpg b/ddr/Minimaid care package/vXNevyA.jpg new file mode 100644 index 0000000..f2ff872 Binary files /dev/null and b/ddr/Minimaid care package/vXNevyA.jpg differ diff --git a/ddr/NoCheckLoader/PSX.EXE b/ddr/NoCheckLoader/PSX.EXE new file mode 100644 index 0000000..b6c44f4 Binary files /dev/null and b/ddr/NoCheckLoader/PSX.EXE differ diff --git a/ddr/NoCheckLoader/README.TXT b/ddr/NoCheckLoader/README.TXT new file mode 100644 index 0000000..df7bd69 --- /dev/null +++ b/ddr/NoCheckLoader/README.TXT @@ -0,0 +1,19 @@ +This game loader allows DDR arcade mixes to boot even +if the onboard or pccard data has been modified. It +requires either a universal modboard or legit 700A01 +and works with 2 disc hacks of the following mixes: + +DDR 4thMIX +DDR 4thMIX PLUS +DDR 5thMIX +DDR MAX +DDR MAX2 +DDR EXTREME +DS EuroMIX2 + +Warning: + +Modifying game data and forcing the game to attempt +loading anyway results in undefined behavior and +could potentially damage your hardware. Use at your +own risk. diff --git a/ddr/X3 PNG Extractor/extract-png b/ddr/X3 PNG Extractor/extract-png new file mode 100644 index 0000000..71b0df5 Binary files /dev/null and b/ddr/X3 PNG Extractor/extract-png differ diff --git a/ddr/X3 PNG Extractor/extract-png.c b/ddr/X3 PNG Extractor/extract-png.c new file mode 100644 index 0000000..d55f524 --- /dev/null +++ b/ddr/X3 PNG Extractor/extract-png.c @@ -0,0 +1,113 @@ +/** + * Copyright (c) 2013 Tatsh. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT + * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * To contribute changes, fork this gist: + * https://gist.github.com/Tatsh/5476094 + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) { + if (argc != 2) { + fprintf(stderr, "Usage: %s FILENAME\n", argv[0]); + exit(EXIT_FAILURE); + } + + char png_start[] = {0x89, 'P', 'N', 'G'}; + char png_end[] = {'I', 'E', 'N', 'D', 0xAE, 'B', 0x60, 0x82}; + + int fd = open(argv[1], O_RDONLY); + unsigned char *png_data; + char *i; + struct stat sb; + char *addr; + void *end; + int v, j; + int file_index = 1, size = 0; + char filename[32]; + FILE *f; + + if (fd == -1) { + fprintf(stderr, "Unable to open \"%s\"\n", argv[1]); + exit(EXIT_FAILURE); + } + + if (fstat(fd, &sb) == -1) { + fprintf(stderr, "Unable to stat \"%s\"\n", argv[1]); + exit(EXIT_FAILURE); + } + + addr = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + + if (addr == MAP_FAILED) { + fprintf(stderr, "Unable to mmap \"%s\"\n", argv[1]); + fprintf(stderr, "%s", strerror(errno)); + exit(EXIT_FAILURE); + } + + end = addr + sb.st_size - 1; + + fprintf(stdout, "mmap() for \"%s\": %p\n", argv[1], addr); + fprintf(stdout, "end offset = %p\n", end); + + for (i = addr; (void *)i < end; i++) { + v = *i & 0xff; + + if (v == 0x89 && !strncmp(png_start, i, 4)) { + while (strncmp(png_end, i, 8)) { + size++; + i++; + } + i -= size; + png_data = malloc(size + 8); + memset(png_data, 0, size); + + for (j = 0; j < size + 8; i++, j++) { + png_data[j] = *i & 0xff; + } + + sprintf(filename, "%08d.png", file_index); + fprintf(stdout, "Writing \"%s\"\n", filename); + f = fopen(filename, "wb"); + fwrite(png_data, size + 8, 1, f); // Cheap nmemb usage + fclose(f); + + file_index++; + size = 0; + + free(png_data); + } + } + + munmap(addr, sb.st_size); + exit(EXIT_SUCCESS); +} diff --git a/ddr/X3 PNG Extractor/rip-pngs.sh b/ddr/X3 PNG Extractor/rip-pngs.sh new file mode 100644 index 0000000..05415f8 --- /dev/null +++ b/ddr/X3 PNG Extractor/rip-pngs.sh @@ -0,0 +1,11 @@ +#!/bin/sh +gcc -o extract-png -ggdb -Wall -std=c99 extract-png.c +mkdir pngs +for i in $(find -type f | grep -v extract-png | grep -v .m2v | grep -v ssq); do + dir="$(echo "$i" | cut -b 3- | sed -e 's#/#__#g')" + dir="pngs/${dir%.*}" + mkdir -p "$dir" + ./extract-png "$i" + mv *.png "$dir" + rm -f *.png +done diff --git a/ddr/ddrio-python/README b/ddr/ddrio-python/README new file mode 100644 index 0000000..e7991e6 --- /dev/null +++ b/ddr/ddrio-python/README @@ -0,0 +1,183 @@ + 1.0 VERSION UPDATE! + Do not expect any support from PK for this. + Version changes: + Support? + Download link! + +Yuvijin wrote: + + Not sure whats going on here, + + But whenever I load gamestart-16 with ddrio-python renamed to ddrio.dll it gives me a "Entry point not found" error, and the game refuses to load. + Game loads and works perfectly fine when using the default ddrio.dll. + + Running windows 7 x64 with both usb plugged directly into the machine. Any Ideas? + + + + + +1.0 VERSION UPDATE! + +Do not expect any support from PK for this. + + +Version changes: + +- Fix calls for updated btools +- literally nothing else +- all information in the first post still applies + +Support? + +- Major bugs will get fixed if needed +- that's about it +- I can try to help out as much as possible + +Download link! + +- (site link) http://www.iidxfan.xyz/archive/ddrio-python +- (direct file link) http://www.iidxfan.xyz/archive/ddrio-python/ddrio-python_1.0.zip + + +-------------------------------------------------------------------------------- + + + What is this + So why would you want this? + Important Notes + Configuration Features + Installation Instructions for AC Data + Download + Changelog + +Hi all, +I am going through a really hard time and need to sell some stuff to fund a litany of things -- including a legal defense. I have several boards I will be selling in the near future that can run everything you read here. I just want to complete development so buyers have everything they need. In the mean time, I am posting this here for public testing. + +What is this + +I've recently made some interfaces into Stepmania 5 and into official ac data for p2io and p3io boards through libusb. Stepmania 5 will get its own thread when it is fully finished. + +So why would you want this? + +You can use an official p2io or p3io with Stepmania 5 after installing a libusb interface. So not only can you run this in Windows in tandem with official data, you can use it on Linux as well. The big advantage here is polling control and not having to rewire anything. + +The use case for official ac data is a little ambiguous though. In addition to using a p2io with ac data, this allows you to use either board on a system newer than Windows XP in 32 or 64 bits. When an official motherboard eventually dies, you'll now have a way to actually use these boards on modern hardware and operating systems. You can also use this to boot HD mode on your official kit without an HDXB device. + +Important Notes + +There are 2 variants of libusb0. There's the vanilla one and libusb-k. Libusb-k is objectively better for Windows (if you can use it) because it uses the winusb backend. HOWEVER I have uncovered a bug with at least the p2io and winusb on Windows 10. Some devices with Windows 10 won't even enumerate the device at all no matter the driver used. For example, the Dell Venue Pro tablet will not enumerate at all with it. This has to do with the USB chipset drivers and the windows 10 USB subsystem. + +Unfortunately, the answer here is, change the USB drivers, get another motherboard or USB expansion card, or don't use Windows 10. If the device DOES enumerate, you can use vanilla libusb0 on Windows 10 without issue. + +I've had no issues, even with the Dell Venue Pro tablet using Windows 7 with either driver or Linux. + +Configuration Features + +BOTH solutions can be configured with several options to override. +It can utilize the extio either through a com port (by default COM1) or the virtual interface (VCOM1) on the p2io. + +It can utilize either a COM4 through the virtual interface (VCOM4) or directly accessing the com port of your choosing (be default COM4). + +On the AC data front only: +I also handle mapping HD lights to SD cabinets however the start buttons do not work in this mode because the HDXB device is what controls them. + +You can create a sample config file, its SUPER rudimentary parsing, it must look like this, in this order. + +On a dragon the defaults are: + + + HDXB_PORT=VCOM4 + HDXB_DEVICE=3 + EXTIO_PORT=COM1 + MAP_P3IO_HD_TO_SD=0 + + + +On a chimera the defaults are: + + + HDXB_PORT=COM4 + HDXB_DEVICE=3 + EXTIO_PORT=COM1 + MAP_P3IO_HD_TO_SD=0 + + + +On a python 2 IO the defaults are: + + + HDXB_PORT=VCOM2 + HDXB_DEVICE=3 + EXTIO_PORT=VCOM1 + MAP_P3IO_HD_TO_SD=0 + + + +HDXB stuff is NOT supported in bemanitools and as such functionality is stubbed out. The HDXB settings do not matter and do nothing but are a placeholder for later. + +Note the setting map hd to sd, when set to 1, will map hd spotlights to sd marquee lamps. If you set this option and it operates in SD mode with this setting set, it will do nothing and switch over only when it detects HD mode. On a p2io the mode is always assumed to be an SD cabinet and this setting will do nothing. + +Note the EXTIO setting. There is a virtual com port, similar to VCOM4, on the p2io. You can use it by setting the virtual comport name there or use a regular com port by prefixing it without the V. Keep in mind windows likes all caps in a comport name. + +Installation Instructions for AC Data + +(Shamelessly stolen from Naryu) +1. Use Zadig to install WinUSB drivers for the new device. If you have konami drivers it will show up as DDRX special or something. If you don't it may show up as unknown device. This varies based on OS. + + Open up the program and allow Administrative access + Options -> List all Devices + Click the proper device from the list + Select libusb or libusb-k + Click the “Replace Driver†button + Check this link for more documentation: https://github.com/pbatard/libwdi/wiki/Zadig + If you have trouble installing it, later versions of Windows require you run the system in “Test Modeâ€. See this link for togging test mode. https://www.linkedin.com/pulse/enable-test-mode-windows-10-ajibola-okubanjo + + +2. Copy both “ddrio-python.dll†and “libusb0.dll†into your game directory +3. Backup the original “ddrio.dll†to a safe location +4. Rename “ddrio-python.dll†to “ddrio.dll†+5. OPTIONAL: Create a configuration file with overrides defined in the same folder as "ddrio.dll" +6. Start the game in SD or HD mode. + +Download + +(The MSVC2013 run-time is statically linked so it can run on konami xp if you want it to) + +v0.4 - Current Stable +v0.3 +v0.2 +v0.1 + +Changelog + +V0.4 wrote: + + + Fix typo in test/coin bitmask + + +V0.3 wrote: + + + Add hd neon test case + Unswizzel IO commands + + +V0.2 wrote: + + + Fix P2IO watchdog and always getting hd lights + + +V0.1 wrote: + + + Initial Release + + + + +---------------------------------------------------------------------------- + + diff --git a/ddr/ddrio-python/ddrio-1_0-python.dll b/ddr/ddrio-python/ddrio-1_0-python.dll new file mode 100644 index 0000000..5117570 Binary files /dev/null and b/ddr/ddrio-python/ddrio-1_0-python.dll differ diff --git a/ddr/ddrio-python/ddrio-python_0.4.zip b/ddr/ddrio-python/ddrio-python_0.4.zip new file mode 100644 index 0000000..9b12f90 Binary files /dev/null and b/ddr/ddrio-python/ddrio-python_0.4.zip differ diff --git a/ddr/ddrio-python/ddrio-python_1.0.zip b/ddr/ddrio-python/ddrio-python_1.0.zip new file mode 100644 index 0000000..c884942 Binary files /dev/null and b/ddr/ddrio-python/ddrio-python_1.0.zip differ diff --git a/iidx/2dxrender-master/.gitignore b/iidx/2dxrender-master/.gitignore new file mode 100755 index 0000000..3e759b7 --- /dev/null +++ b/iidx/2dxrender-master/.gitignore @@ -0,0 +1,330 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ diff --git a/iidx/2dxrender-master/2dxrender/2dxrender.csproj b/iidx/2dxrender-master/2dxrender/2dxrender.csproj new file mode 100755 index 0000000..0a1d4ca --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/2dxrender.csproj @@ -0,0 +1,92 @@ + + + + + Debug + AnyCPU + {5D8B37DE-7DA9-4380-B2E2-098AB91CC875} + Exe + _2dxrender + 2dxrender + v4.0 + 512 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\CommandLineParser.2.3.0\lib\net45\CommandLine.dll + + + ..\packages\NAudio.1.8.4\lib\net35\NAudio.dll + + + ..\packages\NAudio.Lame.1.0.7\lib\net20\NAudio.Lame.dll + + + ..\packages\NAudio.Wma.1.0.1\lib\net35\NAudio.WindowsMediaFormat.dll + + + packages\Newtonsoft.Json.12.0.1\lib\net40\Newtonsoft.Json.dll + + + + + ..\packages\System.Console.4.0.0\lib\net46\System.Console.dll + True + + + + ..\packages\System.Reflection.TypeExtensions.4.1.0\lib\net46\System.Reflection.TypeExtensions.dll + + + + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + Always + + + + \ No newline at end of file diff --git a/iidx/2dxrender-master/2dxrender/App.config b/iidx/2dxrender-master/2dxrender/App.config new file mode 100755 index 0000000..2c307fa --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/iidx/2dxrender-master/2dxrender/Options.cs b/iidx/2dxrender-master/2dxrender/Options.cs new file mode 100755 index 0000000..6d97a63 --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/Options.cs @@ -0,0 +1,58 @@ +using CommandLine; + +namespace _2dxrender +{ + class Options + { + [Option('i', "input-chart", Required = true, HelpText = "Input .1 chart file")] + public string InputChart { get; set; } + + [Option('s', "input-audio", Required = true, HelpText = "Input .s3p/.2dx audio archive or audio folder")] + public string InputAudio { get; set; } + + [Option('c', "chart", Default = 2, HelpText = "Chart ID to render")] + public int ChartId { get; set; } + + [Option('n', "no-bgm", Default = false, HelpText = "Render without BGM")] + public bool NoBgm { get; set; } + + [Option('r', "volume", Default = 0.85f, HelpText = "Render volume (1.0 = 100%)")] + public float RenderVolume { get; set; } + + [Option('a', "assist-clap", Default = false, HelpText = "Enable assist clap sounds")] + public bool AssistClap { get; set; } + + [Option('p', "assist-clap-sound", Default = "clap.wav", HelpText = "Assist clap sound file")] + public string AssistClapSound { get; set; } + + [Option('k', "volume-clap", Default = 1.25f, HelpText = "Assist clap render volume (1.0 = 100%)")] + public float AssistClapVolume { get; set; } + + [Option('o', "output", Required = true, HelpText = "Output file")] + public string OutputFile { get; set; } + + [Option('f', "output-format", Default = "mp3", HelpText = "Output file format (WAV or MP3)")] + public string OutputFormat { get; set; } + + [Option("id3-album", Default = "", HelpText = "ID3 album tag")] + public string Id3Album { get; set; } + + [Option("id3-album-artist", Default = "", HelpText = "ID3 album artist tag")] + public string Id3AlbumArtist { get; set; } + + [Option("id3-artist", Default = "", HelpText = "ID3 artist tag")] + public string Id3Artist { get; set; } + + [Option("id3-title", Default = "", HelpText = "ID3 title tag")] + public string Id3Title { get; set; } + + [Option("id3-year", Default = "", HelpText = "ID3 year tag")] + public string Id3Year{ get; set; } + + [Option("id3-genre", Default = "", HelpText = "ID3 genre tag")] + public string Id3Genre { get; set; } + + [Option("id3-track", Default = "", HelpText = "ID3 track tag")] + public string Id3Track { get; set; } + } +} diff --git a/iidx/2dxrender-master/2dxrender/Program.cs b/iidx/2dxrender-master/2dxrender/Program.cs new file mode 100755 index 0000000..947f0e3 --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/Program.cs @@ -0,0 +1,580 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using NAudio; +using NAudio.WindowsMediaFormat; +using NAudio.Wave; +using NAudio.Wave.SampleProviders; +using NAudio.Lame; +using System.IO; + +using CommandLine; + +using Newtonsoft.Json; + +namespace _2dxrender +{ + class Program + { + enum ChartCommands + { + KeyP1 = 0, + KeyP2 = 1, + LoadSampleP1 = 2, + LoadSampleP2 = 3, + End = 6, + BgmNote = 7, + } + + class KeyPosition + { + public int offset; + public int keysoundId; + public int key; + public int player; + + public KeyPosition(int offset, int keysoundId, int key, int player) + { + this.offset = offset; + this.keysoundId = keysoundId; + this.key = key; + this.player = player; + } + } + + static Options options = new Options(); + static int assistClapIdx = -1; + + private static string GetTempFileName() + { + return Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); + } + + static List getAudioSamplesFromS3p(BinaryReader reader) + { + var samples = new List(); + + var fileCount = reader.ReadUInt32(); + + var tempPath = GetTempFileName(); + + if (!Directory.Exists(tempPath)) + { + Directory.CreateDirectory(tempPath); + } + + for (var i = 0; i < fileCount; i++) + { + reader.BaseStream.Seek(i * 8 + 8, SeekOrigin.Begin); + + var offset = reader.ReadUInt32(); + var size = reader.ReadInt32(); + + reader.BaseStream.Seek(offset, SeekOrigin.Begin); + + if (Encoding.ASCII.GetString(reader.ReadBytes(4)) != "S3V0") + { + Console.WriteLine("Not a valid S3V audio file"); + Environment.Exit(-1); + } + + var dataOffset = reader.ReadUInt32(); + var dataSize = reader.ReadInt32(); + + reader.BaseStream.Seek(offset + dataOffset, SeekOrigin.Begin); + + var audioBytes = reader.ReadBytes(dataSize); + var tempFilename = Path.Combine(tempPath, String.Format("{0:d4}.wma", i + 1)); + + samples.Add(tempFilename); + + File.WriteAllBytes(tempFilename, audioBytes); + } + + return samples; + } + + static List getAudioSamplesFrom2dx(BinaryReader reader) + { + var samples = new List(); + + reader.BaseStream.Seek(0x14, SeekOrigin.Begin); + + var fileCount = reader.ReadUInt32(); + + reader.BaseStream.Seek(0x48, SeekOrigin.Begin); + + var tempPath = Path.GetTempPath(); + for (var i = 0; i < fileCount; i++) + { + reader.BaseStream.Seek(0x48 + i * 4, SeekOrigin.Begin); + + var offset = reader.ReadUInt32(); + + reader.BaseStream.Seek(offset, SeekOrigin.Begin); + + if (Encoding.ASCII.GetString(reader.ReadBytes(4)) != "2DX9") + { + Console.WriteLine("Not a valid 2DX audio file @ {0:x8}", reader.BaseStream.Position - 4); + Environment.Exit(-1); + } + + var dataOffset = reader.ReadUInt32(); + var dataSize = reader.ReadInt32(); + + reader.BaseStream.Seek(offset + dataOffset, SeekOrigin.Begin); + + var audioBytes = reader.ReadBytes(dataSize); + var tempFilename = Path.Combine(tempPath, String.Format("{0:d4}.wav", i + 1)); + + samples.Add(tempFilename); + + File.WriteAllBytes(tempFilename, audioBytes); + } + + return samples; + } + + static List getAudioSamples(string inputFilename) + { + var samples = new List(); + + FileAttributes attr = File.GetAttributes(inputFilename); + + if ((attr & FileAttributes.Directory) == FileAttributes.Directory) + { + samples = Directory.GetFiles(inputFilename).OrderBy(x => x).ToList(); + } + else + { + using (var reader = new BinaryReader(File.Open(inputFilename, FileMode.Open))) + { + if (Encoding.ASCII.GetString(reader.ReadBytes(4)) == "S3P0") + { + samples = getAudioSamplesFromS3p(reader); + } + else + { + try + { + // Try parsing as .2dx + samples = getAudioSamplesFrom2dx(reader); + } + catch + { + Console.WriteLine("Couldn't find parser for input audio file: {0}", inputFilename); + } + } + } + } + + if (options.AssistClap) + { + if (File.Exists(options.AssistClapSound)) + { + var assistClapTempFilename = GetTempFileName(); + assistClapIdx = samples.Count; + samples.Add(assistClapTempFilename); + File.Copy(options.AssistClapSound, assistClapTempFilename); + } + else + { + Console.WriteLine("Couldn't find clap file \"{0}\", skipping...", options.AssistClapSound); + options.AssistClap = false; + } + } + + return samples; + } + + private static int findSampleById(List samples, int value, string prefix) + { + for (int idx = 0; idx < samples.Count; idx++) + { + var sample = samples[idx]; + + if (sample == Path.Combine(prefix, String.Format("{0:d4}.wav", value)) || + sample == Path.Combine(prefix, String.Format("{0:d4}.wma", value))) + { + return idx; + } + } + + return -1; + } + + private static List parseJsonChartData(string filename, List samples, int chartId) + { + var sounds = new List(); + var loaded_samples = new List>(){ + new Dictionary(), + new Dictionary() + }; + + var chartIdLookup = new Dictionary() + { + { 0, "input_sp_normal" }, + { 1, "input_sp_hyper" }, + { 2, "input_sp_another" }, + { 3, "input_sp_beginner" }, + { 4, "input_sp_black" }, + { 6, "input_dp_normal" }, + { 7, "input_dp_hyper" }, + { 8, "input_dp_another" }, + { 9, "input_dp_beginner" }, + { 10, "input_dp_black" }, + }; + + var json = File.ReadAllText(filename); + dynamic _chartData = JsonConvert.DeserializeObject(json); + + int chartIdx = -1; + foreach (var chart in _chartData["charts"]) + { + chartIdx++; + + if (chart["chart_type"] == chartIdLookup[chartId]) + { + break; + } + } + + if (chartIdx == -1) + { + Console.WriteLine("Couldn't find selected chart: {0}", chartId); + Environment.Exit(1); + } + + dynamic chartData = _chartData["charts"][chartIdx]; + + var soundFolder = Path.GetDirectoryName(samples[0]); + + bool isFloat = false; + var dicts = chartData["events"].ToObject>(); + var keys = new List(); + foreach (var dict in dicts) + { + keys.Add(dict.Key); + } + + foreach (var key in keys) + { + string k = key.ToString(); + + if (isFloat) + { + k = String.Format("{0:f}", key); + } + var _ev = chartData["events"][k]; + for (int eventidx = 0; eventidx < _ev.Count; eventidx++) + { + var ev = _ev[eventidx]; + + int offset = ev["offset"]; + + if ((ev["event"] == "note_p1" || ev["event"] == "note_p2") && offset != 0) + { + var playerId = ev["event"] == "note_p1" ? 0 : 1; + int value = ev["value"]; + short param = ev["slot"]; + + if (value != 0 && param == 7) + { + sounds.Add(new KeyPosition(offset + value, loaded_samples[playerId][param], param, playerId)); + + if (options.AssistClap) + { + sounds.Add(new KeyPosition(offset + value, assistClapIdx, -1, 0)); + } + } + + if (options.AssistClap && param == 7) + { + sounds.Add(new KeyPosition(offset, assistClapIdx, -1, 0)); + } + + sounds.Add(new KeyPosition(offset, loaded_samples[playerId][param], param, playerId)); + } + else if (ev["event"] == "sample_p1" || ev["event"] == "sample_p2") + { + var playerId = ev["event"] == "sample_p1" ? 0 : 1; + int value = ev["sound_id"]; + short param = ev["slot"]; + + loaded_samples[playerId][param] = findSampleById(samples, value, soundFolder); + + // To simulate the engine loading a new sample before it's played, loop through and update everything + // for that specific key from the current offset onward + for (int i = 0; i < sounds.Count; i++) + { + if (sounds[i].player == playerId && sounds[i].key == param && sounds[i].offset >= offset) + { + sounds[i].keysoundId = loaded_samples[playerId][param]; + } + } + } + else if (ev["event"] == "auto") + { + int value = ev["sound_id"]; + int sample_idx = findSampleById(samples, value, soundFolder); + + if (sample_idx == 0 && options.NoBgm) + { + continue; + } + + sounds.Add(new KeyPosition(offset, sample_idx, -1, 0)); + } + else if (ev["event"] == "end") + { + if (ev["player"] == null) + { + sounds.Add(new KeyPosition(offset, -1, -1, 0)); + sounds.Add(new KeyPosition(offset, -1, -1, 1)); + } + else + { + int value = ev["player"]; + sounds.Add(new KeyPosition(offset, -1, -1, value)); + } + } + } + } + + return sounds; + } + + private static List parseChartData(BinaryReader reader, List samples) + { + var sounds = new List(); + var loaded_samples = new List>(){ + new Dictionary(), + new Dictionary() + }; + + while (true) + { + var offset = reader.ReadInt32(); + var command = reader.ReadByte(); + var param = reader.ReadByte(); + var value = reader.ReadInt16(); + + if (offset == 0x7fffffff) + { + break; + } + + switch (command) + { + case (byte)ChartCommands.KeyP1: + case (byte)ChartCommands.KeyP2: + { + var playerId = command - (byte)ChartCommands.KeyP1; + + if (value != 0 && param == 7) + { + sounds.Add(new KeyPosition(offset + value, loaded_samples[playerId][param], param, playerId)); + + if (options.AssistClap) + { + sounds.Add(new KeyPosition(offset + value, assistClapIdx, -1, 0)); + } + } + + if (options.AssistClap && param == 7) + { + sounds.Add(new KeyPosition(offset, assistClapIdx, -1, 0)); + } + + sounds.Add(new KeyPosition(offset, loaded_samples[playerId][param], param, playerId)); + } + break; + + case (byte)ChartCommands.LoadSampleP1: + case (byte)ChartCommands.LoadSampleP2: + { + var playerId = command - (byte)ChartCommands.LoadSampleP1; + + loaded_samples[playerId][param] = value - 1; + + // To simulate the engine loading a new sample before it's played, loop through and update everything + // for that specific key from the current offset onward + for (int i = 0; i < sounds.Count; i++) + { + if (sounds[i].player == playerId && sounds[i].key == param && sounds[i].offset >= offset) + { + sounds[i].keysoundId = loaded_samples[playerId][param]; + } + } + } + break; + + case (byte)ChartCommands.BgmNote: + { + if (value - 1 == 0 && options.NoBgm) + { + continue; + } + + sounds.Add(new KeyPosition(offset, value - 1, -1, 0)); + } + break; + + case (byte)ChartCommands.End: + { + sounds.Add(new KeyPosition(offset, -1, -1, param)); + } + break; + } + } + + return sounds; + } + + static void parseChart(string filename, int chartId, string outputFilename, List samples) + { + if (chartId < 0 || chartId > 0x60 / 8) + { + Console.WriteLine("Invalid chart ID"); + goto cleanup; + } + + if (filename.EndsWith(".json")) + { + var sounds = parseJsonChartData(filename, samples, chartId); + mixFinalAudio(outputFilename, sounds, samples); + return; + } + + using (BinaryReader reader = new BinaryReader(File.Open(filename, FileMode.Open))) + { + reader.BaseStream.Seek(chartId * 8, SeekOrigin.Begin); + + var offset = reader.ReadUInt32(); + var filesize = reader.ReadInt32(); + + reader.BaseStream.Seek(offset, SeekOrigin.Begin); + + var sounds = parseChartData(reader, samples); + mixFinalAudio(outputFilename, sounds, samples); + } + + cleanup: + foreach (var sampleFilename in samples) + { + File.Delete(sampleFilename); + } + } + + private static void mixFinalAudio(string outputFilename, List sounds, List samples) + { + var mixedSamples = new List(); + + // Find P1 and P2 ends + int[] playerEnd = { -1, -1 }; + foreach (var sound in sounds) + { + if (sound.keysoundId == -1 && sound.key == -1) + { + playerEnd[sound.player] = sound.offset; + } + } + + foreach (var sound in sounds) + { + if (sound.keysoundId == -1) + continue; + + var audioFile = new AudioFileReader(samples[sound.keysoundId]); + var volSample = new VolumeSampleProvider(audioFile); + + if (volSample.WaveFormat.Channels == 1) + { + volSample = new VolumeSampleProvider(volSample.ToStereo()); + } + + if (volSample.WaveFormat.SampleRate != 44100) + { + // Causes pop sound at end of audio + volSample = new VolumeSampleProvider( + new WaveToSampleProvider( + new MediaFoundationResampler( + new SampleToWaveProvider(volSample), + WaveFormat.CreateIeeeFloatWaveFormat(44100, 2) + ) { + ResamplerQuality = 60 + } + ) + ); + } + + if (options.AssistClap && sound.keysoundId == assistClapIdx) + { + volSample.Volume = options.AssistClapVolume; + } + else + { + volSample.Volume = options.RenderVolume; + } + + var sample = new OffsetSampleProvider(volSample); + sample.DelayBy = TimeSpan.FromMilliseconds(sound.offset); + + if (sound.player >= 0 && sound.player <= 1 && playerEnd[sound.player] != -1 && sound.offset + audioFile.TotalTime.TotalMilliseconds > playerEnd[sound.player]) + { + sample.Take = TimeSpan.FromMilliseconds(playerEnd[sound.player] - sound.offset); + } + + mixedSamples.Add(sample); + } + + var mixers = new List(); + for (int i = 0; i < mixedSamples.Count; i += 128) + { + var arr = mixedSamples.Skip(i).Take(128).ToArray(); + mixers.Add(new MixingSampleProvider(arr)); + } + + var mixer = new MixingSampleProvider(mixers); + + if (options.OutputFormat.ToLower() == "wav") + { + WaveFileWriter.CreateWaveFile16(outputFilename, mixer); + } + else if (options.OutputFormat.ToLower() == "mp3") + { + var tempFilename = GetTempFileName(); + + WaveFileWriter.CreateWaveFile16(tempFilename, mixer); + + ID3TagData id3 = new ID3TagData(); + id3.Album = options.Id3Album; + id3.AlbumArtist = options.Id3AlbumArtist; + id3.Title = options.Id3Title; + id3.Artist = options.Id3Artist; + id3.Genre = options.Id3Genre; + id3.Track = options.Id3Track; + id3.Year = options.Id3Year; + + using (var reader = new AudioFileReader(tempFilename)) + using (var writer = new LameMP3FileWriter(outputFilename, reader.WaveFormat, 320, id3)) + { + reader.CopyTo(writer); + } + + File.Delete(tempFilename); + } + } + + static void Main(string[] args) + { + Parser.Default.ParseArguments(args).WithParsed(opts => options = opts).WithNotParsed(errors => Environment.Exit(1)); + + var samples = getAudioSamples(options.InputAudio); + parseChart(options.InputChart, options.ChartId, options.OutputFile, samples); + } + } +} diff --git a/iidx/2dxrender-master/2dxrender/Properties/AssemblyInfo.cs b/iidx/2dxrender-master/2dxrender/Properties/AssemblyInfo.cs new file mode 100755 index 0000000..fe6f322 --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("2dxrender")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("2dxrender")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5d8b37de-7da9-4380-b2e2-098ab91cc875")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/iidx/2dxrender-master/2dxrender/clap.wav b/iidx/2dxrender-master/2dxrender/clap.wav new file mode 100755 index 0000000..c5c3cbe Binary files /dev/null and b/iidx/2dxrender-master/2dxrender/clap.wav differ diff --git a/iidx/2dxrender-master/2dxrender/libmp3lame.32.dll b/iidx/2dxrender-master/2dxrender/libmp3lame.32.dll new file mode 100755 index 0000000..719126b Binary files /dev/null and b/iidx/2dxrender-master/2dxrender/libmp3lame.32.dll differ diff --git a/iidx/2dxrender-master/2dxrender/libmp3lame.64.dll b/iidx/2dxrender-master/2dxrender/libmp3lame.64.dll new file mode 100755 index 0000000..20f23ed Binary files /dev/null and b/iidx/2dxrender-master/2dxrender/libmp3lame.64.dll differ diff --git a/iidx/2dxrender-master/2dxrender/packages.config b/iidx/2dxrender-master/2dxrender/packages.config new file mode 100755 index 0000000..18c80bb --- /dev/null +++ b/iidx/2dxrender-master/2dxrender/packages.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iidx/2dxrender-master/README.md b/iidx/2dxrender-master/README.md new file mode 100755 index 0000000..f60e9e6 --- /dev/null +++ b/iidx/2dxrender-master/README.md @@ -0,0 +1,100 @@ +# 2dxrender +Render IIDX charts into audio files + +## 2dxrender.exe +``` +cmd> 2dxrender.exe --help +2dxrender 1.0.0.0 +Copyright c 2018 + + -i, --input-chart Required. Input .1 chart file + + -s, --input-audio Required. Input .s3p/.2dx audio archive or audio folder + + -c, --chart (Default: 2) Chart ID to render + + -n, --no-bgm (Default: false) Render without BGM + + -r, --volume (Default: 0.85) Render volume (1.0 = 100%) + + -a, --assist-clap (Default: false) Enable assist clap sounds + + -p, --assist-clap-sound (Default: clap.wav) Assist clap sound file + + -k, --volume-clap (Default: 1.25) Assist clap render volume (1.0 = 100%) + + -o, --output Required. Output file + + -f, --output-format (Default: mp3) Output file format (WAV or MP3) + + --id3-album-art (Default: ) ID3 album art + + --id3-album (Default: ) ID3 album tag + + --id3-album-artist (Default: ) ID3 album artist tag + + --id3-artist (Default: ) ID3 artist tag + + --id3-title (Default: ) ID3 title tag + + --id3-year (Default: ) ID3 year tag + + --id3-genre (Default: ) ID3 genre tag + + --id3-track (Default: ) ID3 track tag + + --help Display this help screen. + + --version Display version information. + +``` + +- Currently only .1 charts from `beatmania IIDX 25 CANNON BALLERS` are supported +- You can specify a .2dx, .s3p, or folder for the input keysounds +- MP3 is restricted to CBR 320 at the moment due to a bug with NAudio.Lame +- Requires .NET 4.0 + +## Mass converter (render_songs.py) +``` +cmd> python3 render_songs.py --help +usage: render_songs.py [-h] --songs-folder SONGS_FOLDER + [--output-folder OUTPUT_FOLDER] + [--music-database-file MUSIC_DATABASE_FILE] + [--charts CHARTS [CHARTS ...]] [--id3-album ID3_ALBUM] + [--id3-album-artist ID3_ALBUM_ARTIST] + [--id3-year ID3_YEAR] [--id3-album-art ID3_ALBUM_ART] + [--output-format OUTPUT_FORMAT] + +optional arguments: + -h, --help show this help message and exit + --songs-folder SONGS_FOLDER + Input songs folder + --output-folder OUTPUT_FOLDER + Output folder + --music-database-file MUSIC_DATABASE_FILE + Input music database file + --charts CHARTS [CHARTS ...] + Charts to render for each song + --id3-album ID3_ALBUM + ID3 album + --id3-album-artist ID3_ALBUM_ARTIST + ID3 album artist + --id3-year ID3_YEAR ID3 year + --id3-album-art ID3_ALBUM_ART + ID3 album art + --output-format OUTPUT_FORMAT + Output format: WAV or MP3 +``` + +- Automatically tag things if you point it at your music_data.bin file using `--music-database-file` +- Requires at least Python 3.4 (tested with 3.6, but 3.4 should be fine. Lower may or may not work) +- Valid charts IDs: +``` +0: "SP NORMAL", +1: "SP HYPER", +2: "SP ANOTHER", +3: "SP BEGINNER", +6: "DP NORMAL", +7: "DP HYPER", +8: "DP ANOTHER", +``` diff --git a/iidx/2dxrender-master/musicdata_tool.py b/iidx/2dxrender-master/musicdata_tool.py new file mode 100755 index 0000000..77ba457 --- /dev/null +++ b/iidx/2dxrender-master/musicdata_tool.py @@ -0,0 +1,301 @@ +import argparse +import ctypes +import json +import sys +import struct + + +def read_string(infile, length, encoding='shift-jis'): + return infile.read(length).decode(encoding).strip('\0') + +def write_string(outfile, input, length, fill='\0', encoding='shift-jis'): + string_data = input[:length].encode(encoding) + outfile.write(string_data) + + if len(input) < length: + outfile.write("".join([fill] * (length - len(string_data))).encode(encoding)) + +# Cannonballers reader/writer +def reader_19(infile, song_count): + song_entries = [] + + for i in range(song_count): + title = read_string(infile, 0x40) + title_ascii = read_string(infile, 0x40) + genre = read_string(infile, 0x40) + artist = read_string(infile, 0x40) + + texture_title, texture_artist, texture_genre, texture_load, texture_list = struct.unpack("= CUR_STYLE_ENTRIES: + outfile.write(struct.pack(" +-P -N +-S + +WAview +C:\Program Files\Winamp\Plugins\WAview.exe +-Lbml +-N +-S + +nBMplay +nbmplay.exe +-P -N0 +-P -N +-S + +BMEV +BMEV.exe +-P -N0 +-P -N +-S + +BMS Viewer +bmview.exe +-S -P -N0 +-S -P -N +-S diff --git a/iidx/BMS Sequence Editor/lang/english.ini b/iidx/BMS Sequence Editor/lang/english.ini new file mode 100644 index 0000000..2d4a963 --- /dev/null +++ b/iidx/BMS Sequence Editor/lang/english.ini @@ -0,0 +1,249 @@ +[Main] +Key="BMSE" +Language="English" +Font="MS Shell Dlg" +FixedFont="Courier New" + +[Menu] + +FILE="&File" +FILE_NEW="&New" +FILE_OPEN="&Open" +FILE_SAVE="&Save" +FILE_SAVE_AS="Save &As" +FILE_OPEN_DIRECTORY="Open &Directory" +FILE_CONVERT_WIZARD="Show &Conversion Wizard" +FILE_EXIT="&Exit" + +EDIT="&Edit" +EDIT_UNDO="&Undo" +EDIT_REDO="&Redo" +EDIT_CUT="Cu&t" +EDIT_COPY="&Copy" +EDIT_PASTE="&Paste" +EDIT_DELETE="&Delete" +EDIT_SELECT_ALL="&Select All" +EDIT_FIND="&Find/Delete/Replace" +EDIT_MODE_EDIT="Edit &Mode" +EDIT_MODE_WRITE="Write &Mode" +EDIT_MODE_DELETE="Delete &Mode" + +VIEW="&View" +VIEW_TOOL_BAR="&Tool Bar" +VIEW_DIRECT_INPUT="&Direct Input" +VIEW_STATUS_BAR="&Status Bar" + +OPTIONS="&Options" +OPTIONS_IGNORE_ACTIVE="&Control Unavailable When Active" +OPTIONS_FILE_NAME_ONLY="Display &File Name Only" +OPTIONS_VERTICAL="&Vertical Grid Info" +OPTIONS_LANE_BG="&Background Color" +OPTIONS_SINGLE_SELECT_PREVIEW="&Preview Upon Object Selection" +OPTIONS_OBJECT_FILE_NAME="Show &Objects' File Names" +OPTIONS_MOVE_ON_GRID="Restrict Objects' &Movement Onto Grid" +OPTIONS_USE_OLD_FORMAT="&Use Old Format [01-FF]" +OPTIONS_RIGHT_CLICK_DELETE="&Right Click To Delete Objects" + +TOOLS="&Tools" +TOOLS_PLAY_FIRST="Play &All" +TOOLS_PLAY="&Play From Current Position" +TOOLS_STOP="&Stop" +TOOLS_SETTING="&Viewer Settings" + +HELP="&Help" +HELP_OPEN="Help" +HELP_WEB="Open &Website" +HELP_ABOUT="&About BMSE" + +CONTEXT_MEASURE_INSERT="&Insert Measure" +CONTEXT_MEASURE_DELETE="Delete &Measure" + +CONTEXT_LIST_LOAD="&Load" +CONTEXT_LIST_DELETE="&Delete" +CONTEXT_LIST_RENAME="&Rename" + +[ToolBar] + +TOOLTIP_NEW="New" +TOOLTIP_OPEN="Open" +TOOLTIP_SAVE="Save" +TOOLTIP_SAVE_AS="Save As" +TOOLTIP_MODE_EDIT="Edit Mode" +TOOLTIP_MODE_WRITE="Write Mode" +TOOLTIP_MODE_DELETE="Delete Mode" +TOOLTIP_PLAY_FIRST="Play All" +TOOLTIP_PLAY="Play From Current Position" +TOOLTIP_STOP="Stop" + +GRID_MAIN="Grid" +GRID_SUB="Sub" + +DISP_HEIGHT="Height" +DISP_WIDTH="Width" + +[Header] + +TAB_BASIC="Basic" +TAB_EXPAND="Expand" +TAB_CONFIG="Config" + +BASIC_PLAYER="#PLAYER" +BASIC_PLAYER_1P="1 Player" +BASIC_PLAYER_2P="2 Player" +BASIC_PLAYER_DP="Double Play" +BASIC_PLAYER_PMS="9 Keys (PMS)" +BASIC_PLAYER_OCT="13 Keys (oct/fp)" +BASIC_GENRE="#GENRE" +BASIC_TITLE="#TITLE" +BASIC_ARTIST="#ARTIST" +BASIC_PLAYLEVEL="#PLAYLEVEL" +BASIC_BPM="#BPM" + +EXPAND_RANK="#RANK" +EXPAND_RANK_EASY="Easy" +EXPAND_RANK_NORMAL="Normal" +EXPAND_RANK_HARD="Hard" +EXPAND_RANK_VERY_HARD="Very Hard" +EXPAND_TOTAL="#TOTAL" +EXPAND_VOLWAV="#VOLWAV" +EXPAND_STAGEFILE="#STAGEFILE" +EXPAND_BMP_MISS="#BMP00" +EXPAND_SET_FILE="..." + +CONFIG_KEY_FRAME="Key Frame" +CONFIG_KEY_HALF="Half" +CONFIG_KEY_SEPARATE="Separate" +CONFIG_KEY_POSITION="Key Position" +CONFIG_KEY_5KEYS="5Keys/10Keys" +CONFIG_KEY_7KEYS="7Keys/14Keys" +CONFIG_SCRATCH_1P="Scratch 1P" +CONFIG_SCRATCH_2P="2P" +CONFIG_SCRATCH_LEFT="L" +CONFIG_SCRATCH_RIGHT="R" + +[Material] + +TAB_WAV="#WAV" +TAB_BMP="#BMP" +TAB_BGA="#BGA" +TAB_BEAT="Beat" +TAB_EXPAND="Expand" + +MATERIAL_STOP="Stop" +MATERIAL_DELETE="Del" +MATERIAL_SET_FILE="..." +MATERIAL_INPUT="Input" +MATERIAL_PREVIEW="Preview" +MATERIAL_SELECT_ALL="All" +MATERIAL_EXCHANGE_UP="<" +MATERIAL_EXCHANGE_DOWN=">" + +[StatusBar] + +MODE_EDIT="Edit Mode" +MODE_WRITE="Write Mode" +MODE_DELETE="Delete Mode" +MEASURE="Measure" +CH_01="BGM" +CH_04="BGA" +CH_06="BGA Poor" +CH_07="BGA Layer" +CH_08="BPM Change" +CH_09="Stop Sequence" +CH_KEY_1P="1P Key" +CH_KEY_2P="2P Key" +CH_SCRATCH_1P="1P Scratch" +CH_SCRATCH_2P="2P Scratch" +CH_INVISIBLE="(Invisible)" +CH_LONGNOTE="(LongNote)" + +[Message] + +ERROR_MESSAGE_01="Unexpected error has occured. Program will now shut down.\nPlease Refer to "error.txt" for the details." +ERROR_MESSAGE_02="Temporary file will be saved to..." +ERROR_FILE_NOT_FOUND="File is not found." +ERROR_LOAD_CANCEL="Loading will be aborted." +ERROR_SAVE_ERROR="Error occured while saving." +ERROR_SAVE_CANCEL="Saving will be aborted." +ERROR_OVERFLOW_LARGE="Error:\nValue is too large." +ERROR_OVERFLOW_SMALL="Error:\nValue is too small." +ERROR_OVERFLOW_BPM="You have used more than 1295 BPM change command.\nNumber of commands should be less than 1295." +ERROR_OVERFLOW_STOP="You have used more than 1295 STOP command.\nNumber of commands should be less than 1295." +ERROR_APP_NOT_FOUND=" is not found." + +INFO_FILE_CHANGED="Do you want to save changes?" +INFO_INI_CHANGED="ini format has changed.\n(All setting will be reset)" +INFO_ALIGN_LIST="Do you want the filelist to be rewrited into the old format [01 - FF]?\n(Attention: Some programs are compatible only with old format files.)" +INFO_DELETE_FILE="They have been deleted:" + +[Input] + +TITLE="Input Form" + +INPUT_BPM="Enter the BPM you wish to change to.\n(Decimal number can be used. Enter 0 to cancel)" +INPUT_STOP="Enter the length of stoppage.\n1 corresponds to 1/192 of the measure.\n(Enter value under 0 to cancel)" +INPUT_RENAME="Enter the new filename." +INPUT_SIZE="Enter the amount of magnification.\n(16.00 is the maximum; enter value under 0 to cancel)" + +[Find] + +TITLE="Find/Delete/Replace" + +FRAME_SEARCH="Range" +FRAME_MEASURE="Range of measure" +FRAME_OBJ_NUM="Range of object number" +FRAME_GRID="Lane" +FRAME_PROCESS="Method" + +OPT_OBJ_ALL="All object" +OPT_OBJ_SELECT="Selected object" +OPT_PROCESS_SELECT="Select" +OPT_PROCESS_DELETE="Delete" +OPT_PROCESS_REPLACE="Replace to" + +CMD_INVERT="Invert" +CMD_RESET="Reset" +CMD_SELECT="Select All" +CMD_CLOSE="Close" +CMD_DECIDE="Run" + +LBL_NOTICE="This item does not influence BPM/STOP object" +LBL_DASH="to" + +[Viewer] + +TITLE="Viewer Setting" + +CMD_SET="..." +CMD_ADD="Add" +CMD_DELETE="Delete" +CMD_OK="OK" +CMD_CANCEL="Cancel" + +LBL_APP_NAME="Player name" +LBL_APP_PATH="Path" +LBL_ARG_PLAY_ALL="Argument of "Play All"" +LBL_ARG_PLAY="Argument of "Play"" +LBL_ARG_STOP="Argument of "Stop"" +LBL_ARG_INFO="Syntax reference:\n File name\n Current measure" + +[Convert] + +TITLE="Conversion Wizard" + +CHK_DELETE_LIST="Clear unused definition from a list" + +CHK_DELETE_FILE="Delete unused files in this BMS folder (*)" +LBL_EXTENSION="Search extensions:" +CHK_RECYCLE="Delete without backing-up to the trash bin" + +CHK_ALIGN_LIST="Sort definition list" +CHK_USE_OLD_FORMAT="Use old Format [01 - FF] if possible" +CHK_SORT_BY_NAME="Sorting by filename" + +CHK_CONVERT_FILENAME="Change filename to list number [01 - ZZ] (*)" + +LBL_NOTICE="(*) Cannot undo this command" + +CMD_DECIDE="Run" +CMD_CANCEL="Cancel" diff --git a/iidx/BMS Sequence Editor/lang/japanese.ini b/iidx/BMS Sequence Editor/lang/japanese.ini new file mode 100644 index 0000000..9630442 --- /dev/null +++ b/iidx/BMS Sequence Editor/lang/japanese.ini @@ -0,0 +1,249 @@ +[Main] +Key="BMSE" +Language="Japanese" +Font="MS UI Gothic" +FixedFont="‚l‚r ƒSƒVƒbƒN" + +[Menu] + +FILE="ƒtƒ@ƒCƒ‹(&F)" +FILE_NEW="V‹Kì¬(&N)" +FILE_OPEN="ŠJ‚­(&O)" +FILE_SAVE="ã‘‚«•Û‘¶(&S)" +FILE_SAVE_AS="–¼‘O‚ð•t‚¯‚ĕۑ¶(&A)" +FILE_OPEN_DIRECTORY="•ÒW’†‚̃fƒBƒŒƒNƒgƒŠ‚ðŠJ‚­(&D)" +FILE_CONVERT_WIZARD="•ÏŠ·ƒEƒBƒU[ƒh‚ð•\ަ(&C)" +FILE_EXIT="I—¹(&X)" + +EDIT="•ÒW(&E)" +EDIT_UNDO="Œ³‚É–ß‚·(&U)" +EDIT_REDO="‚â‚è’¼‚µ(&R)" +EDIT_CUT="Ø‚èŽæ‚è(&X)" +EDIT_COPY="ƒRƒs[(&C)" +EDIT_PASTE="“\‚è•t‚¯(&V)" +EDIT_DELETE="íœ(&D)" +EDIT_SELECT_ALL="‚·‚ׂđI‘ð(&S)" +EDIT_FIND="ŒŸõEíœE’uŠ·(&F)" +EDIT_MODE_EDIT="•ÒWƒ‚[ƒh(&M)" +EDIT_MODE_WRITE="‘žƒ‚[ƒh(&M)" +EDIT_MODE_DELETE="Á‹Žƒ‚[ƒh(&M)" + +VIEW="•\ަ(&V)" +VIEW_TOOL_BAR="ƒc[ƒ‹ƒo[(&T)" +VIEW_DIRECT_INPUT="ƒ_ƒCƒŒƒNƒg“ü—͘g(&D)" +VIEW_STATUS_BAR="ƒXƒe[ƒ^ƒXƒo[(&S)" + +OPTIONS="Ý’è(&O)" +OPTIONS_IGNORE_ACTIVE="ƒAƒNƒeƒBƒu‚ɂȂÁ‚½uŠÔ‚Í‘€ì‚𖳌ø‚É‚·‚é(&A)" +OPTIONS_FILE_NAME_ONLY="ƒ^ƒCƒgƒ‹ƒo[‚Ƀtƒ@ƒCƒ‹–¼‚̂ݕ\ަ‚·‚é(&F)" +OPTIONS_VERTICAL="ƒŒ[ƒ“î•ñ‚ðc‘‚«‚É‚·‚é(&V)" +OPTIONS_LANE_BG="ƒŒ[ƒ“”wŒi‚ÉF‚ð‚‚¯‚é(&B)" +OPTIONS_SINGLE_SELECT_PREVIEW="ƒIƒuƒWƒF’P‘Ì‘I‘ðŽž‚ÉƒvƒŒƒrƒ…[‚·‚é(&P)" +OPTIONS_OBJECT_FILE_NAME="ƒIƒuƒWƒF‚Ƀtƒ@ƒCƒ‹–¼‚ð•\ަ‚·‚é(&O)" +OPTIONS_MOVE_ON_GRID="ƒIƒuƒWƒF‚̈ړ®‚̓OƒŠƒbƒh‚É‚ ‚킹‚é(&M)" +OPTIONS_USE_OLD_FORMAT="#WAVE#BMPE#BGA ‚ÌŠg’£’è‹`‚ðŽg—p‚µ‚È‚¢(&U)" +OPTIONS_RIGHT_CLICK_DELETE="‰EƒNƒŠƒbƒN‚ŃIƒuƒWƒF‚ð휂·‚é(&R)" + +TOOLS="ŠO•”ƒrƒ…[ƒ(&T)" +TOOLS_PLAY_FIRST="ʼn‚©‚çĶ(&A)" +TOOLS_PLAY="Œ»ÝˆÊ’u‚©‚çĶ(&P)" +TOOLS_STOP="Ķ‚ð’âŽ~(&S)" +TOOLS_SETTING="ƒrƒ…[ƒ‚ÌÝ’è(&V)" + +HELP="ƒwƒ‹ƒv(&H)" +HELP_OPEN="ƒwƒ‹ƒv(&H)" +HELP_WEB="ìŽÒ‚̃EƒFƒuƒy[ƒW‚ðŠJ‚­(&W)" +HELP_ABOUT="ƒo[ƒWƒ‡ƒ“î•ñ(&A)" + +CONTEXT_MEASURE_INSERT="‚±‚±‚É1¬ß‘}“ü(&I)" +CONTEXT_MEASURE_DELETE="‚±‚̬߂ðíœ(&M)" + +CONTEXT_LIST_LOAD="ƒtƒ@ƒCƒ‹‚̃[ƒh(&L)" +CONTEXT_LIST_DELETE="‘I‘ðƒtƒ@ƒCƒ‹‚ðƒLƒƒƒ“ƒZƒ‹(&D)" +CONTEXT_LIST_RENAME="‘I‘ðƒtƒ@ƒCƒ‹‚ðƒŠƒl[ƒ€(&R)" + +[ToolBar] + +TOOLTIP_NEW="V‹Kì¬" +TOOLTIP_OPEN="ŠJ‚­" +TOOLTIP_SAVE="ã‘‚«•Û‘¶" +TOOLTIP_SAVE_AS="–¼‘O‚ð•t‚¯‚ĕۑ¶" +TOOLTIP_MODE_EDIT="•ÒWƒ‚[ƒh" +TOOLTIP_MODE_WRITE="‘žƒ‚[ƒh" +TOOLTIP_MODE_DELETE="Á‹Žƒ‚[ƒh" +TOOLTIP_PLAY_FIRST="ʼn‚©‚çĶ" +TOOLTIP_PLAY="Œ»ÝˆÊ’u‚©‚çĶ" +TOOLTIP_STOP="Ķ‚ð’âŽ~" + +GRID_MAIN="Grid" +GRID_SUB="•â•" + +DISP_HEIGHT="•\ަ‚‚³" +DISP_WIDTH="•\ަ•" + +[Header] + +TAB_BASIC="Šî–{" +TAB_EXPAND="Šg’£" +TAB_CONFIG="ŠÂ‹«" + +BASIC_PLAYER="ƒvƒŒƒCƒ‚[ƒh" +BASIC_PLAYER_1P="1 Player" +BASIC_PLAYER_2P="2 Player" +BASIC_PLAYER_DP="Double Play" +BASIC_PLAYER_PMS="9 Keys (PMS)" +BASIC_PLAYER_OCT="13 Keys (oct/fp)" +BASIC_GENRE="ƒWƒƒƒ“ƒ‹" +BASIC_TITLE="ƒ^ƒCƒgƒ‹" +BASIC_ARTIST="ƒA[ƒeƒBƒXƒg" +BASIC_PLAYLEVEL="“ïˆÕ“x•\ަ" +BASIC_BPM="BPM" + +EXPAND_RANK="#RANK" +EXPAND_RANK_EASY="Easy" +EXPAND_RANK_NORMAL="Normal" +EXPAND_RANK_HARD="Hard" +EXPAND_RANK_VERY_HARD="Very Hard" +EXPAND_TOTAL="#TOTAL" +EXPAND_VOLWAV="#VOLWAV" +EXPAND_STAGEFILE="#STAGEFILE" +EXPAND_BMP_MISS="#BMP00" +EXPAND_SET_FILE="ŽQÆ" + +CONFIG_KEY_FRAME="ƒL[•\ަ" +CONFIG_KEY_HALF="ƒn[ƒt" +CONFIG_KEY_SEPARATE="ƒZƒpƒŒ[ƒg" +CONFIG_KEY_POSITION="ƒL[”z’u" +CONFIG_KEY_5KEYS="5KeysE10Keys" +CONFIG_KEY_7KEYS="7KeysE14Keys" +CONFIG_SCRATCH_1P="ƒXƒNƒ‰ƒbƒ` 1P" +CONFIG_SCRATCH_2P="2P" +CONFIG_SCRATCH_LEFT="¶" +CONFIG_SCRATCH_RIGHT="‰E" + +[Material] + +TAB_WAV="#WAV" +TAB_BMP="#BMP" +TAB_BGA="#BGA" +TAB_BEAT="”Žq" +TAB_EXPAND="Šg’£–½—ß" + +MATERIAL_STOP="’âŽ~" +MATERIAL_DELETE="Á‹Ž" +MATERIAL_SET_FILE="Žw’è" +MATERIAL_INPUT="“ü—Í" +MATERIAL_PREVIEW="•\ަ" +MATERIAL_SELECT_ALL="‘S‘I‘ð" +MATERIAL_EXCHANGE_UP="£" +MATERIAL_EXCHANGE_DOWN="¥" + +[StatusBar] + +MODE_EDIT="•ÒWƒ‚[ƒh" +MODE_WRITE="‘žƒ‚[ƒh" +MODE_DELETE="Á‹Žƒ‚[ƒh" +MEASURE="¬ß" +CH_01="BGM" +CH_04="BGA" +CH_06="BGA Poor" +CH_07="BGA Layer" +CH_08="BPM •ÏX" +CH_09="ƒXƒgƒbƒvƒV[ƒPƒ“ƒX" +CH_KEY_1P="1P ƒL[" +CH_KEY_2P="2P ƒL[" +CH_SCRATCH_1P="1P ƒXƒNƒ‰ƒbƒ`" +CH_SCRATCH_2P="2P ƒXƒNƒ‰ƒbƒ`" +CH_INVISIBLE="(•s‰ÂŽ‹)" +CH_LONGNOTE="(ƒƒ“ƒOƒm[ƒg)" + +[Message] + +ERROR_MESSAGE_01="—\Šú‚¹‚ʃGƒ‰[‚ª”­¶‚µ‚½‚̂ŋ­§I—¹‚µ‚Ü‚·B\nƒGƒ‰[‚ÌÚ×‚Í error.txt ‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B" +ERROR_MESSAGE_02="•ÒW’†‚Ì BMS ‚͈ȉº‚ɕۑ¶‚µ‚Ü‚µ‚½B" +ERROR_FILE_NOT_FOUND="ƒtƒ@ƒCƒ‹‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" +ERROR_LOAD_CANCEL="“ǂݞ‚݂𒆎~‚µ‚Ü‚·B" +ERROR_SAVE_ERROR="ƒtƒ@ƒCƒ‹‚̕ۑ¶’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B" +ERROR_SAVE_CANCEL="•Û‘¶‚𒆎~‚µ‚Ü‚·B" +ERROR_OVERFLOW_LARGE="ƒGƒ‰[:\n”‚ª‘å‚«‚·‚¬‚Ü‚·B" +ERROR_OVERFLOW_SMALL="ƒGƒ‰[:\n”‚ª¬‚³‚·‚¬‚Ü‚·B" +ERROR_OVERFLOW_BPM="1295ŒÂˆÈã‚ÌŠg’£ BPM •ÏX‚ð”Fޝ‚µ‚Ü‚µ‚½B\nŠg’£ BPM •ÏX‚Í•K‚¸1295ŒÂˆÈ“à‚É‚¨‚³‚߂Ă­‚¾‚³‚¢B" +ERROR_OVERFLOW_STOP="1295ŒÂˆÈã‚Ì STOP –½—ß‚ð”Fޝ‚µ‚Ü‚µ‚½\nSTOP –½—߂͕K‚¸1295ŒÂˆÈ“à‚É‚¨‚³‚߂Ă­‚¾‚³‚¢B" +ERROR_APP_NOT_FOUND="‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ" + +INFO_FILE_CHANGED="ƒf[ƒ^‚Í•ÏX‚³‚ê‚Ä‚¢‚Ü‚·B•Û‘¶‚µ‚Ü‚·‚©H" +INFO_INI_CHANGED="ini‚Ì‘Ž®‚É•ÏX‚ª‚ ‚Á‚½‚̂ʼnŠú‰»‚µ‚Ü‚·B\n(Ý’è‚Í‘S‚ÄƒŠƒZƒbƒg‚³‚ê‚Ü‚·)" +INFO_ALIGN_LIST="ƒŠƒXƒg‚ðŒÃ‚¢Œ`Ž® (01 - FF) ‚Å®—ñ‚µ‚Ü‚·‚©H\n(’ˆÓ: ŒÃ‚¢Œ`Ž®‚łȂ¢‚Ɠǂݞ‚߂Ȃ¢ƒ\ƒtƒgƒEƒFƒA‚à‚ ‚è‚Ü‚·)" +INFO_DELETE_FILE="ˆÈ‰º‚̃tƒ@ƒCƒ‹‚ð휂µ‚Ü‚µ‚½:" + +[Input] + +TITLE="“ü—̓tƒH[ƒ€" + +INPUT_BPM="•ÏX‚·‚é BPM ‚Ì’l‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n(¬”‰ÂA0 ‚ŃLƒƒƒ“ƒZƒ‹‚µ‚Ü‚·)" +INPUT_STOP="’âŽ~‚³‚¹‚鎞ŠÔ‚ð®”’l‚Å“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n’PˆÊ‚Í192•ª‰¹•„‚ð 1 ‚Æ‚µ‚Ä‚­‚¾‚³‚¢B\n(0 ˆÈ‰º‚ŃLƒƒƒ“ƒZƒ‹‚µ‚Ü‚·)" +INPUT_RENAME="•ÏX‚·‚éƒtƒ@ƒCƒ‹–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n(ŽÀۂ̃tƒ@ƒCƒ‹–¼‚à•ÏX‚³‚ê‚Ü‚·)" +INPUT_SIZE="•\ަ”{—¦‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n(0 ˆÈ‰º‚ŃLƒƒƒ“ƒZƒ‹AÅ‘å’l‚Í 16.00 ‚Å‚·)" + +[Find] + +TITLE="ŒŸõEíœE’uŠ·" + +FRAME_SEARCH="ŒŸõ‘ÎÛ‚ÌŽw’è" +FRAME_MEASURE="¬ß”͈͂̎w’è" +FRAME_OBJ_NUM="ƒIƒuƒWƒF”Ô†‚ÌŽw’è" +FRAME_GRID="—ñ‚ÌŽw’è" +FRAME_PROCESS="ˆ—" + +OPT_OBJ_ALL="‘S‚ẴIƒuƒWƒF" +OPT_OBJ_SELECT="‘I‘ð‚³‚ê‚Ä‚¢‚éƒIƒuƒWƒF" +OPT_PROCESS_SELECT="‘I‘ð" +OPT_PROCESS_DELETE="íœ" +OPT_PROCESS_REPLACE="’uŠ·@”Ô†:" + +CMD_INVERT="”½“]" +CMD_RESET="‘S‰ðœ" +CMD_SELECT="‘S‘I‘ð" +CMD_CLOSE="•‚¶‚é" +CMD_DECIDE="ŽÀs" + +LBL_NOTICE="BPMESTOP ƒIƒuƒWƒF‚Í‚±‚Ì€–ڂ̉e‹¿‚ðŽó‚¯‚Ü‚¹‚ñ" +LBL_DASH="`" + +[Viewer] + +TITLE="ƒrƒ…[ƒ‚ÌÝ’è" + +CMD_SET="ŽQÆ" +CMD_ADD="’ljÁ" +CMD_DELETE="íœ" +CMD_OK="OK" +CMD_CANCEL="ƒLƒƒƒ“ƒZƒ‹" + +LBL_APP_NAME="•\ަ‚·‚é–¼‘O" +LBL_APP_PATH="ŽÀsƒtƒ@ƒCƒ‹‚̃pƒX" +LBL_ARG_PLAY_ALL="uʼn‚©‚çĶv‚̈ø”" +LBL_ARG_PLAY="uŒ»ÝˆÊ’u‚©‚çĶv‚̈ø”" +LBL_ARG_STOP="u’âŽ~v‚̈ø”" +LBL_ARG_INFO="“ÁŽêˆø”\nEEEƒtƒ@ƒCƒ‹–¼\nEEEŒ»Ý‚̬ߔԆ" + +[Convert] + +TITLE="•ÏŠ·ƒEƒBƒU[ƒh" + +CHK_DELETE_LIST="Žg—p‚µ‚Ä‚¢‚È‚¢ #WAVE#BMPE#BGA ‚Ì’è‹`‚ðÁ‹Ž" + +CHK_DELETE_FILE="ƒtƒHƒ‹ƒ_“à‚ÌŽg—p‚µ‚Ä‚¢‚È‚¢ƒtƒ@ƒCƒ‹‚ðíœ (*)" +LBL_EXTENSION="ŒŸõ‚·‚éŠg’£Žq:" +CHK_RECYCLE="‚²‚Ý” ‚Ɉړ®‚µ‚È‚¢‚Å‚·‚®‚É휂·‚é" + +CHK_ALIGN_LIST="’è‹`ƒŠƒXƒg‚Ì®—ñ" +CHK_USE_OLD_FORMAT="‰Â”\‚È‚çŒÃ‚¢ƒtƒH[ƒ}ƒbƒg (01 - FF) ‚ðŽg‚¤" +CHK_SORT_BY_NAME="ƒtƒ@ƒCƒ‹–¼‚Ń\[ƒg‚·‚é" + +CHK_CONVERT_FILENAME="ƒtƒ@ƒCƒ‹–¼‚ð˜A”Ô (01 - ZZ) ‚ɕϊ· (*)" + +LBL_NOTICE="(*)EEE‚±‚Ì‘€ì‚Í‚â‚è’¼‚µ‚ª‚Å‚«‚Ü‚¹‚ñ" + +CMD_DECIDE="ŽÀs" +CMD_CANCEL="ƒLƒƒƒ“ƒZƒ‹" diff --git a/iidx/BMS Sequence Editor/lang/korean.ini b/iidx/BMS Sequence Editor/lang/korean.ini new file mode 100644 index 0000000..6cd8867 --- /dev/null +++ b/iidx/BMS Sequence Editor/lang/korean.ini @@ -0,0 +1,249 @@ +[Main] +Key="BMSE" +Language="Korean" +Font="±¼¸²" +FixedFont="Courier New" + +[Menu] + +FILE="ÆÄÀÏ(&F)" +FILE_NEW="»õ·Î ¸¸µé±â(&N)" +FILE_OPEN="¿­±â(&O)" +FILE_SAVE="ÀúÀå(&S)" +FILE_SAVE_AS="´Ù¸¥ À̸§À¸·Î ÀúÀå(&A)" +FILE_OPEN_DIRECTORY="Open &Directory" +FILE_CONVERT_WIZARD="ÄÁ¹öÁ¯ â ¶ç¿ì±â(&C)" +FILE_EXIT="Á¾·á(&E)" + +EDIT="ÆíÁý(&E)" +EDIT_UNDO="½ÇÇà Ãë¼Ò(&U)" +EDIT_REDO="½ÇÇà ¹Ýº¹(&R)" +EDIT_CUT="Àß¶ó³»±â(&T)" +EDIT_COPY="º¹»ç(&C)" +EDIT_PASTE="ºÙ¿©³Ö±â(&P)" +EDIT_DELETE="»èÁ¦(&D)" +EDIT_SELECT_ALL="¸ðµÎ ¼±ÅÃ(&S)" +EDIT_FIND="ã±â/»èÁ¦/´ëü(&F)" +EDIT_MODE_EDIT="ÆíÁý ¸ðµå(&M)" +EDIT_MODE_WRITE="¾²±â ¸ðµå(&M)" +EDIT_MODE_DELETE="»èÁ¦ ¸ðµå(&M)" + +VIEW="º¸±â(&V)" +VIEW_TOOL_BAR="Åø¹Ù Ç¥½Ã(&T)" +VIEW_DIRECT_INPUT="Á÷Á¢ ÀÔ·Â(&D)" +VIEW_STATUS_BAR="&Status Bar" + +OPTIONS="¿É¼Ç(&O)" +OPTIONS_IGNORE_ACTIVE="ÄÁÆ®·Ñ Ȱ¼ºÈ­ ½Ã¿¡´Â Á¶ÀÛ ¹«È¿È­(&C)" +OPTIONS_FILE_NAME_ONLY="ÆÄÀÏ À̸§¸¸ Ç¥½Ã(&F)" +OPTIONS_VERTICAL="±×¸®µå Á¤º¸¸¦ ¼¼·Î·Î Ç¥½Ã(&V)" +OPTIONS_LANE_BG="¹è°æ »ö±ò(&B)" +OPTIONS_SINGLE_SELECT_PREVIEW="¿ÀºêÁ§Æ® ¼±Åà ½Ã ÇÁ¸®ºä(&P)" +OPTIONS_OBJECT_FILE_NAME="¿ÀºêÁ§Æ®¿¡ ÆÄÀÏ À̸§ Ç¥½Ã(&O)" +OPTIONS_MOVE_ON_GRID="¿ÀºêÁ§Æ®ÀÇ À̵¿À» ±×¸®µå¿¡ ¸ÂÃã(&M)" +OPTIONS_USE_OLD_FORMAT="±¸Çü Æ÷¸Ë »ç¿ë[01-FF](&U)" +OPTIONS_RIGHT_CLICK_DELETE="¿À¸¥ÂÊ Å¬¸¯À¸·Î ¿ÀºêÁ§Æ® Áö¿ì±â(&R)" + +TOOLS="µµ±¸(&T)" +TOOLS_PLAY_FIRST="óÀ½ºÎÅÍ Àç»ý(&A)" +TOOLS_PLAY="ÇöÀç À§Ä¡ºÎÅÍ Àç»ý(&P)" +TOOLS_STOP="Á¤Áö(&S)" +TOOLS_SETTING="ºä¾î ¼³Á¤(&V)" + +HELP="µµ¿ò¸»(&H)" +HELP_OPEN="µµ¿ò¸» ÆÄÀÏ ¿­±â" +HELP_WEB="Á¦ÀÛÀÚÀÇ È¨ÆäÀÌÁö ¿­±â(&W)" +HELP_ABOUT="BMSE¿¡ ´ëÇÏ¿©(&A)" + +CONTEXT_MEASURE_INSERT="¸¶µð »ïÀÔ(&I)" +CONTEXT_MEASURE_DELETE="¸¶µð Áö¿ì±â(&M)" + +CONTEXT_LIST_LOAD="ºÒ·¯¿À±â(&L)" +CONTEXT_LIST_DELETE="»èÁ¦(&D)" +CONTEXT_LIST_RENAME="À̸§ ¹Ù²Ù±â(&R)" + +[ToolBar] + +TOOLTIP_NEW="»õ·Î ¸¸µé±â" +TOOLTIP_OPEN="¿­±â" +TOOLTIP_SAVE="ÀúÀå" +TOOLTIP_SAVE_AS="´Ù¸¥ À̸§À¸·Î ÀúÀå" +TOOLTIP_MODE_EDIT="ÆíÁý ¸ðµå" +TOOLTIP_MODE_WRITE="¾²±â ¸ðµå" +TOOLTIP_MODE_DELETE="»èÁ¦ ¸ðµå" +TOOLTIP_PLAY_FIRST="óÀ½ºÎÅÍ Àç»ý" +TOOLTIP_PLAY="ÇöÀç À§Ä¡ºÎÅÍ Àç»ý" +TOOLTIP_STOP="Á¤Áö" + +GRID_MAIN="Grid" +GRID_SUB="Sub" + +DISP_HEIGHT="¿ÀºêÁ§Æ® ³ôÀÌ" +DISP_WIDTH="¿ÀºêÁ§Æ® ³ÐÀÌ" + +[Header] + +TAB_BASIC="±âº» Á¤º¸" +TAB_EXPAND="Ãß°¡ Á¤º¸" +TAB_CONFIG="¼³Á¤" + +BASIC_PLAYER="#PLAYER" +BASIC_PLAYER_1P="1P" +BASIC_PLAYER_2P="2P" +BASIC_PLAYER_DP="´õºí" +BASIC_PLAYER_PMS="9Ű(PMS)" +BASIC_PLAYER_OCT="13Ű(oct/fp)" +BASIC_GENRE="#GENRE" +BASIC_TITLE="#TITLE" +BASIC_ARTIST="#ARTIST" +BASIC_PLAYLEVEL="#PLAYLEVEL" +BASIC_BPM="#BPM" + +EXPAND_RANK="#RANK" +EXPAND_RANK_EASY="Easy" +EXPAND_RANK_NORMAL="Normal" +EXPAND_RANK_HARD="Hard" +EXPAND_RANK_VERY_HARD="Very Hard" +EXPAND_TOTAL="#TOTAL" +EXPAND_VOLWAV="#VOLWAV" +EXPAND_STAGEFILE="#STAGEFILE" +EXPAND_BMP_MISS="#BMP00" +EXPAND_SET_FILE="ã±â" + +CONFIG_KEY_FRAME="Á٠ǥ½Ã" +CONFIG_KEY_HALF="Àý¹Ý" +CONFIG_KEY_SEPARATE="ºÐ¸®" +CONFIG_KEY_POSITION="Ű Æ÷Áö¼Ç" +CONFIG_KEY_5KEYS="5Ű/10Ű" +CONFIG_KEY_7KEYS="7Ű/14Ű" +CONFIG_SCRATCH_1P="½ºÅ©·¡Ä¡ 1P" +CONFIG_SCRATCH_2P="2P" +CONFIG_SCRATCH_LEFT="¿ÞÂÊ" +CONFIG_SCRATCH_RIGHT="¿À¸¥ÂÊ" + +[Material] + +TAB_WAV="#WAV" +TAB_BMP="#BMP" +TAB_BGA="#BGA" +TAB_BEAT="¹ÚÀÚ" +TAB_EXPAND="È®Àå ¸í·É" + +MATERIAL_STOP="Á¤Áö" +MATERIAL_DELETE="»èÁ¦" +MATERIAL_SET_FILE="ã±â" +MATERIAL_INPUT="ÀÔ·Â" +MATERIAL_PREVIEW="º¸±â" +MATERIAL_SELECT_ALL="Àüü" +MATERIAL_EXCHANGE_UP="¡â" +MATERIAL_EXCHANGE_DOWN="¡ä" + +[StatusBar] + +MODE_EDIT="ÆíÁý ¸ðµå" +MODE_WRITE="¾²±â ¸ðµå" +MODE_DELETE="»èÁ¦ ¸ðµå" +MEASURE="¸¶µð" +CH_01="BGM" +CH_04="BGA" +CH_06="BGA Poor" +CH_07="BGA Layer" +CH_08="BPM Change" +CH_09="Stop Sequence" +CH_KEY_1P="1P Ű" +CH_KEY_2P="2P Ű" +CH_SCRATCH_1P="1P Scratch" +CH_SCRATCH_2P="2P Scratch" +CH_INVISIBLE="(Åõ¸í ³ëÆ®)" +CH_LONGNOTE="(·Õ ³ëÆ®)" + +[Message] + +ERROR_MESSAGE_01="¿¹±âÄ¡ ¾ÊÀº ¿À·ù°¡ ÀϾ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ Á¾·áµË´Ï´Ù.\nÀÚ¼¼ÇÑ »çÇ×Àº "error.txt"¸¦ Âü°íÇϽʽÿä." +ERROR_MESSAGE_02="Àӽà ÆÄÀÏ ÀúÀå À§Ä¡´Â..." +ERROR_FILE_NOT_FOUND="ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù." +ERROR_LOAD_CANCEL="ºÒ·¯¿À±â°¡ Áߴܵ˴ϴÙ." +ERROR_SAVE_ERROR="ÀúÀå ¿À·ùÀÔ´Ï´Ù." +ERROR_SAVE_CANCEL="ÀúÀåÀÌ Áߴܵ˴ϴÙ." +ERROR_OVERFLOW_LARGE="¿À·ù:\nÀÔ·Â °ªÀÌ ³Ê¹« Å®´Ï´Ù." +ERROR_OVERFLOW_SMALL="¿À·ù:\nÀÔ·Â °ªÀÌ ³Ê¹« ÀÛ½À´Ï´Ù." +ERROR_OVERFLOW_BPM="1295°³ ÀÌ»óÀÇ BPM º¯°æÀÌ »ç¿ë µÇ¾ú½À´Ï´Ù.\nÈ®Àå BPM º¯°æÀº 1295°³ ±îÁö¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." +ERROR_OVERFLOW_STOP="1295°³ ÀÌ»óÀÇ STOP ¸í·ÉÀÌ »ç¿ë µÇ¾ú½À´Ï´Ù.\nSTOP ¸í·ÉÀº 1295°³ ±îÁö¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." +ERROR_APP_NOT_FOUND="ãÀ» ¼ö ¾ø½À´Ï´Ù." + +INFO_FILE_CHANGED="º¯°æ »çÇ×À» ÀúÀå ÇϽðڽÀ´Ï±î?" +INFO_INI_CHANGED="ini Çü½ÄÀÌ ¹Ù²î¿´½À´Ï´Ù.\n(¸ðµç ¼³Á¤ »çÇ×µéÀÌ ¸®¼Â µË´Ï´Ù.)" +INFO_ALIGN_LIST="ÁöÁ¤µÈ ÆÄÀϵéÀ» ±¸Çü Æ÷¸Ë [01-FF] À¸·Î Á¤¸® ÇϽðڽÀ´Ï±î? \n(ÁÖÀÇ: ÀϺΠ±¸µ¿ ÇÁ·Î±×·¥µéÀº ±¸Çü Æ÷¸Ë¸¸ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù.)" +INFO_DELETE_FILE="´ÙÀ½ Ç׸ñµéÀÌ »èÁ¦ µÇ¾ú½À´Ï´Ù:" + +[Input] + +TITLE="ÀԷ â" + +INPUT_BPM="º¯°æÇϰíÀÚ ÇÏ´Â BPMÀ¸·Î ÀÔ·Â ÇØ Áֽʽÿä.\n(¼Ò¼öÁ¡ ÀÔ·Â °¡´É, 0 ÀԷ½à Ãë¼ÒµË´Ï´Ù.)" +INPUT_STOP="Á¤Áö ½Ã°£ÀÇ ±æÀ̸¦ Á¤¼ö·Î ÀÔ·Â ÇØ Áֽʽÿä.\n1Àº 192ºÐ À½Ç¥¸¸Å­ÀÇ ½Ã°£À¸·Î º¯È¯µË´Ï´Ù.\n(0 ÀÌÇÏÀÇ °ª ÀԷ½à Ãë¼ÒµË´Ï´Ù.)" +INPUT_RENAME="»õ·Î¿î ÆÄÀÏ À̸§À» ÀÔ·Â ÇØ Áֽʽÿä." +INPUT_SIZE="Ç¥½Ã ¹èÀ²À» ÀÔ·Â ÇØ Áֽʽÿä.\n(ÃÖ´ë°ªÀº 16.00, 0 ÀÌÇÏÀÇ °ª ÀԷ½à Ãë¼ÒµË´Ï´Ù.)" + +[Find] + +TITLE="ã±â/»èÁ¦/´ëü" + +FRAME_SEARCH="¹üÀ§" +FRAME_MEASURE="¸¶µð ¹üÀ§" +FRAME_OBJ_NUM="¿ÀºêÁ§Æ® ¹øÈ£ ¹üÀ§" +FRAME_GRID="ÁÙ" +FRAME_PROCESS="±â´É" + +OPT_OBJ_ALL="¸ðµç ¿ÀºêÁ§Æ®" +OPT_OBJ_SELECT="¼±ÅÃµÈ ¿ÀºêÁ§Æ®" +OPT_PROCESS_SELECT="¼±ÅÃ" +OPT_PROCESS_DELETE="»èÁ¦" +OPT_PROCESS_REPLACE="~·Î ´ëü" + +CMD_INVERT="¼±Åà ¹ÝÀü" +CMD_RESET="¸ðµÎ ÇØÁ¦" +CMD_SELECT="¸ðµÎ ¼±ÅÃ" +CMD_CLOSE="´Ý±â" +CMD_DECIDE="½ÇÇà" + +LBL_DASH="¿¡¼­" +LBL_NOTICE="À̰ÍÀº BPM/STOP ¿ÀºêÁ§Æ®¿¡ ¿µÇâÀÌ ¾ø½À´Ï´Ù" + +[Viewer] + +TITLE="ºä¾î ¼³Á¤" + +CMD_SET="ã±â" +CMD_ADD="Ãß°¡" +CMD_DELETE="»èÁ¦" +CMD_OK="È®ÀÎ" +CMD_CANCEL="Ãë¼Ò" + +LBL_APP_NAME="Ç÷¹À̾î À̸§" +LBL_APP_PATH="°æ·Î" +LBL_ARG_PLAY_ALL=""óÀ½ºÎÅÍ Àç»ý"ÀÇ Àμö" +LBL_ARG_PLAY=""ÇöÀç À§Ä¡ºÎÅÍ Àç»ý"ÀÇ Àμö" +LBL_ARG_STOP=""Á¤Áö"ÀÇ Àμö" +LBL_ARG_INFO="Ư¼ö Àμö:\n ÆÄÀÏ À̸§\n ÇöÀç ¸¶µð" + +[Convert] + +TITLE="ÄÁ¹öÁ¯ â" + +CHK_DELETE_LIST="»ç¿ë µÇÁö ¾Ê´Â Ç׸ñÀ» ¸®½ºÆ®¿¡¼­ Áö¿ì±â" + +CHK_DELETE_FILE="»ç¿ë µÇÁö ¾Ê´Â Ç׸ñÀ» Æú´õ¿¡¼­ Áö¿ì±â (*)" +LBL_EXTENSION="È®ÀåÀÚ Ã£±â:" +CHK_RECYCLE="ÈÞÁöÅëÀ» °ÅÄ¡Áö ¾Ê°í ¹Ù·Î »èÁ¦" + +CHK_ALIGN_LIST="¸®½ºÆ®ÀÇ ºó Ä­ ¾ø¾Ö±â" +CHK_USE_OLD_FORMAT="±¸Çü Æ÷¸Ë [01-FF] »ç¿ë" +CHK_SORT_BY_NAME="ÆÄÀÏ À̸§¿¡ µû¶ó Á¤¸®Çϱâ" + +CHK_CONVERT_FILENAME="ÆÄÀÏ À̸§À» ¸®½ºÆ®ÀÇ ¹øÈ£·Î ´ëüÇϱâ [01-ZZ] (*)" + +LBL_NOTICE="(*) ÀÌ ¸í·ÉÀº µÇµ¹¸± ¼ö ¾ø½À´Ï´Ù" + +CMD_DECIDE="½ÇÇà" +CMD_CANCEL="Ãë¼Ò" diff --git a/iidx/BMS Sequence Editor/readme.txt b/iidx/BMS Sequence Editor/readme.txt new file mode 100644 index 0000000..8c1411f --- /dev/null +++ b/iidx/BMS Sequence Editor/readme.txt @@ -0,0 +1,553 @@ +BMx Sequence Editor +readme.txt + + + +EŠT—v + +BMSEBMEEBMLEPMS ƒtƒ@ƒCƒ‹‚ðŽ‹Šo“I‚É•ÒW‚·‚邽‚߂̃\ƒtƒgƒEƒFƒA‚Å‚·BBMS ‚Á‚ĉ½H‚Æ‚¢‚¤l‚Í BM98 for the BEGINNER (http://www2.pf-x.net/~bforb/) ‚ȂǂðŽQl‚ɂǂ¤‚¼BBMx Sequence Editor ‚ł͒·‚­‚ēǂ݂Â炢‚̂ŠBMSE ‚ƌĂñ‚Å‚ ‚°‚Ä‚­‚¾‚³‚¢B + +Žå‚È“Á’¥: +EWAVEBMP ‚ÌŠg’£’è‹` (01 ` ZZ) ‚ɉÁ‚¦ƒXƒgƒbƒvƒV[ƒPƒ“ƒX‚â BGA –½—ß‚àƒTƒ|[ƒg +Eƒƒ“ƒOƒm[ƒg‚Ì“ü—͂ɂà‘Ήž +EƒXƒNƒ‰ƒbƒ`‚̈ʒuAŒ®”Õ‚Ì”‚Ȃǂ̕ÏX‚ª‰Â”\ +E•Ï”Žq‚Ì•ÒW‚àŽ‹Šo“I‚És‚¦‚é +EŒ¾Œêƒtƒ@ƒCƒ‹‚É‚æ‚鑽Œ¾Œê‘Ήž (“ú–{ŒêE‰pŒêEŠØ‘Œêƒtƒ@ƒCƒ‹‚𓯫) +Eƒe[ƒ}ƒtƒ@ƒCƒ‹‚ÅF‚ȂǂðƒJƒXƒ^ƒ}ƒCƒY‰Â”\ +EŒ³‚É–ß‚·E‚â‚è’¼‚µ‚ð‰½‰ñ‚Å‚às‚¦‚é + +»ì‚ÉÛ‚µ‚ÄAˆÈ‰º‚̃\ƒtƒgƒEƒFƒA‚ðŽQl‚É‚³‚¹‚Ä‚¢‚½‚¾‚«‚Ü‚µ‚½B‚±‚Ìê‚ðŽØ‚è‚ÄŠ´ŽÓ‚¢‚½‚µ‚Ü‚·B +EBMS Creator (http://tixlab.com/) +EGDA Creator Professional Edition (http://www.asahi-net.or.jp/~NM4J-TYN/gdac2/) + + + +E“®‚©‚·‚½‚ß‚É‚Í + +Windows 2000 SP4 ‚ɂē®ìŠm”FB98SE ˆÈ~‚Ì Windows ‚È‚ç–â‘è‚È‚­“®‚­‚ÆŽv‚¢‚Ü‚·B‚Ü‚½AVisual Basic 6.0 SP6 ƒ‰ƒ“ƒ^ƒCƒ€AMSCOMCTL.OCX ‚¨‚æ‚Ñ COMDLG32.OCX ‚ª•K—v‚ɂȂè‚Ü‚·B‚±‚ê‚ç‚̃tƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚È‚¢ê‡A³í‚ÉŽÀs‚Å‚«‚Ü‚¹‚ñ‚̂ł²’ˆÓ‚­‚¾‚³‚¢B + +ƒ_ƒEƒ“ƒ[ƒh‚͈ȉº‚Ì URL ‚Ȃǂ©‚çs‚¦‚Ü‚·: +http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C (ƒ‰ƒ“ƒ^ƒCƒ€‚Ì‚Ý) +http://www.vector.co.jp/soft/win95/util/se188840.html +http://www.vector.co.jp/soft/dl/win95/util/se063979.html + + + +EŽg—p‹–‘øðŒ + +‚±‚̃\ƒtƒgƒEƒFƒA‚ðŽg—p‚µ‚½‚±‚Ƃɂæ‚é‚¢‚©‚Ȃ鑹ŠQ‚ÌÓ”C‚à»ìŽÒ‚Í•‰‚í‚È‚¢Ž–‚Æ‚µ‚Ü‚·B‚Ü‚½A‚±‚̃\ƒtƒgƒEƒFƒA‚ðŽg—p‚µ‚Ĉá–@‚ȃtƒ@ƒCƒ‹‚Ìì¬E•ÒW‚ðs‚¤‚±‚Æ‚ð‹ÖŽ~‚µ‚Ü‚· (ˆá–@‚ȃtƒ@ƒCƒ‹‚Æ‚ÍAƒQ[ƒ€‚â CD “™‚©‚甲‚¢‚½‰¹º‚â‰f‰æ‚âƒAƒjƒ“™‚©‚甲‚¢‚½‰æ‘œ‚È‚ÇA‘¼l‚É’˜ìŒ ‚Ì‚ ‚é‚à‚Ì‚ð‹–‰Â‚È‚­Žg—p‚µ‚½‚à‚Ì‚âABEMANI ƒVƒŠ[ƒY‚Ì•ˆ–Ê (‰¹ºE‰æ‘œ‚Ì—L–³‚ð–â‚킸)A“™‚ðŽw‚µ‚Ü‚·)B + +Žg—p‹–‘øðŒ‚Í—\‚È‚µ‚É•ÒWE’ljÁ‚³‚ê‚邱‚Æ‚ª‚ ‚è‚Ü‚·B‚Ü‚½Aƒ†[ƒU‚ÍŽg—p‚µ‚Ä‚¢‚é BMSE ‚̃o[ƒWƒ‡ƒ“‚ÉŠÖŒW‚È‚­Aí‚ÉÅV‚̃o[ƒWƒ‡ƒ“‚ÌŽg—p‹–‘øðŒ‚É“¯ˆÓ‚µ‚Ä‚¢‚é‚à‚̂Ƃµ‚Ü‚·B + +ˆÈã‚ÌðŒ‚ðŽç‚ê‚é•û‚݂̂²Žg—p‚­‚¾‚³‚¢B + + + +EÄ”z•z‚ɂ‚¢‚Ä + +UCN-Soft (http://ucn.tokonats.net/) ‚Å”z•z‚µ‚Ä‚¢‚éƒA[ƒJƒCƒu‚ÉˆêØ‚Ì•ÏX‚ð‰Á‚¦‚¸ (“à—e‚ð•ÏX‚µ‚È‚¢Äˆ³k‚Í‚±‚ÌŒÀ‚è‚ł͂ ‚è‚Ü‚¹‚ñ)A‚Ü‚½”z•zŒ`‘Ô‚ª–³ž‚ÌꇂɌÀ‚èA–³§ŒÀ‚ÉÄ”z•z‚ð‹–‰Â‚µ‚Ü‚·BŽ–‘O‚̘A—‚â‹–‰Â‚à•K—v‚ ‚è‚Ü‚¹‚ñB‚½‚¾‚µA‚»‚ê‚É‚æ‚Á‚Ķ‚¶‚éƒRƒXƒg‚ÍÄ”z•z‚ðs‚¤l‚ªŠeŽ©‚Å¿‚¯•‰‚¤‚±‚ƂƂµ‚Ü‚·B‚Ü‚½A’˜ìŒ ‚Í•úŠü‚µ‚Ü‚¹‚ñ‚̂ł²’ˆÓ‚­‚¾‚³‚¢B + +ã‹L‚ÌðŒ‚ð–ž‚½‚¹‚È‚¢‚©‚½‚¿‚Å‚ÌÄ”z•z‚ðs‚¢‚½‚¢ê‡‚ÍAÄ”z•z‚ðs‚¤‘O‚É•K‚¸ƒ[ƒ‹“™‚ŘA—‚ð‚µ‚Ä‚­‚¾‚³‚¢B + + + +EŽg‚¢•û + +BMSC ‚ƂقÚA‚Æ‚¢‚¤‚æ‚è‘S‚­‚Æ‚¢‚Á‚Ä‚¢‚¢‚Ù‚Ç“¯‚¶‚Ȃ̂ÅABMSC ‚̃hƒLƒ…ƒƒ“ƒg‚ð“ǂ߂Π(ׂ©‚¢·ˆÙ‚Í‚ ‚è‚Ü‚·‚ª) ‚Ù‚Æ‚ñ‚ǂ킩‚邯Žv‚¢‚Ü‚·B‰ŠúÝ’è‚ł͕\ަŒ¾Œê‚ª‰pŒê‚ɂȂÁ‚Ä‚¢‚é‚Ì‚ÅAOptions ¨ Select Language ‚©‚ç Japanese ‚ð‘I‘ð‚·‚ê‚Γú–{Œê‚ɂȂè‚Ü‚·B + +ƒIƒuƒWƒF‘‚«ž‚ÝŽž‚É Ctrl ƒL[‚Å•s‰ÂŽ‹ƒIƒuƒWƒFAShift ƒL[‚Ńƒ“ƒOƒm[ƒg‚ɂȂè‚Ü‚·BƒIƒuƒWƒFˆÚ“®Žž‚Í Ctrl ƒL[‚ŃRƒs[‚µ‚Ĉړ®AShift ƒL[‚Å Y ޲ŒÅ’èˆÚ“®‚ɂȂè‚Ü‚·B‚Ü‚½AShift ƒL[‚ð‰Ÿ‚µ‚È‚ª‚çƒIƒuƒWƒFã‚ʼnEƒNƒŠƒbƒN‚·‚邯A‚»‚̃IƒuƒWƒF‚̔Ԇ‚ðƒRƒs[‚µ‚Ü‚·B + + + +E•Ö—˜‚ÈŽg‚¢•û + +ƒƒjƒ…[‚Ìwƒtƒ@ƒCƒ‹x“à‚É‚ ‚éw•ÏŠ·ƒEƒBƒU[ƒhx‚͂ƂĂà•Ö—˜‚È‹@”\‚Ȃ̂ÅA¥”ñ‚Æ‚àŽg‚Á‚Ä‚ ‚°‚Ä‚­‚¾‚³‚¢B + + + +Eƒtƒ@ƒCƒ‹‚̃vƒŒƒrƒ…[‚ɂ‚¢‚Ä + +ƒTƒEƒ“ƒh‚̃vƒŒƒrƒ…[‚É mciSendString ‚ðŽg—p‚µ‚Ä‚¢‚é‚Ì‚ÅADirectShow ‚̃tƒBƒ‹ƒ^‚ð’ljÁ‚·‚邱‚Æ‚ÅFX‚ȃtƒ@ƒCƒ‹‚ð–‚点‚邿‚¤‚É‚È‚é‚æ‚¤‚Å‚· (‚½‚¾‚µAƒTƒ|[ƒg‘ÎÛŠO‚Æ‚µ‚Ü‚·)B—Ⴆ‚Î Ogg Vorbis ƒtƒ@ƒCƒ‹‚ÌꇂÍARedLight Ogg Media DirectShow Filters (http://www.oggmedia.info/) ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚邱‚ƂŖ‚点‚邿‚¤‚É‚È‚é‚æ‚¤‚Å‚· (Ogg Codecs (http://www.illiminable.com/ogg/) ‚ł̓Gƒ‰[‚ªo‚ă_ƒ‚Å‚µ‚½)B + +‰æ‘œ‚̃vƒŒƒrƒ…[‚Í VB ‚Ì‹@”\‚œǂݞ‚Ý‚ðs‚Á‚Ä‚¢‚邽‚ßABMPEGIFEJPEGEICOEƒƒ^ƒtƒ@ƒCƒ‹EŠg’£ƒƒ^ƒtƒ@ƒCƒ‹‚݂̂̑Ήž‚ɂȂè‚Ü‚·BPNG ‚ɂ͑Ήž‚µ‚Ü‚¹‚ñB + + + +Eƒrƒ…[ƒ‚ÌÝ’è‚ɂ‚¢‚Ä + +ƒƒjƒ…[‚ÌwŠO•”ƒrƒ…[ƒx“à‚É‚ ‚éwƒrƒ…[ƒ‚ÌÝ’èx‚©‚çs‚¢‚Ü‚·B + +ˆø”‚ɂ͈ȉº‚Ì•¶Žš—ñ‚ð‘‚­‚ÆŽ©“®“I‚É’uŠ·‚³‚ê‚Ü‚·B +EEEEĶƒtƒ@ƒCƒ‹–¼ +EEEEŒ»Ý•\ަ‚µ‚Ä‚¢‚é¬ß”Ô† + +uBMplayAWAview (“r’†Ä¶‚·‚é‘O‚É•’Ê‚ÉĶ‚·‚é•K—v‚ ‚è)AnBMplay (“r’†Ä¶”ñ‘ΉžH)ABMEVABMS Viewer ‚Å“®ìŠm”Fς݂ł·BÝ’èƒtƒ@ƒCƒ‹ (bmse_viewer.ini) ‚ª‘¶Ý‚µ‚È‚¢Žž‚ÍA‹N“®Žž‚Éã‹L‚̃\ƒtƒgƒEƒFƒA—p‚Ìݒ肪‘‚©‚ꂽݒèƒtƒ@ƒCƒ‹‚ðŽ©“®¶¬‚µ‚Ü‚·BŽÀsƒtƒ@ƒCƒ‹‚̃pƒX‚ð“K؂Ȃà‚̂ɒ¼‚µ‚ÄŽg—p‚µ‚Ä‚­‚¾‚³‚¢B + + + +EŒ¾Œêƒtƒ@ƒCƒ‹‚ɂ‚¢‚Ä + +lang ƒtƒHƒ‹ƒ_“à‚ÉŠg’£Žq‚ªwinix‚̃tƒ@ƒCƒ‹‚ðì‚ê‚ÎA‹N“®Žž‚ÉŽ©“®“I‚ɓǂݞ‚ÝAOptions ¨ Select Language “à‚ɒljÁ‚³‚ê‚Ü‚·BƒtƒHƒ“ƒg‚Ì•¶ŽšƒZƒbƒg‚ÍŽ©“®“I‚ɃfƒtƒHƒ‹ƒg’l‚ª“ü—Í‚³‚ê‚Ü‚·B + +‰pŒê”ł̌¾Œêƒtƒ@ƒCƒ‹‚ÍŽå‚É Aruhito ‚Æ tokonats ‚Æ sfmddrex ‚ÌŽOl‚Å쬂µ‚Ä‚¢‚Ü‚·B‚Ü‚½A1.1.11 ‚æ‚蓯«‚̃tƒ@ƒCƒ‹‚Í MW ‚³‚ñ‚ɈꕔC³‚µ‚Ä‚¢‚½‚¾‚«‚Ü‚µ‚½B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B‚Ç‚±‚©‚¨‚©‚µ‚È•”•ª‚ª‚ ‚è‚Ü‚µ‚½‚ç’ù³‚µ‚Ä’¸‚¯‚邯‚ ‚肪‚½‚¢‚Å‚·B + +ŠØ‘Œê”ł̌¾Œêƒtƒ@ƒCƒ‹‚Í MW ‚³‚ñ‚É쬂µ‚Ä‚¢‚½‚¾‚¢‚Ä‚¢‚Ü‚·B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B + + + +Eƒe[ƒ}ƒtƒ@ƒCƒ‹‚ɂ‚¢‚Ä + +theme ƒtƒHƒ‹ƒ_“à‚ÉŠg’£Žq‚ªwinix‚̃tƒ@ƒCƒ‹‚ðì‚ê‚ÎA‹N“®Žž‚ÉŽ©“®“I‚ɓǂݞ‚ÝAOptions ¨ Select Theme “à‚ɒljÁ‚³‚ê‚Ü‚·Bƒtƒ@ƒCƒ‹“à‚ÉFX‚Æ‹Lq‚·‚鎖‚ÅAƒIƒuƒWƒF‚ÌF‚⃌[ƒ“‚ÌFA•¶Žš‚È‚Ç‚ðŽ©—R‚ɕς¦‚鎖‚ª‚Å‚«‚Ü‚·B‚È‚¨Adefault.ini ‚ð‘‚«Š·‚¦‚邯ƒo[ƒWƒ‡ƒ“ƒAƒbƒvŽž‚Éã‘‚«‚µ‚Ä‚µ‚Ü‚¤‹°‚ꂪ‚ ‚邽‚ßA•ʂɃtƒ@ƒCƒ‹‚ðì‚邱‚Æ‚ð‚¨‚·‚·‚ß‚µ‚Ü‚·B + +1.1.0 ‚ő啂Ƀe[ƒ}ƒtƒ@ƒCƒ‹‚Ì‘Ž®‚ª‰ü’肳‚ê‚Ü‚µ‚½BƒL[‚²‚Æ‚ÉF‚Ìݒ肪‚Å‚«‚邿‚¤‚ɂȂè‚Ü‚µ‚½‚ªAƒƒ“ƒOƒm[ƒg‚Í‘SƒL[ŒÅ’è‚ɂȂè‚Ü‚µ‚½B‚Ü‚½A•s‰ÂŽ‹ƒIƒuƒWƒF‚ÌF‚Í’ÊíƒIƒuƒWƒF‚ÌF‚©‚玩“®¶¬‚·‚邿‚¤‚ɂȂè‚Ü‚µ‚½ (•‚Ƃ̒†ŠÔF‚ɂȂè‚Ü‚·)B + + + +E’ˆÓ‚·‚邱‚Æ + +­‚µ•Ï‚í‚Á‚½‚â‚è•û‚̬ߒ·ŠÇ—‚ðs‚Á‚Ä‚¢‚Ü‚·B64•ª‰¹•„‚ÅŠ„‚èØ‚ê‚È‚¢¬ß’·‚ÍŽ©“®“I‚ÉŠÛ‚ß‚ç‚ê‚Ä‚µ‚Ü‚¤‚Ì‚ÅA‚²’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B‚Ü‚½A•K—vˆÈã‚É’·‚¢¬ß’·‚ÍŽ©“®“I‚É’Zk‚³‚ê‚Ü‚· (Å‘å16”{)B‚»‚ê‚ç‚Ì•ˆ–Ê‚ð“ǂݞ‚Ü‚¹‚½ê‡AˆÓ}‚µ‚½•ˆ–ʂɂȂç‚È‚¢‚±‚Æ‚ª‚ ‚è‚Ü‚· (sasakure.UK ‚³‚ñ‚ÌwXx‚È‚Ç)B + +‚Ü‚½AŠg’£ BPM •ÏXAƒXƒgƒbƒvƒV[ƒPƒ“ƒX‚Ì”‚Í1295ŒÂ‚܂łµ‚©•Û‘¶‚Å‚«‚Ü‚¹‚ñ (‚»‚êˆÈã’u‚­‚ƕۑ¶Žž‚ɃGƒ‰[‚ªo‚é‚Í‚¸‚Å‚·)B‚½‚¾‚µABPM •ÏX‚͈̔͂ª 1 ` 255 ‚Ì”ÍˆÍ“à‚©‚®”‚ÌꇂÍAŒÃ‚¢ƒ^ƒCƒv‚Ì BPM •ÏX‚ŕۑ¶‚·‚é‚̂Ŗ³ŒÀ‚É’u‚­Ž–‚ª‚Å‚«‚Ü‚·B + + + +Eƒwƒ‹ƒvƒtƒ@ƒCƒ‹‚ɂ‚¢‚Ä + +ì‚é‹C—Í‚ª‚È‚¢‚Ì‚ÅEEEƒSƒƒ“ƒiƒTƒCB’N‚©‘ã‚í‚è‚Éì‚Á‚Ä‚¢‚½‚¾‚¯‚é•û‚ð•åW’†‚Å‚·B + + + +E— ‹Z + +Ebmse.ini ‚Ì Main ƒZƒNƒVƒ‡ƒ““à‚Ì Help ƒL[ ‚Ƀtƒ@ƒCƒ‹–¼‚ð‹Lq‚·‚邱‚Æ‚ÅAƒƒjƒ…[‚Ìwƒwƒ‹ƒvx‚ª—LŒø‚ɂȂè‚Ü‚·B‚½‚¾‚µAbmse.exe ‚Æ“¯ˆÊA‚à‚µ‚­‚͉ºˆÊ‚̃fƒBƒŒƒNƒgƒŠ‚É’u‚©‚È‚¢‚Ƴí‚ÉŽÀs‚Å‚«‚Ü‚¹‚ñB +Ebmse.ini ‚Ì Main ƒZƒNƒVƒ‡ƒ““à‚É Filer ƒL[‚ð’ljÁ‚·‚邱‚Æ‚ÅAw•ÒW’†‚̃fƒBƒŒƒNƒgƒŠ‚ðŠJ‚­x‚Å”CˆÓ‚̃tƒ@ƒCƒ‰‚ð‹N“®‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B +Ebmse.ini ‚Ì ToolBar ƒZƒNƒVƒ‡ƒ““à‚̃L[‚ð•ÏX‚·‚邱‚Æ‚ÅAƒc[ƒ‹ƒo[‚̃JƒXƒ^ƒ}ƒCƒY‚ª‚Å‚«‚Ü‚·B +E•ÒW’†‚É Shift ƒL[‚ð‰Ÿ‚µ‚Á‚ςȂµ‚É‚·‚邯AƒIƒuƒWƒF‚̈ړ®‚ª Y ޲ŒÅ’肳‚ꂽó‘Ô‚Ås‚í‚ê‚Ü‚·B + + + +E‚‚­‚Á‚½‚Ð‚Æ + +Hayana [program] +web -> http://ucn.tokonats.net/ ƒoƒO•ñE—v–]EˆÓŒ©‚Ȃǂ͂±‚¿‚ç‚Ö‚Ç‚¤‚¼B +mail -> ucn@tokonats.net + +AOiRO_Manbow [icon] + + + +EXV—š—ð + +2006”N12ŒŽ27“ú 1.3.8 +Eƒƒjƒ…[‚Ìwƒtƒ@ƒCƒ‹x‚Éw•ÒW’†‚̃fƒBƒŒƒNƒgƒŠ‚ðŠJ‚­x‹@”\‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2006”N11ŒŽ20“ú 1.3.7a +Eenglish.iniAkorean.ini ‚ÌXV (Thanks to MW) + +2006”N11ŒŽ19“ú 1.3.7 +E’è‹`ƒŠƒXƒg‚Ìw‘I‘ðƒtƒ@ƒCƒ‹‚ðƒŠƒl[ƒ€x‚·‚é‹@”\‚ª³í‚É“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2006”N10ŒŽ29“ú 1.3.6 +E‘žƒ‚[ƒhŽžA¬ß‚ð‚Ü‚½‚ª‚Á‚½ƒIƒuƒWƒF‚̋߂­‚É”z’u‚µ‚悤‚Æ‚·‚邯ƒIƒuƒWƒF‚ª‚Á”ò‚ÔƒoƒO‚ðC³ +EY ޲ŒÅ’èˆÚ“®ŽžAƒOƒŠƒbƒhˆê‚•ª‚¾‚¯ƒYƒŒ‚邱‚Æ‚ª‚ ‚Á‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2006”N10ŒŽ24“ú 1.3.5 +EY ޲ŒÅ’èˆÚ“®‚ª“®‚©‚È‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³ +EƒAƒ“ƒhƒDEƒŠƒhƒDŽž‚Ɉړ®E’ljÁE’uŠ·E휂³‚ê‚Ä‚¢‚½ƒIƒuƒWƒF‚ð‘I‘ð‚·‚é‚æ‚¤‚É•ÏX +E’uŠ·‚µ‚½ƒIƒuƒWƒF‚à‘I‘ð‚³‚ê‚邿‚¤‚É•ÏX +E‚»‚Ì‘¼C³ + +2006”N9ŒŽ26“ú 1.3.4 +EVB6 ‚̃oƒO‚É‹Nˆö‚·‚錩‚½–Ú–Ê”’‚¢‚¯‚Ç[‚ȃoƒO‚ÌC³ + +2006”N8ŒŽ3“ú 1.3.3 +EwŒŸõEíœE’uŠ·x‚Å 2 Player ‚Ì 7 ‚Æ SC ‚Ì‘I‘ð‚ª³‚µ‚­s‚í‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2006”N3ŒŽ23“ú 1.3.2 +EŒ¾Œêƒtƒ@ƒCƒ‹‚ÌwCONTEXT_LIST_DELETEx‚ª“K—p‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +EMCI ‚Ì͂ŠWAV ƒtƒ@ƒCƒ‹‚ðwWaveAudioxAMP3EOgg ƒtƒ@ƒCƒ‹‚ðwMPEGVideox‚Æ–¾Ž¦“I‚ÉŽw’è‚·‚邿‚¤‚É•ÏX +Eƒ‰ƒ“ƒ_ƒ€‚ðŽg—p‚µ‚½ BMS ‚ð“ǂݞ‚ñ‚¾Žž‚É‚¦‚ç‚¢‚±‚ƂɂȂÁ‚Ä‚¢‚½ƒoƒO‚ðC³ +Eƒ‰ƒ“ƒ_ƒ€“à‚̃IƒuƒWƒF‚Í“à—e‚ÉŠÖ‚í‚炸‘S‚ÄŠg’£–½—߈µ‚¢‚É•ÏX +EShift ƒL[‚ð‰Ÿ‚µ‚È‚ª‚ç +E- ƒL[‚ÅƒŠƒXƒg‚ð3‚ˆړ®‚·‚é‹@”\‚ð’ljÁ +ECtrl ƒL[‚ð‰Ÿ‚µ‚È‚ª‚ç +E- ƒL[‚ÅƒŠƒXƒg‚ð“ü‚ê‘Ö‚¦‚é‹@”\‚ð’ljÁ (Shift ƒL[‚Ƃ̕¹—p‚à‰Â”\) +E‘žƒ‚[ƒhŽžAw‰EƒNƒŠƒbƒN‚ŃIƒuƒWƒF‚ð휂·‚éx‚ªƒIƒ“‚Å‚à휂ł«‚È‚­‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³ +EƒXƒNƒ[ƒ‹ƒo[‚Ì”wŒiF‚ª^‚Á”’‚ɂȂÁ‚Ä‚¢‚½‚Ì‚ðC³ +Ekorean.ini ‚ÌC³ (Thanks to MW) +EŒ©‰h‚¦‚ðFX‚Æ•ÏX +Eƒƒjƒ…[‚Ì•\ަ‚ɃXƒe[ƒ^ƒXƒo[‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚ɃXƒe[ƒ^ƒXƒo[•\ަ‚̃L[‚ð’ljÁ (Menu ƒZƒNƒVƒ‡ƒ“‚Ì VIEW_STATUS_BAR ƒL[) +EShift + ‰EƒNƒŠƒbƒN‚ŃIƒuƒWƒF‚̔Ԇ‚ðƒRƒs[‚·‚é‹@”\‚ð’ljÁ +E•ÏŠ·ƒEƒBƒU[ƒh‚Éwƒtƒ@ƒCƒ‹–¼‚Ń\[ƒg‚·‚éx‹@”\‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚Ƀtƒ@ƒCƒ‹–¼ƒ\[ƒg‚̃L[‚ð’ljÁ (Convert ƒZƒNƒVƒ‡ƒ“‚Ì CHK_SORT_BY_NAME ƒL[) +E‚»‚Ì‘¼C³ + +2005”N11ŒŽ15“ú 1.3.1 +E•\ަ‚‚³‚ð•ÏX‚µ‚Ä‚¢‚鎞‚Éw¬ß‚ÌíœE‘}“üx‚ª•ςȈʒu‚ɑ΂µ‚Äs‚í‚ê‚éƒoƒO‚ðC³ + +2005”N11ŒŽ9“ú 1.3.0 +EƒIƒuƒWƒF‚ªˆÚ“®’†‚É‚«”ò‚ÔƒoƒO‚ðC³ +E‰æ‘œˆÈŠO‚̃tƒ@ƒCƒ‹‚ðƒvƒŒƒrƒ…[‚µ‚½Žž‚É‹­§I—¹‚·‚éƒoƒO‚ðC³ +EŒŸõƒEƒBƒ“ƒhƒEAƒvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚ðÅ‘O–Ê•\ަ‚·‚邿‚¤‚É•ÏX +Eƒc[ƒ‹ƒo[‚ðƒtƒ‰ƒbƒg‚É•ÏX +E•\ަ‚‚³E•\ަ•‚Ì”{—¦‚ð 0.5 ‚݂ɕÏX +E•\ަ‚‚³‚ÌãŒÀ‚ð x5.0 ‚©‚ç x4.0 ‚É•ÏX +E•\ަ‚‚³E•\ަ•‚ðƒc[ƒ‹ƒo[‚Ɉړ® +EŒ¾Œêƒtƒ@ƒCƒ‹‚ðˆê•”•ÏX (Header ƒZƒNƒVƒ‡ƒ“ ‚Ì CONFIG_HEIGHTECONFIG_WIDTH ƒL[‚ð ToolBar ƒZƒNƒVƒ‡ƒ“‚Ì DISP_HEIGHTEDISP_WIDTH ƒL[‚É•ÏXAHeader ƒZƒNƒVƒ‡ƒ“‚Ì CONFIG_DEFAULT ƒL[‚ðíœ) +EBPM ‚̃fƒtƒHƒ‹ƒg’l‚ð 120 ‚©‚ç 130 ‚É•ÏX +EŒ©‰h‚¦‚ðFX‚Æ•ÏX +E‰¹ºˆÈŠO‚̃tƒ@ƒCƒ‹‚ðĶ‚µ‚悤‚Æ‚µ‚½Žž‚ɃƒbƒZ[ƒW‚ðo‚³‚È‚¢‚悤‚É•ÏX +Eƒrƒ…[ƒÝ’èƒEƒBƒ“ƒhƒE‚ªƒoƒO‚¾‚炯‚¾‚Á‚½‚Ì‚ÅC³ +E13Keys (Oct) ‚Ƀtƒbƒgƒpƒlƒ‹‚ð’ljÁ‚µA13Keys (oct/fp) ‚Ƀpƒ[ƒAƒbƒv +E13Keys (oct/fp) —pƒe[ƒ}ƒtƒ@ƒCƒ‹‚ð’ljÁ +EƒIƒuƒWƒF’P‘Ì‘I‘ðŽž‚É BGA ‚àƒvƒŒƒrƒ…[‚Å‚«‚邿‚¤‚É•ÏX +EŒ¾Œêƒtƒ@ƒCƒ‹‚ðˆê•”•ÏX (Menu ƒZƒNƒVƒ‡ƒ“‚Ì OPTIONS_SINGLE_SELECT_SOUND ‚©‚ç OPTIONS_SINGLE_SELECT_PREVIEW ‚É•ÏXAƒVƒ‡[ƒgƒJƒbƒgƒL[‚à S ‚©‚ç P ‚É•ÏX) +E•\ަ‚‚³E•\ަ•‚Ì”{—¦‚ð x0.01 ` x16.00 ‚Ì”CˆÓ‚Ì’l‚É•ÏX‚·‚é‹@”\‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚É•\ަ”{—¦‚Ì“ü—̓ƒbƒZ[ƒW‚̃L[‚ð’ljÁ (Input ƒZƒNƒVƒ‡ƒ“‚Ì INPUT_SIZE ƒL[) +E“ü—̓tƒH[ƒ€‚Å~ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚àƒLƒƒƒ“ƒZƒ‹‚³‚ê‚È‚¢ƒoƒO‚ðC³ +E“ü—̓tƒH[ƒ€‚ɃLƒƒƒ“ƒZƒ‹ƒ{ƒ^ƒ“‚ð’ljÁ +E‚’¼ƒXƒNƒ[ƒ‹ƒo[•ª‰ð”\Ž©“®Ø‚è‘Ö‚¦‹@”\‚ð’ljÁ +E‚’¼ƒXƒNƒ[ƒ‹—ÊØ‚è‘Ö‚¦‹@”\‚ð’ljÁ (‰B‚µ‹@”\) +EƒIƒuƒWƒF‚ðˆÚ“®‚µ‚È‚ª‚çƒXƒNƒ[ƒ‹‚ðŽÀ‘•I +Eƒo[ƒWƒ‡ƒ“î•ñ‚ɃRƒ“ƒpƒCƒ‹“úŽž‚ð•\‹L (ƒfƒoƒbƒO—p) +E‘žƒ‚[ƒhŽž‚ÉŠù‚É’u‚¢‚Ä‚ ‚éƒIƒuƒWƒF‚É‹z‚¢ž‚Ü‚ê‚éƒoƒO‚ªÄ”­‚µ‚Ä‚¢‚½‚Ì‚ðC³ +E‚¢‚­‚‚©‚̈—‚ÌŒ©’¼‚µ +E‹N“®ˆ—‚É5‰ñˆÈ㎸”s‚µ‚½‚ç’ú‚ß‚é‹@”\‚ð’ljÁ +Eƒtƒ@ƒCƒ‹–¼‚ð˜A”Ԃɕϊ·‚·‚é‹@”\‚ª•œŠˆ +E‚¢‚­‚‚©‚Ì "’n–¡‚È" ‹@”\‚ðw•ÏŠ·ƒEƒBƒU[ƒhx‚Æ‚µ‚Ä“‡ (–¢Žg—p’è‹`‚ÌíœAƒIƒuƒWƒF‚Ì®—ñAƒtƒ@ƒCƒ‹–¼˜A”Ô•ÏŠ·) +EƒtƒHƒ‹ƒ_“à‚ÌŽg—p‚µ‚Ä‚¢‚È‚¢ƒtƒ@ƒCƒ‹‚ð휂·‚é‹@”\‚ð’ljÁ (•ÏŠ·ƒEƒBƒU[ƒh“à) +EŒ¾Œêƒtƒ@ƒCƒ‹‚̈ꕔ•ÏX (Convert ƒZƒNƒVƒ‡ƒ“‚ð’ljÁAMenu ƒZƒNƒVƒ‡ƒ“‚Ì FILE_DELETE_UNUSED_FILEEFILE_CONVERT_FILENAMEEFILE_ALIGN_LIST ƒL[‚ðíœAMessage ƒZƒNƒVƒ‡ƒ“‚É INFO_DELETE_FILE ƒL[‚ð’ljÁAMessage ƒZƒNƒVƒ‡ƒ“‚Ì INFO_CONFIRMEERROR_FILE_ALREADY_EXIST ƒL[‚ðíœ) +E–¢Žg—p’è‹`‚Ì휂ð‚â‚è’¼‚µ‚Å‚«‚邿‚¤‚É•ÏX +EƒvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚ð•\ަ’†‚ÉÄ“x•\ަƒ{ƒ^ƒ“‚ð‰Ÿ‚·‚ƃvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚ð•‚¶‚邿‚¤‚É•ÏX +EƒvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚Ì X ˆÊ’uEY ˆÊ’u‚ð•Û‘¶‚·‚邿‚¤‚É•ÏX +E•\ަƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Žž‚ɃvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚̈ʒuE‘å‚«‚³‚ð‰Šú‰»‚µ‚È‚¢‚悤‚É•ÏX +E‚»‚Ì‘¼C³ + +2005”N8ŒŽ26“ú 1.2.5 +E•ÒWƒ‚[ƒh‚Å Shift ƒL[‚ð‰Ÿ‚µ‚Ä‚¢‚éŠÔ‚̓IƒuƒWƒF‚̈ړ®‚ªY޲ŒÅ’è‚ɂȂé‹@”\‚ð’ljÁ +Eƒeƒ“ƒL[ 0 ` 6 ‚ŃOƒŠƒbƒh‚ðØ‚è‘Ö‚¦‚é‹@”\‚ð’ljÁ (FREE, 8, 16, 32, 6, 12, 24) +EwƒIƒuƒWƒF‚̈ړ®‚̓OƒŠƒbƒh‚É‚ ‚킹‚éx‚ªƒIƒ“‚ÌŽž‚̓IƒuƒWƒFˆÚ“®’†‚Å‚à‹¸³‚·‚邿‚¤‚ÉC³ +E‚»‚Ì‘¼C³ + +2005”N8ŒŽ9“ú 1.2.4 +EWAV ƒtƒ@ƒCƒ‹‚̃vƒŒƒrƒ…[‚ª‚¿‚å‚Á‚Æ‚¨‚©‚µ‚È‚±‚ƂɂȂÁ‚Ä‚¢‚½ƒoƒO‚ðC³ + +2005”N8ŒŽ7“ú 1.2.3 +E‘‚«ž‚݃‚[ƒhŽž‚ɃIƒuƒWƒFˆÊ’u‚ª‚¸‚ê‚éƒoƒO‚ðC³ +EWAV ƒtƒ@ƒCƒ‹‚ÌĶ‚ªI‚í‚Á‚½Žž‚É WAV ƒtƒ@ƒCƒ‹‚ð‰ð•ú‚·‚邿‚¤‚ÉC³ + +2005”N7ŒŽ28“ú 1.2.2 +Eenglish.ini ‚¨‚æ‚Ñ korean.ini ‚ÌC³ (Thanks to MW) +Eƒc[ƒ‹ƒo[‚ÉuReloadv‚ð’ljÁ (‰B‚µ‹@”\) +Eƒc[ƒ‹ƒo[‚ÌuŠJ‚­v‚ðŠg’£ +Eƒc[ƒ‹ƒo[ƒAƒCƒRƒ“‚̈ꕔ‚ð•ÏX +E‚»‚Ì‘¼C³ + +2005”N7ŒŽ21“ú 1.2.1 +Eƒwƒbƒ_î•ñ‚ð•ÏX‚µ‚½Œã•Û‘¶‚µ‚ÄI—¹‚µ‚悤‚Æ‚·‚邯•Û‘¶‚𑣂·ƒƒbƒZ[ƒW‚ªoŒ»‚·‚éƒoƒO‚ðC³ +EƒIƒuƒWƒF‘I‘ðŽž‚ÉƒOƒŠƒbƒh‚ɇ‚킹‚Ĉړ®‚³‚ê‚½ŽžA•ÏXƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +E”Žq‚ð•ÏX‚µ‚½Žž‚É•ÏXƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2005”N6ŒŽ2“ú 1.2.0 +EƒIƒuƒWƒF‚Ì’uŠ·‚ðs‚Á‚½Žž‚Ƀtƒ@ƒCƒ‹‚ª•ÏX‚³‚ê‚Ä‚¢‚邯”Fޝ‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +Eu’è‹`ƒŠƒXƒg‚Ì®—ñv‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚Éã‚Ì‹@”\‚ÉŠÖ‚·‚éƒL[‚ð’ljÁ (File ƒZƒNƒVƒ‡ƒ“‚Ì FILE_ALIGN_LIST ƒL[AMessage ƒZƒNƒVƒ‡ƒ“‚Ì INFO_ALIGN_LIST ƒL[) +EBGA ƒvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚É Copy ‹@”\‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚É“™•ƒtƒHƒ“ƒg‚̃L[‚ð’ljÁ (Main ƒZƒNƒVƒ‡ƒ“‚Ì FixedFont ƒL[) +Ejapanese.iniAenglish.ini ‚̃fƒtƒHƒ‹ƒgƒtƒHƒ“ƒg‚ð•ÏX +E‚»‚Ì‘¼C³ + +2005”N3ŒŽ28“ú 1.1.11 +Eenglish.ini ‚¨‚æ‚Ñ korean.ini ‚ÌC³ (Thanks to MW) +Eƒtƒ@ƒCƒ‹‚ðŠJ‚­ƒ_ƒCƒAƒƒO‚ªˆê•”“ú–{Œê‚̂܂܂¾‚Á‚½ƒoƒO‚ðC³ +Eƒtƒ@ƒCƒ‹‚ðŠJ‚­ƒ_ƒCƒAƒƒO“à‚̃tƒ@ƒCƒ‹‚ÌŽí—Þ‚ÉuAll files (*.*)v‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2005”N3ŒŽ15“ú 1.1.10 +EŒŸõ / ’uŠ· / 휂Åu‘I‘ð‚³‚ê‚Ä‚¢‚éƒIƒuƒWƒFv‚ª“®‚©‚È‚©‚Á‚½ƒoƒO‚ðC³ +EŒŸõ / ’uŠ· / 휃EƒBƒ“ƒhƒE‚É’ˆÓ‘‚«‚ð’ljÁ +EŒ¾Œêƒtƒ@ƒCƒ‹‚ÉŒŸõ / ’uŠ· / 휃EƒBƒ“ƒhƒE‚Ì’ˆÓ‘‚«‚̃L[‚ð’ljÁ (Find ƒZƒNƒVƒ‡ƒ“‚Ì LBL_NOTICE ƒL[) +Eƒtƒ@ƒCƒ‹”Ô†‚Ì’uŠ·‚ɑ΂µ‚ÄuŒ³‚É–ß‚· / ‚â‚è’¼‚µv‚ª‚Å‚«‚È‚¢ƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N3ŒŽ8“ú 1.1.9 +Euƒtƒ@ƒCƒ‹–¼‚ð˜A”Ô (01 - ZZ) ‚ɕϊ·v‚ªƒoƒO‚è‚·‚¬‚Ď肪‚‚¯‚ç‚ê‚È‚¢‚̂ŎÀs‚Å‚«‚È‚¢‚悤‚É•ÏX +EBGA ƒvƒŒƒrƒ…[Žž‚É‹­§I—¹‚·‚邱‚Æ‚ª‚ ‚éƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N2ŒŽ25“ú 1.1.8 +Eu–¢Žg—p WAV / BMP / BGA ‚Ìíœv‚ª‚Ü‚¾FX‚ƃoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ + +2005”N2ŒŽ25“ú 1.1.7 +Eu–¢Žg—p WAV / BMP / BGA ‚Ìíœv‚ª‚³‚ç‚ÉFX‚ƃoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‘žƒ‚[ƒhŽž‚Éd‚È‚é‚æ‚¤‚ȃIƒuƒWƒF‚ð’u‚¯‚È‚©‚Á‚½ƒoƒO‚ðC³ +E•\ަ•E•\ަ‚‚³‚𬂳‚­‚µ‚Ä‚¢‚½Žž‚ɔ͈͑I‘ð‚·‚é‚Æ‹­§I—¹‚·‚éƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N2ŒŽ14“ú 1.1.6 +EƒIƒuƒWƒFˆÚ“®Žž‚É‚àƒXƒe[ƒ^ƒXƒo[‚ðXV‚·‚邿‚¤‚É•ÏX +E‚»‚Ì‘¼C³ + +2005”N2ŒŽ11“ú 1.1.5 +EƒIƒuƒWƒF‘I‘𒆂ɶƒNƒŠƒbƒN‚ð˜A‘Å‚·‚邯‹­§I—¹‚·‚éƒoƒO‚ðC³ +EShift ƒL[ACtrl ƒL[‚ð‰Ÿ‚µ‚½Žž / —£‚µ‚½Žž‚É‚·‚®ƒIƒuƒWƒF‚Ìó‘Ô‚ª•Ï‚í‚邿‚¤‚ÉC³ +ECtrl ƒL[‚ð‰Ÿ‚µ‚½Žž‚ɉº‚Ìî•ñ‚ªÁ‚¦‚Ä‚¢‚½ƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N2ŒŽ2“ú 1.1.4 +Eu–¢Žg—pWAV / BMP / BGA‚ÌíœvƒRƒ}ƒ“ƒh‚ªFX‚ƃoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N1ŒŽ27“ú 1.1.3 +EŠØ‘Œê‚ÌŒ¾Œêƒtƒ@ƒCƒ‹‚ð’ljÁ (Thanks to MW) +Eƒc[ƒ‹ƒo[‚©‚烂[ƒh‚ð•ÏX‚·‚邯¶‰º‚Ì•\ަ‚ª‹­§“I‚É“ú–{Œê‚ɂȂÁ‚Ä‚¢‚½ƒoƒO‚ðC³ +E#BMPE#BGA ‚ÌÁ‹Žƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½Žž‚É‹­§I—¹‚·‚éƒoƒO‚ðC³ +EBPMESTOP “ü—̓EƒBƒ“ƒhƒE‚ÉŠÔˆá‚Á‚½•¶Žš—ñ‚ª•\ަ‚³‚ê‚Ä‚¢‚½ƒoƒO‚ðC³ +ECtrl ‚ð‰Ÿ‚µ‚È‚ª‚ç”͈͑I‘ð‚ŒljÁ‘I‘ð‚Å‚«‚邿‚¤‚É•ÏX +EBPMESTOP “ü—̓EƒBƒ“ƒhƒE‚ð•\ަ‚µ‚½Žž‚ÉI—¹‚Å‚«‚È‚­‚È‚éƒoƒO‚ðC³ +EHome ƒL[EEnd ƒL[‚ňړ®‚Å‚«‚é‹@”\‚ð’ljÁ +E”͈͑I‘ðŽžA‘I‘ðς݂̃IƒuƒWƒF‚ð‚³‚ç‚É‘I‘ð‚µ‚½ê‡‚Í–¢‘I‘ðó‘Ô‚É–ß‚·‚悤‚É•ÏX +Eƒo[ƒWƒ‡ƒ“î•ñ‚ªFX‚ƃoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N1ŒŽ18“ú 1.1.2 +Eˆê•”‚ÉŒ¾Œêƒtƒ@ƒCƒ‹‚ÅŽw’肵‚½ƒtƒHƒ“ƒg‚ª“K—p‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2005”N1ŒŽ17“ú 1.1.1 +EŽqƒEƒBƒ“ƒhƒE‚ð•‚¶‚邯Œ¾Œêƒtƒ@ƒCƒ‹‚Ì“K—p‚ªƒŠƒZƒbƒg‚³‚ê‚éƒoƒO‚ðC³ +EŽqƒEƒBƒ“ƒhƒE‚ÌoŒ»ˆÊ’u‚ª‚¨‚©‚µ‚­‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2005”N1ŒŽ13“ú 1.1.0 +EFX‚ȃL[‚ð‰Ÿ‚µ‚½‚Æ‚«‚É…•½ƒXƒNƒ[ƒ‹ƒo[‚̈ʒu‚ªƒŠƒZƒbƒg‚³‚ê‚éƒoƒO‚ðC³ +EˆÚ“®‚µ‚½ƒIƒuƒWƒF‚ª‘¼‚̃IƒuƒWƒF‚̉º‚ɉñ‚肱‚Þ‚±‚Æ‚ª‚ ‚Á‚½ƒoƒO‚ðC³ +EƒIƒuƒWƒF‚ðˆÚ“®‚µ‚Ä‚¢‚È‚­‚Ä‚àƒAƒ“ƒhƒD‚̃JƒEƒ“ƒ^‚ªã¸‚·‚éƒoƒO‚ðC³ +Eƒe[ƒ}ƒtƒ@ƒCƒ‹‚Ì‘Ž®‚ð‘å•‚É•ÏX +EPMS —pƒfƒtƒHƒ‹ƒgƒe[ƒ}ƒtƒ@ƒCƒ‹‚𓯫 +E‰EƒNƒŠƒbƒN‚ŃIƒuƒWƒF‚ð휂·‚é‹@”\EƒIƒvƒVƒ‡ƒ“‚ð’ljÁ +EÁ‹Žƒ‚[ƒh‚ŘA‘Å‚·‚邯ƒIƒuƒWƒF‚ª‚Ç‚ñ‚Ç‚ñÁ‚¦‚éƒoƒO‚ðC³ +E‘I‘ð”͈͂ðo‚µ‚Ä‚¢‚鎞‚ɃL[‘€ì‚ňړ®‚·‚邯‘I‘ð”͈͂̕`‰æ‚ª‚¨‚©‚µ‚­‚È‚éƒoƒO‚ðC³ +E¬ß’·‚Ì’l‚É‚æ‚Á‚Ä‹­§I—¹‚·‚邱‚Æ‚ª‚ ‚Á‚½ƒoƒO‚ðC³ +EŒ¾Œêƒtƒ@ƒCƒ‹‚ɃtƒHƒ“ƒg‚ðŽw’è‚·‚éƒL[‚ð’ljÁ (Main ƒZƒNƒVƒ‡ƒ“‚Ì Font ƒL[) +EŒ¾Œêƒtƒ@ƒCƒ‹‚ɉEƒNƒŠƒbƒN휂̃IƒvƒVƒ‡ƒ“‚̃L[‚ð’ljÁ (Menu ƒZƒNƒVƒ‡ƒ“‚Ì OPTIONS_RIGHT_CLICK_DELETE ƒL[) +EŒ¾Œêƒtƒ@ƒCƒ‹‚ÉŒŸõ / ’uŠ· / 휃EƒBƒ“ƒhƒE‚Ìu`v‚̃L[‚ð’ljÁ (Find ƒZƒNƒVƒ‡ƒ“‚Ì LBL_DASH ƒL[) +E‚»‚Ì‘¼C³ + +2004”N12ŒŽ24“ú 1.0.4 +EuŠg’£’è‹`‚ðŽg—p‚µ‚È‚¢v‚ª—LŒø‚ÈŽž‚É WAV ‚ð“o˜^‚µ‚Ä‚à•Û‘¶Žž‚É”½‰f‚³‚ê‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2004”N12ŒŽ23“ú 1.0.3 +EWAV ‚ÌƒŠƒXƒgƒ{ƒbƒNƒX‚ðƒ_ƒuƒ‹ƒNƒŠƒbƒN‚µ‚½Žž‚É“o˜^ƒEƒBƒ“ƒhƒE‚ªo‚È‚­‚È‚Á‚Ä‚¢‚½ƒoƒO‚ðC³ + +2004”N12ŒŽ22“ú 1.0.2 +E£ / ¥ƒ{ƒ^ƒ“‚Ì“®ì‚ª‚¨‚©‚µ‚©‚Á‚½ƒoƒO‚ðC³ + +2004”N12ŒŽ21“ú 1.0.1 +E•\ަ•‚ªƒfƒtƒHƒ‹ƒg’lˆÈŠO‚ÌŽž‚É‘I‘ð / ‘ž / Á‹Ž‚ªƒYƒŒ‚éƒoƒO‚ðC³ +E“Á’è‚Ì󋵂Åu‚â‚è’¼‚µv‚ðs‚¤‚Æ‹­§I—¹‚·‚éƒoƒO‚ðC³ + +2004”N12ŒŽ20“ú 1.0.0 +EPMS / Oct‚ɑΉž (‚¨‚Ü‚¯‹@”\‚ɂ‚«ƒTƒ|[ƒg‚È‚µ) +Eƒe[ƒ}ƒtƒ@ƒCƒ‹‚ð‚¿‚å‚Á‚ÆŠg’£ (ƒGƒ‰[‚ªo‚éê‡‚Í KEY_WHITE, KEY_BLACK, SCRATCH ‚Ì Text ‚ðC³‚µ‚Ä‚­‚¾‚³‚¢) +EŒ³‚É–ß‚· / ‚â‚è’¼‚µ‹@”\‚ð’ljÁ +EƒRƒs[EØ‚èŽæ‚è‚Ì‚‘¬‰» +E¬ß‘}“ü / ¬ß휋@”\‚ªƒoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +Eƒo[ƒWƒ‡ƒ“î•ñ‚ð’ljÁ +EŽÀsƒtƒ@ƒCƒ‹‚ð UPX ˆ³k‚µ‚Ă݂é (‹N“®‚µ‚È‚¢‚Ȃǂ̕s‹ï‡‚ª‚ ‚Á‚½‚ç•ñ‚¨Šè‚¢‚µ‚Ü‚·) +EˆÚ“®’†‚̃IƒuƒWƒF‚ª¶‰E‚Ì’[‚©‚ç‚Í‚Ýo‚Ä‚àÁ‚¦‚È‚¢‚悤‚É•ÏX +EƒŠƒXƒg‰EƒNƒŠƒbƒN‚Å WAV / BMP ‚̃tƒ@ƒCƒ‹–¼‚ð•Ï‚¦‚é‹@”\‚ð’ljÁ +EƒŠƒXƒg‰EƒNƒŠƒbƒN‚Ƀtƒ@ƒCƒ‹‚ÌŽw’è / ƒLƒƒƒ“ƒZƒ‹‹@”\‚ð’ljÁ +Eƒtƒ@ƒCƒ‹–¼‚ð˜A”Ԃɕϊ·‚·‚é‹@”\‚ð’ljÁ +E‚â‚Á‚ƃx[ƒ^‚ªŽæ‚ê‚Ü‚µ‚½ +E‚»‚Ì‘¼C³ + +2004”N12ŒŽ14“ú Beta 10 +E#WAV / #BMP ‚Ƀtƒ‹ƒpƒX‹Lq‚µ‚Ä‚àƒGƒ‰[‚ª”­¶‚µ‚È‚¢‚悤‚ÉC³ +E£ / ¥ƒ{ƒ^ƒ“‚ÌŽÀ‘• +E‹N“®Žž‚É­‚µ‚Å‚à‰æ–Ê‚©‚ç‚Í‚Ýo‚Ä‚¢‚½‚ç‰æ–Ê“à‚ɉŸ‚µ–ß‚·‚悤‚É•ÏX +EƒtƒHƒ“ƒgƒTƒCƒY‚ª 96dpi ˆÈŠO‚ÌŽž‚Å‚à³í‚É•\ަ‚Å‚«‚邿‚¤‚ÉC³ +EƒeƒLƒXƒgƒ{ƒbƒNƒX‚ɃtƒH[ƒJƒX‚ª‚ ‚鎞‚É Ctrl + C / V / XA‚¨‚æ‚Ñ Del ƒL[‚ª–³Œø‚ɂȂÁ‚Ä‚¢‚½ƒoƒO‚ðC³ +E‚¢‚­‚‚©‚Ì[‚ȃoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N11ŒŽ20“ú Beta 9 +EŠg’£’è‹`‚ðŽg—p‚µ‚È‚¢Žž‚ɉE‰º‚Ì WAV ”Ô†‚ª³í‚É•\ަ‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +EŠg’£’è‹`‚ðŽg—p‚µ‚È‚¢Žž‚É‘žƒ‚[ƒh‚ª³í‚É“®ì‚µ‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +EˆÚ“®’†‚ɉæ–ÊŠO‚Éo‚½ƒIƒuƒWƒF‚ªÁ‚¦‚Ä‚¢‚½ƒoƒO‚ðC³ +Eƒn[ƒtŽž‚É1ƒL[‚Ì•\ަˆÊ’u‚ª­‚µ‚¸‚ê‚Ä‚¢‚½ƒoƒO‚ðC³ +Eƒrƒ…[ƒ‚ÌÝ’èƒEƒBƒ“ƒhƒE‚ðì‚Á‚Ă݂é +EWAview ‚ɑΉž +EƒNƒŠƒbƒvƒ{[ƒh‚ɉ½‚à‚È‚¢Žž‚Éu“\‚è•t‚¯v‚ðs‚¤‚Æ‹­§I—¹‚·‚éƒoƒO‚ðC³ +Eƒ‰ƒ“ƒQ[ƒWƒtƒ@ƒCƒ‹‚Ì“K—p”͈͂ð‘å•‚É‘‰Á (Special Thanks: Aruhito) +Eƒrƒ…[ƒ‚ª‹N“®‚µ‚È‚­‚È‚éƒoƒO‚ðC³ +EƒOƒŠƒbƒh•‚ª‰Šú’lˆÈŠO‚¾‚Á‚½‚Æ‚«‚É‘I‘ð”͈͂ªƒYƒŒ‚éƒoƒO‚ðC³ +EŒ¾Œêƒtƒ@ƒCƒ‹‚Ì .lng ‚Á‚Ä‚¢‚¤Šg’£Žq‚ªˆÓ–¡•s–¾‚Ȃ̂Š.ini ‚É•ÏX +Eƒe[ƒ}ƒtƒ@ƒCƒ‹‚ɑΉž +E‚»‚Ì‘¼C³ + +2004”N11ŒŽ7“ú Beta 8 +EƒOƒŠƒbƒh‚ª FREE ‚ÌŽž‚ɃIƒuƒWƒF‚ðˆÚ“®‚µ‚悤‚Æ‚·‚邯ƒGƒ‰[‚ªo‚éƒoƒO‚ðC³ +EŠg’£ BPM –½—ß‚¨‚æ‚Ñ STOP –½—ß‚ð256ŒÂˆÈãŽg‚Á‚½Žž‚ɳ‚µ‚­•Û‘¶‚Å‚«‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +E#WAV / #BMP / #BGA ‚ÌŠg’£’è‹`‚ðŽg—p‚µ‚È‚¢‹@”\‚ð’ljÁ (á’á›‚à‚¿‚̊댯«‘å) +EBMS ‚̃vƒŒƒrƒ…[‚Å #PATH_WAV ‚ðŽg—p‚¹‚¸A•ÒW’†‚Ì BMS ‚Ì‚ ‚éƒtƒHƒ‹ƒ_‚ɶ¬‚·‚邿‚¤‚É•ÏX +EŠO•”ƒrƒ…[ƒ‚Ì’è‹`‚ɉ¼‘Ήž (‚»‚ê‚É”º‚¢AuBMplay ‚Ì“¯«‚ðI—¹‚µ‚Ü‚µ‚½) +E‚»‚Ì‘¼C³ + +2004”N11ŒŽ1“ú Beta 7 +E#BGAA¬ß’·‚Ì“ü—Í•û–@‚ð•Ï‚¦‚Ă݂é +EƒIƒuƒWƒF‚Ì휂̂‘¬‰» +EBGA ‚̃vƒŒƒrƒ…[•\ަ‚ª‚¨‚©‚µ‚©‚Á‚½ƒoƒO‚ðC³ +EŒŸõEíœE’uŠ·‚ð’ljÁ +EƒIƒuƒWƒF‚ð Ctrl ‚ð‰Ÿ‚µ‚È‚ª‚çƒhƒ‰ƒbƒO‚·‚邯ƒRƒs[‚µ‚Ĉړ®‚·‚é‹@”\‚ð’ljÁ +E•`‰æ‚Ü‚í‚è‚Ì‘å‰üC +EƒIƒuƒWƒF‚Ƀtƒ@ƒCƒ‹–¼‚ð•\ަ‚·‚éƒIƒvƒVƒ‡ƒ“‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2004”N10ŒŽ19“ú Beta 6 +E’è‹`ƒ^ƒu‚ð2’i‚É•ª‚¯‚Ă݂é +EƒTƒEƒ“ƒh‚̃vƒŒƒrƒ…[‚ÉŽg‚¤ API ‚ð PlaySound ‚©‚ç mciSendString ‚É•ÏX (ˆê•”‚Ì WAVEMP3 ‚Ȃǂª–‚点‚邿‚¤‚ɂȂè‚Ü‚µ‚½) +EBMSE ‚Ƀhƒƒbƒv‚µ‚½ BMS ‚ªuŋߓǂݞ‚ñ‚¾BMSv‚É“ü‚Á‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +EBMP / BGA ƒvƒŒƒrƒ…[‹@”\‚Ì‹­‰» +E‘I‘ðς݃IƒuƒWƒF‚ðƒNƒŠƒbƒN‚µ‚½‚Æ‚«‚à‰¹‚ð–‚炷‚悤‚É•ÏX +EGIF ƒtƒ@ƒCƒ‹‚ɑΉž +EƒvƒŒƒrƒ…[ƒEƒBƒ“ƒhƒE‚É BMP / JPG / GIF ƒtƒ@ƒCƒ‹‚ðƒhƒƒbƒv‚·‚邯ŠÈˆÕƒvƒŒƒrƒ…[‚Å‚«‚é‹@”\‚ð’ljÁ +E•`‰æ‘¬“x‚̉ü‘P +E‚»‚Ì‘¼C³ + +2004”N9ŒŽ22“ú Beta 5 +EƒIƒuƒWƒF‚̈ړ®‚ðƒOƒŠƒbƒh‚É‚ ‚킹‚é (BMSCŒÝŠ·) / ‚ ‚킹‚È‚¢ (GDACŒÝŠ·) ƒIƒvƒVƒ‡ƒ“’ljÁ +E‰EƒNƒŠƒbƒN‚Ŭ߂̑}“ü / 휂ª‚Å‚«‚é‹@”\‚ð’ljÁ (‚¿‚å‚Á‚Æ•|‚¢‚̂ŎÀs‘O‚É•K‚¸•Û‘¶‚µ‚Ä‚¨‚«‚Ü‚µ‚傤) +EuGridv‚Æu•â•v‚ª‹t‚ɂȂÁ‚Ä‚¢‚½‚Ì‚ðC³ +Eu–¢Žg—pWAV / BMP / BGA‚Ìíœv‹@”\‚ð’ljÁ +E•\ަ‚·‚é¬ß‚ð‘S‚Ä‚©‚ç§ŒÀ‚·‚邿‚¤‚É•ÏX +EuŠg’£vƒ^ƒu’ljÁ (”ñ‘Ήž–½—ß‚ðo—Í‚µ‚Ü‚·) +EƒAƒNƒeƒBƒuŽž‚É‘I‘ð‚µ‚Ä‚¢‚½ƒIƒuƒWƒF‚ª‚Á”ò‚ÔŽ–‚ª‚ ‚Á‚½ƒoƒO‚ðC³ +Eƒeƒ“ƒL[ + / - ƒL[‚Å WAV / BMP / BGA ‚Ì‘I‘ð”Ô†‚ð•Ï‚¦‚é‹@”\‚ð’ljÁ +E“¯«‚µ‚Ä‚¢‚é uBMplay ‚̃o[ƒWƒ‡ƒ“‚ð 1.3.6 ‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N9ŒŽ12“ú Beta 4 +EƒGƒ‰[Žž‚É BMS ƒf[ƒ^‚ðo—Í‚·‚鎞AŠÔˆá‚Á‚Ä BMSE ‚̃fƒBƒŒƒNƒgƒŠ‚Éo—Í‚µ‚Ä‚¢‚½ƒoƒO‚ðC³ +Eƒ‰ƒ“ƒQ[ƒWƒtƒ@ƒCƒ‹‚ɑΉž (Žd—l‚Í—\‚È‚­•Ï‚í‚éꇂª‚ ‚è‚Ü‚·) +EƒIƒuƒWƒF‚ð’P‘Ì‘I‘ð‚µ‚½Žž‚ɉ¹‚ð–‚炷‹@”\‚ð’ljÁ +E”͈͑I‘ð‚Ü‚í‚è‚̃oƒOC³ +E”͈͑I‘ð’†‚É Up / Down / Left / Right / PageUp / PageDown ƒL[‚ňړ®‚·‚é‹@”\‚ð’ljÁ +EƒŒ[ƒ“”wŒi‚ÉF‚ð“h‚é‹@”\‚ð’ljÁ +Eƒƒjƒ…[‚Ìu•\ަv‚̈ꕔ‚ðuÝ’èv‚Ɉړ® +Eini ‘Ž®‚Ì•ÏX (‹­§“I‚ɉŠú‰»‚³‚ê‚Ü‚·) +EuƒAƒNƒeƒBƒu‚ɂȂÁ‚½uŠÔ‚Ì‘€ì‚ª–³Œøv‚ª–³Œø‚ɂȂÁ‚Ä‚¢‚½ƒoƒO‚ðC³ +EuƒAƒNƒeƒBƒu‚ɂȂÁ‚½uŠÔ‚Ì‘€ì‚ª–³Œøv‹@”\‚Ì‹­‰» +E“¯«‚µ‚Ä‚¢‚é uBMplay ‚̃o[ƒWƒ‡ƒ“‚ð 1.3.5 ‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N9ŒŽ1“ú Beta 3 +EÁ‹Žƒ‚[ƒh‚̃oƒO‚ðC³ +E‹N“®Žž‚̃‚[ƒh‚𑞃‚[ƒh‚©‚ç•ÒWƒ‚[ƒh‚É•ÏX +E“¯«‚µ‚Ä‚¢‚é uBMplay ‚̃o[ƒWƒ‡ƒ“‚ð 1.3.3 ‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ17“ú Beta 2 +EŬ‰»ŽžEƒtƒH[ƒ€‚𬂳‚­‚µ‚·‚¬‚½Žž‚ɃGƒ‰[‚ªo‚éƒoƒO‚̑Έ +EV‹K쬂ŃGƒ‰[‚ªo‚éƒoƒO‚ðC³ +E•s‰ÂŽ‹Eƒƒ“ƒOƒm[ƒg‚̃IƒuƒWƒF‚ðˆÚ“®‚·‚邯•’ʂ̃IƒuƒWƒF‚ɕςí‚éƒoƒO‚ðC³ +EƒRƒs[ / ƒy[ƒXƒg‚̕ۑ¶‚·‚éꊂðƒ[ƒJƒ‹‚ȕϔ‚©‚çƒNƒŠƒbƒvƒ{[ƒh‚É•ÏX +E¬ß’·‚ðL‚΂µ‚·‚¬‚½Žž‚ɃGƒ‰[‚ªo‚éƒoƒO‚ðC³ (‚»‚̑㞂Ƃµ‚ăXƒNƒ[ƒ‹‚ªƒJƒNƒJƒN‚É) +E¬ß’·ƒŠƒXƒg‚Ì‘S‘I‘ðƒ{ƒ^ƒ“‚ð’ljÁ +Eƒ^ƒCƒgƒ‹ƒo[‚Ƀtƒ@ƒCƒ‹–¼‚̂ݕ\ަ‚·‚é‹@”\‚ð’ljÁ +EˆÚ“®‚µ‚½ˆê•”‚̃IƒuƒWƒF‚ªƒYƒŒ‚éƒoƒO‚ðC³ +E“¯«‚µ‚Ä‚¢‚é uBMplay ‚̃o[ƒWƒ‡ƒ“‚ð 1.3.2 ‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ13“ú Beta 1 +Eƒx[ƒ^”łƂµ‚ijޮŒöŠJ + +2004”N8ŒŽ13“ú Alpha 16 +EƒAƒCƒRƒ“‚ðV‚µ‚¢‚à‚̂ɷ‚µ‘Ö‚¦ +E#BGA ‚ð BMS ƒtƒ@ƒCƒ‹‚©‚ç“ǂݞ‚߂Ȃ©‚Á‚½•s‹ï‡‚ðC³ +EBMP / BGAƒvƒŒƒrƒ…[‹@”\‚ª‚¿‚á‚ñ‚Æ“®‚­‚悤‚ÉC³ +E‰¡Ž²ˆÚ“®‚Å‚«‚½[ (‚Á‚Û‚¢) +Eˆê•”‚̃Gƒ‰[‚ɑΈ‚·‚é‹@”\‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ12“ú Alpha 15 +Eƒc[ƒ‹ƒo[ƒAƒCƒRƒ“‚ª¬‚³‚­‚È‚è‚Ü‚µ‚½ +EØ‚èŽæ‚è / “\‚è•t‚¯ / 휎ž‚ɕۑ¶ƒtƒ‰ƒO‚ð‰º‚ë‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ðC³ +E‘I‘ð‚µ‚½ƒIƒuƒWƒF‚̃hƒ‰ƒbƒO‚Ìc޲•ûŒü‚ªŠ®¬ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ11“ú Alpha 14 +E”͈͑I‘ð‹@”\‚ªŠ®¬EEE‚µ‚½‚Í‚¸EEEI +Eƒc[ƒ‹ƒo[ƒAƒCƒRƒ“‚ðŽÀ‘• +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ11“ú Alpha 13 +EƒŒ[ƒ“î•ñ‚ðc‘‚«‚·‚é‹@”\‚ð’ljÁ +E”͈͑I‘ð‚ª‚ ‚é’ö“xŠ®¬ +EƒIƒuƒWƒFíœEØ‚èŽæ‚肪ƒoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ9“ú Alpha 12 +Eƒc[ƒ‹ƒo[”ñ•\ަ‚ð’ljÁ +EŠO•”ƒrƒ…[ƒ‚ÅĶ‚ðs‚Á‚½Žž‚ɕۑ¶‚µ‚½ƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚½‚Ì‚ðC³ +EuØ‚èŽæ‚èvuƒRƒs[vu“\‚è•t‚¯vuíœv‚ðŽÀ‘• +Eƒc[ƒ‹ƒo[ƒAƒCƒRƒ“‚ª‚Å‚«‚é‚܂ł̌q‚¬‚É’´“K“–ƒAƒCƒRƒ“’ljÁ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ8“ú Alpha 11 +Eƒhƒ‰ƒbƒOƒAƒ“ƒhƒhƒƒbƒv‚É¡X‘Ήž +E”Žq•ÏX‚ª‘Þ‰»‚µ‚Ä‚¢‚½‚Ì‚ðC³ +EƒOƒŠƒbƒh‚ðׂ©‚­‚µ‚Ă݂é +Euŋߎg‚Á‚½ƒtƒ@ƒCƒ‹v‚ðŽÀ‘• +Euã‘‚«•Û‘¶v‚Æu–¼‘O‚ð•t‚¯‚ĕۑ¶v‚̈ʒu‚ð“ü‚ê‘Ö‚¦ (‹C‚ð‚‚¯‚Ä‚ËI) +E’ˆÓ: •ÒWƒ‚[ƒh‚͂܂Ƃà‚É“®‚©‚È‚¢‚Ì‚ÅG‚ç‚È‚¢Ž– +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ6“ú Alpha 10 +E—]”’ BGM ƒŒ[ƒ“‚ª•Û‘¶‚³‚ê‚È‚¢•s‹ï‡‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ5“ú Alpha 9 +E‚È‚ñ‚©ƒ`ƒJƒ`ƒJ‚·‚é‚Ì‚ðC³ +EƒIƒuƒWƒFíœEŽw’è‚̃oƒO‚ðC³ +E•Û‘¶‚𑣂·ƒ_ƒCƒAƒƒO‚ªo‚é‹@”\‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ4“ú Alpha 8 +EƒAƒNƒeƒBƒu‚ɂȂÁ‚½uŠÔ‚Ì‘€ì‚ðŽó‚¯•t‚¯‚é‚©‚Ç‚¤‚©‚ÌÝ’è‚ð’ljÁ +ECtrl + A ‚ŃIƒuƒWƒF‚ÌF‚ª•Ï‚í‚éƒIƒVƒƒƒŒ‚È‹@”\‚ð’ljÁ +Eƒ_ƒCƒŒƒNƒg“ü—͘g‚̒ljÁ +E•s‰ÂŽ‹ƒIƒuƒWƒF‚ð“ǂݞ‚ñ‚Å‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ +EƒIƒuƒWƒF휋@”\‚ð’ljÁ +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ1“ú Alpha 7 +EBPM •ÏXAƒXƒgƒbƒvƒV[ƒPƒ“ƒX‚Ì“ü—Í’l‚ÉãŒÀÝ’è (}65535) +EƒpƒtƒH[ƒ}ƒ“ƒX‚̉ü‘P +Eƒtƒ@ƒCƒ‹Ä¶‚ɑΉž (uBMplay ‚݂̂̎b’è‘Ήž) +E‚»‚Ì‘¼C³ + +2004”N7ŒŽ30“ú Alpha 6 +E#BGA –½—߂ɂ¿‚å‚Á‚Æ‚¾‚¯‘Ήž‚µ‚½‚©‚àH +E‚»‚Ì‘¼C³ + +2004”N7ŒŽ30“ú Alpha 5 +Eã‘‚«•Û‘¶‚ªŽg‚¦‚邿‚¤‚ɂȂè‚Ü‚µ‚½(‹C‚ð‚‚¯‚Ä‚Ë) +E‹Œ BPM •ÏX‚ðíœ +E‚»‚Ì‘¼C³ + +2004”N7ŒŽ30“ú Alpha 4 +Eƒ^ƒu‚ðƒtƒ‰ƒbƒgƒ{ƒ^ƒ“‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N7ŒŽ30“ú Alpha 3 +E«‚Ì‹@”\‚ªƒoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ + +2004”N7ŒŽ30“ú Alpha 2 +EBPM •ÏXAŠg’£ BPM •ÏX‚¨‚æ‚Ñ STOP –½—߂ɑΉž‚µ‚½‚©‚à +E‚»‚Ì‘¼C³ + +2004”N7ŒŽ29“ú Alpha 1 +E‚Ƃ肠‚¦‚¸ƒIƒuƒWƒF‚ð’u‚­Ž–‚ƕۑ¶‚Ȃǂª‚Å‚«‚Ü‚· + +`‚±‚±‚܂łÉFX‚ÆŒ¯‚µ‚¢“¹‚Ì‚è` diff --git a/iidx/BMS Sequence Editor/theme/default.ini b/iidx/BMS Sequence Editor/theme/default.ini new file mode 100644 index 0000000..be9b3e9 --- /dev/null +++ b/iidx/BMS Sequence Editor/theme/default.ini @@ -0,0 +1,156 @@ +[Main] +Key="BMSE" +Name="Default" +Background="0,0,0" +MeasureNum="64,64,64" +MeasureLine="255,255,255" +GridMain="96,96,96" +GridSub="192,192,192" +VerticalMain="255,255,255" +VerticalSub="128,128,128" +Info="0,255,0" + +[BPM] +Text="BPM,STOP" +Background="48,48,0" +ObjectLight="192,192,0" +ObjectShadow="128,128,0" +ObjectColor="160,160,0" + +[KEY_1P_01] +Text="1" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_02] +Text="2" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_03] +Text="3" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_04] +Text="4" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_05] +Text="5" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_06] +Text="6" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_07] +Text="7" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_SC] +Text="SC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_2P_01] +Text="1" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_02] +Text="2" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_03] +Text="3" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_04] +Text="4" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_05] +Text="5" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_06] +Text="6" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_07] +Text="7" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_SC] +Text="SC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_LONGNOTE] +ObjectLight="0,128,0" +ObjectShadow="0,32,0" +ObjectColor="0,64,0" + +[BGA] +Text="BGA,LAYER,POOR" +Background="0,24,0" +ObjectLight="0,255,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[BGM] +Text="B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31,B32" +Background="48,0,0" +ObjectLight="255,0,0" +ObjectShadow="96,0,0" +ObjectColor="128,0,0" + +[SELECT] +ObjectLight="255,255,255" +ObjectShadow="128,128,128" +ObjectColor="0,255,255" +EditFrame="255,255,255" +DeleteFrame="255,0,0" diff --git a/iidx/BMS Sequence Editor/theme/default_oct.ini b/iidx/BMS Sequence Editor/theme/default_oct.ini new file mode 100644 index 0000000..1ed1c2f --- /dev/null +++ b/iidx/BMS Sequence Editor/theme/default_oct.ini @@ -0,0 +1,156 @@ +[Main] +Key="BMSE" +Name="Default (for oct/fp)" +Background="0,0,0" +MeasureNum="64,64,64" +MeasureLine="255,255,255" +GridMain="96,96,96" +GridSub="192,192,192" +VerticalMain="255,255,255" +VerticalSub="128,128,128" +Info="0,255,0" + +[BPM] +Text="BPM,STOP" +Background="48,48,0" +ObjectLight="192,192,0" +ObjectShadow="128,128,0" +ObjectColor="160,160,0" + +[KEY_1P_01] +Text="1" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_02] +Text="2" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_03] +Text="3" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_04] +Text="4" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_05] +Text="5" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_06] +Text="6" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_07] +Text="7" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_SC] +Text="LSC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_2P_01] +Text="FOOT" +Background="0,24,0" +ObjectLight="0,255,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[KEY_2P_02] +Text="8" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_03] +Text="9" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_04] +Text="10" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_05] +Text="11" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_06] +Text="12" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_07] +Text="13" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_SC] +Text="RSC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_LONGNOTE] +ObjectLight="0,128,0" +ObjectShadow="0,32,0" +ObjectColor="0,64,0" + +[BGA] +Text="BGA,LAYER,POOR" +Background="0,24,0" +ObjectLight="0,255,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[BGM] +Text="B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31,B32" +Background="48,0,0" +ObjectLight="255,0,0" +ObjectShadow="96,0,0" +ObjectColor="128,0,0" + +[SELECT] +ObjectLight="255,255,255" +ObjectShadow="128,128,128" +ObjectColor="0,255,255" +EditFrame="255,255,255" +DeleteFrame="255,0,0" diff --git a/iidx/BMS Sequence Editor/theme/default_pms.ini b/iidx/BMS Sequence Editor/theme/default_pms.ini new file mode 100644 index 0000000..a4d4fee --- /dev/null +++ b/iidx/BMS Sequence Editor/theme/default_pms.ini @@ -0,0 +1,156 @@ +[Main] +Key="BMSE" +Name="Default (for PMS)" +Background="0,0,0" +MeasureNum="64,64,64" +MeasureLine="255,255,255" +GridMain="96,96,96" +GridSub="192,192,192" +VerticalMain="255,255,255" +VerticalSub="128,128,128" +Info="0,255,0" + +[BPM] +Text="BPM,STOP" +Background="48,48,0" +ObjectLight="192,192,0" +ObjectShadow="128,128,0" +ObjectColor="160,160,0" + +[KEY_1P_01] +Text="LW" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_02] +Text="LY" +Background="32,32,0" +ObjectLight="255,255,0" +ObjectShadow="128,128,0" +ObjectColor="192,192,0" + +[KEY_1P_03] +Text="LG" +Background="0,32,0" +ObjectLight="0,192,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[KEY_1P_04] +Text="LB" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_05] +Text="RED" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_1P_06] +Text="6" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_1P_07] +Text="7" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_1P_SC] +Text="SC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_2P_01] +Text="1" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_02] +Text="RB" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_03] +Text="RG" +Background="0,32,0" +ObjectLight="0,192,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[KEY_2P_04] +Text="RY" +Background="32,32,0" +ObjectLight="255,255,0" +ObjectShadow="128,128,0" +ObjectColor="192,192,0" + +[KEY_2P_05] +Text="RW" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_06] +Text="6" +Background="0,0,40" +ObjectLight="96,96,255" +ObjectShadow="0,0,128" +ObjectColor="0,0,255" + +[KEY_2P_07] +Text="7" +Background="32,32,32" +ObjectLight="192,192,192" +ObjectShadow="96,96,96" +ObjectColor="128,128,128" + +[KEY_2P_SC] +Text="SC" +Background="48,0,0" +ObjectLight="255,96,96" +ObjectShadow="128,0,0" +ObjectColor="255,0,0" + +[KEY_LONGNOTE] +ObjectLight="0,128,0" +ObjectShadow="0,32,0" +ObjectColor="0,64,0" + +[BGA] +Text="BGA,LAYER,POOR" +Background="0,24,0" +ObjectLight="0,255,0" +ObjectShadow="0,96,0" +ObjectColor="0,128,0" + +[BGM] +Text="B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31,B32" +Background="48,0,0" +ObjectLight="255,0,0" +ObjectShadow="96,0,0" +ObjectColor="128,0,0" + +[SELECT] +ObjectLight="255,255,255" +ObjectShadow="128,128,128" +ObjectColor="0,255,255" +EditFrame="255,255,255" +DeleteFrame="255,0,0" diff --git a/iidx/DJT Happy Set/090 ã€ã‚¢ãƒ¼ã‚±ãƒ¼ãƒˆã‚™ã€‘[080926] beatmaniaIIDX 15 DJ TROOPERS HAPPY SET(Ver1.1).rar b/iidx/DJT Happy Set/090 ã€ã‚¢ãƒ¼ã‚±ãƒ¼ãƒˆã‚™ã€‘[080926] beatmaniaIIDX 15 DJ TROOPERS HAPPY SET(Ver1.1).rar new file mode 100644 index 0000000..150ab5e Binary files /dev/null and b/iidx/DJT Happy Set/090 ã€ã‚¢ãƒ¼ã‚±ãƒ¼ãƒˆã‚™ã€‘[080926] beatmaniaIIDX 15 DJ TROOPERS HAPPY SET(Ver1.1).rar differ diff --git a/iidx/Gold FrontEnd/Frontend.exe b/iidx/Gold FrontEnd/Frontend.exe new file mode 100644 index 0000000..bc66da8 Binary files /dev/null and b/iidx/Gold FrontEnd/Frontend.exe differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Frames/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Custom/Frames/system.idx new file mode 100644 index 0000000..659935b Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Frames/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.b new file mode 100644 index 0000000..f7e4f0c Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.c new file mode 100644 index 0000000..35b0101 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Notesplashes/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/SYSTEM.IDX b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/SYSTEM.IDX new file mode 100644 index 0000000..e74254d Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/SYSTEM.IDX differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/0.gcz b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/0.gcz new file mode 100644 index 0000000..001df5a Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/0.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/1.gcz b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/1.gcz new file mode 100644 index 0000000..01a57f3 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/1.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/2.gcz b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/2.gcz new file mode 100644 index 0000000..884d75e Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/2.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/preview.jpg b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/preview.jpg new file mode 100644 index 0000000..9e7b485 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Towels/Vanessa/preview.jpg differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.b new file mode 100644 index 0000000..f7e4f0c Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.d new file mode 100644 index 0000000..dfab051 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Custom/Turntables/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe0/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe0/system.idx new file mode 100644 index 0000000..8ad9c0b Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe0/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe1/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe1/system.idx new file mode 100644 index 0000000..e11ba4f Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe1/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe2/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe2/system.idx new file mode 100644 index 0000000..122428c Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe2/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe3/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe3/system.idx new file mode 100644 index 0000000..d04d720 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe3/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe4/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe4/system.idx new file mode 100644 index 0000000..800614a Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Frames/gmframe4/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Keys/double.dat b/iidx/Gold FrontEnd/FrontendFiles/Keys/double.dat new file mode 100644 index 0000000..f593618 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Keys/double.dat differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Keys/keys.dat b/iidx/Gold FrontEnd/FrontendFiles/Keys/keys.dat new file mode 100644 index 0000000..4e6aaf5 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Keys/keys.dat differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Keys/single.dat b/iidx/Gold FrontEnd/FrontendFiles/Keys/single.dat new file mode 100644 index 0000000..d6b831e Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Keys/single.dat differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/9th Style/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/9th Style/system.idx.c new file mode 100644 index 0000000..452426a Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/9th Style/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Default/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Default/system.idx.c new file mode 100644 index 0000000..35b0101 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Default/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Explosion/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Explosion/system.idx.c new file mode 100644 index 0000000..835027f Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Explosion/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Gold Bomb/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Gold Bomb/system.idx.c new file mode 100644 index 0000000..a7ff822 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Gold Bomb/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Red Electric/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Red Electric/system.idx.c new file mode 100644 index 0000000..1dd181b Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Red Electric/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Sparkle/system.idx.c b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Sparkle/system.idx.c new file mode 100644 index 0000000..326c980 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/Sparkle/system.idx.c differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/system.idx.a b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/system.idx.a new file mode 100644 index 0000000..df81106 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Notesplashes/system.idx.a differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/ActualTowel/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/ActualTowel/system.idx new file mode 100644 index 0000000..32b1f51 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/ActualTowel/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel1/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel1/system.idx new file mode 100644 index 0000000..a6daee5 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel1/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel2/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel2/system.idx new file mode 100644 index 0000000..53be6a2 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/AnimeTowel2/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/AquaTech/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/AquaTech/system.idx new file mode 100644 index 0000000..c305072 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/AquaTech/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/BlueMech/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/BlueMech/system.idx new file mode 100644 index 0000000..4c7f2b7 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/BlueMech/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/0.gcz b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/0.gcz new file mode 100644 index 0000000..b26db6e Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/0.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/1.gcz b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/1.gcz new file mode 100644 index 0000000..1e90c93 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/1.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/2.gcz b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/2.gcz new file mode 100644 index 0000000..35b6264 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/2.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/owl.bin b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/owl.bin new file mode 100644 index 0000000..82c66a8 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/owl.bin differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/system.idx new file mode 100644 index 0000000..e8ec5a0 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Default/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Grate/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Grate/system.idx new file mode 100644 index 0000000..cd0b233 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Grate/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenMech/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenMech/system.idx new file mode 100644 index 0000000..13fe084 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenMech/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenNotes/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenNotes/system.idx new file mode 100644 index 0000000..fd0954d Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/GreenNotes/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/HappySky/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/HappySky/system.idx new file mode 100644 index 0000000..d13d764 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/HappySky/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Heads/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Heads/system.idx new file mode 100644 index 0000000..de249e7 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Heads/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/IIDXGirls/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/IIDXGirls/system.idx new file mode 100644 index 0000000..5ec3269 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/IIDXGirls/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Kamaitachi/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Kamaitachi/system.idx new file mode 100644 index 0000000..585d9c2 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Kamaitachi/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Notes/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Notes/system.idx new file mode 100644 index 0000000..924c381 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Notes/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/Sakura/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/Sakura/system.idx new file mode 100644 index 0000000..0232592 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/Sakura/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Towels/SigSig/system.idx b/iidx/Gold FrontEnd/FrontendFiles/Towels/SigSig/system.idx new file mode 100644 index 0000000..885e4d7 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Towels/SigSig/system.idx differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.d new file mode 100644 index 0000000..171674f Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Circle/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/0.gcz b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/0.gcz new file mode 100644 index 0000000..3152791 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/0.gcz differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/owl.bin b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/owl.bin new file mode 100644 index 0000000..66eb374 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/owl.bin differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.d new file mode 100644 index 0000000..dfab051 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Default/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.d new file mode 100644 index 0000000..f040c28 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Dog/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.d new file mode 100644 index 0000000..6d9d036 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Gold/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.d new file mode 100644 index 0000000..10eb37d Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tech/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.d new file mode 100644 index 0000000..3c0b704 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Tran/system.idx.d differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.b b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.b new file mode 100644 index 0000000..d11e3bc Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.b differ diff --git a/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.d b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.d new file mode 100644 index 0000000..6858c56 Binary files /dev/null and b/iidx/Gold FrontEnd/FrontendFiles/Turntables/Triangle/system.idx.d differ diff --git a/iidx/Gold FrontEnd/copy_frontendfiles.bat b/iidx/Gold FrontEnd/copy_frontendfiles.bat new file mode 100644 index 0000000..495a2d2 --- /dev/null +++ b/iidx/Gold FrontEnd/copy_frontendfiles.bat @@ -0,0 +1,10 @@ +@echo off +mkdir FrontendFiles\Announcers +mkdir FrontendFiles\BGMs +mkdir FrontendFiles\Keys + +copy data\sd_data\sys_sd\coin* FrontendFiles\BGMs\ +copy data\sd_data\sys_sd\sys_op.2dx FrontendFiles\Announcers\ +copy data\sd_data\sys_sd\sys_skin_hoshino.2dx FrontendFiles\Announcers\ +copy data\graph\sys\items\* FrontendFiles\Turntables\Default\ +copy data\graph\sys\gameparts\* FrontendFiles\Towels\Default\ \ No newline at end of file diff --git a/iidx/Gold FrontEnd/frontend_readme.txt b/iidx/Gold FrontEnd/frontend_readme.txt new file mode 100644 index 0000000..c7f6a1b --- /dev/null +++ b/iidx/Gold FrontEnd/frontend_readme.txt @@ -0,0 +1,68 @@ +IIDXGOLD Frontend v1.3 - by PoP +-==-=-=-=-=-=-=-=-=-=-=-=- +Frontend for IIDX GOLD AC. + +-! IF YOU'RE INSTALLING OVER AN OLD VERSION !- +Play one game with all default settings (frame, BGM etc.) +This will reverse all of the damage the old version hath +wrought on thou's files. Then delete settings.dat, +the FrontendFiles folder and the old .EXE. + +Extract Frontend.exe, FrontendFiles and copy_frontendfiles.bat +to the root of GOLD's DIR (with data and 2007022101). +Run copy_frontendfiles.bat to fill FrontendFiles, +which is just copies some audio files that can be +replaced by the frontend. It's a bit safer but it's +more wasteful than careful renaming, but I wasn't +originally building this for anyone but myself anyway. +I've taken more care with the newer releases though, +simply because I'm finding the program more useful now +that I figured out some of the 2DXWAVE options. + +Also, you need to make three different input.dat's with +Tau's config utility - one for one pad, one for two, and +a keyboard layout. Make each one then copy it to +FrontendFiles\Keys, as single.dat, double.dat and keys.dat. +You don't have to make all of the layouts if you'll never +use some, just don't ever choose the option in the loader. + +Custom files are supported now. Files go in FrontendFiles\Custom, +and go in their own folders under the subfolders of Turntables, Frames, +Announcers, Towels, Notesplashes and BGMs. Also, all graphic replacements +need a preview.jpg to display in the frontend - sizes are given below. + +Required files: + Turntables: 0.gcz, preview.jpg + Towels: 0.gcz, 1.gcz, 2.gcz, preview.jpg + Frames: 0.gcz, preview.jpg + Notesplash: 0.gcz, preview.jpg + Announcers: sys_op.2dx + BGMs: coin_sd.2dx + +Preview image sizes: + Frames: 237x85 + Turntables: 10x14 + Towels: 114x321 + Notesplash: 122x130 + +Better advice on creating the required 0.gcz is included in the +custom files tools pack, released soon. (you do not have to make +a system.idx file, FrontendFiles is full of pieces that are assembled +to create a working system.idx for normal and custom files as needed) + +You can't use a custom notesplash and a custom turntable at the same +time. This is because the GCZ that contains the two files is the same +file. D'oh. If you select a custom file, the other option will hide all +of the custom options and turn red. You can still select a IIDX option when +it's red, but depending on what mischeif the custom GCZ you selected gets +up to, what you see may not be in fact what you get. + +That's about it. The frontend launches 2007022101\bm2dx_ahn.exe +so make sure your favourite .exe is called that, intel hack, nosync +hack or whatever. Just choose your options and run it. + +It's probably going to go wrong at some point, so restore all your +backup data (if you took it), delete the frontend and be done with it. +No quality assurance on this puppy. + +-PoP, PrinceOfPersia@blueyonder.co.uk \ No newline at end of file diff --git a/iidx/Gold FrontEnd/settings.dat b/iidx/Gold FrontEnd/settings.dat new file mode 100644 index 0000000..e69de29 diff --git a/iidx/IFS Tools/IFSTool.exe b/iidx/IFS Tools/IFSTool.exe new file mode 100755 index 0000000..52c8a8d Binary files /dev/null and b/iidx/IFS Tools/IFSTool.exe differ diff --git a/iidx/IFS Tools/buildImgFS.exe b/iidx/IFS Tools/buildImgFS.exe new file mode 100755 index 0000000..2ae4ce3 Binary files /dev/null and b/iidx/IFS Tools/buildImgFS.exe differ diff --git a/iidx/IFS Tools/dumpImgFS.exe b/iidx/IFS Tools/dumpImgFS.exe new file mode 100755 index 0000000..7130885 Binary files /dev/null and b/iidx/IFS Tools/dumpImgFS.exe differ diff --git a/iidx/IFS Tools/tex2tga.exe b/iidx/IFS Tools/tex2tga.exe new file mode 100755 index 0000000..c58ce35 Binary files /dev/null and b/iidx/IFS Tools/tex2tga.exe differ diff --git a/iidx/IFS Tools/tga2tex.exe b/iidx/IFS Tools/tga2tex.exe new file mode 100755 index 0000000..96b75ff Binary files /dev/null and b/iidx/IFS Tools/tga2tex.exe differ diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/Bemani.sln b/iidx/Sourcecode ezusb DJT Hack/Bemani/Bemani.sln new file mode 100644 index 0000000..85b0587 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/Bemani.sln @@ -0,0 +1,119 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil", "libutil\libutil.vcproj", "{87B32A3B-D7D2-48DF-9F42-A306B33B0B30}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdevice", "libdevice\libdevice.vcproj", "{9CB707C2-A2AA-4131-8C30-D3DFD9850A92}" + ProjectSection(ProjectDependencies) = postProject + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} = {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} + {5CC5C29E-061B-4D17-8159-F3B001E81F15} = {5CC5C29E-061B-4D17-8159-F3B001E81F15} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imports", "imports\imports.vcproj", "{5CC5C29E-061B-4D17-8159-F3B001E81F15}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ezusb-iidx", "ezusb-iidx\ezusb-iidx.vcproj", "{9A5776AC-0DED-4955-B0F0-3825664857B5}" + ProjectSection(ProjectDependencies) = postProject + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} = {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libacio", "libacio\libacio.vcproj", "{3533CA43-3923-4612-A807-14AA77D33B28}" + ProjectSection(ProjectDependencies) = postProject + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} = {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iphlpapi", "iphlpapi\iphlpapi.vcproj", "{CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "config", "config\config.vcproj", "{6405AEEC-0DD1-4E49-952C-944EF33B187C}" + ProjectSection(ProjectDependencies) = postProject + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} = {87B32A3B-D7D2-48DF-9F42-A306B33B0B30} + EndProjectSection +EndProject +Global + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Debug|Win32.ActiveCfg = Debug|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Debug|Win32.Build.0 = Debug|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Release|Any CPU.ActiveCfg = Release|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Release|Mixed Platforms.Build.0 = Release|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Release|Win32.ActiveCfg = Release|Win32 + {87B32A3B-D7D2-48DF-9F42-A306B33B0B30}.Release|Win32.Build.0 = Release|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Debug|Win32.ActiveCfg = Debug|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Debug|Win32.Build.0 = Debug|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Release|Any CPU.ActiveCfg = Release|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Release|Mixed Platforms.Build.0 = Release|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Release|Win32.ActiveCfg = Release|Win32 + {9CB707C2-A2AA-4131-8C30-D3DFD9850A92}.Release|Win32.Build.0 = Release|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Debug|Win32.ActiveCfg = Debug|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Debug|Win32.Build.0 = Debug|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Release|Any CPU.ActiveCfg = Release|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Release|Mixed Platforms.Build.0 = Release|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Release|Win32.ActiveCfg = Release|Win32 + {5CC5C29E-061B-4D17-8159-F3B001E81F15}.Release|Win32.Build.0 = Release|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Debug|Win32.ActiveCfg = Debug|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Debug|Win32.Build.0 = Debug|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Release|Any CPU.ActiveCfg = Release|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Release|Mixed Platforms.Build.0 = Release|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Release|Win32.ActiveCfg = Release|Win32 + {9A5776AC-0DED-4955-B0F0-3825664857B5}.Release|Win32.Build.0 = Release|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Debug|Win32.ActiveCfg = Debug|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Debug|Win32.Build.0 = Debug|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Release|Any CPU.ActiveCfg = Release|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Release|Mixed Platforms.Build.0 = Release|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Release|Win32.ActiveCfg = Release|Win32 + {3533CA43-3923-4612-A807-14AA77D33B28}.Release|Win32.Build.0 = Release|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Debug|Win32.ActiveCfg = Debug|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Debug|Win32.Build.0 = Debug|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Release|Any CPU.ActiveCfg = Release|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Release|Mixed Platforms.Build.0 = Release|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Release|Win32.ActiveCfg = Release|Win32 + {CDA1FAD8-762B-4DFD-B094-2F73181DB6E1}.Release|Win32.Build.0 = Release|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Debug|Mixed Platforms.Build.0 = Debug|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Debug|Win32.ActiveCfg = Debug|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Debug|Win32.Build.0 = Debug|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Release|Any CPU.ActiveCfg = Release|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Release|Mixed Platforms.Build.0 = Release|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Release|Win32.ActiveCfg = Release|Win32 + {6405AEEC-0DD1-4E49-952C-944EF33B187C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/Common.vsprops b/iidx/Sourcecode ezusb DJT Hack/Bemani/Common.vsprops new file mode 100644 index 0000000..e8ab6e7 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/Common.vsprops @@ -0,0 +1,28 @@ + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/Debug.vsprops b/iidx/Sourcecode ezusb DJT Hack/Bemani/Debug.vsprops new file mode 100644 index 0000000..13981f8 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/Debug.vsprops @@ -0,0 +1,13 @@ + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/README.txt b/iidx/Sourcecode ezusb DJT Hack/Bemani/README.txt new file mode 100644 index 0000000..767932f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/README.txt @@ -0,0 +1,10 @@ +Bemani DLLs source release +by DJ Hackers +11-Nov-2008 + +This source tree requires Visual Studio 2008 to build, as well a fairly recent DirectX SDK in your build path. Patches always welcome. + +Notes: +* I haven't done any extensive testing of the current GFDM code. It probably lags like hell. +* I haven't even started trying to do e-Amusement for GFDM either. +* My notes on how the e-Amusement protocol works are going to remain secret. Sorry, but there's too much potential for abuse here. \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/Release.vsprops b/iidx/Sourcecode ezusb DJT Hack/Bemani/Release.vsprops new file mode 100644 index 0000000..a46aa12 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/Release.vsprops @@ -0,0 +1,12 @@ + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/common.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/common.c new file mode 100644 index 0000000..3e2c634 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/common.c @@ -0,0 +1,258 @@ +#include "libutil/stdafx.h" +#include "libutil/input.h" + +#include "config/config.h" +#include "config/resource.h" + +static HWND devices_ctl; +static HWND controls_ctl; +static HWND actions_ctl; +static HWND pressed_ctl; +static const struct action_desc *action_list; +static enum dev_class cur_dev_class; +static u8_t cur_dev_id; +static u8_t cur_control_id; + +static const wchar_t *get_binding_desc(enum dev_class dev_class, u8_t dev_id, u8_t control_id) +{ + const struct action_desc *pos; + u8_t action; + + if (input_get_binding(dev_class, dev_id, control_id, &action)) { + for (pos = action_list ; pos->desc != NULL ; pos++) { + if (pos->value == control_id) { + return pos->desc; + } + } + } + + return NULL; +} + +static void bind_controls(void) +{ + LRESULT index; + const wchar_t *control_desc; + int control_id; + int ncontrols; + + /* Clear up previous control bindings */ + SendMessage(controls_ctl, LB_RESETCONTENT, 0, 0); + + /* Set up new bindings */ + ncontrols = input_get_ncontrols(cur_dev_class); + for (control_id = 0 ; control_id < ncontrols ; control_id++) { + control_desc = input_describe(cur_dev_class, cur_dev_id, control_id); + + if (control_desc != NULL) { + index = SendMessage(controls_ctl, LB_ADDSTRING, 0, (LPARAM)control_desc); + SendMessage(controls_ctl, LB_SETITEMDATA, (WPARAM)index, (LPARAM)control_id); + } + } +} + +static void bind_devices(void) +{ + LRESULT index; + enum dev_class dev_class; + const wchar_t *device_name; + int ndevs; + int i; + + for (dev_class = 0 ; dev_class < DEV_CLASS_MAX ; dev_class++) { + ndevs = input_get_ndevs(dev_class); + + for (i = 0 ; i < ndevs ; i++) { + device_name = input_get_name(dev_class, i); + + index = SendMessage(devices_ctl, CB_ADDSTRING, 0, (LPARAM)device_name); + SendMessage(devices_ctl, CB_SETITEMDATA, (WPARAM)index, (LPARAM)((dev_class << 8) | i)); + } + } + + SendMessage(devices_ctl, CB_SETCURSEL, 0, 0); +} + +static void init_dialog(HWND dialog) +{ + const struct action_desc *pos; + int index; + + /* Find controls */ + devices_ctl = GetDlgItem(dialog, IDC_DEVICE); + controls_ctl = GetDlgItem(dialog, IDC_CONTROL); + actions_ctl = GetDlgItem(dialog, IDC_ACTION); + pressed_ctl = GetDlgItem(dialog, IDC_PRESSED); + + switch (game_type) { + case BEATMANIA_IIDX: + action_list = iidx_actions; + break; + + case GUITAR_FREAKS: + action_list = gf_actions; + break; + + case DRUM_MANIA: + action_list = dm_actions; + break; + } + + /* Bind action list */ + SendMessage(actions_ctl, LB_ADDSTRING, 0, (LPARAM)L""); + for (pos = action_list ; pos->desc != NULL ; pos++) { + index = SendMessage(actions_ctl, LB_ADDSTRING, 0, (LPARAM)pos->desc); + SendMessage(actions_ctl, LB_SETITEMDATA, index, (LPARAM)pos->value); + } + + /* Initialise the other controls */ + bind_controls(); + bind_devices(); + + /* Create a polling timer */ + SetTimer(dialog, 0, 17, NULL); +} + +static void evt_device_change(void) +{ + LRESULT index; + LRESULT device_info; + + /* Get selected device */ + index = SendMessage(devices_ctl, CB_GETCURSEL, 0, 0); + device_info = SendMessage(devices_ctl, CB_GETITEMDATA, (WPARAM)index, 0); + + /* Unpack device ID */ + cur_dev_class = device_info >> 8; + cur_dev_id = (u8_t)device_info; + + /* Rebind controls list */ + bind_controls(); +} + +static void evt_control_change() +{ + LRESULT index; + u8_t action_id; + int i; + + index = SendMessage(controls_ctl, LB_GETCURSEL, 0, 0); + cur_control_id = (u8_t)SendMessage(controls_ctl, LB_GETITEMDATA, index, 0); + + if (input_get_binding(cur_dev_class, cur_dev_id, cur_control_id, &action_id)) { + for (i = 0 ; action_list[i].desc != NULL ; i++) { + if (action_list[i].value == action_id) { + SendMessage(actions_ctl, LB_SETCURSEL, (WPARAM)(i + 1), 0); + } + } + } else { + SendMessage(actions_ctl, LB_SETCURSEL, 0, 0); + } +} + +static void evt_action_change(void) +{ + int action_pos; + LVFINDINFO finder; + LVITEM item; + + action_pos = SendMessage(actions_ctl, LB_GETCURSEL, 0, 0); + + /* Find the selected control in the control list and prepare to update it */ + finder.flags = LVFI_PARAM; + finder.lParam = cur_control_id; + + item.mask = LVIF_TEXT; + item.iItem = ListView_FindItem(controls_ctl, -1, &finder); + item.iSubItem = 1; + + if (action_pos == 0) { + /* Update GUI */ + item.pszText = L""; + ListView_SetItem(controls_ctl, &item); + + /* Update the actual binding */ + input_unbind(cur_dev_class, cur_dev_id, cur_control_id); + } else { + action_pos--; + + /* Update GUI */ + item.pszText = (wchar_t *) action_list[action_pos].desc; + ListView_SetItem(controls_ctl, &item); + + /* Update the actual binding */ + input_set_binding(cur_dev_class, cur_dev_id, cur_control_id, action_list[action_pos].value); + } +} + +static void evt_poll(void) +{ + wchar_t prev_txt[MAX_PATH]; + wchar_t buf[MAX_PATH]; + const u8_t *state; + int ncontrols; + int i; + + input_update(); + ncontrols = input_get_ncontrols(cur_dev_class); + state = input_get_state(cur_dev_class, cur_dev_id); + + LoadString(inst, IDS_PRESSED, buf, MAX_PATH); + + for (i = 0 ; i < ncontrols ; i++) { + if (state[i]) { + wcscat_s(buf, MAX_PATH, L" "); + wcscat_s(buf, MAX_PATH, input_describe(cur_dev_class, cur_dev_id, i)); + } + } + + /* Minimise flicker */ + GetWindowText(pressed_ctl, prev_txt, MAX_PATH); + if (wcscmp(prev_txt, buf) != 0) { + SetWindowText(pressed_ctl, buf); + } +} + +static LRESULT CALLBACK dlg_proc(HWND dialog, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if (msg == WM_TIMER) { + evt_poll(); + return TRUE; + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_DEVICE && HIWORD(wparam) == CBN_SELCHANGE) { + evt_device_change(); + return TRUE; + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_CONTROL && HIWORD(wparam) == LBN_SELCHANGE) { + evt_control_change(); + return TRUE; + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_ACTION && HIWORD(wparam) == LBN_SELCHANGE) { + evt_action_change(); + return TRUE; + } + + if (msg == WM_INITDIALOG) { + init_dialog(dialog); + return TRUE; + } + + return FALSE; +} + +HPROPSHEETPAGE common_create_pp(void) +{ + PROPSHEETPAGE psp; + + ZeroMemory(&psp, sizeof(psp)); + psp.dwSize = sizeof(PROPSHEETPAGE); + psp.dwFlags = PSP_DEFAULT; + psp.hInstance = inst; + psp.pszTemplate = MAKEINTRESOURCE(IDD_COMMON); + psp.pfnDlgProc = dlg_proc; + + return CreatePropertySheetPage(&psp); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.exe.manifest b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.exe.manifest new file mode 100644 index 0000000..a4ab8a2 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.exe.manifest @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.h new file mode 100644 index 0000000..5b98252 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.h @@ -0,0 +1,32 @@ +#ifndef CONFIG_CONFIG_H +#define CONFIG_CONFIG_H + +#include "libutil/util.h" + +enum game_type +{ + BEATMANIA_IIDX, + GUITAR_FREAKS, + DRUM_MANIA, + POPN_MUSIC +}; + +struct action_desc +{ + const wchar_t *desc; + u8_t value; +}; + +extern const struct action_desc iidx_actions[]; +extern const struct action_desc gf_actions[]; +extern const struct action_desc dm_actions[]; + +extern HINSTANCE inst; +extern enum game_type game_type; + +const wchar_t *get_string(UINT string_id); +HPROPSHEETPAGE common_create_pp(void); +HPROPSHEETPAGE eam_create_pp(void); +HPROPSHEETPAGE iidx_create_pp(void); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.vcproj new file mode 100644 index 0000000..888e546 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/config.vcproj @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/eamuse.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/eamuse.c new file mode 100644 index 0000000..0614a69 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/eamuse.c @@ -0,0 +1,137 @@ +#include "libutil/stdafx.h" + +#include "config/config.h" +#include "config/resource.h" +#include "libutil/eamuse.h" + +static HWND machine_id_path_ctl; +static HWND card0_path_ctl; +static HWND card1_path_ctl; + +static void init_dialog(HWND dialog) +{ + const wchar_t *path; + + machine_id_path_ctl = GetDlgItem(dialog, IDC_MACHINE_ID); + path = eam_get_machine_id_path(); + SetWindowText(machine_id_path_ctl, path); + SendMessage(machine_id_path_ctl, EM_SETLIMITTEXT, (MAX_PATH - 1) * 2, 0); + + card0_path_ctl = GetDlgItem(dialog, IDC_CARD0); + path = eam_get_card_path(0); + SetWindowText(card0_path_ctl, path); + SendMessage(card0_path_ctl, EM_SETLIMITTEXT, (MAX_PATH - 1) * 2, 0); + + card1_path_ctl = GetDlgItem(dialog, IDC_CARD1); + path = eam_get_card_path(1); + SetWindowText(card1_path_ctl, path); + SendMessage(card1_path_ctl, EM_SETLIMITTEXT, (MAX_PATH - 1) * 2, 0); +} + +static bool get_path(HWND dialog, wchar_t *buf, bool must_exist) +{ + wchar_t title[MAX_PATH]; + wchar_t filters[MAX_PATH]; + OPENFILENAME of; + + ZeroMemory(filters, MAX_PATH); /* Garbage shows up in the filter dropdown otherwise... */ + LoadString(inst, IDS_OPEN, title, MAX_PATH); + LoadString(inst, IDS_OPEN_FILTER, filters, MAX_PATH); + + ZeroMemory(&of, sizeof(of)); + of.lStructSize = sizeof(of); + of.hwndOwner = dialog; + of.lpstrFilter = filters; + of.nFilterIndex = 1; + of.lpstrFile = buf; + of.nMaxFile = MAX_PATH; + of.lpstrTitle = title; + of.Flags = OFN_HIDEREADONLY; + of.lpstrDefExt = L"txt"; + + if (must_exist) { + of.Flags |= OFN_FILEMUSTEXIST; + } + + return GetOpenFileName(&of) != 0; +} + +static LRESULT CALLBACK dialog_proc(HWND dialog, UINT msg, WPARAM wparam, LPARAM lparam) +{ + wchar_t buf[MAX_PATH]; + + if (msg == WM_INITDIALOG) { + init_dialog(dialog); + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == EN_CHANGE && LOWORD(wparam) == IDC_MACHINE_ID) { + GetWindowText(machine_id_path_ctl, buf, MAX_PATH); + eam_set_machine_id_path(buf); + + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == EN_CHANGE && LOWORD(wparam) == IDC_CARD0) { + GetWindowText(card0_path_ctl, buf, MAX_PATH); + eam_set_card_path(0, buf); + + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == EN_CHANGE && LOWORD(wparam) == IDC_CARD1) { + GetWindowText(card1_path_ctl, buf, MAX_PATH); + eam_set_card_path(0, buf); + + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == BN_CLICKED && LOWORD(wparam) == IDC_BROWSE_MACHINE_ID) { + GetWindowText(machine_id_path_ctl, buf, MAX_PATH); + + if (get_path(dialog, buf, true)) { + SetWindowText(machine_id_path_ctl, buf); + eam_set_machine_id_path(buf); + } + + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == BN_CLICKED && LOWORD(wparam) == IDC_BROWSE_CARD0) { + GetWindowText(card0_path_ctl, buf, MAX_PATH); + + if (get_path(dialog, buf, false)) { + SetWindowText(card0_path_ctl, buf); + eam_set_card_path(0, buf); + } + + return TRUE; + } + + if (msg == WM_COMMAND && HIWORD(wparam) == BN_CLICKED && LOWORD(wparam) == IDC_BROWSE_CARD1) { + GetWindowText(card1_path_ctl, buf, MAX_PATH); + + if (get_path(dialog, buf, false)) { + SetWindowText(card1_path_ctl, buf); + eam_set_card_path(1, buf); + } + + return TRUE; + } + + return FALSE; +} + +HPROPSHEETPAGE eam_create_pp(void) +{ + PROPSHEETPAGE psp; + + ZeroMemory(&psp, sizeof(psp)); + psp.dwSize = sizeof(PROPSHEETPAGE); + psp.dwFlags = PSP_DEFAULT; + psp.hInstance = inst; + psp.pszTemplate = MAKEINTRESOURCE(IDD_EAMUSE); + psp.pfnDlgProc = dialog_proc; + + return CreatePropertySheetPage(&psp); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/gfdm.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/gfdm.c new file mode 100644 index 0000000..79864ce --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/gfdm.c @@ -0,0 +1,49 @@ +#include "libutil/stdafx.h" + +#include "config/config.h" +#include "libdevice/defs.h" + +const struct action_desc gf_actions[] = +{ + { L"Exit", GFDM_EXIT }, + { L"Test", GFDM_TEST }, + { L"Service", GFDM_SERVICE }, + { L"1P Start", GF_1P_START }, + { L"1P Red", GF_1P_RED }, + { L"1P Green", GF_1P_GREEN }, + { L"1P Blue", GF_1P_BLUE }, + { L"1P Pick A", GF_1P_PICK_A }, + { L"1P Pick B", GF_1P_PICK_B }, + { L"1P Wail", GF_1P_WAIL }, + { L"1P Effector", GF_1P_EFFECT }, + { L"2P Start", GF_2P_START }, + { L"2P Red", GF_2P_RED }, + { L"2P Green", GF_2P_GREEN }, + { L"2P Blue", GF_2P_BLUE }, + { L"2P Pick A", GF_2P_PICK_A }, + { L"2P Pick B", GF_2P_PICK_B }, + { L"2P Wail", GF_2P_WAIL }, + { L"2P Effector", GF_2P_EFFECT }, + { L"Debug S/W: Auto Play", GFDM_DEBUG_AUTO }, + { L"Debug S/W: Disable Menu Timer", GFDM_DEBUG_TIMER }, + { NULL, 0 } +}; + +const struct action_desc dm_actions[] = +{ + { L"Exit", GFDM_EXIT }, + { L"Test", GFDM_TEST }, + { L"Service", GFDM_SERVICE }, + { L"Start", DM_START }, + { L"Hi-Hat", DM_HI_HAT }, + { L"Snare", DM_SNARE }, + { L"High Tom", DM_HIGH_TOM }, + { L"Low Tom", DM_LOW_TOM }, + { L"Cymbal", DM_CYMBAL }, + { L"Bass Drum", DM_BASS }, + { L"Menu Left", DM_MENU_LEFT }, + { L"Menu Right", DM_MENU_RIGHT }, + { L"Debug S/W: Auto Play", GFDM_DEBUG_AUTO }, + { L"Debug S/W: Disable Menu Timer", GFDM_DEBUG_TIMER }, + { NULL, 0 } +}; \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/iidx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/iidx.c new file mode 100644 index 0000000..c0173a2 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/iidx.c @@ -0,0 +1,129 @@ +#include "libutil/stdafx.h" + +#include "config/config.h" +#include "config/resource.h" + +#include "ezusb-iidx/defs.h" + +#include "libutil/config.h" + +const struct action_desc iidx_actions[] = +{ + { L"Exit", EXIT }, + { L"P1 1", P1_1 }, + { L"P1 2", P1_2 }, + { L"P1 3", P1_3 }, + { L"P1 4", P1_4 }, + { L"P1 5", P1_5 }, + { L"P1 6", P1_6 }, + { L"P1 7", P1_7 }, + { L"P1 Start", P1_START }, + { L"P1 TT +", P1_TT_UP }, + { L"P1 TT -", P1_TT_DOWN }, + { L"P1 TT + [KOC]", P1_TT_FILTERED_UP }, + { L"P1 TT - [KOC]", P1_TT_FILTERED_DOWN }, + { L"P1 TT +/-", P1_TT_STAB }, + { L"P2 1", P2_1 }, + { L"P2 2", P2_2 }, + { L"P2 3", P2_3 }, + { L"P2 4", P2_4 }, + { L"P2 5", P2_5 }, + { L"P2 6", P2_6 }, + { L"P2 7", P2_7 }, + { L"P2 Start", P2_START }, + { L"P2 TT +", P2_TT_UP }, + { L"P2 TT -", P2_TT_DOWN }, + { L"P2 TT + [KOC]", P2_TT_FILTERED_UP }, + { L"P2 TT - [KOC]", P2_TT_FILTERED_DOWN }, + { L"P2 TT +/-", P2_TT_STAB }, + { L"VEFX", VEFX }, + { L"Effect", EFFECT }, + { L"Test", TEST }, + { L"Service", SERVICE }, + { L"VEFX+", SLIDER0_UP }, + { L"VEFX-", SLIDER0_DOWN }, + { L"Filter+", SLIDER1_UP }, + { L"Filter-", SLIDER1_DOWN }, + { L"Low-EQ+", SLIDER2_UP }, + { L"Low-EQ-", SLIDER2_DOWN }, + { L"Hi-EQ+", SLIDER3_UP }, + { L"Hi-EQ-", SLIDER3_DOWN }, + { L"Play Volume+", SLIDER4_UP }, + { L"Play Volume-", SLIDER4_DOWN }, + { NULL, 0x00 }, +}; + +static HWND x_axis_ctl; +static HWND y_axis_ctl; +static HWND mouse_sens_ctl; +static HWND lag_ctl; + +static void init_dropdown(HWND dd) +{ + SendMessage(dd, CB_ADDSTRING, 0, (LPARAM)get_string(IDS_IIDX_NONE)); + SendMessage(dd, CB_ADDSTRING, 0, (LPARAM)get_string(IDS_IIDX_1P_TT)); + SendMessage(dd, CB_ADDSTRING, 0, (LPARAM)get_string(IDS_IIDX_2P_TT)); +} + +static void init_dialog(HWND dialog) +{ + x_axis_ctl = GetDlgItem(dialog, IDC_IIDX_X_AXIS); + y_axis_ctl = GetDlgItem(dialog, IDC_IIDX_Y_AXIS); + mouse_sens_ctl = GetDlgItem(dialog, IDC_MOUSE_SENS); + lag_ctl = GetDlgItem(dialog, IDC_TT_LAG); + + init_dropdown(x_axis_ctl); + init_dropdown(y_axis_ctl); + + SendMessage(x_axis_ctl, CB_SETCURSEL, config_get_attr("x_axis"), 0); + SendMessage(y_axis_ctl, CB_SETCURSEL, config_get_attr("y_axis"), 0); + SendMessage(mouse_sens_ctl, TBM_SETRANGE, TRUE, MAKELONG(0, IIDX_MOUSE_DIVISOR - 1)); + SendMessage(mouse_sens_ctl, TBM_SETPOS, TRUE, config_get_attr("msens")); + + /* A checkbox is a type of button, apparently. Right. Because that makes perfect fucking sense */ + SendMessage(lag_ctl, BM_SETCHECK, config_get_attr("tt_lag") ? BST_CHECKED : BST_UNCHECKED, 0); +} + +static LRESULT CALLBACK dialog_proc(HWND dialog, UINT msg, WPARAM wparam, LPARAM lparam) +{ + if (msg == WM_INITDIALOG) { + init_dialog(dialog); + return TRUE; + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_IIDX_X_AXIS && HIWORD(wparam) == CBN_SELCHANGE) { + config_set_attr("x_axis", SendMessage(x_axis_ctl, CB_GETCURSEL, 0, 0)); + return TRUE; + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_IIDX_Y_AXIS && HIWORD(wparam) == CBN_SELCHANGE) { + config_set_attr("y_axis", SendMessage(y_axis_ctl, CB_GETCURSEL, 0, 0)); + return TRUE; + } + + if (msg == WM_HSCROLL) { + /* Hmm. Don't know how to distinguish trackbars, but it doesn't matter here. */ + config_set_attr("msens", SendMessage(mouse_sens_ctl, TBM_GETPOS, 0, 0)); + } + + if (msg == WM_COMMAND && LOWORD(wparam) == IDC_TT_LAG && HIWORD(wparam) == BN_CLICKED) { + config_set_attr("tt_lag", SendMessage(lag_ctl, BM_GETCHECK, 0, 0) == BST_CHECKED); + return TRUE; + } + + return FALSE; +} + +HPROPSHEETPAGE iidx_create_pp(void) +{ + PROPSHEETPAGE psp; + + ZeroMemory(&psp, sizeof(psp)); + psp.dwSize = sizeof(PROPSHEETPAGE); + psp.dwFlags = PSP_DEFAULT; + psp.hInstance = inst; + psp.pszTemplate = MAKEINTRESOURCE(IDD_IIDX); + psp.pfnDlgProc = dialog_proc; + + return CreatePropertySheetPage(&psp); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/main.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/main.c new file mode 100644 index 0000000..5fdb07b --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/main.c @@ -0,0 +1,82 @@ +#include "libutil/stdafx.h" +#include "libutil/util.h" + +#include "config/config.h" +#include "config/resource.h" + +HINSTANCE inst; +enum game_type game_type; + +static enum game_type determine_game_type(const wchar_t *cmd_line) +{ + wchar_t str_title[1024]; + wchar_t str_msg[1024]; + + if (wcscmp(cmd_line, L"iidx") == 0) { + return BEATMANIA_IIDX; + } else if (wcscmp(cmd_line, L"gf") == 0) { + return GUITAR_FREAKS; + } else if (wcscmp(cmd_line, L"dm") == 0) { + return DRUM_MANIA; + } else { + LoadString(inst, IDS_ERROR, str_title, sizeof(str_title) / sizeof(wchar_t)); + LoadString(inst, IDS_UNKNOWN_GAME, str_msg, sizeof(str_msg) / sizeof(wchar_t)); + + MessageBox(NULL, str_title, str_msg, MB_ICONERROR | MB_OK); + ExitProcess(-1); + } +} + +static bool run_ui(void) +{ + HPROPSHEETPAGE psp[3]; + PROPSHEETHEADER psh; + int npages; + + ZeroMemory(&psh, sizeof(psh)); + npages = 2; + + psp[0] = common_create_pp(); + psp[1] = eam_create_pp(); + + if (game_type == BEATMANIA_IIDX) { + psp[2] = iidx_create_pp(); + npages++; + } + + psh.dwSize = sizeof(psh); + psh.dwFlags = PSH_NOAPPLYNOW | PSH_NOCONTEXTHELP | PSH_USEHICON; + psh.hInstance = inst; + psh.hIcon = LoadIcon(NULL, IDI_APPLICATION); + psh.pszCaption = get_string(IDS_TITLE); + psh.nPages = npages; + psh.phpage = psp; + + return (bool)PropertySheet(&psh); +} + +const wchar_t *get_string(UINT string_id) +{ + static wchar_t buf[MAX_PATH]; + + LoadString(inst, string_id, buf, MAX_PATH); + return buf; +} + +int WINAPI wWinMain(HINSTANCE inst_param, HINSTANCE dummy, wchar_t *cmd_line, int show) +{ + InitCommonControls(); + inst = inst_param; + + game_type = determine_game_type(cmd_line); + libutil_init(cmd_line); + + if (run_ui()) { + /* OK clicked */ + config_save(); + } + + libutil_fini(); + + return 0; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resource.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resource.h new file mode 100644 index 0000000..dafede1 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resource.h @@ -0,0 +1,46 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by resources.rc +// +#define IDD_COMMON 9 +#define IDS_TITLE 102 +#define IDS_CTL_NAME 103 +#define IDD_EAMUSE 103 +#define IDS_CTL_BINDING 104 +#define IDS_PRESSED 105 +#define IDS_OPEN 106 +#define IDD_IIDX 107 +#define IDS_OPEN_FILTER 107 +#define IDS_MACHINE_ID_NOT_FOUND 108 +#define IDS_IIDX_NONE 109 +#define IDS_IIDX_1P_TT 110 +#define IDS_IIDX_2P_TT 111 +#define IDS_UNKNOWN_GAME 112 +#define IDS_ERROR 113 +#define IDC_DEVICE 1001 +#define IDC_ACTION 1004 +#define IDC_IIDX_X_AXIS 1005 +#define IDC_COMBO2 1006 +#define IDC_IIDX_Y_AXIS 1006 +#define IDC_MOUSE_SENS 1007 +#define IDC_CHECK1 1012 +#define IDC_TT_LAG 1012 +#define IDC_CONTROL 1015 +#define IDC_PRESSED 1016 +#define IDC_MACHINE_ID 1017 +#define IDC_BROWSE_MACHINE_ID 1018 +#define IDC_CARD0 1020 +#define IDC_BROWSE_CARD0 1023 +#define IDC_CARD1 1024 +#define IDC_BROWSE_CARD1 1025 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 104 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1027 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resources.rc b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resources.rc new file mode 100644 index 0000000..c614e69 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/resources.rc @@ -0,0 +1,332 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Japanese resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) +#ifdef _WIN32 +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT +#pragma code_page(932) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_COMMON, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END + + IDD_EAMUSE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END + + IDD_IIDX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_COMMON DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Common" +FONT 8, "MS Shell Dlg", 400, 0, 0x0 +BEGIN + LTEXT "Device",IDC_STATIC,6,6,22,8 + COMBOBOX IDC_DEVICE,6,18,144,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Control",IDC_STATIC,6,36,24,8 + LISTBOX IDC_ACTION,156,18,138,186,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "Action",IDC_STATIC,156,6,21,8 + LISTBOX IDC_CONTROL,6,48,144,156,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "",IDC_PRESSED,6,210,288,8 +END + +IDD_EAMUSE DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "eAmusement" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "Machine ID Path",IDC_STATIC,6,6,53,8 + EDITTEXT IDC_MACHINE_ID,6,18,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_MACHINE_ID,246,18,48,14 + LTEXT "1P Card Path",IDC_STATIC,6,36,43,8 + EDITTEXT IDC_CARD0,6,48,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_CARD0,246,48,48,14 + LTEXT "2P Card Path",IDC_STATIC,6,66,43,8 + EDITTEXT IDC_CARD1,6,78,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_CARD1,246,78,48,14 +END + +IDD_IIDX DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "IIDX" +FONT 8, "MS Shell Dlg", 400, 0, 0x0 +BEGIN + LTEXT "Mouse X Axis",IDC_STATIC,6,6,43,8 + LTEXT "Mouse Y Axis",IDC_STATIC,156,6,43,8 + COMBOBOX IDC_IIDX_X_AXIS,6,18,144,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_IIDX_Y_AXIS,156,18,138,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Mouse Sensitivity",IDC_STATIC,6,36,56,8 + CONTROL "",IDC_MOUSE_SENS,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,6,48,288,18 + CONTROL "Add turntable lag. Enable this if scratches feel late in-game.",IDC_TT_LAG, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,78,207,10 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +IDD_IIDX DLGINIT +BEGIN + IDC_IIDX_X_AXIS, 0x403, 8, 0 +0x6e55, 0x6f62, 0x6e75, 0x0064, + IDC_IIDX_X_AXIS, 0x403, 13, 0 +0x3150, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_X_AXIS, 0x403, 13, 0 +0x3250, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_Y_AXIS, 0x403, 8, 0 +0x6e55, 0x6f62, 0x6e75, 0x0064, + IDC_IIDX_Y_AXIS, 0x403, 13, 0 +0x3150, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_Y_AXIS, 0x403, 13, 0 +0x3250, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + 0 +END + +#endif // Japanese resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_COMMON, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END + + IDD_IIDX, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END + + IDD_EAMUSE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 293 + TOPMARGIN, 7 + BOTTOMMARGIN, 215 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_COMMON DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Common" +FONT 8, "MS Shell Dlg", 400, 0, 0x0 +BEGIN + LTEXT "Device",IDC_STATIC,6,6,22,8 + COMBOBOX IDC_DEVICE,6,18,144,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Control",IDC_STATIC,6,36,24,8 + LISTBOX IDC_ACTION,156,18,138,186,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "Action",IDC_STATIC,156,6,21,8 + LISTBOX IDC_CONTROL,6,48,144,156,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "",IDC_PRESSED,6,210,288,8 +END + +IDD_IIDX DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "IIDX" +FONT 8, "MS Shell Dlg", 400, 0, 0x0 +BEGIN + LTEXT "Mouse X Axis",IDC_STATIC,6,6,43,8 + LTEXT "Mouse Y Axis",IDC_STATIC,156,6,43,8 + COMBOBOX IDC_IIDX_X_AXIS,6,18,144,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_IIDX_Y_AXIS,156,18,138,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Mouse Sensitivity",IDC_STATIC,6,36,56,8 + CONTROL "",IDC_MOUSE_SENS,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,6,48,288,18 + CONTROL "Add turntable lag. Enable this if scratches feel late in-game.",IDC_TT_LAG, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,78,207,10 +END + +IDD_EAMUSE DIALOGEX 0, 0, 300, 222 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "eAmusement" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "Machine ID Path",IDC_STATIC,6,6,53,8 + EDITTEXT IDC_MACHINE_ID,6,18,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_MACHINE_ID,246,18,48,14 + LTEXT "1P Card Path",IDC_STATIC,6,36,43,8 + EDITTEXT IDC_CARD0,6,48,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_CARD0,246,48,48,14 + LTEXT "2P Card Path",IDC_STATIC,6,66,43,8 + EDITTEXT IDC_CARD1,6,78,234,14,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",IDC_BROWSE_CARD1,246,78,48,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog Info +// + +IDD_IIDX DLGINIT +BEGIN + IDC_IIDX_X_AXIS, 0x403, 8, 0 +0x6e55, 0x6f62, 0x6e75, 0x0064, + IDC_IIDX_X_AXIS, 0x403, 13, 0 +0x3150, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_X_AXIS, 0x403, 13, 0 +0x3250, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_Y_AXIS, 0x403, 8, 0 +0x6e55, 0x6f62, 0x6e75, 0x0064, + IDC_IIDX_Y_AXIS, 0x403, 13, 0 +0x3150, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + IDC_IIDX_Y_AXIS, 0x403, 13, 0 +0x3250, 0x5420, 0x7275, 0x746e, 0x6261, 0x656c, "\000" + 0 +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (U.K.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_TITLE "BemaniPC Config" + IDS_CTL_NAME "Name" + IDS_CTL_BINDING "Binding" + IDS_PRESSED "Currently pressed:" + IDS_OPEN "Open" + IDS_OPEN_FILTER "Text Files" + IDS_MACHINE_ID_NOT_FOUND + "Could not read Machine ID file. You must have a valid machine ID to use an eAmusement emulation service" + IDS_IIDX_NONE "None" + IDS_IIDX_1P_TT "1P Turntable" + IDS_IIDX_2P_TT "2P Turntable" + IDS_ERROR "Error" +END + +STRINGTABLE +BEGIN + IDS_UNKNOWN_GAME "Unknown game type. Please launch this program using config.bat." +END + +#endif // English (U.K.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/config/stdafx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/stdafx.c new file mode 100644 index 0000000..859406f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/config/stdafx.c @@ -0,0 +1 @@ +#include "libutil/stdafx.h" \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/defs.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/defs.h new file mode 100644 index 0000000..5222324 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/defs.h @@ -0,0 +1,62 @@ +#ifndef EZUSB_IIDX_DEFS_H +#define EZUSB_IIDX_DEFS_H + +#define IIDX_MOUSE_DIVISOR 10 + +enum iidx_action +{ + /* usbReadPad() bit mappings (0x00 - 0x20) */ + + P1_1 = 0x08, + P1_2 = 0x09, + P1_3 = 0x0A, + P1_4 = 0x0B, + P1_5 = 0x0C, + P1_6 = 0x0D, + P1_7 = 0x0E, + + P2_1 = 0x0F, + P2_2 = 0x10, + P2_3 = 0x11, + P2_4 = 0x12, + P2_5 = 0x13, + P2_6 = 0x14, + P2_7 = 0x15, + P2_8 = 0x16, + + P1_START = 0x18, + P2_START = 0x19, + VEFX = 0x1A, + EFFECT = 0x1B, + TEST = 0x1C, + SERVICE = 0x1D, + + /* Synthetic inputs for turntable, sliders, etc */ + + P1_TT_UP = 0x20, + P1_TT_DOWN = 0x21, + P1_TT_FILTERED_UP = 0x22, + P1_TT_FILTERED_DOWN = 0x23, + P1_TT_STAB = 0x24, + + P2_TT_UP = 0x25, + P2_TT_DOWN = 0x26, + P2_TT_FILTERED_UP = 0x27, + P2_TT_FILTERED_DOWN = 0x28, + P2_TT_STAB = 0x29, + + SLIDER0_UP = 0x2A, + SLIDER0_DOWN = 0x2B, + SLIDER1_UP = 0x2C, + SLIDER1_DOWN = 0x2D, + SLIDER2_UP = 0x2E, + SLIDER2_DOWN = 0x2F, + SLIDER3_UP = 0x30, + SLIDER3_DOWN = 0x31, + SLIDER4_UP = 0x32, + SLIDER4_DOWN = 0x33, + + EXIT = 0xFF +}; + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/eamuse.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/eamuse.c new file mode 100644 index 0000000..87e1b01 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/eamuse.c @@ -0,0 +1,9 @@ +#include "libutil/stdafx.h" +#include "libutil/eamuse.h" +#include "libutil/util.h" + +DLLEXPORT int usbGetPCBID(u8_t *pcb_id) +{ + eam_read_machine_id(pcb_id); + return 0; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/ezusb-iidx.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/ezusb-iidx.vcproj new file mode 100644 index 0000000..7b81e24 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/ezusb-iidx.vcproj @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/input.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/input.c new file mode 100644 index 0000000..c4b1189 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/input.c @@ -0,0 +1,199 @@ +#include "libutil/stdafx.h" + +#include "ezusb-iidx/defs.h" +#include "ezusb-iidx/turntable.h" +#include "libutil/config.h" +#include "libutil/input.h" +#include "libutil/mouse.h" +#include "libutil/util.h" +#include "imports/libavs-win32.h" + +#define SLIDER_DIVISOR 8 +#define SLIDER_MAX (15 * SLIDER_DIVISOR) +#define SLIDER_MID (8 * SLIDER_DIVISOR) +#define SLIDER_INC(i) if (sliders[i] < SLIDER_MAX) sliders[i]++ +#define SLIDER_DEC(i) if (sliders[i] > 0) sliders[i]-- + +enum mouse_binding +{ + MBIND_NONE, + MBIND_P1_TT, + MBIND_P2_TT +}; + +static u8_t sliders[5]; +static enum mouse_binding mouse_x; +static enum mouse_binding mouse_y; + +#ifndef NDEBUG +static void log_proc(void *ctx, const char *msg, int msg_len) +{ + OutputDebugStringA(msg); +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + log_boot(log_proc, NULL); + return TRUE; +} +#endif + +static void dispatch_misc(u8_t action, bool edge, u32_t *pad) +{ + switch (action) { + case P1_TT_UP: + tt_active(0, -1); + break; + + case P1_TT_DOWN: + tt_active(0, +1); + break; + + case P1_TT_FILTERED_UP: + tt_filtered_active(0, -1); + break; + + case P1_TT_FILTERED_DOWN: + tt_filtered_active(0, +1); + break; + + case P1_TT_STAB: + if (edge) { + tt_stab(0); + } + + break; + + case P2_TT_UP: + tt_active(1, -1); + break; + + case P2_TT_DOWN: + tt_active(1, +1); + break; + + case P2_TT_FILTERED_UP: + tt_filtered_active(1, -1); + break; + + case P2_TT_FILTERED_DOWN: + tt_filtered_active(1, +1); + break; + + case P2_TT_STAB: + if (edge) { + tt_stab(1); + } + + break; + + case SLIDER0_UP: + SLIDER_INC(0); + break; + + case SLIDER0_DOWN: + SLIDER_DEC(0); + break; + + case SLIDER1_UP: + SLIDER_INC(1); + break; + + case SLIDER1_DOWN: + SLIDER_DEC(1); + break; + + case SLIDER2_UP: + SLIDER_INC(2); + break; + + case SLIDER2_DOWN: + SLIDER_DEC(2); + break; + + case SLIDER3_UP: + SLIDER_INC(3); + break; + + case SLIDER3_DOWN: + SLIDER_DEC(3); + break; + + case SLIDER4_UP: + SLIDER_INC(4); + break; + + case SLIDER4_DOWN: + SLIDER_DEC(4); + break; + + case EXIT: + ExitProcess(0); + break; + } +} + +static void STDCALL input_callback(u8_t action, bool edge, void *ctx) +{ + u32_t *pad = ctx; + + if (action < 0x20) { + /* Set pad bit */ + *pad |= (1 << action); + + /* Notify the turntable code if a Start button is held, to slow down the TT. */ + if (action == 0x18) { + tt_start_held(0); + } else if (action == 0x19) { + tt_start_held(1); + } + } else { + /* Fiddle with some other control */ + dispatch_misc(action, edge, pad); + } +} + +DLLEXPORT int usbStart(void) +{ + libutil_init(L"iidx"); + + tt_init(); + mouse_x = config_get_attr("x_axis"); + mouse_y = config_get_attr("y_axis"); + memset(sliders, SLIDER_MID, 5); + +#ifndef NDEBUG + log_boot(log_proc, NULL); +#endif + + return 0; +} + +DLLEXPORT int usbGetTurnTable(int player_id) +{ + return tt_get(player_id); +} + +DLLEXPORT int usbGetSlide(int slider) +{ + return sliders[slider] / SLIDER_DIVISOR; +} + +DLLEXPORT int usbPadRead(u32_t *pad) +{ + int dx; + int dy; + + *pad = 0; + + tt_begin_poll(0); + tt_begin_poll(1); + + input_scan(input_callback, pad); + mouse_read(&dx, &dy); + + tt_end_poll(0, mouse_x == MBIND_P1_TT ? dx : mouse_y == MBIND_P1_TT ? dy : 0); + tt_end_poll(1, mouse_x == MBIND_P2_TT ? dx : mouse_y == MBIND_P2_TT ? dy : 0); + + return 0; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/stdafx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/stdafx.c new file mode 100644 index 0000000..859406f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/stdafx.c @@ -0,0 +1 @@ +#include "libutil/stdafx.h" \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.c new file mode 100644 index 0000000..25b1f3c --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.c @@ -0,0 +1,169 @@ +#include "libutil/stdafx.h" + +#include "ezusb-iidx/defs.h" +#include "libutil/config.h" + +#define TT_FILTER_MIN 5 +#define TT_FILTER_MAX 30 +#define TT_SUDPLUS_DIVISOR 2 + +/* Turntable handling is pretty complicated, because the following forces are in play: + Turntable inputs may be normal, filtered, stabbed, or mouse-based + The speed of the first two must be halved while Start is held, to improve Sud+ handling. + Mouse input needs to be scaled by a configurable sensitivity value + IIDX AC expects its turntable to lag by a frame. In controllers with non-lagging + turntables, this lag must be simulated. + + Here is the flow of events: + In tt_begin_poll(): + Reset flags and directions, save filtered_active_dir in filtered_active_dir_prev + + During input_scan() callback: + Conventional TT press sets active_dir. + Filtered TT press set filtered_active_dir. + TT Stab increments lag_buffer directly by stab_dir, then negates stab_dir. + If a start button is held, then start_held is set. + + In tt_end_poll(): + filtered_counter is incremented if filtered_active_dir != filtered_active_dir_prev, otherwise reset to 0 + If filtered_counter is < TT_FILTER_MIN or > TT_FILTER_MAX then pending_increment is set. + + At this point, both normal and filtered TT events are merged into pending_increment. + If start_held is set, then tt_increment must reach +/-TT_SUDPLUS_DIVISOR + before it cascades to tt_lag_buf. + Otherwise, lag_buffer is incremented/decremented, and tt_increment is reset. + Mouse input is added to mouse_counter, and is multiplied by the current sensitivity. + When mouse_counter reaches IIDX_MOUSE_DIVISOR, lag_buffer is incremented/decremented. + Finally, if tt_lag is enabled, then its value is assigned to pos immediately. + Otherwise, the previous value of lag_buffer is used. + */ + +struct tt_state +{ + bool start_held; + int stab_dir; + int active_dir; + int filtered_active_dir_prev; + int filtered_active_dir; + int filtered_counter; + int pending_increment; + int mouse_counter; + u8_t lag_buffer; + u8_t pos; +}; + +static struct tt_state player[2]; +static int mouse_sens; +static bool add_lag; + +void tt_init(void) +{ + player[0].stab_dir = 4; + player[1].stab_dir = 4; + mouse_sens = config_get_attr("msens") + 1; + add_lag = config_get_attr("tt_lag"); +} + +void tt_begin_poll(int player_id) +{ + struct tt_state *p; + + p = &player[player_id]; + p->filtered_active_dir_prev = p->filtered_active_dir; + p->filtered_active_dir = 0; + p->active_dir = 0; + p->start_held = false; +} + +void tt_active(int player_id, int dir) +{ + struct tt_state *p; + + p = &player[player_id]; + p->active_dir = dir; +} + +void tt_filtered_active(int player_id, int dir) +{ + struct tt_state *p; + + p = &player[player_id]; + p->filtered_active_dir = dir; +} + +void tt_stab(int player_id) +{ + struct tt_state *p; + + p = &player[player_id]; + p->lag_buffer += p->stab_dir; + p->stab_dir *= -1; +} + +void tt_start_held(int player_id) +{ + struct tt_state *p; + + p = &player[player_id]; + p->start_held = true; +} + +void tt_end_poll(int player_id, int mouse_delta) +{ + struct tt_state *p; + + p = &player[player_id]; + + if (add_lag) { + /* Send last frame's state */ + p->pos = p->lag_buffer; + } + + /* Process standard inputs */ + if (p->active_dir) { + p->pending_increment += p->active_dir; + } + + /* Process filtered inputs */ + /* Reset filtered state counter if the direction has changed */ + if (p->filtered_active_dir_prev != p->filtered_active_dir) { + p->filtered_counter = 0; + } + + /* Increment counter if filtered input is active */ + if (p->filtered_active_dir != 0) { + p->filtered_counter++; + + if (p->filtered_counter < TT_FILTER_MIN || p->filtered_counter > TT_FILTER_MAX) { + p->pending_increment += p->filtered_active_dir; + } + } + + /* Spill pending_increment depending on the state of start_held */ + if (p->start_held) { + if (p->pending_increment <= -TT_SUDPLUS_DIVISOR || p->pending_increment >= +TT_SUDPLUS_DIVISOR) { + p->lag_buffer += p->pending_increment / TT_SUDPLUS_DIVISOR; + p->pending_increment = 0; + } + } else { + p->lag_buffer += p->pending_increment; + p->pending_increment = 0; + } + + /* Process mouse motion */ + p->mouse_counter += mouse_delta; + if (p->mouse_counter / IIDX_MOUSE_DIVISOR != 0) { + p->lag_buffer += p->mouse_counter / IIDX_MOUSE_DIVISOR; + p->mouse_counter %= IIDX_MOUSE_DIVISOR; + } + + if (!add_lag) { + /* Send the lag_buf value immediately (i.e. don't lag it) */ + p->pos = p->lag_buffer; + } +} + +u8_t tt_get(int player_id) +{ + return player[player_id].pos; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.h new file mode 100644 index 0000000..b22a5dd --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/ezusb-iidx/turntable.h @@ -0,0 +1,15 @@ +#ifndef EZUSB_IIDX_TURNTABLE_H +#define EZUSB_IIDX_TURNTABLE_H + +#include "libutil/util.h" + +void tt_init(void); +void tt_begin_poll(int player_id); +void tt_active(int player_id, int dir); +void tt_filtered_active(int player_id, int dir); +void tt_stab(int player_id); +void tt_start_held(int player_id); +void tt_end_poll(int player_id, int mouse_delta); +u8_t tt_get(int player_id); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/Makefile b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/Makefile new file mode 100644 index 0000000..0e50f6f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/Makefile @@ -0,0 +1,6 @@ + +.SUFFIXES: .txt +all: libavs-win32.lib libsystem.lib + +.txt.lib: + LIB /MACHINE:X86 /DEF:$*.txt diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/imports.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/imports.vcproj new file mode 100644 index 0000000..7d70074 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/imports.vcproj @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.h new file mode 100644 index 0000000..6f40dc7 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.h @@ -0,0 +1,17 @@ +#ifndef LIBAVS_WIN32_H +#define LIBAVS_WIN32_H + +#include "libutil/util.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DLLIMPORT void log_boot(void (*log_proc)(void *ctx, const char *msg, int msg_len), void *ctx); +DLLIMPORT void std_setenv(const char *key, const char *val); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.txt b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.txt new file mode 100644 index 0000000..a1038c7 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libavs-win32.txt @@ -0,0 +1,5 @@ +LIBRARY libavs-win32 + +EXPORTS + log_boot + std_setenv \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.h new file mode 100644 index 0000000..f242153 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.h @@ -0,0 +1,6 @@ +#ifndef GFDM_LIBSYSTEM_H +#define GFDM_LIBSYSTEM_H + +extern "C" void sys_debug_dip_set_param(const char *key, bool state); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.txt b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.txt new file mode 100644 index 0000000..5ae2e32 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/imports/libsystem.txt @@ -0,0 +1,4 @@ +LIBRARY libsystem + +EXPORTS + sys_debug_dip_set_param \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.def b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.def new file mode 100644 index 0000000..2d2b498 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.def @@ -0,0 +1,8 @@ +LIBRARY "iphlpapi" + +EXPORTS + GetAdaptersInfo=get_adapters_info + GetIfTable=get_if_table + GetNetworkParams=get_network_params + AddIPAddress=add_ip_address + DeleteIPAddress=delete_ip_address \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.vcproj new file mode 100644 index 0000000..2bbaa9c --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/iphlpapi.vcproj @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/stubs.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/stubs.c new file mode 100644 index 0000000..f4d34f4 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/iphlpapi/stubs.c @@ -0,0 +1,84 @@ +/* IPHLPAPI Stubs for libavs-win32 */ +#include +#include +#include "libutil/util.h" + +DWORD STDCALL get_adapters_info(IP_ADAPTER_INFO *a, ULONG *psz) +{ + if (*psz < sizeof(IP_ADAPTER_INFO)) { + *psz = sizeof(IP_ADAPTER_INFO); + return ERROR_BUFFER_OVERFLOW; + } else { + ZeroMemory(a, sizeof(IP_ADAPTER_INFO)); + + memset(a->Address, 0xFF, 6); + strcpy(a->DhcpServer.IpAddress.String, "192.168.1.1"); + strcpy(a->GatewayList.IpAddress.String, "192.168.1.1"); + strcpy(a->IpAddressList.IpAddress.String, "192.168.1.100"); + + a->AddressLength = 6; + a->DhcpEnabled = 1; + a->LeaseExpires= -1; + a->LeaseObtained = 1; + a->Type = MIB_IF_TYPE_ETHERNET; + + return ERROR_SUCCESS; + } +} + +DWORD STDCALL get_if_table(MIB_IFTABLE *ift, ULONG *psz, BOOL sort) +{ + size_t nbytes; + + nbytes = sizeof(MIB_IFTABLE) + sizeof(MIB_IFROW); + + if (*psz < nbytes) { + *psz = nbytes; + return ERROR_INSUFFICIENT_BUFFER; + } else { + memset(ift->table[0].bPhysAddr, 0xFF, 6); + + ift->dwNumEntries = 0; + ift->table[0].dwAdminStatus = 1; + ift->table[0].dwMtu = 1024; + ift->table[0].dwOperStatus = IF_OPER_STATUS_CONNECTED; + ift->table[0].dwPhysAddrLen = 6; + ift->table[0].dwSpeed = 100000; + ift->table[0].dwType = IF_TYPE_ETHERNET_CSMACD; + + return ERROR_SUCCESS; + } +} + +DWORD STDCALL get_network_params(FIXED_INFO *inf, ULONG *psz) +{ + if (*psz < sizeof(FIXED_INFO)) { + *psz = sizeof(FIXED_INFO); + return ERROR_BUFFER_OVERFLOW; + } else { + ZeroMemory(inf, sizeof(FIXED_INFO)); + + strcpy(inf->DnsServerList.IpAddress.String, "192.168.1.1"); + strcpy(inf->DomainName, "DOMAIN"); + strcpy(inf->HostName, "DJHACKERS"); + + inf->EnableDns = 1; + inf->NodeType = PEER_TO_PEER_NODETYPE; + + return ERROR_SUCCESS; + } +} + +DWORD STDCALL add_ip_address(IPAddr address, IPMask ipMask, DWORD ifIndex, + ULONG *nteContext, ULONG *nteInstance) +{ + *nteContext = 0; + *nteInstance = 0; + + return ERROR_SUCCESS; +} + +DWORD STDCALL delete_ip_address(ULONG nteContext) +{ + return ERROR_SUCCESS; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/acio.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/acio.c new file mode 100644 index 0000000..e1e7c57 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/acio.c @@ -0,0 +1,231 @@ +#include "libutil/stdafx.h" +#include "libutil/eamuse.h" +#include "libutil/input.h" +#include "libutil/util.h" + +/* And the prize for the most incredibly weird and hard to reverse engineer API goes to... */ + +#define WARMUP_STEPS 601 + +enum workflow { + /* Labels taken from game debug text */ + STEP, + SLEEP, + START, + INIT, + READY, + GET_USERID, + ACTIVE, + EJECT, + EJECT_CHECK, + END, + CLOSE_EJECT, + CLOSE_E_CHK, + CLOSE_END, + + ERR_GETUID = -2 +}; + +struct icca_status { + u8_t status_code; + u8_t solenoid; + u8_t front_sensor; + u8_t rear_sensor; + u8_t uid[USER_ID_NBYTES]; + s32_t error; + u32_t key_edge; + u32_t key_level; +}; + +struct unit { + struct icca_status status; + enum workflow state; + bool card_cmd_pressed; + bool card_in; + u8_t last_key_serial; +}; + +static struct unit units[2]; +static int warmup_counter; + +/* + * Keyboard read + */ + +static void update_10k(int unit_id) +{ + static int scan_codes[] = { + DIK_NUMPAD0, + DIK_NUMPAD1, + DIK_NUMPAD4, + DIK_NUMPAD7, + DIK_NUMPADENTER, + DIK_NUMPAD2, + DIK_NUMPAD5, + DIK_NUMPAD8, + DIK_NUMPADPERIOD, + DIK_NUMPAD3, + DIK_NUMPAD6, + DIK_NUMPAD9 + }; + + struct unit *unit; + const u8_t *keyboard; + u32_t last_levels; + u32_t bit; + int i; + + keyboard = input_get_state(DEV_CLASS_KEYBOARD, 0); + unit = &units[unit_id]; + + /* Initialise key level variables */ + last_levels = unit->status.key_level; + unit->status.key_level = 0; + + for (i = 0 ; i < 12 ; i++) { + bit = keyboard[scan_codes[i]]; + + if (bit) { + /* Key is pressed */ + bit <<= i; + + if (!(last_levels & bit)) { + /* This key has just been pressed */ + unit->status.key_edge = 0x80 | (unit->last_key_serial << 4) | i; + + /* Advance the event serial number. Presumably this allows the + * game to detect a key being re-pressed. Why the MSBit though? */ + unit->last_key_serial++; + unit->last_key_serial &= 7; + } + + unit->status.key_level |= bit; + } + } +} + +static void update_card(int unit_id) +{ + struct unit *unit; + const u8_t *keyboard; + + unit = &units[unit_id]; + keyboard = input_get_state(DEV_CLASS_KEYBOARD, 0); + + if (keyboard[DIK_NUMPADPLUS]) { + if (!unit->card_cmd_pressed) { + /* User has just pressed the card cmd key. Cycle states */ + if (unit->state == READY) { + if (eam_read_card(unit_id, unit->status.uid)) { + unit->state = ACTIVE; + } else { + unit->state = ERR_GETUID; + } + + unit->card_in = true; + + } else if (unit->state == EJECT_CHECK) { + unit->state = SLEEP; + unit->card_in = false; + } + } + + unit->card_cmd_pressed = true; + } else { + unit->card_cmd_pressed = false; + } +} + +/* + * ACIO stubs (ACIO is the bridge between the PC and the two ICCA units) + */ + +DLLEXPORT bool ac_io_begin(int param) +{ + return true; +} + +DLLEXPORT void ac_io_end(void) +{} + +/* Only ever called to get further information on an error. */ +DLLEXPORT void ac_io_get_rs232c_status(int *status) +{} + +/* This has to return true on EXACTLY the 602nd call. No more, no less. + * Quite what the hell is going on here is beyond me. */ +DLLEXPORT bool ac_io_is_active(int param) +{ + return ++warmup_counter > WARMUP_STEPS; +} + +DLLEXPORT void ac_io_reset(void) +{} + +/* + * ICCA interface + */ + +/* Again, check for the presence of an error. */ +DLLEXPORT bool ac_io_icca_get_keep_alive_error(int unit_id, int *error) +{ + return false; +} + +/* Read out all of the IC Card unit's registers */ +DLLEXPORT void ac_io_icca_get_status(struct icca_status *out_status, int unit_id) +{ + memcpy(out_status, &units[unit_id].status, sizeof(struct icca_status)); +} + +/* Poll for completion of UID read */ +DLLEXPORT void ac_io_icca_req_uid_isfinished(int unit_id, int *read_state) +{ + /* This means "We're done reading the UID" */ + *read_state = 8; +} + +/* What it says on the tin. */ +DLLEXPORT void ac_io_icca_send_keep_alive_packet(int unit_id, int param1, int param2) +{} + +/* Send a command to the ICCA unit, and return the unit's response. STEP just means + * "Report your current status", everything else modifies its internal state somehow. */ +DLLEXPORT int ac_io_icca_workflow(int workflow, int unit_id) +{ + struct unit *unit; + + unit = &units[unit_id]; + + /* Here's where the magic happens ... */ + switch (workflow) { + case STEP: + if ((GetKeyState(VK_NUMLOCK) & 1) == unit_id) { + update_10k(unit_id); + update_card(unit_id); + } + + break; + + case INIT: + unit->state = READY; + break; + + case START: + unit->state = READY; + break; + + case CLOSE_EJECT: + unit->state = unit->card_in ? EJECT_CHECK : SLEEP; + break; + + case CLOSE_END: + unit->state = SLEEP; + break; + + default: + break; + } + + return unit->state; +} \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/libacio.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/libacio.vcproj new file mode 100644 index 0000000..63c0782 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/libacio.vcproj @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/stdafx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/stdafx.c new file mode 100644 index 0000000..3117f28 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libacio/stdafx.c @@ -0,0 +1 @@ +#include "libutil/stdafx.h" diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/defs.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/defs.h new file mode 100644 index 0000000..848c9f0 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/defs.h @@ -0,0 +1,50 @@ +#ifndef LIBDEVICE_DEFS_H +#define LIBDEVICE_DEFS_H + +enum gfdm_action +{ + GFDM_TEST = 0x01, + GFDM_SERVICE = 0x03, + GFDM_DEBUG_AUTO = 0x40, + GFDM_DEBUG_TIMER = 0x41, + GFDM_EXIT = 0xFF +}; + +enum gf_action +{ + GF_1P_START = 0x02, + GF_1P_WAIL = 0x06, + GF_1P_RED = 0x09, + GF_1P_GREEN = 0x0A, + GF_1P_BLUE = 0x0B, + + GF_2P_START = 0x12, + GF_2P_WAIL = 0x16, + GF_2P_RED = 0x19, + GF_2P_GREEN = 0x1A, + GF_2P_BLUE = 0x1B, + + GF_1P_PICK_A = 0x20, + GF_1P_PICK_B = 0x21, + + GF_2P_PICK_A = 0x22, + GF_2P_PICK_B = 0x23, + + GF_1P_EFFECT = 0x30, + GF_2P_EFFECT = 0x31 +}; + +enum dm_action +{ + DM_START = 0x02, + DM_HI_HAT = 0x05, + DM_SNARE = 0x06, + DM_HIGH_TOM = 0x07, + DM_LOW_TOM = 0x08, + DM_CYMBAL = 0x09, + DM_BASS = 0x0B, + DM_MENU_LEFT = 0x17, + DM_MENU_RIGHT = 0x18, +}; + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/device.cpp b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/device.cpp new file mode 100644 index 0000000..d93250a --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/device.cpp @@ -0,0 +1,201 @@ +#include "libutil/stdafx.h" +#include "libutil/util.h" +#include "libutil/input.h" + +#include "imports/libavs-win32.h" +#include "imports/libsystem.h" + +#define PICK_BIT 0x20 + +/* Weird backwards two-bit integer */ +static const u32_t eff_lookup[] = { 0x0000, 0x0100, 0x0080, 0x0180 }; +static const char *dbg_keys[] = { "autoplay", "neverend" }; + +static u32_t state[2]; +static u8_t effector[2]; +static bool dbg_state[2]; + +/* While Guitar Freaks only has one pick direction, Guitar Hero controllers have two, + * and rapid picking causes these controllers to alternate between these directions + * without going via zero on their vertical axis. A naive binding of both pick + * directions would therefore cause the pick to get 'stuck' at any reasonably fast + * picking speed. + * + * Therefore, we have separate synthetic 'Pick A' and 'Pick B' bindings. Alternation + * between these two actions causes a pick to be signalled to the game for one frame. */ + +static void STDCALL input_callback(u8_t action, bool edge, void *ctx) +{ + u8_t index; + + if (action < 0x10) { + /* Update 1P input bit */ + state[0] |= (1 << action); + + } else if (action < 0x20) { + /* Update 2P input bit */ + state[1] |= (1 << (action - 0x10)); + + } else if (action < 0x30 && edge) { + /* Update 1P/2P pick */ + index = action - 0x20; + state[index / 2] |= PICK_BIT; + + } else if (action < 0x40 && edge) { + /* Update 1P/2P effector */ + index = action - 0x30; + effector[index] = (effector[index] + 1) % 4; + + } else if (action < 0x50 && edge) { + /* Fire a debugging toggle */ + index = action - 0x40; + dbg_state[index] = !dbg_state[index]; + sys_debug_dip_set_param(dbg_keys[index], dbg_state[index]); + + } else if (action == 0xFF) { + /* Exit */ + ExitProcess(0); + } +} + +#ifndef NDEBUG +static void log_proc(void *ctx, const char *msg, int msg_len) +{ + OutputDebugStringA(msg); +} +#endif + +DLLEXPORT int device_check_secplug(int param) +{ + static const int response[] = { 257, 256 }; + return response[param]; +} + +DLLEXPORT void device_finalize(void) +{ + timeEndPeriod(1); + libutil_fini(); +} + +DLLEXPORT void device_get_coinstock(unsigned short *,unsigned short *) +{} + +DLLEXPORT unsigned char device_get_dipsw(int) +{ + return 0; +} + +DLLEXPORT unsigned int device_get_input(int player) +{ + return state[player]; +} + +/* I don't know what this is used for, actually. It would be interesting + * to mess around with it. */ +DLLEXPORT unsigned __int64 device_get_input_time(void) +{ + return timeGetTime(); +} + +DLLEXPORT int device_get_jamma_history(struct T_JAMMA_HISTORY_INFO *,int) +{ + return 0; +} + +DLLEXPORT int device_get_status(void) +{ + return 0; +} + +DLLEXPORT int device_get_subboard_version(char *dest, int nbytes) +{ + /* It's a shoutout to 2ch akin to lololololol, w or 0x77 doesn't actually + * mean anything :) */ + strncpy(dest, "wwwwwwwwwwwwwwwwwww", nbytes); + return 0; +} + +DLLEXPORT int device_initialize(void) +{ + const wchar_t *cmdline; + bool quote; + + timeBeginPeriod(1); + +#ifndef NDEBUG + log_boot(log_proc, NULL); +#endif + + cmdline = GetCommandLine(); + quote = false; + + /* Skip executable name */ + while (*cmdline != L'\0' && !iswspace(*cmdline) && !quote) { + if (*cmdline == L'"') { + quote = !quote; + } + + cmdline++; + } + + /* Skip space after executable name */ + while (*cmdline != L'\0' && iswspace(*cmdline)) { + cmdline++; + } + + /* Determine game type */ + if (wcscmp(cmdline, L"-g") == 0) { + std_setenv("/env/profile/mcode", "xxG33JAA"); + libutil_init(L"gf"); + } else if (wcscmp(cmdline, L"-d") == 0) { + std_setenv("/env/profile/mcode", "xxG32JAA"); + libutil_init(L"dm"); + } else { + panic(L"Process launched with unknown game type. Command line is: \"%s\"\n", GetCommandLine()); + } + + /* Set other security data */ + std_setenv("/env/profile/hwid", "0000000000000000"); + std_setenv("/env/profile/softid", "0000000000000000"); + std_setenv("/env/profile/sysid", "0000000000000000"); + + return 0; +} + +DLLEXPORT void device_poweroff(void) +{ + ExitProcess(0); +} + +DLLEXPORT void device_set_coincounter_controllable(unsigned char,unsigned char) +{} + +DLLEXPORT void device_set_coincounter_merge(unsigned char) +{} + +DLLEXPORT void device_set_coincounter_work(unsigned char,unsigned char) +{} + +DLLEXPORT void device_set_jamma_asyncmode(void) +{} + +DLLEXPORT void device_set_jamma_unti_inputskip(int) +{} + +DLLEXPORT void device_set_portoutbit(int,int) +{} + +DLLEXPORT void device_update(void) +{ + int i; + + memset(state, 0, sizeof(state)); + input_scan(input_callback, NULL); + + for (i = 0 ; i < 2 ; i++) { + state[i] |= eff_lookup[effector[i]]; + } +} + +DLLEXPORT void device_update_secplug(void) +{} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/libdevice.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/libdevice.vcproj new file mode 100644 index 0000000..ee1fb77 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/libdevice.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/stdafx.cpp b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/stdafx.cpp new file mode 100644 index 0000000..859406f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libdevice/stdafx.cpp @@ -0,0 +1 @@ +#include "libutil/stdafx.h" \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/libinput.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/libinput.vcproj new file mode 100644 index 0000000..673586d --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/libinput.vcproj @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/stdafx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/stdafx.c new file mode 100644 index 0000000..3117f28 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libinput/stdafx.c @@ -0,0 +1 @@ +#include "libutil/stdafx.h" diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.c new file mode 100644 index 0000000..593a5ab --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.c @@ -0,0 +1,177 @@ +#include "libutil/stdafx.h" + +#include "libutil/config.h" +#include "libutil/eamuse.h" +#include "libutil/input.h" + +#define CONFIG_TAG_LEN 8 + +struct config_header +{ + int nbindings; + int nattrs; + wchar_t eam_machine_id_path[MAX_PATH]; + wchar_t eam_card_paths[2][MAX_PATH]; +}; + +struct config_attr +{ + char tag[CONFIG_TAG_LEN]; + int value; +}; + +static struct config_header hdr; +static const wchar_t config_subdir[] = L"\\DJ Hackers"; +static wchar_t config_path[MAX_PATH]; +static struct config_attr *attrs; + +static void config_load_header(FILE *f) +{ + fread(&hdr, sizeof(hdr), 1, f); + + eam_set_card_path(0, hdr.eam_card_paths[0]); + eam_set_card_path(1, hdr.eam_card_paths[1]); + eam_set_machine_id_path(hdr.eam_machine_id_path); +} + +static void config_load_input(FILE *f, int nbindings) +{ + struct input_binding *bindings; + + bindings = malloc(sizeof(struct input_binding) * nbindings); + fread(bindings, sizeof(struct input_binding), nbindings, f); + + /* Pass bindings to input subsystem, which takes ownership of this array. */ + input_set_bindings(bindings, nbindings); +} + +static void config_load_attrs(FILE *f, int nattrs) +{ + attrs = malloc(sizeof(struct config_attr) * nattrs); + fread(attrs, sizeof(struct config_attr), nattrs, f); +} + +static void config_save_header(FILE *f) +{ + hdr.nbindings = input_get_nbindings(); + + wcsncpy(hdr.eam_card_paths[0], eam_get_card_path(0), MAX_PATH); + wcsncpy(hdr.eam_card_paths[1], eam_get_card_path(1), MAX_PATH); + wcsncpy(hdr.eam_machine_id_path, eam_get_machine_id_path(), MAX_PATH); + + fwrite(&hdr, sizeof(hdr), 1, f); +} + +static void config_save_input(FILE *f, int nbindings) +{ + const struct input_binding *bindings; + + bindings = input_get_bindings(); + fwrite(bindings, sizeof(struct input_binding), nbindings, f); +} + +static void config_save_attrs(FILE *f, int nattrs) +{ + fwrite(attrs, sizeof(struct config_attr), nattrs, f); +} + +void config_init(const wchar_t *game_type) +{ + wchar_t config_dir[MAX_PATH]; + PIDLIST_ABSOLUTE pidl; + HRESULT hr; + + /* Get Application Data directory */ + hr = SHGetFolderLocation(NULL, CSIDL_APPDATA, NULL, 0, &pidl); + if (FAILED(hr)) { + panic(L"Error locating Application Data directory: %#08x", hr); + } + + /* Translate to path */ + SHGetPathFromIDList(pidl, config_dir); + ILFree(pidl); + + /* Ensure our subdirectory exists */ + wcscat_s(config_dir, MAX_PATH, config_subdir); + if (!CreateDirectory(config_dir, NULL) && GetLastError() != ERROR_ALREADY_EXISTS) { + panic(L"Failed to create Application Data subdirectory at \"%s\"\n"); + } + + /* Form configuration filename */ + swprintf_s(config_path, MAX_PATH, L"%s\\%s_v%02d.cfg", config_dir, game_type, LIBUTIL_VERSION); + + /* Initialise the configuration header in case we can't load it */ + memset(&hdr, 0, sizeof(hdr)); +} + +int config_get_attr(const char *tag) +{ + int i; + + for (i = 0 ; i < hdr.nattrs ; i++) { + if (strncmp(tag, attrs[i].tag, CONFIG_TAG_LEN) == 0) { + return attrs[i].value; + } + } + + return 0; +} + +void config_load(void) +{ + FILE *f; + + f = _wfopen(config_path, L"rb"); + + if (f == NULL) { + return; + } + + config_load_header(f); + config_load_input(f, hdr.nbindings); + config_load_attrs(f, hdr.nattrs); + + fclose(f); +} + +void config_save(void) +{ + FILE *f; + + f = _wfopen(config_path, L"wb"); + + if (f == NULL) { + panic(L"Error opening configuration file at \"%s\" for writing!\n", config_path); + } + + config_save_header(f); + config_save_input(f, hdr.nbindings); + config_save_attrs(f, hdr.nattrs); + + fclose(f); +} + +void config_set_attr(const char *tag, int value) +{ + int i; + + /* Try to alter existing attr */ + for (i = 0 ; i < hdr.nattrs ; i++) { + if (strncmp(tag, attrs[i].tag, CONFIG_TAG_LEN) == 0) { + attrs[i].value = value; + return; + } + } + + /* Failing that, add a new one */ + hdr.nattrs++; + attrs = realloc(attrs, sizeof(struct config_attr) * hdr.nattrs); + attrs[hdr.nattrs - 1].value = value; + strncpy(attrs[hdr.nattrs - 1].tag, tag, CONFIG_TAG_LEN); +} + +void config_fini(void) +{ + free(attrs); + attrs = NULL; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.h new file mode 100644 index 0000000..4cbdf41 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/config.h @@ -0,0 +1,13 @@ +#ifndef LIBUTIL_CONFIG_H +#define LIBUTIL_CONFIG_H + +#include "libutil/util.h" + +void config_init(const wchar_t *game_type); +LIBUTIL_API int config_get_attr(const char *tag); +void config_load(void); +LIBUTIL_API void config_save(void); +LIBUTIL_API void config_set_attr(const char *tag, int value); +void config_fini(void); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.c new file mode 100644 index 0000000..589bd13 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.c @@ -0,0 +1,32 @@ +#include "libutil/stdafx.h" + +#include "libutil/joystick.h" +#include "libutil/keyboard.h" +#include "libutil/mouse.h" +#include "libutil/dinput.h" +#include "libutil/util.h" + +extern HINSTANCE inst; /* In dll.c */ +static IDirectInput8 *api; + +void dinput_init(void) +{ + HRESULT hr; + + hr = DirectInput8Create(inst, DIRECTINPUT_VERSION, + &IID_IDirectInput8, &api, NULL); + if (FAILED(hr)) { + panic(L"DirectInput8Create failed: %#08x\n", hr); + } +} + +IDirectInput8 *dinput_get_api(void) +{ + return api; +} + +void dinput_fini(void) +{ + IDirectInput8_Release(api); +} + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.h new file mode 100644 index 0000000..b531837 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/dinput.h @@ -0,0 +1,18 @@ +#ifndef LIBUTIL_DINPUT_H +#define LIBUTIL_DINPUT_H + +#include "libutil/util.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void dinput_init(void); +IDirectInput8 *dinput_get_api(void); +void dinput_fini(void); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.c new file mode 100644 index 0000000..efa3b22 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.c @@ -0,0 +1,66 @@ +#include "libutil/stdafx.h" +#include "libutil/eamuse.h" + +static wchar_t machine_id_path[MAX_PATH]; +static wchar_t card_paths[2][MAX_PATH]; + +const wchar_t *eam_get_machine_id_path(void) +{ + return machine_id_path; +} + +const wchar_t *eam_get_card_path(int unit_id) +{ + return card_paths[unit_id]; +} + +bool eam_read_card(int unit_id, u8_t *user_id) +{ + FILE *f; + int i; + + f = _wfopen(card_paths[unit_id], L"r"); + + if (f != NULL) { + memset(user_id, 0, USER_ID_NBYTES); + + for (i = 0 ; i < USER_ID_NBYTES ; i++) { + fscanf(f, "%02x", user_id + i); + } + + fclose(f); + return true; + } else { + return false; + } +} + +void eam_read_machine_id(u8_t *machine_id) +{ + FILE *f; + int i; + + /* Set machine ID to zeros. If we can't read a machine ID file, then just + * return the zeros: a game will probably crash if this is not successful. */ + + memset(machine_id, 0, MACHINE_ID_NBYTES); + f = _wfopen(machine_id_path, L"r"); + + if (f != NULL) { + for (i = 0 ; i < MACHINE_ID_NBYTES ; i++) { + fscanf(f, "%02x", machine_id + i); + } + + fclose(f); + } +} + +void eam_set_machine_id_path(const wchar_t *path) +{ + wcsncpy(machine_id_path, path, MAX_PATH); +} + +void eam_set_card_path(int unit_id, const wchar_t *path) +{ + wcsncpy(card_paths[unit_id], path, MAX_PATH); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.h new file mode 100644 index 0000000..3ffd781 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/eamuse.h @@ -0,0 +1,23 @@ +#ifndef LIBUTIL_EAMUSE_H +#define LIBUTIL_EAMUSE_H + +#include "libutil/util.h" + +#define MACHINE_ID_NBYTES 10 +#define USER_ID_NBYTES 8 + +enum card_mode +{ + CARD_USE_NUMLOCK, + CARD_ALWAYS_P1, + CARD_ALWAYS_P2 +}; + +LIBUTIL_API const wchar_t *eam_get_card_path(int unit_num); +LIBUTIL_API const wchar_t *eam_get_machine_id_path(void); +LIBUTIL_API bool eam_read_card(int unit_num, u8_t *user_id); +LIBUTIL_API void eam_read_machine_id(u8_t *machine_id); +LIBUTIL_API void eam_set_card_path(int unit_num, const wchar_t *path); +LIBUTIL_API void eam_set_machine_id_path(const wchar_t *path); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.c new file mode 100644 index 0000000..d9ff6a3 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.c @@ -0,0 +1,302 @@ +#include "libutil/stdafx.h" + +#include "libutil/dinput.h" +#include "libutil/input.h" +#include "libutil/joystick.h" +#include "libutil/keyboard.h" +#include "libutil/midi.h" +#include "libutil/mouse.h" + +static const char config_file[] = "config.dat"; +static u8_t state[16]; +static u8_t state_prev[16]; +static struct input_binding *bindings; +static int nbindings; + +/* + * Binding utils + */ + +static int binding_cmp(const void *p1, const void *p2) +{ + const struct input_binding *lhs = p1; + const struct input_binding *rhs = p2; + int diff; + + diff = lhs->code.dev_class - rhs->code.dev_class; + if (diff != 0) return diff; + + diff = lhs->code.dev_id - rhs->code.dev_id; + if (diff != 0) return diff; + + diff = lhs->code.control_id - rhs->code.control_id; + return diff; +} + +static void input_add_binding(enum dev_class dev_class, u8_t dev_id, u8_t control_id, int action) +{ + /* Expand bindings[] and perform an insert, preserving binding_cmp() order */ + + struct input_binding new_binding; + struct input_binding *new_bindings; + int i; + + new_binding.code.dev_class = dev_class; + new_binding.code.dev_id = dev_id; + new_binding.code.control_id = control_id; + new_binding.action = action; + + new_bindings = malloc(sizeof(struct input_binding) * (nbindings + 1)); + + for (i = 0 ; i < nbindings && binding_cmp(&bindings[i], &new_binding) < 0 ; i++) { + new_bindings[i] = bindings[i]; + } + + new_bindings[i] = new_binding; + + for ( ; i < nbindings ; i++) { + new_bindings[i + 1] = bindings[i]; + } + + free(bindings); + + bindings = new_bindings; + nbindings++; +} + +/* + * Public API + */ + +void input_init(void) +{ + dinput_init(); + joystick_init(); + keyboard_init(); + midi_init(); + mouse_init(); +} + +const wchar_t *input_describe(enum dev_class dev_class, u8_t dev_id, u8_t control_id) +{ + switch (dev_class) { + case DEV_CLASS_KEYBOARD: + return keyboard_describe(control_id); + + case DEV_CLASS_JOYSTICK: + return joystick_describe(dev_id, control_id); + + case DEV_CLASS_MIDI: + return midi_describe(dev_id, control_id); + + default: + return NULL; + } +} + +bool input_get_binding(enum dev_class dev_class, u8_t dev_id, u8_t control_id, u8_t *action) +{ + struct input_binding *binding; + struct input_binding dummy; + + dummy.code.dev_class = dev_class; + dummy.code.dev_id = dev_id; + dummy.code.control_id = control_id; + binding = bsearch(&dummy, bindings, nbindings, sizeof(struct input_binding), binding_cmp); + + if (binding) { + *action = binding->action; + return true; + } else { + return false; + } +} + +const struct input_binding *input_get_bindings(void) +{ + return bindings; +} + +const wchar_t *input_get_name(enum dev_class dev_class, u8_t dev_id) +{ + switch (dev_class) { + case DEV_CLASS_KEYBOARD: + return L"Keyboard"; + + case DEV_CLASS_JOYSTICK: + return joystick_get_name(dev_id); + + case DEV_CLASS_MIDI: + return midi_get_name(dev_id); + + default: + return NULL; + } +} + +int input_get_nbindings(void) +{ + return nbindings; +} + +int input_get_ncontrols(enum dev_class dev_class) +{ + switch (dev_class) { + case DEV_CLASS_KEYBOARD: + return KEYBOARD_NCONTROLS; + + case DEV_CLASS_JOYSTICK: + return JOYSTICK_NCONTROLS; + + case DEV_CLASS_MIDI: + return MIDI_NCONTROLS; + + default: + return 0; + } +} + +int input_get_ndevs(enum dev_class dev_class) +{ + switch (dev_class) { + case DEV_CLASS_KEYBOARD: + return 1; + + case DEV_CLASS_JOYSTICK: + return joystick_get_ndevs(); + + case DEV_CLASS_MIDI: + return midi_get_ndevs(); + + default: + return 0; + } +} + +const u8_t *input_get_state(enum dev_class dev_class, u8_t dev_id) +{ + switch (dev_class) { + case DEV_CLASS_KEYBOARD: + return dev_id == 0 ? keyboard_get_state() : NULL; + + case DEV_CLASS_JOYSTICK: + return joystick_get_state(dev_id); + + case DEV_CLASS_MIDI: + return midi_get_state(dev_id); + + default: + return NULL; + } +} + +void input_scan(input_callback_t cb, void *ctx) +{ + int i; + u8_t bit; + u8_t byte; + const u8_t *dev_state; + + input_update(); + memset(state, 0, sizeof(state)); + + for (i = 0 ; i < nbindings ; i++) { + /* Get state of bound control */ + switch (bindings[i].code.dev_class) { + case DEV_CLASS_KEYBOARD: + dev_state = keyboard_get_state(); + break; + + case DEV_CLASS_JOYSTICK: + dev_state = joystick_get_state(bindings[i].code.dev_id); + break; + + case DEV_CLASS_MIDI: + dev_state = midi_get_state(bindings[i].code.dev_id); + break; + } + + if (dev_state != NULL && dev_state[bindings[i].code.control_id]) { + /* Locate action bit in state[] */ + bit = 1 << (bindings[i].action % 8); + byte = bindings[i].action / 8; + + /* Fire callback, set action state bit */ + cb(bindings[i].action, (state_prev[byte] & bit) == 0, ctx); + state[byte] |= bit; + } + } + + memcpy(state_prev, state, sizeof(state)); +} + +void input_set_binding(enum dev_class dev_class, u8_t dev_id, u8_t control_id, u8_t action) +{ + struct input_binding dummy; + struct input_binding *binding; + + trace(L"input_set_binding(%d, %d, %d, %d)\n", dev_class, dev_id, control_id, action); + + dummy.code.dev_class = dev_class; + dummy.code.dev_id = dev_id; + dummy.code.control_id = control_id; + binding = bsearch(&dummy, bindings, nbindings, sizeof(struct input_binding), binding_cmp); + + if (binding != NULL) { + binding->action = action; + } else { + input_add_binding(dev_class, dev_id, control_id, action); + } +} + +void input_set_bindings(struct input_binding *new_bindings, int new_nbindings) +{ + free(bindings); + + bindings = new_bindings; + nbindings = new_nbindings; +} + +void input_unbind(enum dev_class dev_class, u8_t dev_id, u8_t control_id) +{ + struct input_binding dummy; + int i; + + trace(L"input_unbind(%d, %d, %d)\n", dev_class, dev_id, control_id); + + dummy.code.dev_class = dev_class; + dummy.code.dev_id = dev_id; + dummy.code.control_id = control_id; + + /* Locate the offending binding */ + for (i = 0 ; i < nbindings && binding_cmp(&bindings[i], &dummy) != 0 ; i++); + + /* Move everything else down to cover the gap */ + if (i < nbindings) { + for ( ; i + 1 < nbindings ; i++) { + bindings[i] = bindings[i + 1]; + } + + nbindings--; + } +} + +void input_update(void) +{ + joystick_update(); + keyboard_update(); + midi_update(); +} + +void input_fini(void) +{ + free(bindings); + bindings = NULL; + nbindings = 0; + + mouse_fini(); + midi_fini(); + keyboard_fini(); + joystick_fini(); + dinput_fini(); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.h new file mode 100644 index 0000000..9095860 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/input.h @@ -0,0 +1,53 @@ +#ifndef LIBUTIL_INPUT_H +#define LIBUTIL_INPUT_H + +#include "libutil/util.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (STDCALL *input_callback_t)(u8_t action, bool edge, void *ctx); + +enum dev_class +{ + DEV_CLASS_KEYBOARD, + DEV_CLASS_JOYSTICK, + DEV_CLASS_MIDI, + DEV_CLASS_MAX +}; + +struct input_code +{ + u8_t dev_class; + u8_t dev_id; + u8_t control_id; +}; + +struct input_binding +{ + struct input_code code; + u8_t action; +}; + +void input_init(void); +LIBUTIL_API const wchar_t *input_describe(enum dev_class dev_class, u8_t dev_id, u8_t control_id); +LIBUTIL_API bool input_get_binding(enum dev_class dev_class, u8_t dev_id, u8_t control_id, u8_t *action); +const struct input_binding *input_get_bindings(void); +LIBUTIL_API const wchar_t *input_get_name(enum dev_class dev_class, u8_t dev_id); +int input_get_nbindings(void); +LIBUTIL_API int input_get_ncontrols(enum dev_class dev_class); +LIBUTIL_API int input_get_ndevs(enum dev_class dev_class); +LIBUTIL_API const u8_t *input_get_state(enum dev_class dev_class, u8_t dev_id); +LIBUTIL_API void input_scan(input_callback_t cb, void *ctx); +LIBUTIL_API void input_set_binding(enum dev_class dev_class, u8_t dev_id, u8_t control_id, u8_t action); +void input_set_bindings(struct input_binding *bindings, int nbindings); +LIBUTIL_API void input_unbind(enum dev_class dev_class, u8_t dev_id, u8_t control_id); +LIBUTIL_API void input_update(void); +void input_fini(void); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.c new file mode 100644 index 0000000..0974ce5 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.c @@ -0,0 +1,213 @@ +#include "libutil/stdafx.h" + +#include "libutil/dinput.h" +#include "libutil/joystick.h" +#include "libutil/util.h" + +#define CENTER 32767 +#define HAT_RIGHT 9000 +#define HAT_LEFT 27000 +#define HAT_DOWN 18000 +#define HAT_UP 0 + +static const wchar_t *joy_names[] = +{ + L"Right", + L"Left", + L"Up", + L"Down", + L"Rudder Left", + L"Rudder Right", + L"POV Right", + L"POV Left", + L"POV Up", + L"POV Down", + L"Button 1", + L"Button 2", + L"Button 3", + L"Button 4", + L"Button 5", + L"Button 6", + L"Button 7", + L"Button 8", + L"Button 9", + L"Button 10", + L"Button 11", + L"Button 12", + L"Button 13", + L"Button 14", + L"Button 15", + L"Button 16" +}; + +enum joy_control +{ + JSC_RIGHT, + JSC_LEFT, + JSC_UP, + JSC_DOWN, + JSC_RUDDER_RIGHT, + JSC_RUDDER_LEFT, + JSC_POV_RIGHT, + JSC_POV_LEFT, + JSC_POV_UP, + JSC_POV_DOWN, + JSC_BUTTON1 +}; + +struct joystick +{ + IDirectInputDevice8 *dev; + u8_t state[JOYSTICK_NCONTROLS]; + wchar_t name[64]; +}; + +static struct joystick *sticks; +static u8_t nsticks; + +static BOOL CALLBACK joystick_enum_cb(const DIDEVICEINSTANCE *dinst, void *ctx) +{ + IDirectInput8 *api; + IDirectInputDevice8 *dev; + HRESULT hr; + int i; + + api = dinput_get_api(); + hr = IDirectInput8_CreateDevice(api, &dinst->guidInstance, + &dev, NULL); + + if (FAILED(hr)) { + trace(L"Error opening %s: %#08x\n", dinst->tszInstanceName, hr); + return DIENUM_CONTINUE; + } + + /* Allocate a new stick */ + i = nsticks++; + sticks = realloc(sticks, sizeof(struct joystick) * nsticks); + memset(&sticks[i], 0, sizeof(struct joystick)); + + /* Populate stick state */ + sticks[i].dev = dev; + wcsncpy_s(sticks[i].name, sizeof(sticks[i].name) / sizeof(wchar_t), dinst->tszInstanceName, + _TRUNCATE); + + /* DirectInput bureaucratic crap */ + hr = IDirectInputDevice8_SetCooperativeLevel(sticks[i].dev, + NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE); + if (FAILED(hr)) { + panic(L"Error setting co-op for %s: %#08x\n", sticks[i].name, hr); + } + + hr = IDirectInputDevice8_SetDataFormat(sticks[i].dev, &c_dfDIJoystick); + if (FAILED(hr)) { + panic(L"Error setting format for %s: %#08x\n", sticks[i].name, hr); + } + + hr = IDirectInputDevice8_Acquire(sticks[i].dev); + if (FAILED(hr)) { + panic(L"Error acquiring %s: %#08x\n", sticks[i].name, hr); + } + + trace(L"Opened %s\n", sticks[i].name); + return DIENUM_CONTINUE; +} + +void joystick_init(void) +{ + IDirectInput8 *api; + HRESULT hr; + + api = dinput_get_api(); + hr = IDirectInput8_EnumDevices(api, DI8DEVCLASS_GAMECTRL, + joystick_enum_cb, NULL, DIEDFL_ALLDEVICES); + if (FAILED(hr)) { + panic(L"Error enumerating joysticks: %#08x\n", hr); + } +} + +const wchar_t *joystick_describe(u8_t dev_id, u8_t control_id) +{ + if (dev_id >= nsticks) { + return NULL; + } + + if (control_id >= JOYSTICK_NCONTROLS) { + return NULL; + } + + return joy_names[control_id]; +} + +const wchar_t *joystick_get_name(u8_t dev_id) +{ + return dev_id < nsticks ? sticks[dev_id].name : NULL; +} + +int joystick_get_ndevs(void) +{ + return nsticks; +} + +const u8_t *joystick_get_state(u8_t dev_id) +{ + if (dev_id >= nsticks) { + return NULL; + } else { + return sticks[dev_id].state; + } +} + +void joystick_update(void) +{ + HRESULT hr; + DIJOYSTATE js; + u8_t *s; + int i; + + for (i = 0 ; i < nsticks ; i++) { + /* Poll stick */ + hr = IDirectInputDevice8_Poll(sticks[i].dev); + if (FAILED(hr)) { + trace(L"Error polling %s: %08x\n", sticks[i].name, hr); + } + + /* Get raw state */ + hr = IDirectInputDevice8_GetDeviceState(sticks[i].dev, + sizeof(DIJOYSTATE), &js); + if (FAILED(hr)) { + trace(L"Error retrieving device state for %s: %08x\n", sticks[i].name, hr); + } + + /* Clear translated state */ + s = sticks[i].state; + memset(s, 0, JOYSTICK_NCONTROLS); + + /* Translate axes into +ve and -ve virtual buttons */ + if (js.lX > CENTER) s[JSC_RIGHT] = true; + if (js.lX < CENTER) s[JSC_LEFT] = true; + if (js.lY > CENTER) s[JSC_UP] = true; + if (js.lY < CENTER) s[JSC_DOWN] = true; + if (js.lZ > CENTER) s[JSC_RUDDER_RIGHT] = true; + if (js.lZ < CENTER) s[JSC_RUDDER_LEFT] = true; + if (js.rgdwPOV[0] == HAT_RIGHT) s[JSC_POV_RIGHT] = true; + if (js.rgdwPOV[0] == HAT_LEFT) s[JSC_POV_LEFT] = true; + if (js.rgdwPOV[0] == HAT_UP) s[JSC_POV_UP] = true; + if (js.rgdwPOV[0] == HAT_DOWN) s[JSC_POV_DOWN] = true; + + /* Copy button state */ + memcpy(&s[JSC_BUTTON1], js.rgbButtons, 16); + } +} + +void joystick_fini(void) +{ + int i; + + for (i = 0 ; i < nsticks ; i++) { + IDirectInputDevice8_Unacquire(sticks[i].dev); + IDirectInputDevice8_Release(sticks[i].dev); + } + + free(sticks); + nsticks = 0; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.h new file mode 100644 index 0000000..287c6fd --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/joystick.h @@ -0,0 +1,16 @@ +#ifndef LIBUTIL_JOYSTICK_H +#define LIBUTIL_JOYSTICK_H + +#include "libutil/util.h" + +#define JOYSTICK_NCONTROLS 26 + +void joystick_init(void); +const wchar_t *joystick_describe(u8_t dev_id, u8_t control_id); +const wchar_t *joystick_get_name(u8_t dev_id); +int joystick_get_ndevs(void); +const u8_t *joystick_get_state(u8_t dev_id); +void joystick_update(void); +void joystick_fini(void); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.c new file mode 100644 index 0000000..e515199 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.c @@ -0,0 +1,88 @@ +#include "libutil/stdafx.h" + +#include "libutil/dinput.h" +#include "libutil/keyboard.h" + +#define KBD_LABEL_LEN 32 + +static IDirectInputDevice8 *kbd_dev; +static wchar_t kbd_names[KEYBOARD_NCONTROLS][KBD_LABEL_LEN]; +static u8_t kbd_state[KEYBOARD_NCONTROLS]; + +void keyboard_init(void) +{ + IDirectInput8 *api; + DIDEVICEOBJECTINSTANCE obj; + HRESULT hr; + int i; + + api = dinput_get_api(); + hr = IDirectInput8_CreateDevice(api, &GUID_SysKeyboard, + &kbd_dev, NULL); + if (FAILED(hr)) { + panic(L"Error opening system keyboard: %#08x\n", hr); + } + + hr = IDirectInputDevice8_SetCooperativeLevel(kbd_dev, + NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE); + if (FAILED(hr)) { + panic(L"Error setting keyboard co-op: %#08x\n", hr); + } + + hr = IDirectInputDevice8_SetDataFormat(kbd_dev, &c_dfDIKeyboard); + if (FAILED(hr)) { + panic(L"Error setting keyboard data format: %#08x\n", hr); + } + + for (i = 0 ; i < KEYBOARD_NCONTROLS ; i++) { + memset(&obj, 0, sizeof(obj)); + obj.dwSize = sizeof(obj); + + hr = IDirectInputDevice8_GetObjectInfo(kbd_dev, &obj, i, DIPH_BYOFFSET); + + if (SUCCEEDED(hr)) { + wcsncpy_s(kbd_names[i], KBD_LABEL_LEN, obj.tszName, _TRUNCATE); + } else { + kbd_names[i][0] = L'\0'; + } + } + + hr = IDirectInputDevice8_Acquire(kbd_dev); + if (FAILED(hr)) { + panic(L"Error acquiring system keyboard: %#08x\n", hr); + } + + trace(L"Opened system keyboard\n"); +} + +const wchar_t *keyboard_describe(u8_t control_id) +{ + const wchar_t *str; + + /* Return NULL if the control name is an empty string */ + str = kbd_names[control_id]; + return str[0] ? str : NULL; +} + +const u8_t *keyboard_get_state(void) +{ + return kbd_state; +} + +void keyboard_update(void) +{ + HRESULT hr; + + hr = IDirectInputDevice8_GetDeviceState(kbd_dev, KEYBOARD_NCONTROLS, kbd_state); + if (FAILED(hr)) { + panic(L"Error polling keyboard: %#08x\n", hr); + } +} + +void keyboard_fini(void) +{ + IDirectInputDevice8_Unacquire(kbd_dev); + IDirectInputDevice8_Release(kbd_dev); + + kbd_dev = NULL; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.h new file mode 100644 index 0000000..254902e --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/keyboard.h @@ -0,0 +1,12 @@ +#ifndef LIBUTIL_KEYBOARD_H +#define LIBUTIL_KEYBOARD_H + +#define KEYBOARD_NCONTROLS 256 + +void keyboard_init(void); +const wchar_t *keyboard_describe(u8_t control_id); +const u8_t *keyboard_get_state(void); +void keyboard_update(void); +void keyboard_fini(void); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.c new file mode 100644 index 0000000..5b54f8f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.c @@ -0,0 +1,61 @@ +#include "libutil/stdafx.h" + +#include "libutil/config.h" +#include "libutil/input.h" +#include "libutil/util.h" + +HINSTANCE inst; + +static void vtrace(const wchar_t *fmt, va_list ap) +{ + wchar_t buf[1024]; + int retval; + + retval = vswprintf_s(buf, sizeof(buf) / sizeof(wchar_t), fmt, ap); + if (retval != -1) { + OutputDebugString(buf); + } +} + +void libutil_init(const wchar_t *game_type) +{ + config_init(game_type); + input_init(); + + config_load(); +} + +void libutil_fini(void) +{ + input_fini(); + config_fini(); +} + +void trace(const wchar_t *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vtrace(fmt, ap); + va_end(ap); +} + +void panic(const wchar_t *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vtrace(fmt, ap); + va_end(ap); + + exit(-1); +} + +BOOL WINAPI DllMain(HINSTANCE instParam, DWORD reason, void *reserved) +{ + if (reason == DLL_PROCESS_ATTACH) { + inst = instParam; + } + + return TRUE; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.vcproj b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.vcproj new file mode 100644 index 0000000..c99bee1 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/libutil.vcproj @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.c new file mode 100644 index 0000000..c102c37 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.c @@ -0,0 +1,144 @@ +#include "libutil/stdafx.h" + +#include "libutil/input.h" +#include "libutil/midi.h" + +#define NFRAMES 2 + +/* The Windows MIDI API is unreasonably simple and clear, for a Windows API or otherwise. + * This is an outrage! I demand at least 100 lines of pointless boilerplate code! :P */ + +struct midi_device +{ + HMIDIIN hmidi; + MIDIINCAPS caps; + CRITICAL_SECTION cs; + midi_state_t live; + midi_state_t snap; +}; + +static struct midi_device *devs; +static int ndevs; + +static void CALLBACK midi_callback(HMIDIIN handle, UINT dummy1, struct midi_device *dev, + u32_t msg, void *dummy) +{ + /* See http://recording.songstuff.com/articles.php?selected=55 for MIDI msg format. + * The message itself is passed in via the msg parameter */ + + u8_t evt; + u8_t pressure; + u8_t code; + + /* Unpack event */ + evt = msg & 0xF0; /* Treat all channels the same */ + code = (u8_t) (msg >> 8); + pressure = (u8_t) (msg >> 16); + + /* Update live state */ + if (evt == 0x90 && pressure > 0) { + EnterCriticalSection(&dev->cs); + if (dev->live[code] == 0) dev->live[code] = NFRAMES; + LeaveCriticalSection(&dev->cs); + } +} + +void midi_init(void) +{ + MMRESULT retval; + int i; + + ndevs = midiInGetNumDevs(); + devs = calloc(sizeof(struct midi_device), ndevs); + + for (i = 0 ; i < ndevs ; i++) { + InitializeCriticalSection(&devs[i].cs); + + retval = midiInGetDevCaps(i, &devs[i].caps, sizeof(MIDIINCAPS)); + if (retval != MMSYSERR_NOERROR) { + panic(L"Error getting capabilities of MIDI device #%d\n", i + 1); + } + + retval = midiInOpen(&devs[i].hmidi, i, (DWORD_PTR) midi_callback, (DWORD_PTR) (devs + i), CALLBACK_FUNCTION); + if (retval != MMSYSERR_NOERROR) { + panic(L"Error opening MIDI device %s\n", devs[i].caps.szPname); + } + + retval = midiInStart(devs[i].hmidi); + if (retval != MMSYSERR_NOERROR) { + panic(L"Error starting MIDI device %s\n", devs[i].caps.szPname); + } + + trace(L"Opened %s\n", devs[i].caps.szPname); + } +} + +int midi_get_ndevs(void) +{ + return ndevs; +} + +const wchar_t *midi_get_name(u8_t dev_id) +{ + if (dev_id >= ndevs) return NULL; + return devs[dev_id].caps.szPname; +} + +const wchar_t *midi_describe(u8_t dev_id, u8_t control_id) +{ + /* Static buffers are lazy, I know. Bite me. */ + static wchar_t buf[32]; + + if (dev_id >= ndevs) { + return NULL; + } + + if (control_id >= MIDI_NCONTROLS) { + return NULL; + } + + swprintf(buf, sizeof(buf) / sizeof(wchar_t), L"Note %02X", control_id); + return buf; +} + +const u8_t *midi_get_state(u8_t dev_id) +{ + return dev_id < ndevs ? devs[dev_id].snap : NULL; +} + +void midi_update(void) +{ + int i; + int j; + + for (i = 0 ; i < ndevs ; i++) { + EnterCriticalSection(&devs[i].cs); + + /* Snapshot the live state */ + memcpy(devs[i].snap, devs[i].live, sizeof(midi_state_t)); + + /* Decay the notes */ + for (j = 0 ; j < sizeof(midi_state_t) ; j++) { + if (devs[i].live[j] > 0) { + devs[i].live[j]--; + } + } + + LeaveCriticalSection(&devs[i].cs); + } +} + +void midi_fini(void) +{ + int i; + + for (i = 0 ; i < ndevs ; i++) { + midiInStop(devs[i].hmidi); + midiInClose(devs[i].hmidi); + + DeleteCriticalSection(&devs[i].cs); + } + + free(devs); + ndevs = 0; +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.h new file mode 100644 index 0000000..6d26e48 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/midi.h @@ -0,0 +1,19 @@ +#ifndef LIBUTIL_MIDI_H +#define LIBUTIL_MIDI_H + +#include "libutil/util.h" +#include "libutil/input.h" + +#define MIDI_NCONTROLS 127 + +typedef u8_t midi_state_t[MIDI_NCONTROLS]; + +void midi_init(void); +int midi_get_ndevs(void); +const wchar_t *midi_get_name(u8_t dev_id); +const wchar_t *midi_describe(u8_t dev_id, u8_t control_id); +const u8_t *midi_get_state(u8_t dev_id); +void midi_update(void); +void midi_fini(void); + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.c new file mode 100644 index 0000000..7a2ada6 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.c @@ -0,0 +1,56 @@ +#include "libutil/stdafx.h" + +#include "libutil/dinput.h" +#include "libutil/mouse.h" + +static IDirectInputDevice8 *mouse_dev; + +void mouse_init(void) +{ + IDirectInput8 *api; + HRESULT hr; + + api = dinput_get_api(); + hr = IDirectInput8_CreateDevice(api, &GUID_SysMouse, &mouse_dev, NULL); + if (FAILED(hr)) { + panic(L"Error opening system mouse: %#08x\n", hr); + } + + hr = IDirectInputDevice8_SetCooperativeLevel(mouse_dev, + NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE); + if (FAILED(hr)) { + panic(L"Error setting mouse co-op: %#08x\n", hr); + } + + hr = IDirectInputDevice8_SetDataFormat(mouse_dev, &c_dfDIMouse); + if (FAILED(hr)) { + panic(L"Error settings mouse data format: %#08x\n", hr); + } + + hr = IDirectInputDevice8_Acquire(mouse_dev); + if (FAILED(hr)) { + panic(L"Error acquiring system mouse: %#08x\n", hr); + } + + trace(L"Opened system mouse\n"); +} + +void mouse_read(int *dx, int *dy) +{ + DIMOUSESTATE ms; + HRESULT hr; + + hr = IDirectInputDevice8_GetDeviceState(mouse_dev, sizeof(ms), &ms); + if (FAILED(hr)) { + panic(L"Error polling mouse: %#08x\n", hr); + } + + *dx = ms.lX; + *dy = ms.lY; +} + +void mouse_fini(void) +{ + IDirectInputDevice8_Unacquire(mouse_dev); + IDirectInputDevice8_Release(mouse_dev); +} diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.h new file mode 100644 index 0000000..f4a24c7 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/mouse.h @@ -0,0 +1,18 @@ +#ifndef LIBUTIL_MOUSE_H +#define LIBUTIL_MOUSE_H + +#include "libutil/util.h" + +#ifdef __cpluspus +extern "C" { +#endif + +void mouse_init(void); +LIBUTIL_API void mouse_read(int *dx, int *dy); +void mouse_fini(void); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.c b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.c new file mode 100644 index 0000000..859406f --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.c @@ -0,0 +1 @@ +#include "libutil/stdafx.h" \ No newline at end of file diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.h new file mode 100644 index 0000000..454e452 --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/stdafx.h @@ -0,0 +1,13 @@ +#define DIRECTINPUT_VERSION 0x0800 +#define WIN32_LEAN_AND_MEAN +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include diff --git a/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/util.h b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/util.h new file mode 100644 index 0000000..f19d7bd --- /dev/null +++ b/iidx/Sourcecode ezusb DJT Hack/Bemani/libutil/util.h @@ -0,0 +1,43 @@ +#ifndef LIBUTIL_UTIL_H +#define LIBUTIL_UTIL_H + +#define LIBUTIL_VERSION 1 + +#define DLLEXPORT __declspec(dllexport) +#define DLLIMPORT __declspec(dllimport) +#define STDCALL __stdcall + +#ifndef LIBUTIL_EXPORT +#define LIBUTIL_API DLLEXPORT +#else +#define LIBUTIL_API DLLIMPORT +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __cplusplus +typedef enum { true = 1, false = 0 } bool; +#endif + +typedef unsigned char u8_t; +typedef unsigned short u16_t; +typedef unsigned int u32_t; + +typedef signed char s8_t; +typedef signed short s16_t; +typedef signed int s32_t; + +LIBUTIL_API void libutil_init(const wchar_t *game_type); +LIBUTIL_API void libutil_fini(void); +LIBUTIL_API void config_save(void); + +LIBUTIL_API void trace(const wchar_t *fmt, ...); +LIBUTIL_API void panic(const wchar_t *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/iidx/Timebase/timebase copy.exe b/iidx/Timebase/timebase copy.exe new file mode 100644 index 0000000..e69de29 diff --git a/iidx/Timebase/timebase.exe b/iidx/Timebase/timebase.exe new file mode 100644 index 0000000..1eca164 Binary files /dev/null and b/iidx/Timebase/timebase.exe differ diff --git a/iidx/Timebase/timebase2.exe b/iidx/Timebase/timebase2.exe new file mode 100644 index 0000000..a2e3263 Binary files /dev/null and b/iidx/Timebase/timebase2.exe differ diff --git a/iidx/UbmPlay/image.dll b/iidx/UbmPlay/image.dll new file mode 100644 index 0000000..6336bfb Binary files /dev/null and b/iidx/UbmPlay/image.dll differ diff --git a/iidx/UbmPlay/image/font.png b/iidx/UbmPlay/image/font.png new file mode 100644 index 0000000..a545ec0 Binary files /dev/null and b/iidx/UbmPlay/image/font.png differ diff --git a/iidx/UbmPlay/image/skin_00.png b/iidx/UbmPlay/image/skin_00.png new file mode 100644 index 0000000..83bc727 Binary files /dev/null and b/iidx/UbmPlay/image/skin_00.png differ diff --git a/iidx/UbmPlay/image/skin_01.png b/iidx/UbmPlay/image/skin_01.png new file mode 100644 index 0000000..50eee70 Binary files /dev/null and b/iidx/UbmPlay/image/skin_01.png differ diff --git a/iidx/UbmPlay/image/skin_02.png b/iidx/UbmPlay/image/skin_02.png new file mode 100644 index 0000000..aaec297 Binary files /dev/null and b/iidx/UbmPlay/image/skin_02.png differ diff --git a/iidx/UbmPlay/image/skin_03.png b/iidx/UbmPlay/image/skin_03.png new file mode 100644 index 0000000..940ca40 Binary files /dev/null and b/iidx/UbmPlay/image/skin_03.png differ diff --git a/iidx/UbmPlay/ogg.dll b/iidx/UbmPlay/ogg.dll new file mode 100644 index 0000000..16820cb Binary files /dev/null and b/iidx/UbmPlay/ogg.dll differ diff --git a/iidx/UbmPlay/readme.txt b/iidx/UbmPlay/readme.txt new file mode 100644 index 0000000..29cbb87 --- /dev/null +++ b/iidx/UbmPlay/readme.txt @@ -0,0 +1,417 @@ +uBMplay +readme.txt + + + +EŠT—v + +BMS ƒvƒŒƒCƒ„[‚ÆŒ©‚¹‚©‚¯‚½ƒrƒ…[ƒ‚Å‚·BƒvƒŒƒC‚͂ł«‚È‚¢‚̂ł²’ˆÓ‚­‚¾‚³‚¢BBMS ‚Á‚ĉ½H‚Æ‚¢‚¤l‚Í BM98 for the BEGINNER (http://www2.pf-x.net/~bforb/) ‚ȂǂðŽQl‚ɂǂ¤‚¼B + +Žå‚È“Á’¥: +EŠeŽí•ÒWƒ\ƒtƒg (BMSCEGDAC2EBMSE) ‚©‚ç‚̌ĂÑo‚µ‚ª‰Â”\ +EWAVEBMP ‚ÌŠg’£’è‹` (01 ` ZZ) ‚ɑΉž +EƒXƒgƒbƒvƒV[ƒPƒ“ƒXAŠg’£ BPM •ÏXA#BGA –½—߂ɑΉž (01 ` ZZ) +Eƒƒ“ƒOƒm[ƒg‚ɑΉž (#LNTYPE 1E#LNTYPE 2 —¼‘Ήž) +EOgg Vorbis ‘Ήž +EƒV[ƒN‹@”\“‹Ú + +»ì‚ÉÛ‚µ‚ÄAˆÈ‰º‚̃\ƒtƒgƒEƒFƒA‚ðŽQl‚É‚³‚¹‚Ä‚¢‚½‚¾‚«‚Ü‚µ‚½B‚±‚Ìê‚ðŽØ‚è‚ÄŠ´ŽÓ‚¢‚½‚µ‚Ü‚·B +EnBMplay (http://nothing.sh/) +Enazobmplay (“¯ã) + + + +E“®ìŠÂ‹« + +Windows XP SP2 ‚ł̓®ì‚ðŠm”FB98SE ˆÈ~‚Ì Windows ‚È‚ç–â‘è‚È‚­“®‚­‚ÆŽv‚¢‚Ü‚·B‚Ü‚½AVisual Basic 6.0 SP6 ƒ‰ƒ“ƒ^ƒCƒ€ACOMDLG32.OCXAMSCOMCTL.OCXADirectX ƒ‰ƒ“ƒ^ƒCƒ€ (7.0 ˆÈã) ‚ª•K{‚ɂȂè‚Ü‚·B‚±‚ê‚ç‚̃tƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚È‚¢ê‡A³í‚ÉŽÀs‚Å‚«‚Ü‚¹‚ñ‚̂ł²’ˆÓ‚­‚¾‚³‚¢B + +ƒ_ƒEƒ“ƒ[ƒh‚͈ȉº‚Ì URL ‚Ȃǂ©‚çs‚¦‚Ü‚·: +http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C (VB6 ƒ‰ƒ“ƒ^ƒCƒ€‚Ì‚Ý) +http://www.vector.co.jp/soft/win95/util/se188840.html (VB6 ƒ‰ƒ“ƒ^ƒCƒ€‚Æ COMDLG32.OCX ‚ðŠÜ‚Þ‚¢‚­‚‚©‚̃Rƒ“ƒ|[ƒlƒ“ƒg) +http://www.vector.co.jp/soft/win95/util/se063979.html (“¯ã) +http://www.microsoft.com/japan/windows/directx/ (DirectX ƒ‰ƒ“ƒ^ƒCƒ€) + +‚Ü‚½AWindows Vista ‚Å“®ì‚³‚¹‚é‚É‚ÍAdx7vb.dllA‚¨‚æ‚Ñ‚»‚Ì“o˜^‚ª•K—v‚ɂȂè‚Ü‚·Bhttp://wiki.nothing.sh/page/nazobmplay ‚ɑΉž•û–@‚ªŒfÚ‚³‚ê‚Ä‚¢‚Ü‚·‚ªA•K‚¸Ž©ŒÈÓ”C‚Ìã‚Å‚¨ŽŽ‚µ‚­‚¾‚³‚¢B + + + +E–³•ÛØéŒ¾ + +‚±‚̃\ƒtƒgƒEƒFƒA‚Í "–³•ÛØ" ‚Å‚·B‚±‚̃\ƒtƒgƒEƒFƒA‚ðŽg—p‚µ‚½‚±‚Ƃɂæ‚é‚¢‚©‚Ȃ鑹ŠQ‚ÌÓ”C‚à»ìŽÒ‚Í•‰‚í‚È‚¢‚à‚̂Ƃµ‚Ü‚·B + + + +EÄ”z•z‚ɂ‚¢‚Ä + +UCN-Soft (http://ucn.tokonats.net/) ‚Å”z•z‚µ‚Ä‚¢‚éƒA[ƒJƒCƒu‚ÉˆêØ‚Ì•ÏX‚ð‰Á‚¦‚¸ (“à—e‚ð•ÏX‚µ‚È‚¢Äˆ³k‚Í‚±‚ÌŒÀ‚è‚ł͂ ‚è‚Ü‚¹‚ñ)A‚Ü‚½”z•zŒ`‘Ô‚ª–³ž‚ÌꇂɌÀ‚èA–³§ŒÀ‚ÉÄ”z•z‚ð‹–‰Â‚µ‚Ü‚·BŽ–‘O‚̘A—‚â‹–‰Â‚à•K—v‚ ‚è‚Ü‚¹‚ñB‚½‚¾‚µA‚»‚ê‚É‚æ‚Á‚Ķ‚¶‚éƒRƒXƒg‚ÍÄ”z•z‚ðs‚¤l‚ªŠeŽ©‚Å¿‚¯•‰‚¤‚±‚ƂƂµ‚Ü‚·B‚Ü‚½A’˜ìŒ ‚Í•úŠü‚µ‚Ü‚¹‚ñ‚̂ł²’ˆÓ‚­‚¾‚³‚¢B + +ã‹L‚ÌðŒ‚ð–ž‚½‚¹‚È‚¢‚©‚½‚¿‚Å‚ÌÄ”z•z‚ðs‚¢‚½‚¢ê‡‚ÍAÄ”z•z‚ðs‚¤‘O‚É•K‚¸ƒ[ƒ‹“™‚ŘA—‚ð‚µ‚Ä‚­‚¾‚³‚¢B + + + +EŽg‚¢•û + +‚Ü‚¸AuBMplay.exe ‚ð‹N“®‚µ‚Ü‚·BƒEƒBƒ“ƒhƒE‚ª‚ ‚ç‚í‚ꂽ‚çƒtƒH[ƒ€‚É BMSEBMEEBMLEPMS ƒtƒ@ƒCƒ‹‚ðƒhƒƒbƒv‚µ‚Ä‚­‚¾‚³‚¢B‚ ‚Ƃ͒­‚߂邾‚¯‚Å‚·B‚Ü‚½AƒAƒCƒRƒ“‚É’¼Úƒhƒƒbƒv‚µ‚½‚èƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÅŽw’肵‚Ä‹N“®‚·‚鎖‚à‰Â”\‚Å‚·BŠù‚ÉĶ’†‚ÌꇂÍĶ‚ð’†’f‚µAŽw’肳‚ꂽ BMS ‚ð“ǂݞ‚ñ‚ÅĶ‚µ‚Ü‚·B + + + +E‘Ήž‚·‚éƒtƒH[ƒ}ƒbƒg + +‰¹º: RIFF WAVEMP3EOgg Vorbis +‰æ‘œ: BMPEJPGEPNG (ƒAƒ‹ƒtƒ@ƒ`ƒƒƒ“ƒlƒ‹”ñ‘Ήž) + + + +EƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚ɂ‚¢‚Ä + +uBMplay ‚͈ȉº‚̃Rƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚ɑΉž‚µ‚Ä‚¢‚Ü‚·BBMS •ÒWƒ\ƒtƒg‚Ȃǂ©‚çŒÄ‚Ño‚·‚ƕ֗˜‚Å‚·B + +-N[0-999]EEEŽw’肵‚½¬ß‚©‚çĶŠJŽn +-PEEEĶ (GDAC2 —pA“Á‚ÉŽw’肵‚È‚­‚Ä‚àƒ[ƒhŒã‚ÉŽ©“®Ä¶‚µ‚Ü‚·) +-SEEE’âŽ~ +-QEEEI—¹ +-SPEEEĶI—¹‚Æ“¯Žž‚ÉI—¹ +BMSC ‚ł̈ø”Žw’è‚Í BMS Viewer ‚Æ“¯‚¶Ý’è‚Å–â‘è‚È‚­“®‚­‚Í‚¸‚Å‚·B‚È‚¨Aã‹LˆÈŠO‚̃Rƒ}ƒ“ƒh‚Í‘S‚Ä–³Ž‹‚³‚ê‚Ü‚·B + + + +EƒIƒvƒVƒ‡ƒ“‚Æ‚© + +ƒXƒy[ƒXƒL[EEE0.5 •bŠÔ‰Ÿ‚µ‚‚¯‚邯 BMS ‚ð“ǂݞ‚Ý’¼‚µ‚Ü‚· (ƒ‰ƒ“ƒ_ƒ€‚̃pƒ^[ƒ“‚à•Ï‚í‚è‚Ü‚·) + +UpEDown ƒL[Eƒ}ƒEƒXƒzƒC[ƒ‹EEE1¬ßƒV[ƒN +PageUpEPageDown ƒL[EEE4¬ßƒV[ƒN +¦‰Ÿ‚µ‚Á‚ςȂµ‚ʼnÁ‘¬ +Home ƒL[EEE0¬ß‚ɃV[ƒN +End ƒL[EEEÅŒã‚̬߂ɃV[ƒN + +1 ƒL[A2 ƒL[EEEƒnƒCƒXƒs[ƒh‚Ì•ÏX (x0.25 ` [x1.00] `) +3 ƒL[A4 ƒL[EEEƒŠƒAƒ‹ƒnƒCƒXƒs[ƒh‚Ì•ÏX (x0.25 ` [x1.00] `) +¦‰Ÿ‚µ‚Á‚ςȂµ‚ʼnÁ‘¬A2‚‚̃L[‚𓯎ž‚ɉŸ‚·‚±‚ƂŠx1.00 ‚ɋ߂¢‚Ä‚¢‚«‚Ü‚· +5 ƒL[EEEBGA •\ަ‚ÌØ‚è‘Ö‚¦ (OFF ¨ ƒx[ƒX‚Ì‚Ý ¨ ƒŒƒCƒ„[‚Ì‚Ý ¨ [’Êí•\ަ] ¨ í‚Ƀ~ƒX) OFF ‚É‚·‚邯“ǂݞ‚Ý‚às‚¢‚Ü‚¹‚ñ +6 ƒL[EEEƒGƒtƒFƒNƒg•\ަ‚ÌØ‚è‘Ö‚¦ (ƒGƒtƒFƒNƒg‚È‚µ ¨ ”»’è ¨ ”»’èE”š”­ ¨ [”»’èE”š”­Eƒr[ƒ€]) +7 ƒL[EEEí‚ÉÅ‘O–ʂɕ\ަ‚Ì ONE[OFF] +8 ƒL[EEEƒXƒNƒ‰ƒbƒ`ˆÊ’u‚ÌØ‚è‘Ö‚¦ ([¶E‰E] ¨ ‰EE‰E ¨ ¶E¶ ¨ ‰EE¶) +9 ƒL[EEEŠeŽíî•ñ‚ÌØ‚è‘Ö‚¦ (‚È‚µ ¨ [Ķî•ñ] ¨ ‹ÈEƒIƒvƒVƒ‡ƒ“î•ñ ¨ ‘S‚Ä•\ަ) +0 ƒL[EEEƒ|[ƒYE[ƒ|[ƒY‰ðœ] +F1 ƒL[EEEƒTƒEƒ“ƒhĶ‚ÌØ‚è‘Ö‚¦ (BGM ¨ KEY ¨ [KEY&BGM]) +¦‚·‚ׂătƒ‹ƒL[‚Å‚·Bƒeƒ“ƒL[‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñB + +‚³‚ç‚É ini ƒtƒ@ƒCƒ‹‚ð’¼Ú•ÒW‚·‚邯ˆÈ‰º‚Ì‚±‚Æ‚ª: +[Main] +VSYNC=[False],TrueEEE•`‰æ•û–@‚Ì•ÏX (True ‚É‚·‚é‚̂̈́§‚µ‚Ü‚¹‚ñ) +SingleQuit=[False],TrueEEE’P‹ÈĶƒ‚[ƒh (True ‚É‚·‚邯Ķ‚ªI‚í‚Á‚½Žž“_‚ÅI—¹‚µ‚Ü‚·) +[Option] +Volume=nEEE͉¹—ʂ̕ÏX (%E‘•‚͂ł«‚Ü‚¹‚ñ) +Transparent=nEEEBGA “§‰ß‚Ì臒l‚Ì•ÏX (ŠDFƒŒƒxƒ‹E[0] (•‚̂ݓ§‰ß) ` 255 (‘S“§‰ß)) + + + +E‚¿‚å‚Á‚Æ‚µ‚½’ˆÓ + +“¯‚¶ BMS ‚𑱂¯‚ēǂݞ‚ñ‚¾Žž‚ɃXƒ€[ƒY‚É͂ł«‚邿‚¤‚ÉA“¯‚¶ƒpƒX‚Ì WAV ‚â BMP ‚͓ǂݞ‚Ý‚ðs‚¢‚Ü‚¹‚ñBˆê“x uBMplay ‚ÅĶ‚µ‚½Œã‚É WAV ‚â BMP ‚ð·‚µ‘Ö‚¦‚½ê‡‚ÍAˆê“xI—¹‚µ‚Ä‚©‚çĶ‚µ‚Ä‚­‚¾‚³‚¢B + + + +Eì‚Á‚½l + +Hayana (program) +web: http://ucn.tokonats.net/ ƒoƒO•ñE—v–]EˆÓŒ©‚Ȃǂ͂±‚¿‚ç‚Ö‚Ç‚¤‚¼B +mail: ucn@tokonats.net + +AOiRO_Manbow (skin, icon) + + + +ESPECIAL THANKS!! + +ŠJ”­‚ÉŠÖ‚í‚Á‚½‘S‚Ä‚Ìl + + + +ECopyright + +‰¹ºƒtƒ@ƒCƒ‹‚̕ϊ·‚É SglSound ‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·B + Copyright (c) 2006-2007 Maiko Girls + +Ogg Vorbis ƒtƒ@ƒCƒ‹‚Ì“WŠJ‚É liboggAlibvorbis ‚¨‚æ‚Ñ libvorbisfile ‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·B + Copyright (c) 2002-2004 Xiph.org Foundation + Xiph.org http://www.xiph.org/ + +JPEG ƒtƒ@ƒCƒ‹‚Ì“WŠJ‚É libjpeg ‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·B + copyright (C) 1991-1998, Thomas G. Lane. + Independent JPEG Group http://www.ijg.org/ + +PNG ƒtƒ@ƒCƒ‹‚Ì“WŠJ‚É libpng ‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·B + Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + Copyright (c) 1996, 1997 Andreas Dilger + Copyright (c) 1998-2002, 2004, 2006-2007 Glenn Randers-Pehrson. + libpng Home Page http://www.libpng.org/pub/png/libpng.html + +PNG ƒtƒ@ƒCƒ‹‚Ì“WŠJ‚É zlib ‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·B + (C) 1995-2004 Jean-loup Gailly and Mark Adler + zlib Home Site http://www.zlib.net/ + + + +EXV—š—ð + +2008”N1ŒŽ3“ú 1.4.6 +Eƒƒ“ƒOƒm[ƒg‚ªˆ—‚³‚ê‚È‚¢ƒoƒO‚ðC³ +Eî•ñ•\Ž¦Ø‘Ö‚ð‘½’iŠK‚É•ÏX +EƒV[ƒNŒã‚Ɉꕔ‚̉¹‚ª–‚ç‚È‚­‚È‚éƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2007”N8ŒŽ9“ú 1.4.5 +EBGA “§‰ß‚̓fƒtƒHƒ‹ƒg‚ł͕‚݂̂łµ‚©s‚í‚È‚¢‚悤‚É•ÏX +Eini ‚Ì Option ƒZƒNƒVƒ‡ƒ“‚É Transparent ƒL[‚ð’ljÁ +EƒŠƒjƒA PCM ‚łȂ¢ RIFF WAV ƒtƒ@ƒCƒ‹‚ÌĶ‚ɑΉž (‚½‚¾‚µ ACM ‚ŕϊ·‚Å‚«‚é‚à‚̂ɌÀ‚é) +EOgg ŠÖ˜A‚̃‰ƒCƒuƒ‰ƒŠ‚ðƒ_ƒCƒiƒ~ƒbƒNƒŠƒ“ƒN‚É•ÏX +E‚»‚Ì‘¼C³ + +2007”N5ŒŽ27“ú 1.4.4 +EĶŠJŽnˆÊ’uŽw’肪“®‚¢‚Ä‚¢‚È‚©‚Á‚½ƒoƒO‚ðC³ + +2007”N5ŒŽ21“ú 1.4.3 +EƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Éw-SP (’P‹ÈĶ)x‚ð’ljÁ +E#LNOBJ ‚Æ“¯Žž‚Ƀ`ƒƒƒ“ƒlƒ‹ 5x ` 6x ‚ðŽg—p‚·‚邯‹­§I—¹‚·‚éƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2007”N4ŒŽ16“ú 1.4.2 +EƒŒƒCƒ„[‚̂ݕ\Ž¦Žž‚É”wŒi‚É”’‚ð“h‚Á‚Ä‚¢‚½ƒ~ƒX‚ðC³ +Eˆê•”‚Ì JPEG ‰æ‘œ‚ð“ǂݞ‚Þ‚Æ‹­§I—¹‚·‚éƒoƒO‚ðC³ + +2007”N4ŒŽ7“ú 1.4.1 +EƒtƒŠ[ƒXƒNƒ‰ƒbƒ`‚ª7Œ®”Õ‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚½ƒoƒO‚ðC³ +E“¯‚¶ WAV ‚ª˜A‘±‚µ‚Ė‚ç‚È‚¢ƒoƒO‚ðC³ +EBGA •\Ž¦Ø‚è‘Ö‚¦‚Ì‘½—l‰» +E“r’†‚©‚çĶ‚µ‚½Žž‚ÉĶ‚ªƒYƒŒ‚éƒoƒO‚ðC³ +Eƒƒ“ƒOƒm[ƒg‚Ì‹““®‚ª‚¨‚©‚µ‚­‚È‚éƒoƒO‚ðC³ +E‰æ–ʂƉ¹‚ªŒƒ‚µ‚­ƒYƒŒ‚éƒoƒO‚ðC³ +EƒV[ƒN‹@”\ (¬ß’PˆÊ) ‚ð’ljÁ +E“r’†‚©‚çĶ‚µ‚½Žž‚ɖ‚Á‚Ä‚¢‚é‚Í‚¸‚̉¹‚ð–‚炷‚悤‚É•ÏX +E‚»‚Ì‘¼C³ + +2007”N4ŒŽ1“ú 1.4.0 +EOgg Vorbis Œ`Ž®‚ɑΉž +EƒEƒBƒ“ƒhƒE‚ðƒ_ƒuƒ‹ƒNƒŠƒbƒN‚Ńtƒ@ƒCƒ‹‚ðŠJ‚­‹@”\‚ð’ljÁ +E“ǂݞ‚Ý‘¬“x‚̉ü‘P‚»‚Ì1 +Eini ‚Ì Option ƒZƒNƒVƒ‡ƒ“‚É Volume ƒL[‚ð’ljÁ +EHS •ÏXERHS •ÏXƒ{ƒ^ƒ“‚ɉŸ‚µ‚Á‚ςȂµ‚ʼnÁ‘¬‚·‚é‹@”\‚ð’ljÁ +EÄ¶ŽžŠÔ•\ަ‚̒ljÁ +E“ǂݞ‚Ý‘¬“x‚̉ü‘P‚»‚Ì2 +EPhasePerMeasure ‚ðÄ‚Ñíœ +Eƒ~ƒX‰æ‘œ‚ɑΉž +E͏“x‚ÌŒüã +EÅŒã‚ÉĶ‚µ‚½ƒtƒ@ƒCƒ‹‚̃pƒX‚ð•Û‘¶‚·‚邿‚¤‚É•ÏX +EƒGƒtƒFƒNƒg‚Ì‹­‰» +E”»’è ONEOFF ‚Æ”š”­ ONEOFF ‚𓇂µAƒGƒtƒFƒNƒg‚É•ÏX +ERHS ‚ÌãŒÀ‚ðŽ©“®ŽZo‚·‚邿‚¤‚É•ÏX +E¬ß”Eƒ^ƒCƒgƒ‹‚Ì•\Ž¦êŠ‚ð•ÏX +E‘S‘Ì“I‚ȃR[ƒh‚ÌC³ +EPNG Œ`Ž®‚ɑΉž (ƒAƒ‹ƒtƒ@ƒ`ƒƒƒ“ƒlƒ‹‚ɂ͑Ήž‚µ‚Ü‚¹‚ñ) +EƒAƒCƒRƒ“Aƒƒ^ƒtƒ@ƒCƒ‹AŠg’£ƒƒ^ƒtƒ@ƒCƒ‹AGIF ƒtƒ@ƒCƒ‹‚ւ̑Ήž‚ðíœ +Eƒ^ƒCƒgƒ‹ƒo[‚Ƀtƒ@ƒCƒ‹‚̃pƒX‚ð•\ަ‚·‚邿‚¤‚É•ÏX +EWindows Vista ‚ł̋N“®Žž‚ɉæ–Ê‚ªˆêuƒuƒ‰ƒbƒNƒAƒEƒg‚·‚éŽd—l‚ðC³ +EƒpƒŒƒbƒg‚ðŽg—p‚µ‚½ BMPEPNG ‚Ìê‡ARGB(16,16,16) –¢–ž‚ÌF‚Í“§‰ß‚·‚邿‚¤‚É•ÏX +Eƒ‰ƒ“ƒ_ƒ€–½—߂̑½dƒlƒXƒg‚ð‰ðŽß‚µ‚È‚¢‚悤‚É•ÏX +Eƒwƒbƒ_•”•ª‚àƒ‰ƒ“ƒ_ƒ€–½—߂̉e‹¿‚ðŽó‚¯‚邿‚¤‚É•ÏX +Eƒ‰ƒ“ƒ_ƒ€–½—ß‚ÌÅ‘å’lƒpƒ^[ƒ“‚ªâ‘΂ÉoŒ»‚µ‚È‚¢ƒoƒO‚ðC³ +EŽžŠÔ޲”»’è‚É•ÏX +E‚»‚Ì‘¼C³ + +2006”N8ŒŽ21“ú 1.3.13 +E#GENLE ‚Å‚àƒWƒƒƒ“ƒ‹Žw’è‚Æ”»’è‚·‚邿‚¤‚É•ÏX +E“r’†‚©‚çÄ¶ŽžAŠJŽnˆÊ’u‚æ‚è‘O‚É BPM •ÏX‚ª‚ ‚Á‚½ê‡‚Í‚»‚ê‚𔽉f‚·‚邿‚¤‚É•ÏX +E“r’†‚©‚çÄ¶ŽžAŠJŽnˆÊ’u‚ɂ܂½‚ª‚郃“ƒOƒm[ƒg‚ð•\ަ‚·‚邿‚¤‚É•ÏX + +2006”N6ŒŽ18“ú 1.3.12 +E#RONDAM ‚Å‚àƒ‰ƒ“ƒ_ƒ€–½—߂Ɣ»’è‚·‚邿‚¤‚É•ÏX +EMP3 ‚̃`ƒƒƒ“ƒlƒ‹”‚Ì”»’è‚ðŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³ + +2005”N12ŒŽ25“ú 1.3.11 +EWAVEBMP ‚̓ǂݞ‚Ý‚ð­X•ÏX +E‚»‚Ì‘¼C³ + +2005”N8ŒŽ07“ú 1.3.10 +E擪 200 ƒoƒCƒgˆÈ“à‚Ƀf[ƒ^‚ª‚È‚©‚Á‚½Žž‚ɓǂݞ‚݂𒆒f‚·‚éŽd—l‚ðíœ + +2005”N2ŒŽ14“ú 1.3.9 +E#LNOBJ ‚ÌŽÀ‘•‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ðC³ + +2005”N2ŒŽ11“ú 1.3.8 +Eƒ‰ƒ“ƒ_ƒ€–½—ß‚ðŽg‚Á‚½ BMS ‚ª³‚µ‚­Ä¶‚Å‚«‚È‚¢‚±‚Æ‚ª‚ ‚Á‚½ƒoƒO‚ðC³ +E#LNOBJ ‚ɑΉž +E‚»‚Ì‘¼C³ + +2005”N1ŒŽ17“ú 1.3.7 +EƒtƒHƒ“ƒgƒTƒCƒY‚ª 96dpi ˆÈŠO‚ÌŽž‚ɃEƒBƒ“ƒhƒEƒTƒCƒY‚ª³í‚łȂ©‚Á‚½ƒoƒO‚ðC³ +E‚¹‚Á‚©‚­‚Ȃ̂ł±‚Á‚¿‚à UPX ˆ³k‚µ‚Ă݂é + +2004”N9ŒŽ22“ú 1.3.6 +EKEY ONLY ‚ÌŽž‚Ɉꕔ‚Ì WAV ‚ªÄ¶‚³‚ê‚È‚¢ƒoƒO‚ðC³ + +2004”N9ŒŽ12“ú 1.3.5 +E˜A‘±‚µ‚ÄĶ‚µ‚½Žž‚É #PATH_WAV ‚ðŽg‚Á‚Ä‚¢‚邯‹­§I—¹‚·‚éƒoƒO‚ðC³ + +2004”N9ŒŽ04“ú 1.3.4 +E#BGA –½—߂Ɋւµ‚ÄFX‚ÆŠÔˆá‚Á‚Ä‚¢‚½‚Ì‚ðC³ + +2004”N9ŒŽ01“ú 1.3.3 +EBGM ONEOFF ‚ðƒTƒEƒ“ƒhĶ‚ÌØ‚è‘Ö‚¦ (KEY&BGM ¨ KEY ONLY ¨ BGM ONLY) ‚É•ÏX +EƒTƒEƒ“ƒhĶ‚ÌØ‚è‘Ö‚¦‚̃L[‚ð F1 ‚É•ÏX +EƒTƒEƒ“ƒhĶ‚ÌÝ’è‚ð ini ‚©‚ç“ǂݞ‚܂Ȃ¢‚悤‚É•ÏX (‹N“®Žž‚Íí‚É KEY&BGM ‚É) +EƒGƒtƒFƒNƒg ONEOFF ‚𔚔­ ONEOFF ‚É•ÏX +E”»’èEƒRƒ“ƒ{•\ަ ONEOFF ‚ð F2 ƒL[‚ÉÝ’è +E‚»‚Ì‘¼C³ + +2004”N8ŒŽ17“ú 1.3.2 +Eƒ^ƒCƒgƒ‹ƒo[‚̃XƒNƒ[ƒ‹‘¬“x‚ð•ÏX + +2004”N8ŒŽ10“ú 1.3.1 +EJPEG “ǂݞ‚݂ɑΉž +EID3v1 ‚Æ ID3v2 ‚Ì—¼•û‚̃^ƒO‚ðŽ‚Â MP3 ‚ª“ǂݞ‚߂Ȃ©‚Á‚½‚©‚à‚µ‚ê‚È‚¢ƒoƒO‚ðC³ +EID3v2 ‚̃tƒbƒ^‚ÌŽ–‚ð‚·‚Á‚©‚è–Y‚ê‚Ä‚¢‚½‚̂őΉž +EB ƒL[‚É BGM Ķ‚Ì ONEOFF ‹@”\‚ð’ljÁ +E”»’èEƒRƒ“ƒ{•\ަ‚ð’ljÁ (‚¨‚Ü‚¯‹@”\E”»’è‚Í‚©‚È‚è“K“–) +E6 ƒL[‚Ì”š”­ ONEOFF ‚ðƒGƒtƒFƒNƒg ONEOFF ‚É•ÏX +E‚»‚Ì‘¼C³ + +2004”N6ŒŽ20“ú 1.3.0 +EMP3 “ǂݞ‚݂ɑΉž (ID3v1EID3v2ERIFF MP3Eƒ^ƒO‚È‚µ MP3) +E8 ƒL[‚ŃXƒNƒ‰ƒbƒ`ˆÊ’u‚ðØ‚è‘Ö‚¦‚é‹@”\‚ð’ljÁ +EƒXƒy[ƒXƒL[‚Å BMS ‚Ìēǂݞ‚Ý‚ð‚·‚é‹@”\‚ð’ljÁ +EŠg’£ BGA –½—ß‚ªƒoƒO‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N6ŒŽ13“ú 1.2.7 +Eˆø‚«‘±‚«•Ï”ŠÖ˜A‚ÌC³ +Eucode : Desertv‚È‚Çu:v‚ðŠÜ‚Þ #TITLEE#GENREE#ARTIST ‚ðŽæ“¾‚Å‚«‚È‚©‚Á‚½ƒoƒO‚ðC³ +E‚È‚º‚© PhasePerMeasure ‚ª•œŠˆ +Eini ‚̈ꕔ‚ª‚¿‚å‚Á‚Æ‚¨‚©‚µ‚­‚È‚Á‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N6ŒŽ10“ú 1.2.6 +E•Ï”–¼‚Æ‚©•Ï”Œ^‚Æ‚©Œ©’¼‚µ +E‚»‚Ì‘¼C³ +E¦‚©‚È‚è‘å‹K–͂ȕϔ–¼•ÏX‚Ì‚½‚߂ɃoƒO”­¶‚Ì‹°‚ê‚ ‚è +E¦“¯Žž‚Ƀ‰ƒ“ƒ_ƒ€‚É‚àƒoƒO”­¶‚Ì‹°‚ê‚ ‚è (“Á‚ɃlƒXƒgŽž) + +2004”N6ŒŽ07“ú 1.2.5 +EƒI[ƒo[ƒtƒ[‚Å‹­§I—¹‚·‚éƒoƒO‚ðC³ +E‹N“®Žž‚ÌÀ•W‚ª‰æ–ʃTƒCƒY‚ð‰z‚¦‚Ä‚¢‚½Žž‚É X=0, Y=0 ‚Å‹N“®‚·‚邿‚¤‚ÉC³ + +2004”N6ŒŽ06“ú 1.2.4 +EƒL[”z’u‚ð‚¿‚å‚Á‚Æ•ÏX +Eî•ñ•\ަ‚ð‚¿‚å‚Á‚Æ•ÏX +Eƒ|[ƒYŽž‚̉æ–Ê•\ަ‚ð‚¿‚å‚Á‚Æ•ÏX +EBMS Ķ’†‚Ƀ^ƒCƒgƒ‹ƒo[‚ŃAƒjƒ[ƒVƒ‡ƒ“‚à‚Ç‚« +Eƒ|[ƒY‚¸‚ê‘Îô +E‚»‚Ì‘¼C³ + +2004”N5ŒŽ30“ú 1.2.3 +E‘¶Ý‚µ‚È‚¢ WAV ‚ð“ǂݞ‚à‚¤‚Æ‚µ‚½ŽžA—e—Ê 0 ƒoƒCƒg‚̃tƒ@ƒCƒ‹‚ð쬂µ‚Ä‚¢‚½ƒoƒO‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N5ŒŽ23“ú 1.2.2 +Eninth -forbidden story- ‚ª‚ ‚é’ö“x͂ł«‚é‚©‚àH +EVSYNC Žg—pŽž‚ɂȂé‚ׂ­ Sleep ‚·‚邿‚¤‚É (‚â‚Á‚Ï‚è 2000EXP ŒÀ’èEEE) +Eƒ^ƒCƒ}[Žg—pŽž‚É VBLANK ‚ð‘Ò‚½‚È‚¢‚悤‚É–ß‚µ‚½ +ERealHiSpeed ‚ÌŽÀ‘• (•Û‘¶‚Í‚µ‚Ü‚¹‚ñ) +EHSERHS •ÏXƒL[‚ð‰Ÿ‚µ‚Á‚ςȂµ‚É‚µ‚Ä‚à’l‚ª•ÏX‚Å‚«‚邿‚¤‚É +EHSERHS •ÏXƒL[2‚‚𓯎ž‰Ÿ‚µ‚Å x1 ‚ɖ߂邿‚¤‚É +E”š”­ƒGƒtƒFƒNƒg‚ð1ƒ‰ƒCƒ“1‚‚ɖ߂µ‚½ +EBMS “ǂݞ‚Ý’†‚Ƀ^ƒCƒgƒ‹ƒo[‚ɃAƒjƒ[ƒVƒ‡ƒ“‚à‚Ç‚«’ljÁ +E#BGA –½—߂ɑΉž (Materials ‹@”\‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñ) +EAlt ƒL[AƒAƒCƒRƒ“ã‚̶ƒNƒŠƒbƒN‚𖳎‹‚·‚邿‚¤‚É (‚¿‚å‚Á‚Æ•sˆÀ‚Ȃ̂ʼn½‚©•s‹ï‡‚ ‚Á‚½‚炲•ñ‚¨Šè‚¢‚µ‚Ü‚·) +EŬ‰»Žž‚É•`‰æ‚ðÈ—ª‚·‚邿‚¤‚É +Eƒ|[ƒY‚ª–³Œø‚ɂȂÁ‚Ä‚¢‚½‚Ì‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N5ŒŽ04“ú 1.2.1 +Eƒwƒbƒ_ƒtƒ@ƒCƒ‹‚ªˆÙ—l‚ɑ傫‚¢ WAV ‚ɑΉž (6yen ‚³‚ñ‚ÌBMS‚̈ꕔ‚Ì WAV ‚Æ‚©) +E擪 200 Byte ˆÈ“à‚Ƀwƒbƒ_‚ª‚È‚¯‚ê‚Ζ³Œø‚¾‚Æ”»’f‚·‚邿‚¤‚É‚µ‚½‚¯‚ÇEEE–â‘è‚È‚¢‚æ‚ËH +Eƒ^ƒCƒ}[Žg—pŽž1•b‚É1‰ñ VSYNC ‘҂‚悤‚É‚µ‚Ă݂½‚¯‚Ç–³ˆÓ–¡‚©‚à (ƒeƒBƒAƒŠƒ“ƒO‘Îô) + +2004”N5ŒŽ04“ú 1.2.0 +E2P ‘¤ƒXƒNƒ‰ƒbƒ`‚Ì”š”­‚ª•ςȈʒu‚ɂȂÁ‚Ä‚¢‚½‚Ì‚ðC³ +EƒIƒuƒWƒFˆÊ’u‚̕ϔ‚ð Long Œ^‚©‚ç Single Œ^‚Ö•ÏX (ƒIƒuƒWƒF‚Ì“®‚«‚ªŠŠ‚ç‚©‚É) +EBMS Ķˆ—‚ð‘å•‚É•ÏX (nazo ‚ÌV•ª‰ð”\‚ɋ߂¢Œ`‚ɂȂÁ‚½H) +EPhasePerMeasure ‚Ìíœ (‚¢‚ç‚È‚­‚È‚Á‚½‚Ì‚Å) +Eƒ^ƒCƒ}[‚ÌŠÇ—•û–@‚ð•ÏX +Eƒ^ƒCƒ}[Žg—pŽž‚É FPS ‚ð‰æ–Ê‚ÌƒŠƒtƒŒƒbƒVƒ…ƒŒ[ƒg‚Æ“¯‚¶‚É‚·‚邿‚¤‚É (2000EXP ‚Ì‚Ý) + +2004”N4ŒŽ25“ú 1.1.5 +EPLAYLEVEL ‚𔎚‚Å•\ަ‚·‚邿‚¤‚É•ÏX +E‰½ŒÌ‚©‰üsƒR[ƒh‚ð“ǂݞ‚ñ‚¾‚Æ‚«–³Ž‹‚·‚邿‚¤‚ÉC³ (‚»‚Ó‚Ÿ‚¾‚ç‘Îô) +E”š”­ƒOƒ‰ƒtƒBƒbƒN‚ÌŠÇ—•û–@‚ð•ÏX (1ƒ‰ƒCƒ“‚É•¡”ŒÂ•\ަ‚Å‚«‚邿‚¤‚É) +E”š”­ƒOƒ‰ƒtƒBƒbƒN‚Ì’†E¬‚ðíœ (ONEOFF‚݂̂ɕÏX) +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ09“ú 1.1.4 +EƒXƒgƒbƒvƒV[ƒPƒ“ƒX‚Ì“®ì‚ª‚¨‚©‚µ‚©‚Á‚½‚Ì‚ðC³ +Eˆø”‚É -N ‚ðŽw’肵‚½Žž‚Ì‹““®‚ð•ÏX +Eƒƒ“ƒOƒm[ƒg‚Ì‹““®‚ðC³ +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ09“ú 1.1.3 +EŠJ”­ŠÂ‹«‚ð VisualBasic6 SP5 ‚©‚ç SP6 ‚É•ÏX +EGDAC2 ‚©‚ç‘—‚ç‚ê‚½Žž‚Å‚à͂ł«‚邿‚¤‚ÉŽd—l•ÏX +EPMS ƒtƒ@ƒCƒ‹‚ɑΉž (ƒXƒLƒ“‚Ì•ÏX‚ȂǂÍs‚¢‚Ü‚¹‚ñ) +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ08“ú 1.1.2 +EƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÌC³EŠg’£ +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ04“ú 1.1.1 +Eƒ‰ƒ“ƒ_ƒ€‘½dƒlƒXƒg‚ɑΉžH + ”ƒeƒXƒg‚Å‚«‚é BMS ‚ª­‚È‚·‚¬‚Ă悭‚í‚©‚ç‚È‚¢ + ”‚ ‚­‚܂ŃIƒ}ƒP‹@”\‚Æ‚¢‚¤Ž–‚Å +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ01“ú 1.1.0 +EBPM •ÏX‚ɃoƒO‚ª‚ ‚Á‚½‚Ì‚ÅC³ +Eubm.ini ‚É PhasePerMeasure ’ljÁ +E‚»‚Ì‘¼C³ + +2004”N4ŒŽ01“ú 1.00 +EC³‚½‚­‚³‚ñ +E‹@”\’ljÁ‚½‚­‚³‚ñ +E³Ž®ŒöŠJƒo[ƒWƒ‡ƒ“ + +2004”N3ŒŽ31“ú Build 44 +E‹““®‚ÉŠÖ‚·‚éC³ +E’P‹ÈI—¹ƒ‚[ƒh’ljÁ + +2004”N3ŒŽ31“ú Build 42 +Eini ‚Ì‹Lq‚É•s“K؂ȕ”•ª‚ª‚ ‚Á‚½‚Ì‚ðC³ + +2004”N3ŒŽ31“ú Build 41 +EƒTƒuƒNƒ‰ƒX‰» +E‚»‚Ì‘¼C³ + +2004”N3ŒŽ31“ú Build 26 +Eƒ}ƒCƒiƒX BPM ‚ɑΉž (‚µ‚©‚µA–³—‚â‚è‘Ήž‚³‚¹‚½Š´‚ª‹­‚­ŒÂl“I‚ɂ͔[“¾‚ª‚¢‚©‚È‚¢) +EƒAƒCƒRƒ“‚ð•ÏX + +2004”N3ŒŽ30“ú Build 24 +EWAVEBMP ‚ª‘¶Ý‚µ‚È‚¢Žž‚ɃGƒ‰[‚ªo‚é‚Ì‚ðC³ + +2004”N3ŒŽ30“ú Build 23 +EDebug.Print •¶Á‚µ–Y‚ê(‚§ + +2004”N3ŒŽ30“ú Build 22 +EƒoƒOC³ + +2004”N3ŒŽ29“ú Build 5 +E–³‰¹ƒIƒuƒWƒF‚Æ‚©‚ÉŠÖ‚·‚éC³ + +2004”N3ŒŽ29“ú Build 4 +Eƒƒ“ƒOƒm[ƒgŽÀ‘•‚Æ‚© + +2004”N3ŒŽ28“ú Build 3 +EFX‚Æ•ÏX‚µ‚·‚¬‚Ä‹Lq•s‰Â + +2004”N3ŒŽ28“ú Build 1 +E‚Ƃ肠‚¦‚¸ƒRƒ“ƒpƒCƒ‹‚µ‚Ă݂éB \ No newline at end of file diff --git a/iidx/UbmPlay/sound.dll b/iidx/UbmPlay/sound.dll new file mode 100644 index 0000000..6350bbc Binary files /dev/null and b/iidx/UbmPlay/sound.dll differ diff --git a/iidx/UbmPlay/uBMplay.exe b/iidx/UbmPlay/uBMplay.exe new file mode 100644 index 0000000..468ba51 Binary files /dev/null and b/iidx/UbmPlay/uBMplay.exe differ diff --git a/iidx/UbmPlay/ubm.ini b/iidx/UbmPlay/ubm.ini new file mode 100644 index 0000000..6139c91 --- /dev/null +++ b/iidx/UbmPlay/ubm.ini @@ -0,0 +1,17 @@ +[Main] +Key="uBMplay" +X=5640 +Y=4065 +AlwaysOnTop=False +VSYNC=False +SinglePlay=False +RecentFile="C:\Dokumente und Einstellungen\Rubbinnexx\Desktop\itg crap\beta 2\OpenITG\Songs\new again\BOYS(EURO MIX)\BOYS(EURO MIX).bms" +[Option] +HS=3,25 +BGA=3 +Effect=7 +SkinType=0 +DispInfo=False +Volume=100 +Transparent=0 +Info=7 diff --git a/iidx/UbmPlay/vorbis.dll b/iidx/UbmPlay/vorbis.dll new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/iidx/UbmPlay/vorbis.dll differ diff --git a/iidx/UbmPlay/vorbisfile.dll b/iidx/UbmPlay/vorbisfile.dll new file mode 100644 index 0000000..b166dab Binary files /dev/null and b/iidx/UbmPlay/vorbisfile.dll differ diff --git a/iidx/bme2ac legacy/bme2ac0.7_src.zip b/iidx/bme2ac legacy/bme2ac0.7_src.zip new file mode 100644 index 0000000..6fa6ca9 Binary files /dev/null and b/iidx/bme2ac legacy/bme2ac0.7_src.zip differ diff --git a/iidx/bme2ac legacy/checkeout.c b/iidx/bme2ac legacy/checkeout.c new file mode 100644 index 0000000..b28f06e --- /dev/null +++ b/iidx/bme2ac legacy/checkeout.c @@ -0,0 +1,279 @@ +#define byte unsigned char + +#include +#include +#include +#include "crypt.h" + +typedef struct +{ + byte iidx[4]; + int version; + short int songcount; + short int indexcount; + int zero; +} eoutheader; + +typedef struct +{ + byte songname[64]; + byte labelname[32]; //filename + byte titlename[64]; //filename + byte genrename[32]; //filename + byte artistname[32]; //filename + + short int style; + short int sort_others; + short int sort_bemani; + short int sort_bemani2; + + byte diff_n7; + byte diff_h7; + byte diff_a7; + byte diff_n14; + byte diff_h14; + byte diff_a14; + byte diff_beg; + byte diff_ex; + + byte zeros[128]; + byte FF[20]; + + int index; + int volume; + + char suffix[8]; + + int movieoffset; //used as temp var here + byte moviefile[32]; + + byte bgname[32]; + byte graphicsfolder[32]; + + int layerinfo; + byte layerdata[9*32]; +} songinfo; + +typedef struct +{ + int offh7; + int lenh7; + int offn7; + int lenn7; + int offa7; + int lena7; + int offb; + int lenb; + int offex1; + int lenex1; + int offex2; + int lenex2; + int offh14; + int lenh14; + int offn14; + int lenn14; + int offa14; + int lena14; +} oneheader; + +eoutheader ehead; +songinfo cursong; +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +#define PRINTW(a,b) if(warn) {printf("__: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} +#define PRINTA(a,b) if(warn) {printf("**: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} +#define PRINTE(a,b) if(err) {printf("!!: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} + +int main(int argc, char* argv[]) +{ + FILE *eout, *one, *tdx, *movie; + char file[60]; + char onepart[2], prev, *diff; + oneheader onehead; + int warn, err; + int k, i, l, songcount; + int tdxlen; + byte *enc, *dec; + short int fmt; + int pos, wavcount, wavlen; + + if(argc < 2) + { + printf("checkeout \n\tlevel: v = errors only\n\tvv = warnings only\n\t(default) = errors and warnings"); + return 0; + } + + warn = err = 1; + + if(argc > 2) + { + if(!strcmp(argv[2], "vv")) + err = 0; + else if(!strcmp(argv[2], "v")) + warn = 0; + } + + //warn=err=0; + eout = fopen(argv[1], "rb"); + + if(!eout) + { + printf("could not find %s, aborting\n", argv[1]); + return 0; + } + + fread(&ehead, sizeof(eoutheader), 1, eout); + + if(strncmp(ehead.iidx, "IIDX", 4)) + { + printf("%s is not a decrypted eout.bin file, aborting\n", argv[1]); + return -1; + } + + fseek(eout, sizeof(eoutheader) + ehead.indexcount*2, SEEK_SET); + + songcount = 0; + + //while(!feof(eout)) + for(k = 0; k < ehead.songcount; k++) + { + fread(&cursong, sizeof(songinfo), 1, eout); + songcount++; + //printf("ID: %d\tNAME: %s || %d\n", cursong.index, cursong.songname, cursong.style); + + //check for movie file + sprintf(file, "movie/%s.4", cursong.moviefile); + if(!(movie = fopen(file, "rb"))) + {PRINTW("moviefile not found: %s\n", file)} + else + fclose(movie); + + //check mendatory difficulties + if(!cursong.diff_h7) + {PRINTE("song has no hyper7 chart\n", NULL)} + + if(!cursong.diff_h14) + {PRINTE("song has no hyper14 chart\n", NULL)} + + //check .1 files + sprintf(file, "sd_data/%04d/%04d.1", cursong.index, cursong.index); + printf("checking %s (%d)...\n", file, k); + if(!(one = fopen(file, "rb"))) + {PRINTE(".1 file not found: %s\n", file)} + else + { + //check if difficulties are availible + fread(&onehead, sizeof(onehead), 1, one); + fclose(one); + + if(cursong.diff_n7 && !onehead.offn7) + PRINTE("referenced n7 (%d) chart not found in .1 file\n", cursong.diff_n7) + if(cursong.diff_h7 && !onehead.offh7) + PRINTE("referenced h7 (%d) chart not found in .1 file\n", cursong.diff_h7) + if(cursong.diff_a7 && !onehead.offa7) + PRINTE("referenced a7 (%d) chart not found in .1 file\n", cursong.diff_a7) + if(cursong.diff_n14 && !onehead.offn14) + PRINTE("referenced n14 (%d) chart not found in .1 file\n", cursong.diff_n14) + if(cursong.diff_h14 && !onehead.offh14) + PRINTE("referenced h14 (%d) chart not found in .1 file\n", cursong.diff_h14) + if(cursong.diff_a14 && !onehead.offa14) + PRINTE("referenced a14 (%d) chart not found in .1 file\n", cursong.diff_a14) + if(cursong.diff_beg && !onehead.offb) + PRINTE("referenced beg (%d) chart not found in .1 file\n", cursong.diff_beg) + if(cursong.diff_ex && !onehead.offex1) + PRINTE("referenced ex (%d) chart not found in .1 file\n", cursong.diff_ex) + + if(!cursong.diff_n7 && onehead.offn7) + PRINTW("unreferenced n7 chart in .1 file\n", NULL) + if(!cursong.diff_h7 && onehead.offh7) + PRINTW("unreferenced h7 chart in .1 file\n", NULL) + if(!cursong.diff_a7 && onehead.offa7) + PRINTW("unreferenced a7 chart in .1 file\n", NULL) + if(!cursong.diff_n14 && onehead.offn14) + PRINTW("unreferenced n14 chart in .1 file\n", NULL) + if(!cursong.diff_h14 && onehead.offh14) + PRINTW("unreferenced h14 chart in .1 file\n", NULL) + if(!cursong.diff_a14 && onehead.offa14) + PRINTW("unreferenced a14 chart in .1 file\n", NULL) + if(!cursong.diff_beg && onehead.offb) + PRINTW("unreferenced beg chart in .1 file\n", NULL) + if(!cursong.diff_ex && onehead.offex1) + PRINTA("unreferenced ex chart in .1 file\n", NULL) + + if(cursong.diff_ex) + PRINTA("ex chart (%d) in eout\n", cursong.diff_ex) + if(onehead.offex1) + PRINTA("ex1 chart in .1 file\n", NULL) + if(onehead.offex2) + PRINTA("ex2 chart in .1 file\n", NULL) + + //todo: .1 file sanity check? + } + + + //check .2dx files + onepart[0] = prev = 0xFF; + onepart[1] = '\0'; + diff = &cursong.diff_n7; + + for(i = 0; i <= 7; i++) + { + if(!diff[i]) + continue; + if(prev == cursong.suffix[i]) + continue; + else + onepart[0] = prev = cursong.suffix[i]; + + if(onepart[0] == '0') + onepart[0] = '\0'; + + sprintf(file, "sd_data/%04d/%04d%s.2dx", cursong.index, cursong.index, onepart); + //printf("checking %s (%d)...\n", file, k); + if(!(tdx = fopen(file, "rb"))) + {PRINTE(".2dx file not found: %s\n", file)} + else + { + //printf("decoding: %s...", file); + fseek(tdx, 0, SEEK_END); + tdxlen = (int)ftell(tdx); + if(tdxlen > 25000000) + {PRINTE("%s larger than 25,000,000 bytes\n", file)} + rewind(tdx); + enc = malloc(tdxlen); + fread(enc, 1, tdxlen, tdx); + fclose(tdx); + decrypt_2dx(enc, &dec); + //printf("done\n"); + memcpy(&wavcount, dec + 20, 4); + pos = 72; + + for(l=0; l < wavcount-1; l++) + { + memcpy(&fmt, dec + *((int*)(dec+pos)) + 24 + 20, 2); + memcpy(&wavlen, dec + *((int*)(dec+pos)) + 8, 4); + pos += 4; + //printf("(%d %d %d)\n", wavcount, pos, *((int*)(dec+pos))); + /*if(wavlen == 0) + { + {PRINTE("%s has 0-length wav files\n", file)} + break; + } + if(fmt != 2) + { + {PRINTE("%s has unconverted wav files\n", file)} + break; + }*/ + } + free(enc); + free(dec); + } + } + } + + printf("songcount: %d", songcount); + + getchar(); + + return 0; +} diff --git a/iidx/bme2ac legacy/crypt.h b/iidx/bme2ac legacy/crypt.h new file mode 100644 index 0000000..a310e3b --- /dev/null +++ b/iidx/bme2ac legacy/crypt.h @@ -0,0 +1,207 @@ + +//crypt.h +//code for encrypting .2dx files with DistorteD's algorithm/key + +//apparently konami's internal implementation of this doesn't do proper boundchecking and also doesn't zero its buffers, so there is some garbage left behind in the original files + +//format of encrypted .2dx file: +//header: +//4 bytes: identifier ("%e12" in case of distorted) +//4 bytes: length of the decrypted .2dx file +//after this follows the encrypted data + + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +byte cryptkey[8] = { 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03 }; //DistorteD'S encryption key + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//encrypts the .2dx file; this simply takes the reverse way from crack2dx.c by an unknown author (QQQ again, but HOLY SHIT that code is a mess (and buggy)) +int encrypt_2dx(byte *dec, int len, byte **enc) +{ + byte *cur; //current block of 8 bytes + int enclen; + + int i; + + //ciel to mod 8; + + enclen = len + 8; //length of the encoded 2dx = length of unencoded 2dx + headersize (8 bytes) + + if(enclen%8) + enclen += 8-enclen%8; + + *enc = malloc(enclen); + memset(*enc, 0, enclen); + memcpy(*enc+8, dec, len); //fill up the encoded array with unencoded stuff + + printf("encrypting .2dx file...\n"); + for(i = 8; i <= enclen - 8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = *enc+i; + + //Step 1: XOR the current block with the encrypted previous block + block_xor(cur, cur-8); + + //Step 2: Swap the lower and upper 4 bytes of the block + block_swap(cur); + + //Step 3: Further obfuscation with XOR; the lower 4 bytes are untouched, so encrypting works the same as decrypting + block_obfus(cur); + + //Step 4: XOR the block (yet again) with DistorteD's key + block_xor(cur, keys_11); + } + + memcpy(*enc, "%hid", 4); //encryption identifier (Troopers) + + memcpy(*enc+4, &len, 4); //write the length of the decoded 2dx file + + return enclen; +} + +int decrypt_2dx(byte *enc, byte **dec) +{ + int i; + int mult; + int len; + byte *buf; + byte *cur, *prev; + byte *cryptkey; + + buf = enc; + + //identify iidx version + + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + cryptkey = keys_16; //Empress + } + else + { + return -1; + } + + len = *((int*)(enc + 4)); + + if(len%8) + len += 8-len%8; + + + *dec = malloc(len); + //decrypt + + if(!(mult == 2)) //skip for unencrypted + { + memcpy(*dec, buf+8, len-8); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = *dec + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + + return len; +} \ No newline at end of file diff --git a/iidx/bme2ac legacy/gcz2tga.c b/iidx/bme2ac legacy/gcz2tga.c new file mode 100644 index 0000000..70e5b8e --- /dev/null +++ b/iidx/bme2ac legacy/gcz2tga.c @@ -0,0 +1,306 @@ +/* gcz2tga.c: Slice up a directory full of GCZ (texture) files into TGA files. + * + * Credit goes to afwefwe for reverse-engineering the texture format + * and LZSS compression */ + +#include +#include +#include + +/* Assuming x86, usual endian crap is not accounted for */ +typedef unsigned char u8_t; +typedef unsigned short u16_t; +typedef unsigned int u32_t; + +struct image +{ + unsigned int width, height; + u8_t *planes; +}; + +struct clip +{ + short x, y, w, h; +}; + +static u16_t swab16(u16_t in) +{ + /* GC headers are big-endian */ + return ((in & 0xFF) << 8) | (in >> 8); +} + +static void unpack_gc(struct image *out, u8_t *in, size_t out_sz) +{ + unsigned int npixels; + unsigned int i; + unsigned int j; + u16_t *pixels; + u16_t *pheight; + u16_t *pwidth; + u16_t *pmagic; + u16_t pixel; + + pmagic = (u16_t *) in; + pheight = (u16_t *) (in + 14); + pwidth = (u16_t *) (in + 12); + + if (*pmagic != 0x4347) { + fprintf(stderr, "(FAIL: Invalid header)\n"); + exit(EXIT_FAILURE); + } + + /* Set up output image struct */ + in += 24; + out->width = swab16(*pwidth); + out->height = swab16(*pheight); + out->planes = malloc(out->width * out->height * 4); + + /* Clamp W/H (don't know why this is necessary but it is) */ + out->width = out->width > 1024 ? 1024 : out->width; + out->height = out->height > 1024 ? 1024 : out->height; + + fprintf(stderr, "(%dx%d)", out->width, out->height); + + /* Unpack pixels */ + pixels = (u16_t *) in; + npixels = out->width * out->height; + + if (out_sz > npixels * 4) { + /* Deep image (i.e. 32-bit) */ + memcpy(out->planes, pixels, npixels * 4); + } else { + /* Shallow image (i.e. 16-bit) */ + for (i = 0, j = 0 ; i < npixels ; i++) { + pixel = pixels[i]; + out->planes[j++] = ((pixel ) & 0x1F) << 3; /* B */ + out->planes[j++] = ((pixel >> 5) & 0x1F) << 3; /* G */ + out->planes[j++] = ((pixel >> 10) ) << 3; /* R */ + out->planes[j++] = pixel & 0x8000 ? 0xFF : 0x00; /* A */ + } + } +} + +static u8_t *expand_lzss(u8_t *lzss, size_t *pout_sz) +{ + static u8_t ring[0x1000]; + unsigned int ring_pos = 0x0FEE; + unsigned int chunk_offset; + unsigned int chunk_length; + u32_t control_word = 1; + size_t length; + u8_t cmd1; + u8_t cmd2; + u8_t *out; + u8_t *pos; + u8_t *in; + + /* Header = 32 bit unpacked file length */ + length = *((u32_t *) lzss); + *pout_sz = length; + + if (length > 8000000) { + fprintf(stderr, "(FAIL: Unreasonably large expanded size %d)\n", + length); + + exit(EXIT_FAILURE); + } + + out = malloc(length * 2); /* Seems to overrun */ + pos = out; + in = lzss + 4; + + while (length > 0) { + if (control_word == 1) { + /* Read a control byte */ + control_word = 0x100 | *in++; + } + + /* Decode a byte according to the current control byte bit */ + if (control_word & 1) { + /* Straight copy */ + *pos++ = *in; + ring[ring_pos] = *in++; + + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } else { + /* Reference to data in ring buffer */ + cmd1 = *in++; + cmd2 = *in++; + + chunk_length = (cmd2 & 0x0F) + 3; + chunk_offset = ((cmd2 & 0xF0) << 4) | cmd1; + + for ( ; chunk_length > 0 ; chunk_length--) { + /* Copy historical data to output AND current ring pos */ + *pos++ = ring[chunk_offset]; + ring[ring_pos] = ring[chunk_offset]; + + /* Update counters */ + chunk_offset = (chunk_offset + 1) % 0x1000; + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } + } + + /* Get next control bit */ + control_word >>= 1; + } + + return out; +} + +static void readfile(const char *filename, u8_t **data, long *nbytes) +{ + FILE *f; + + f = fopen(filename, "rb"); + if (f == NULL) abort(); + + fseek(f, 0, SEEK_END); + *nbytes = ftell(f); + fseek(f, 0, SEEK_SET); + + *data = malloc(*nbytes); + fread(*data, *nbytes, 1, f); + + fclose(f); +} + +void put8(FILE *f, unsigned char val) +{ + fwrite(&val, 1, 1, f); +} + +void put16(FILE *f, unsigned short val) +{ + fwrite(&val, 2, 1, f); +} + +void split_images(const char *in_dir, const char *out_dir, + struct image *images, int nimages) +{ + struct clip *clips; + char filename[512]; + long nbytes; + u8_t *data; + char *name; + FILE *f; + int i; + int j; + int k; + + /* Read file and get TOC */ + sprintf(filename, "%s/system.idx", in_dir); + readfile(filename, &data, &nbytes); + clips = (struct clip *) (data + 0x01BC); + name = (char *) (data + 8 + *((long *) data)); + + /* Guess how many clips there are with a heuristic */ + for (i = 0 ; clips[i].w != 0 && clips[i].h != 0 ; i++) { + sprintf(filename, "%s/%s.tga", out_dir, name); + name += strlen(name) + 3; + + f = fopen(filename, "wb"); + if (f == NULL) abort(); + + /* Locate the correct source image */ + j = 0; + while (clips[i].y > images[j].height) { + clips[i].y -= images[j].height; + j++; + } + + /* Write header */ + put8(f, 0); put8(f, 0); put8(f, 2); + put16(f, 0); put16(f, 0); put8(f, 0); + put16(f, 0); put16(f, 0); put16(f, clips[i].w); put16(f, clips[i].h); + put8(f, 32); put8(f, 32); + + /* Write scanlines */ + for (k = 0 ; k < clips[i].h ; k++) { + if (clips[i].y == images[j].height) { + clips[i].y = 0; + j++; + } + + fwrite(images[j].planes + ((images[j].width * clips[i].y) + + clips[i].x) * 4, clips[i].w, 4, f); + clips[i].y++; + } + + /* Close output file */ + fclose(f); + } + + /* Cleanup */ + free(data); +} + +int main(int argc, char **argv) +{ + char *in_dir; + char *out_dir; + + struct image images[32]; + char filename[256]; + unsigned int i; + long filesize; + u8_t *lzss, *gc; + size_t out_sz; + FILE *f; + + /* Usage */ + if (argc != 3) { + fprintf(stderr, "Usage: %s [indir] [outdir]\n", argv[0]); + return EXIT_FAILURE; + } + + /* Setup */ + memset(images, 0, sizeof(images)); + in_dir = argv[1]; + out_dir = argv[2]; + + for (i = 0 ; i < 32 ; i++) { + /* Open 0.gcz, 1.gcz etc ... */ + sprintf(filename, "%s/%d.gcz", in_dir, i); + f = fopen(filename, "rb"); + if (f == NULL) break; + + /* Read entire file */ + fseek(f, 0, SEEK_END); + filesize = ftell(f); + fseek(f, 0, SEEK_SET); + + fprintf(stderr, "%s: fread", filename); + lzss = malloc(filesize); + fread(lzss, filesize, 1, f); + fclose(f); + + /* Decompress */ + fprintf(stderr, "(OK) expand_lzss"); + gc = expand_lzss(lzss, &out_sz); + free(lzss); + + /* Unpack GC to 32-bit RGBA */ + fprintf(stderr, "(OK) unpack_gc"); + unpack_gc(&images[i], gc, out_sz); + free(gc); + + fprintf(stderr, "(OK)\n"); + } + + /* Sanity check */ + if (i == 0) { + fprintf(stderr, "No GCZ files found\n"); + exit(EXIT_FAILURE); + } + + /* Emit pile of TGAs */ + fprintf(stderr, "split_images"); + split_images(in_dir, out_dir, images, i); + fprintf(stderr, "(OK)\n\n"); + + return 0; +} + diff --git a/iidx/bme2ac legacy/gcz2tga.rar b/iidx/bme2ac legacy/gcz2tga.rar new file mode 100644 index 0000000..792a721 Binary files /dev/null and b/iidx/bme2ac legacy/gcz2tga.rar differ diff --git a/iidx/bme2ac legacy/gcz2tga.zip b/iidx/bme2ac legacy/gcz2tga.zip new file mode 100644 index 0000000..08596d4 Binary files /dev/null and b/iidx/bme2ac legacy/gcz2tga.zip differ diff --git a/iidx/bme2ac legacy/libiidx.7z b/iidx/bme2ac legacy/libiidx.7z new file mode 100644 index 0000000..58ea2ca Binary files /dev/null and b/iidx/bme2ac legacy/libiidx.7z differ diff --git a/iidx/bme2ac legacy/libiidx/eout.hpp b/iidx/bme2ac legacy/libiidx/eout.hpp new file mode 100644 index 0000000..f0b93cd --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/eout.hpp @@ -0,0 +1,202 @@ +//eout.hpp +//Defines the eout class for loading, saving and de-/encrypting the eout.bin file. +//This is only for file i/o convenience. Parsing and heavy lifting is done inside the iidxStyle and iidxSong classes. +//Encryption and decryption were shamelessly pilfered from tau's crackeout and slightly optimized/simplified. + +#ifndef __EOUT_HPP +#define __EOUT_HPP + +#include +#include +#include "stdint.h" +#include "string.h" + +#include "iidxcommon.hpp" + +namespace iidx +{ + +class eout +{ +public: + + //std::string path; + //std::string filename; + + uint8_t *data; + uint32_t length; + + //eout(); + //constructor for loading an existing file + eout(std::string file); + ~eout(); + //constructor for creating or updating a file + //void eout(std::string root, iidxVersion version, uint32_t songcount); + + void Decrypt(); + void Encrypt(); + void Save(std::string where); + +private: + bool encrypted; + + //helper functions for encryption + enum eoutconstants { + EOUT_MODE_DEC = 0, + EOUT_MODE_ENC = 1, + IDX_CURRENT_KEY = 54, + IDX_LAST = 55 + }; + + void crypt(uint32_t mode); + void update_state(uint8_t *state, uint8_t src_byte); +}; + +void eout::update_state(uint8_t *state, uint8_t src) +{ + uint8_t tmp; + uint32_t i; + + tmp = 1; + + state[IDX_CURRENT_KEY] = src; + + for(i = 0; i < IDX_CURRENT_KEY*21; i += 21) + { + state[(i+20) % 55] = tmp; + tmp = src - tmp; + src = state[(i+20) % 55]; + } + + for(i = 0; i < 4*IDX_LAST; i++) + state[i % 55] -= state[(i+31) % 55]; +} + +void eout::crypt(uint32_t mode) +{ + static const uint8_t key[] = + { + 0x55, 0x37, 0x9F, 0xCC, 0xE3, 0xA7, 0x7D, 0x99, + 0xDD, 0xAA, 0xBB, 0xCF, 0xFC, 0x67, 0x43, 0x17 + }; + + uint8_t state[IDX_LAST]; + uint8_t states[16][16]; + uint8_t quo; + uint8_t rem; + + if(mode != EOUT_MODE_ENC && mode != EOUT_MODE_DEC) + return; + + //precompute the 16 possible states + for(uint8_t i = 0; i < 16; i++) + { + update_state(state, key[i]); + memcpy(states[i], state, 16); + + if(mode == EOUT_MODE_ENC) + for(uint8_t k = 0; k < 16; k++) + states[i][k] = -states[i][k]; + } + + for(uint32_t i = 0; i < length; i++) + { + quo = (i / 0x10) % 0x10; + rem = i % 0x10; + + data[i] -= states[quo][rem]; + } +} + +void eout::Encrypt() +{ + if(encrypted == false) + crypt(EOUT_MODE_ENC); + + encrypted = true; +} + +void eout::Decrypt() +{ + if(encrypted == true) + crypt(EOUT_MODE_DEC); + + encrypted = false; +} + +void eout::Save(std::string where) +{ + std::ofstream out(where.c_str()); + + if(!out) + return; + + out.write((char*)data, length); + out.close(); +} + +/* +eout::eout() +{ + length = 0; + encrypted = false; + data = NULL; +}*/ + +eout::eout(std::string file) +{ + std::ifstream in; + + length = 0; + encrypted = false; + data = NULL; + + in.open(file.c_str(), std::ios::binary ); + + if(!in) + throw filenotfound(); + + //read in the file + in.seekg(0, std::ios::end); + length = in.tellg(); + + //FIXME: better length check + if(length < 4) + { + in.close(); + length = 0; + throw invalidfile(); + } + + data = new uint8_t [length]; + in.seekg(0, std::ios::beg); + in.read((char*)data, length); + in.close(); + + //check if eout.bin is encrypted + if(memcmp((char*)data, "IIDX", 4)) + { + encrypted = true; + Decrypt(); + } + + if(memcmp((char*)data, "IIDX", 4)) + { + //not a valid eout.bin + delete data; + length = 0; + throw invalidfile(); + } + + //path = root; + //filename = "eout.bin"; +} + +eout::~eout() +{ + if(length > 0) + delete data; +} + +} +#endif diff --git a/iidx/bme2ac legacy/libiidx/iidxchart.hpp b/iidx/bme2ac legacy/libiidx/iidxchart.hpp new file mode 100644 index 0000000..15d09e2 --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/iidxchart.hpp @@ -0,0 +1,31 @@ +#include "iidxcommon.hpp" +#include + +namespace iidx +{ + +class iidxChart_event +{ + uint32_t time; + uint8_t type; + uint8_t data1; + uint16_t data2; +}; + +typedef std::list eventlist; + +class iidxChart +{ + //difficulty +public: + uint8_t level; + uint32_t notecount; + //bool isdouble; + + eventlist events; + + //uint32 GetNotecount(); + iidxChart() { level = 0; notecount = 0; }; +}; + +} diff --git a/iidx/bme2ac legacy/libiidx/iidxcommon.hpp b/iidx/bme2ac legacy/libiidx/iidxcommon.hpp new file mode 100644 index 0000000..9e25678 --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/iidxcommon.hpp @@ -0,0 +1,65 @@ + +#ifndef __IIDXCOMMON_HPP +#define __IIDXCOMMON_HPP + +#include "stdint.h" + +namespace iidx +{ + +enum iidxVersion { + FIRST = 0, + SUBSTREAM = 1, + SECOND = 2, + THIRD = 3, + FOURTH = 4, + FIFTH = 5, + SIXTH = 6, + SEVENTH = 7, + EIGTH = 8, + NINETH = 9, + TENTH = 10, + RED = 11, + HAPPPYSKY = 12, + DISTORTED = 13, + GOLD = 14, + DJTROOPERS = 15, + EMPRESS = 16, + SIRIUS = 17, + RESORTANTHEM = 18, + LINCLE = 19 +}; + + +enum iidxLevel { + NORMAL7 = 0, + HYPER7 = 1, + ANOTHER7 = 2, + + NORMAL14 = 3, + HYPER14 = 4, + ANOTHER14 = 5, + BEGINNER = 6, + + EX = 7 +}; + + +enum saveoption +{ + OVERWRITE = 1<<1, + NO_OVERWRITE = 1<<2, + BACKUP = 1<<3, + NO_BACKUP = 1<<4, + + DEFAULT = OVERWRITE | BACKUP +}; + +//exception classes +class filenotfound {}; +class invalidfile {}; +class songnotfound {}; + +} + +#endif diff --git a/iidx/bme2ac legacy/libiidx/iidxsong.hpp b/iidx/bme2ac legacy/libiidx/iidxsong.hpp new file mode 100644 index 0000000..8cd6d3c --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/iidxsong.hpp @@ -0,0 +1,97 @@ +#ifndef __IIDXSONG_HPP +#define __IIDXSONG_HPP + +#include +#include +#include +#include "string.h" + +#include "iidxcommon.hpp" +#include "iidxchart.hpp" + +namespace iidx +{ + +class iidxSong +{ + //name to be displayed on led screen + //also used for sorting +public: + uint8_t name[64]; + uint32_t id; + uint16_t highscorepointer; + + //filenames to be used for graphics + uint8_t label[32]; //songwheel + uint8_t title[32]; //banner + uint8_t genre[32]; //genre + uint8_t artist[32]; //artist + uint8_t license[32]; //label the song was licensed from (top right of the banner ingame) + + //sorting options + uint16_t style; //style folder + uint16_t sort_others; //non-alphabet starting letter + uint16_t sort_bemani; //add also into bemani folder + uint16_t sort_bemani2; //add also into bemani folder (again?) + + //charts + iidxChart charts[8]; + uint8_t suffix[8]; //file suffix used for .2dx files + + //misc + uint32_t volume; + uint32_t movieoffset; //offset in ms? + uint8_t moviefile[32]; //sans .4 + uint8_t bgname[32]; + uint8_t graphicsfolder[32]; + + uint32_t layerinfo; + uint8_t layer[9][32]; + + std::string songroot; + + //iidxSong() { onefile = NULL; } + uint16_t GetId() { return id; }; + bool operator<(iidxSong *comp) { return (id < comp->GetId()); }; + void LoadOne(); +}; + +typedef std::list iidxSonglist; + +void iidxSong::LoadOne() +{ + std::ifstream in; + uint8_t songid; + uint8_t *data = NULL; + uint32_t length = 0; + + snprintf((char*)songid, 5, "%04d", id); + + in.open((songroot + (char*)songid).c_str(), std::ios::binary ); + if(!in) + throw filenotfound(); + + //read in the file + in.seekg(0, std::ios::end); + length = in.tellg(); + + //FIXME: better length check + if(length < 92) + { + in.close(); + length = 0; + throw invalidfile(); + } + + data = new uint8_t [length]; + in.seekg(0, std::ios::beg); + in.read((char*)data, length); + in.close(); + + + +} + +} + +#endif diff --git a/iidx/bme2ac legacy/libiidx/libiidx.hpp b/iidx/bme2ac legacy/libiidx/libiidx.hpp new file mode 100644 index 0000000..a0147ec --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/libiidx.hpp @@ -0,0 +1,168 @@ + +#ifndef __IIDX_HPP +#define __IIDX_HPP + + +#include +#include +#include "stdint.h" + +#include "iidxcommon.hpp" +#include "eout.hpp" +#include "iidxsong.hpp" + +//↓debug +#include + +namespace iidx +{ + +class iidxStyle +{ +public: + std::string path; + uint16_t songcount; + uint16_t highscorecount; + iidxVersion version; + + eout *Eout; + + iidxSonglist songs; + + iidxStyle(std::string root); + ~iidxStyle(); + + bool HasSongID(uint32_t id); + iidxSong& GetSongByID(uint32_t id); + +}; + + +iidxStyle::iidxStyle(std::string root) +{ + Eout = NULL; + + //this will throw an exception on failure + Eout = new eout(root + "/data/info/eout.bin"); + + path = root; + + uint8_t songid[5]; + + //============ + //parse eout header + //============ + uint8_t *data = Eout->data; + uint16_t *hsp = (uint16_t*)(&data[14]); + + version = (iidxVersion)*(uint32_t*)(&data[4]); + songcount = *(uint16_t*)(&data[8]); + highscorecount = *(uint16_t*)(&data[10]); + + //============ + //load song data + //============ + iidxSong song; + //advance to the beginning of the song infos + data += 16 + 2*highscorecount; + + for(int i = 0, j = 0; i < songcount; i++) + { + //find the next highscore pointer entry + while(*(++hsp) == 0xffff && j++ <= highscorecount); + + //std::cout << *hsp << " "; + if(j <= highscorecount) + song.highscorepointer = *hsp; + else + //broken header; this won't really fix it... + song.highscorepointer = 0; + + memcpy(song.name, data, 64); data += 64; + memcpy(song.label, data, 32); data += 32; + memcpy(song.title, data, 32); data += 32; + memcpy(song.license, data, 32); data += 32; + memcpy(song.genre, data, 32); data += 32; + memcpy(song.artist, data, 32); data += 32; + + memcpy(&song.style, data, 2); data += 2; + memcpy(&song.sort_others, data, 2); data += 2; + memcpy(&song.sort_bemani, data, 2); data += 2; + memcpy(&song.sort_bemani2, data, 2); data += 2; + + memcpy(&song.charts[NORMAL7].level, data, 1); data += 1; + memcpy(&song.charts[HYPER7].level, data, 1); data += 1; + memcpy(&song.charts[ANOTHER7].level, data, 1); data += 1; + memcpy(&song.charts[NORMAL14].level, data, 1); data += 1; + memcpy(&song.charts[HYPER14].level, data, 1); data += 1; + memcpy(&song.charts[ANOTHER14].level, data, 1); data += 1; + memcpy(&song.charts[BEGINNER].level, data, 1); data += 1; + memcpy(&song.charts[EX].level, data, 1); data += 1; + + data += 128; //bunch of zeros + if(version >= SIRIUS) //even more zeroes beginning with Sirius + data += 32; + data += 20; //bunch of 0xFF + + memcpy(&song.id, data, 4); data += 4; + memcpy(&song.volume, data, 4); data += 4; + + memcpy(&song.suffix[NORMAL7], data, 1); data += 1; + memcpy(&song.suffix[HYPER7], data, 1); data += 1; + memcpy(&song.suffix[ANOTHER7], data, 1); data += 1; + memcpy(&song.suffix[NORMAL14], data, 1); data += 1; + memcpy(&song.suffix[HYPER14], data, 1); data += 1; + memcpy(&song.suffix[ANOTHER14], data, 1); data += 1; + memcpy(&song.suffix[BEGINNER], data, 1); data += 1; + memcpy(&song.suffix[EX], data, 1); data += 1; + + memcpy(&song.movieoffset, data, 4); data += 4; + memcpy(song.moviefile, data, 32); data += 32; + + memcpy(song.bgname, data, 32); data += 32; + memcpy(song.graphicsfolder, data, 32); data += 32; + + memcpy(&song.layerinfo, data, 4); data += 4; + memcpy(song.layer, data, 9*32); data += 9*32; + + //std::cout << song.id << " (" << song.highscorepointer << ") " << song.name << std::endl; + + snprintf((char*)songid, 5, "%04d", song.id); + song.songroot = path + "/data/sd_data/" + (char*)songid; + + songs.push_back(song); + } + +} + +iidxStyle::~iidxStyle() +{ + if(Eout) + delete Eout; +} + +bool iidxStyle::HasSongID(uint32_t id) +{ + iidxSonglist::iterator pos; + + for(pos = songs.begin(); pos != songs.end(); pos++) + if(pos->id == id) + return true; + + return false; +} + +iidxSong& iidxStyle::GetSongByID(uint32_t id) +{ + iidxSonglist::iterator pos; + + for(pos = songs.begin(); pos != songs.end(); pos++) + if(pos->id == id) + return *pos; + + throw songnotfound(); +} + +} + +#endif diff --git a/iidx/bme2ac legacy/libiidx/test.cpp b/iidx/bme2ac legacy/libiidx/test.cpp new file mode 100644 index 0000000..3987705 --- /dev/null +++ b/iidx/bme2ac legacy/libiidx/test.cpp @@ -0,0 +1,65 @@ +#include "libiidx.hpp" +#include + +using namespace iidx; + +int main() +{ + iidxStyle *style, *style2; + + std::string path("D:/Spiele/IIDX/IIDX16/I00"); + std::string path2("D:/Spiele/IIDX/IIDX15/HDD"); + try + { + std::cout << "Trying to load IIDX AC style from " << path << "..."; + style = new iidxStyle(path); + std::cout << "ok" << std::endl; + std::cout << "Version: "<< style->version << std::endl; + std::cout << "Songcount: "<< style->songcount << std::endl; + std::cout << "Size of highscore entry pointer table: "<< style->highscorecount << std::endl; + + std::cout << "Trying to load IIDX AC style from " << path2 << "..."; + style2 = new iidxStyle(path2); + std::cout << "ok" << std::endl; + std::cout << "Version: "<< style2->version << std::endl; + std::cout << "Songcount: "<< style2->songcount << std::endl; + std::cout << "Size of highscore entry pointer table: "<< style2->highscorecount << std::endl; + } + catch(invalidfile) + { + std::cout << "invalid eout file" << std::endl; + return 1; + } + catch(filenotfound) + { + std::cout << "eout not found" << std::endl; + return 2; + } + + //iidxSong &test = style->GetSongByID(100); + + //std::cout << test.id << " " << test.name << std::endl; + + iidxSonglist::iterator pos; + + for(pos = style2->songs.begin(); pos != style2->songs.end(); pos++) + { + if(!(style->HasSongID(pos->id))) + std::cout << "Missing song (ID " << pos->id << "): " << pos->name << std::endl; + } + + for(pos = style2->songs.begin(); pos != style2->songs.end(); pos++) + { + if(style->HasSongID(pos->id)) + { + iidxSong &tmp = style->GetSongByID(pos->id); + for(int i = 0; i < 8; i++) + if(pos->charts[i].level != tmp.charts[i].level) + std::cout << "Changed difficulty (chart " << i << ", " << (int)pos->charts[i].level << " to " << (int)tmp.charts[i].level << ") (ID " << pos->id << ", sort " << pos->style << "): " << pos->name << std::endl; + } + } + + delete style; + + return 0; +} diff --git a/iidx/bme2ac legacy/packgcz_pop.rar b/iidx/bme2ac legacy/packgcz_pop.rar new file mode 100644 index 0000000..ae2c705 Binary files /dev/null and b/iidx/bme2ac legacy/packgcz_pop.rar differ diff --git a/iidx/bme2ac legacy/source/bme2ac new/1.h b/iidx/bme2ac legacy/source/bme2ac new/1.h new file mode 100644 index 0000000..9873be1 --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/1.h @@ -0,0 +1,921 @@ +//1.h +//deals with parsing the bms files for events and converting them into a chain of .1 file events and other .1 related stuff +//largely based on DXAC1.pas (QQQ) + +//2dx ac framerate +#define FPS_GOLD 60.05 //According to Tau GOLD uses this framerate instead of the standard 60.04 for internal computations +#define FPS_DD 59.95 //framerate for DistorteD and up +#define PRELOAD_DELAY 200 //specifies the maximum keysound preload delay before the actual key in ms +#define ENDSONG_DELAY 3000 //end a song 3 seconds after the last measure + +//BMS event/channel list + +#define BMS_BPM_CUST 8 +#define BMS_BPM 3 +#define BMS_STOP 9 + +#define BMS_AUTOPLAY 1 + +#define BMS_P1_1 11 +#define BMS_P1_2 12 +#define BMS_P1_3 13 +#define BMS_P1_4 14 +#define BMS_P1_5 15 +#define BMS_P1_6 18 +#define BMS_P1_7 19 +#define BMS_P1_S 16 + +#define BMS_P2_1 21 +#define BMS_P2_2 22 +#define BMS_P2_3 23 +#define BMS_P2_4 24 +#define BMS_P2_5 25 +#define BMS_P2_6 28 +#define BMS_P2_7 29 +#define BMS_P2_S 26 + +//.1 file event type list + +#define ONE_TYPE_BPM 4 +#define ONE_DUMMY 0xF0 +#define ONE_STOP 0xF1 //this is not the actual event, just a marker for later +#define ONE_LONG_P1 0xF2 //same here +#define ONE_LONG_P2 0xF3 //same here + +#define ONE_AUTOPLAY 7 + +#define ONE_TYPE_P1 0 +#define ONE_TYPE_P2 1 + +#define ONE_MEASURE 0xC + +#define ONE_NOTECOUNT 0x10 +#define ONE_BAD 0x10 +#define ONE_MEASURESIZE 5 + +#define ONE_JUDGEMENT 8 + +#define ONE_ENDSONG 6 +#define ENDSEQ 0x7FFFFFFF + +#define ONE_KEYCHANGE1 2 +#define ONE_KEYCHANGE2 3 + +#define EVENTSIZE 8 + + + +//we build a linked list of events so we can easily append stuff +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; + + void *prev; + void *next; +} event; + +//this will hold pointers to the first node for each chart +event *onecharts[CHARTCOUNT]; + +//These are from D.C.Fish (Gold AC) +//note to self: look up other charts +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +//offsets inside the .1 header for chart i +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; + +//the write order inside the official .1 charts is h7, h14, n7, n14, a7, a14, b, maybe this matters +//anyway, it's not much hassle, so let's write them in "official" order +int worder[7] = {0, 4, 1, 5, 2, 6, 3}; +int onesize; //size of the whole .1 file +byte *onefile; + + + +//inserts an event into the chain for chart i while keeping the timestamps in ascending order +//this might seem overly complicated, but for several reasons we need to know where exactly + //events with equal timestamps are positioned +void add_event(int i, event ev) +{ + event *temp, *ev_n; + + if(!onecharts[i]) + { + onecharts[i] = malloc(sizeof(event)); + memcpy(onecharts[i], &ev, sizeof(event)); + onecharts[i]->prev = onecharts[i]->next = NULL; + return; + } + + temp = onecharts[i]; + + while(temp->next != NULL && temp->time < ev.time) + { + temp = temp->next; + } + + ev_n = malloc(sizeof(event)); //create the new event to insert + memcpy(ev_n, &ev, sizeof(event)); //and copy what we need + + if(temp->time < ev.time) //this is an append or insert after the current note + { + if(temp->next) + ((event*)temp->next)->prev = ev_n; + + ev_n->next = temp->next; + temp->next = ev_n; + + ev_n->prev = temp; + + } + else //this is an insert before the current node + { + if(temp->prev) + ((event*)temp->prev)->next = ev_n; + else //this is to become the first element + onecharts[i] = ev_n; + + ev_n->next = temp; + ev_n->prev = temp->prev; + + temp->prev = ev_n; + } +} + +//deletes an event from the chain +void delete_event(event *ev) +{ + event *pr, *nx; + pr = ev->prev; + nx = ev->next; + + if(pr) + pr->next = nx; + if(nx) + nx->prev = pr; + + free(ev); +} + +//converts the bms events to .1 events +//this does _not_ add the standard events yet +void convert_to_1_events() +{ + int i,j,k; + char measure_c[4]; //use this to store the first 3 bytes after '#'. I hate writing parsers + int measure,channel; + float mtime; + int denom, nume; //denominator and nominator of a note inside a measure + + byte ev_type; + float ev_time; + byte ev_data1; + int bms_ev; + event temp; + + int ln; + + unsigned short int ev_data2; + + char *data; + + measure_c[3] = '\0'; + + temp.next = temp.prev = NULL; + + printf("converting bms charts to .1 charts\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].length) continue; + + printf("chart %s: ", CHARTNAMES[i]); + + data = bms[i].data; + + for(j = 1; j < bms[i].length-6; j++) + { + //find a candidate (parse for "#XXXYY:") + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf(data+j+4, "%d", &channel); + + //check the channel and if we support it, if so set the event type and data type + //don't be scared by the fancy switch magic, we just evaluate bms events to .1 events in a tricky way to save typing work :P + ev_data1 = 0; + ev_data2 = 0; + ev_time = 0; + ev_type = 0; + + if(channel >= 50) //longnotes + { + channel -= 40; + ln = 1; + //printf("!"); + } + else + ln = 0; + + switch(channel) + { + case BMS_P1_S: + ev_data1 += 4; + case BMS_P1_6: + case BMS_P1_7: + ev_data1 -= 2; + case BMS_P1_1: + case BMS_P1_2: + case BMS_P1_3: + case BMS_P1_4: + case BMS_P1_5: + ev_data1 += channel - 11; + ev_type = ONE_TYPE_P1; + break; + + case BMS_P2_S: + ev_data1 += 4; + case BMS_P2_6: + case BMS_P2_7: + ev_data1 -= 2; + case BMS_P2_1: + case BMS_P2_2: + case BMS_P2_3: + case BMS_P2_4: + case BMS_P2_5: + ev_data1 += channel - 21; + ev_type = ONE_TYPE_P2; + break; + + case BMS_BPM: + case BMS_BPM_CUST: + ev_type = ONE_TYPE_BPM; + break; + + case BMS_AUTOPLAY: + ev_type = ONE_AUTOPLAY; + break; + + case BMS_STOP: + ev_type = ONE_STOP; + break; + + default: + //printf("%d ", channel); + continue; //unsupported event type, we skip this + } + + //calculate the start of the measure + mtime = 0; + for(k = 0; k < measure; k++) + mtime += bms[i].msize[k]; + + //now that we've got the measure and the channel, count the number of events for this measure to get the denominator + denom = 0; + for(k = j+7/*after the ':'*/; (k<=bms[i].length) && (data[k] != '\n') && (data[k] != '\r') && (data[k] != '#'); k+=2) //just to be sure... + denom++; + + k = j + 7; + nume = 0; + + //now for the interesting part + for(k = j+7; nume < denom; k+=2) + { + ev_time = mtime + ((float)nume/(float)denom)*bms[i].msize[measure]; + ev_time *= 4. * 60. * 1000./ bms[i].bpm; //timestamp in milliseconds + nume++; + + bms_ev = strtoi(data+k); + + if(!bms_ev) + continue; //'00', skip this + + if(channel == BMS_AUTOPLAY) + { + ev_data2 = bms[i].ref[bms_ev-1]; //remember that we always count from 0 while bms indices start from 1 + } + else if(channel == BMS_BPM_CUST) + { + //printf("BPM change!\n"); + if(((bms[i].bpmchange[bms_ev-1] - (int)bms[i].bpmchange[bms_ev-1]) < 0.01) || (bms[i].bpmchange[bms_ev-1] > 655.35)) + { + //an interesting way to work around the short int limit + ev_data1 = 1; + ev_data2 = (unsigned short int)(bms[i].bpmchange[bms_ev-1]); + } + else + { + ev_data1 = 100; + ev_data2 = (unsigned short int)bms[i].bpmchange[bms_ev-1]*100; + } + } + else if(channel == BMS_BPM) + { + //printf("BPM change!\n"); + ev_data1 = 1; + ev_data2 = (unsigned short)strtoi_h(data+k); //in this case we have to use hex, meh + } + else if(channel == BMS_STOP) + { + //printf("STOP!\n"); + ev_data2 = (unsigned short)strtoi(data+k) - 1; //BMS starts indexing at 1 blablabla + //continue; + } + else if(channel >= 11 && channel <= 29) + { + //for now we store the keysound number in the key event; we create the actual keysound event later + ev_data2 = bms[i].ref[bms_ev-1]; //data2 is the keysound index inside the .2dx file + + if(bms_ev == bms[i].lnobj) + { + //longnote end marker; skip this to prevent useless notes + //printf("!"); + continue; + } + + if(channel <= 19) //1player side + { + bms[i].numkeys[0]++; + + if(ln) //longnote handling + ev_type = ONE_LONG_P1; //we will have to decrease the notecount later because the longnote's endnote doesn't count + } + else //2player side + { + bms[i].numkeys[1]++; + + if(ln) + ev_type = ONE_LONG_P2; + } + } + + //now add the actual event to the list; + + temp.time = ev_time; + temp.type = ev_type; + temp.data1 = ev_data1; + temp.data2 = ev_data2; + //printf("time:%d channel:%d type:%d(bms:%d), data1:%d, data2:%d\n", (int)ev_time, channel, ev_type, bms_ev, ev_data1, bms[i].ref[bms_ev-1]); + add_event(i, temp); + if(i >= 4 && temp.type == ONE_TYPE_BPM) add_event(i, temp); //for some reason these are added twice for double charts + } + + } + } + printf("keypresses: %d(P1) %d(P2)\n", bms[i].numkeys[0], bms[i].numkeys[1]); + //printf("adding measure lines...\n"); + //now that we're done with the normal events, add the measure lines + ev_time = 0; + temp.time = 0; + temp.type = ONE_MEASURE; + temp.data1 = 0; + temp.data2 = 0; + for(j = 0; j <= bms[i].mcount; j++) + { + temp.time = ev_time * 4. * 60. * 1000. / bms[i].bpm; + if(i >= 4) //for double charts, add a measure line for the 2p side, too + { + temp.data1 = 1; + add_event(i, temp); + } + temp.data1 = 0; + add_event(i, temp); + ev_time += bms[i].msize[j]; + } + + //we add this dummy event as the marker for the end of the last measure + //note that this is not really optimal for calculating the end of the song (will fix later) + temp.type = ONE_DUMMY; + temp.time = ev_time * 4. * 60. * 1000. / bms[i].bpm; + add_event(i, temp); + } + +} + +void add_standard_events() +{ + int i,j,k; + + event total_notes_p1, total_notes_p2; + event bpm; //starting bpm + event msize; //measure size + event timings; //timing windows + event endmark; //marks the end of the song + event endseq; //end sequence + event *temp; + int twop = 0; //double chart indicator + + printf("adding standard events..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + if(i >= 4) twop = 1; + else twop = 0; + + printf("%s...", CHARTNAMES[i]); + + for(k = twop; k >= 0; k--) //double charts have two entries for everything, so add them in, too + { + + memset(&total_notes_p1, 0, sizeof(event)); + memset(&total_notes_p2, 0, sizeof(event)); + memset(&bpm, 0, sizeof(event)); + memset(&msize, 0, sizeof(event)); + memset(&timings, 0, sizeof(event)); + memset(&endmark, 0, sizeof(event)); + memset(&endseq, 0, sizeof(event)); + + + total_notes_p1.type = ONE_NOTECOUNT; + total_notes_p1.data2 = bms[i].numkeys[0]; + + total_notes_p2.type = ONE_NOTECOUNT; + total_notes_p2.data1 = 1; + total_notes_p2.data2 = bms[i].numkeys[1]; + + bpm.type = ONE_TYPE_BPM; + if((bms[i].bpm-(int)bms[i].bpm < 0.01) || (bms[i].bpm > 655.35)) //ass-check for fractional bpm, probably doesn't even matter + { + bpm.data1 = 1; + bpm.data2 = (unsigned short int)(bms[i].bpm); + } + else + { + bpm.data1 = 100; + bpm.data2 = (unsigned short int)bms[i].bpm*100; + } + + msize.type = ONE_MEASURESIZE; + msize.data1 = 4; + msize.data2 = 4; + + //add judgement events + timings.type = ONE_JUDGEMENT; + for(j = 5; j >= 0; j--) + { + timings.data1 = (byte)j; + timings.data2 = judgements[j]; + add_event(i, timings); + } + + add_event(i, msize); + add_event(i, bpm); + if(k != 1) + { + add_event(i, total_notes_p2); + add_event(i, total_notes_p1); + } + + + temp = onecharts[i]; + while(temp->next) temp = temp->next; //temp->type == ONE_DUMMY + + endmark.type = ONE_ENDSONG; + endmark.time = temp->time + ENDSONG_DELAY*(1-twop*(1-k)); //evil hack :D; ensures we add both the p1 and the p2 event at the same time + endmark.data1 = k; + + add_event(i, endmark); + + } + + endseq.time = ENDSEQ; + add_event(i, endseq); + + //kill the dummy event + temp = onecharts[i]; + while(temp = temp->next) + { + if(temp->type == ONE_DUMMY) + { + delete_event(temp); + break; //only one dummy event per chart + } + } + } + PNEWLINE; +} + +void handle_longnotes() +{ + int i, player, time, count; + + event *temp; + event *temp2; + + printf("processing longnotes (if neccesary).."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + printf("%s..", CHARTNAMES[i]); + + temp = onecharts[i]; + count = 0; + + //find longnote events + do + { + if(temp->type == ONE_LONG_P1 || temp->type == ONE_LONG_P2) //longnote + { + count++; + if(temp->type == ONE_LONG_P1) + player = ONE_TYPE_P1; + else + player = ONE_TYPE_P2; + + //find the exact time the longnote ends + temp2 = temp; + while(temp2 = temp2->next) + { + if(temp2->type == temp->type && temp2->data1 == temp->data1) //end the longnote + { + time = temp2->time; + + delete_event(temp2); //kill the endnote + bms[i].numkeys[player]--; + break; + } + } + + //start again; this time delete all keypresses on the same lane during and _at the end_ of the longnote + temp2 = temp; + while(temp2 = temp2->next) + { + if(temp2->time > time) + break; + + if(temp2->type == player && temp2->data1 == temp->data1) //same player, same lane + { + temp2 = temp2->prev; + delete_event(temp->next); //kill additional keypresses during a longnote + bms[i].numkeys[player]--; + } + } + } + } while(temp = temp->next); + printf("(%d)...", count); + } + PNEWLINE; +} + +//remove multiple keysound loads +void cleanup_1() +{ + int i,j,k; + + event *temp; + event *temp2; + event ref; + + printf("cleaning up charts.."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + printf("%s..", CHARTNAMES[i]); + memset(&ref, 0, sizeof(event)); + + //delete useless keysound loads; walk the chain once for the p1 side, once for the p2 side + for(k = 0; k <= 1; k++) + { + for(j = 0; j <= 7; j++) + { + ref.data2 = 0xFFFF; //just to be sure we don't accidently kill the first sample load + temp = onecharts[i]; + + do + { + if(temp->type == k+2 && temp->data1 == j) //soundchange for player k and key j + { + if(temp->data2 == ref.data2) + { + //printf("deleted a keysound event in %s: player:%d time:%d key:%d sound:%d\n", \ + CHARTNAMES[i], k+1, temp->time, temp->data1, temp->data2); + temp2 = temp->next; + delete_event(temp); + temp = temp2; + + if(!temp) break; + } + else + { + ref.data2 = temp->data2; + } + } + } while(temp = temp->next); + } + } + } + PNEWLINE; +} + +void create_1() +{ + int i; + int pos; //position + int size[CHARTCOUNT]; //size of the chains inside the .1 file + + event *temp; + + pos = 0x60; //start writing after the .1 header which is 96 bytes + memset(size, 0, sizeof(int)*CHARTCOUNT); + + onesize = 96; //header is always the same size + + printf("creating .1 file\n"); + //first calculate the size for each event chain and the resulting size of the .1 file + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + temp = onecharts[i]; + + do + { + //printf("(%d %d) ", temp->time, temp->type); + size[i] += EVENTSIZE; + } + while(temp = temp->next); + + onesize += size[i]; + //printf("size for %s is %d\n", CHARTNAMES[i], size[i]); + } + + + onefile = malloc(onesize); + memset(onefile, 0, onesize); + + //printf("onesize is %d\n", onesize); + + //write the header and the chains to the buffer + for(i = 0; i < CHARTCOUNT; i++) + { + //printf("size[worder[i]]: %d\n", size[worder[i]]); + if(!onecharts[worder[i]]) + continue; + + + memcpy(onefile+offsets[worder[i]], &pos, 4); //write the position of the chart + memcpy(onefile+offsets[worder[i]]+4, &size[worder[i]], 4); //write the size of the chart + + //write out the events + temp = onecharts[worder[i]]; + do + { + memcpy(onefile+pos, &temp->time, 4); + memcpy(onefile+pos+4, &temp->type, 1); + memcpy(onefile+pos+5, &temp->data1, 1); + memcpy(onefile+pos+6, &temp->data2, 2); + + pos += 8; + } + while(temp = temp->next); + + } + PNEWLINE; +} + +void adjust_bpm() +{ + int i; + + float oldbpm = 0; + float newbpm = 0; + int stime = 0; + int tdiff = 0; + event *temp; + + event *tadjust; + + printf("adjusting for (possible) BPM changes..."); + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + temp = onecharts[i]; + + oldbpm = bms[i].bpm; + + //search for bpm change events and adjust all timestamps after those events accordingly + do + { + if(temp->type == ONE_TYPE_BPM) + { + newbpm = temp->data2 / temp->data1; + stime = temp->time; + + if(oldbpm == newbpm) //no need to do anything + continue; + + tadjust = temp; + + //events are sorted by time so this works just peachy + while(tadjust = tadjust->next) + { + tdiff = tadjust->time - stime; + tdiff = (int)((float)tdiff * oldbpm / newbpm); //adjust the timestamp accordingly + tadjust->time = stime + tdiff; + } + + oldbpm = newbpm; + } + } + while(temp = temp->next); + } + PNEWLINE; +} + +void writeout_1() +{ + FILE *f; + + printf("writing .1 file to disk\n"); + f = fopen("output.1", "wb"); + fwrite(onefile, onesize, 1, f); + fclose(f); +} + + +void add_keysounds() +{ + event *key; + event *p; + event temp; + int i; + int tdiff; + + printf("adding keysound events..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + printf("%s...", CHARTNAMES[i]); + + //search the chain for key events + key = onecharts[i]; + do + { + if(key->type == ONE_TYPE_P1 || key->type == ONE_TYPE_P2) + { + //found a key event, let's add the keysound change for it + tdiff = 0; + + //walk the timeline backwards and try to find the previous key event for the same key + p = key; + while(p = p->prev) + { + if(p->type == key->type && p->data1 == key->data1) + { + tdiff = p->time; + break; + } + } + + //calculate the time difference between the two key events and place the keysound event right between them + + tdiff = key->time - tdiff; + + if(tdiff == key->time && key->time < PRELOAD_DELAY) //we found no key event before this one and the current key event is really close to time 0 + ; //do nothing as tdiff == key->time + else if(tdiff >= PRELOAD_DELAY*2) //the keys are far enough apart to use the standard preload delay + tdiff = PRELOAD_DELAY; + else //the keys are quite close together so place the keysound load event right between them + { + tdiff /= 2; + //printf("TDIFF: %d\n", tdiff); + } + + memcpy(&temp, key, sizeof(event)); + temp.time -= tdiff; + temp.type += 2; //preload event = playerside + 2 + + //printf("key: time:%d player:%d key:%d index:%d TDIFF:%d\n", key->time, key->type-2, key->data1+1, key->data2, tdiff); + //printf("keysoundevent: time:%d player:%d key:%d index:%d TDIFF:%d\n", temp.time, temp.type-2, temp.data1+1, temp.data2, tdiff); + add_event(i, temp); + + key->data2 = 0; + } + } + while(key = key->next); + } + PNEWLINE; +} + +void add_stop_events() +{ + int i; + + float bpm = 0; + + float tdiff = 0; + int d1, d2; + event *temp; + event *helper; + event bpm_help; + + printf("adjusting for (possible) stops..."); + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + if(!bms[i].stopcount) continue; + + printf("%s...", CHARTNAMES[i]); + + temp = onecharts[i]; + + //search for stop events and adjust all timestamps after those events accordingly + do + { + if(temp->type == ONE_STOP) + { + //find the bpm for the current stop event + helper = onecharts[i]; + do + { + if(helper->type == ONE_TYPE_BPM) + { + d1 = helper->data1; + d2 = helper->data2; + bpm = (float)helper->data2 / (float)helper->data1; + } + } while((helper = helper->next) && (helper->time <= temp->time)); + + //calculate the stop time + tdiff = bms[i].stops[temp->data2] / 192.; + tdiff = tdiff * 4. * 60. * 1000. / bpm; + + //adjust all event times after the stop event + helper = temp->next; + do + { + if(helper->time > temp->time && helper->time != ENDSEQ) //in case there's another event at the same time as the stop + helper->time += tdiff; + } + while(helper = helper->next); + + //add two bpm changes to simulate the stop + bpm_help.time = temp->time; + bpm_help.type = ONE_TYPE_BPM; + bpm_help.data1 = 100; + bpm_help.data2 = 100; //1 bpm (stop); iidx doesn't seem to support any lower + + add_event(i, bpm_help); + if(i >= 4) //as always, add another event for double charts + add_event(i, bpm_help); + + bpm_help.time += tdiff; + bpm_help.data1 = d1; + bpm_help.data2 = d2; //restore old bpm + + add_event(i, bpm_help); + if(i >= 4) + add_event(i, bpm_help); + } + } + while(temp = temp->next); + + //delete all stop events + + temp = onecharts[i]; + + do + { + helper = temp->next; + if(helper && helper->type == ONE_STOP) + delete_event(helper); + } + while(temp = temp->next); + } + PNEWLINE; +} + +void stretch_times(double factor) +{ + int i; + event *temp; + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + temp = onecharts[i]; + //walk the chain and multiply timestamps with factor + do + if(temp->time != ENDSEQ) + temp->time = (int)((float)temp->time * factor); + while(temp = temp->next); + } +} diff --git a/iidx/bme2ac legacy/source/bme2ac new/2dx.h b/iidx/bme2ac legacy/source/bme2ac new/2dx.h new file mode 100644 index 0000000..c97af08 --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/2dx.h @@ -0,0 +1,94 @@ +//2dx.h +//deals with compiling the .2dx file + +#define TWODXHSIZE 72 //size of the .2dx header +#define WAVHSIZE 24 //size of the wav header + +int twodxsize; + +byte *tdx; //this will hold the decrypted .2dx file +byte *tdx_enc; //this will hold the encrypted .2dx file + +const byte wavheader[24] = { + '2', 'D', 'X', '9', //const string + 0x18, 0x00, 0x00, 0x00, //headersize (== 24) + 0x00, 0x00, 0x00, 0x00, //size of wave file (written at runtime) + 0x30, 0x32, 0xFF, 0xFF, //panning/initial volume? + 0x40, 0x00, 0x01, 0x00, //??? (64, 0, sample format, 0) + 0x00, 0x00, 0x00, 0x00 //??? (0, 0, 0, 0) +}; +//sample format notes: +//1: 44.1khz, 16bit MS ADPCM stereo +//0: 44.1khz, 16bit MS ADPCM mono +//8: almost but not the same as 1? +//7: ??? + +//construct the .2dx file +//specs were taken from Kitaru's create2dx.c (QQQ) +void create_2dx() +{ + int i, j, firstwav; + + printf("authoring .2dx file\n"); + //calculate the size of the final .2dx file + twodxsize = TWODXHSIZE + wavcount * WAVHSIZE + wavcount*4; //header + ToC + headers for wav files + for(i = 0; i < wavcount; i++) + twodxsize+=waves[i].length; + + twodxsize = CIELMOD8(twodxsize); //just make sure we don't run into unallocated memory while encrypting + + tdx = malloc(twodxsize); + memset(tdx, 0, twodxsize); + + //twodxsize = oldsize; + firstwav = TWODXHSIZE + wavcount*4; + + memcpy(tdx + 16, &firstwav, 4); //first wave position = 2dx header + size of TOC (= 72 + wavcount * sizeof(int)) + memcpy(tdx + 20, &wavcount, 4); //the total numbers of waves + + //write the ToC + printf("writing sample TOC...", firstwav); + j = firstwav; + for(i = 0; i < wavcount; i++) + { + //printf("%d...", j); + memcpy(tdx+TWODXHSIZE+i*4, &j, 4); + j += waves[i].length + WAVHSIZE; + } + + //write the waves + printf("writing keysounds (%d in all)...\n", wavcount); + j = firstwav; + for(i = 0; i < wavcount; i++) + { + //printf("%d...", waves[i].length); + memcpy(tdx+j, wavheader, 24); //write the header + memcpy(tdx+j+8, &waves[i].length, 4); //write the length + memcpy(tdx+j+24, waves[i].data, waves[i].length); + j += WAVHSIZE + waves[i].length; + } + //printf("twodxsize: %d\n", twodxsize); + //PNEWLINE; +} + + +//actually write the stuff to disk +void writeout_2dx() +{ + FILE *out; + + printf("writing output.2dx to disk\n"); + + /*out = fopen("decrypted.2dx", "wb"); + + //fflush(out); + + fwrite(tdx, twodxsize, 1, out); + + fclose(out);*/ + + out = fopen("output.2dx", "wb"); + fwrite(tdx_enc, twodxsize+8, 1, out); + fclose(out); + +} diff --git a/iidx/bme2ac legacy/source/bme2ac new/bme2ac.c b/iidx/bme2ac legacy/source/bme2ac new/bme2ac.c new file mode 100644 index 0000000..c706b1c --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/bme2ac.c @@ -0,0 +1,125 @@ +//bme2ac by ryuuou +//takes a bunch of bms/bme files and produces .2dx and .1 files (hopefully) usable with beatmania iidx ac +//!!!WARNING!!! THIS WILL PROBABLY FAIL HORRIBLY ON 64BIT PLATFORMS!!! Then again it might just work + +//still unsupported: +// - songs with missing wav files? + +//Changelog: +// v0.6 +// - greater accuracy in case of many bpm changes +// - proper longnote handling support +// v0.5 +// - partial support for freezenotes +// v0.4 +// - speedups +// - implemented #STOP events (_NOT_ #STP events!) +// - fixed a potential problem with fractional bpm +// - fixed a bug with file names that have '#' in them +// - the measure line of the last measure wasn't written out correctly +// - nixed decrypted.2dx; encrypted.2dx -> output.2dx +// - songs now end 3 seconds after the end of the last measure +// - added several tools: +// create2dx_new, crack2dx_new, timebase_single, encrypt2dx, merge1, parse1; with sources +// v0.3 +// - killed debug output +// - standard events are now written after bpm corrections to avoid screwing with the end-song event +// - keysound preload events are now dynamic and always placed between keys; this should fix wrong keysounds on fast repeats once and for all +// v0.2 +// - implemented bpm changes +// - implemented changing measure sizes, this should fix a lot of offsync songs +// v0.1 +// - initial release + + +#include "common.h" + +#include "bms.h" +#include "wav.h" +#include "2dx.h" +#include "crypt.h" +#include "1.h" +#include + +//initialize stuff, set things to zero etc. +void init() +{ + memset(bms, 0, sizeof(bmsfile)*CHARTCOUNT); + memset(waves, 0, sizeof(WAVE)*MAXWAVS*CHARTCOUNT); + + memset(onecharts, 0, sizeof(event*)*CHARTCOUNT); + + wavcount = 0; + wavlen = 0; + onesize = 0; + onefile = NULL; + + twodxsize = 0; + + style = 0; //standard = troopers + return; +} + +int main() +{ + init(); + + printf("bme2ac v0.6 by ryuuou\n \ + Converts BME/BMS style files and WAVs into .1 and .2dx files\n\ + Suitable for use with beatmania IIDX TROOPERS AC and up _only_\n\n\n"); + + if(!readbmsfiles()) + { + printf("found no charts, aborting\n"); + getchar(); + return 1; + } + + parsebms_wav(); + + parsebms_bpm(); + parsebms_measures(); + parsebms_stops(); + create_wavtable(); + if(load_waves()) + { + printf("!!!Several wave files failed to load, IIDX might crash!!!\npress enter to continue\n"); + getchar(); + //return 1; + } + + convert_to_1_events(); + + handle_longnotes(); + + stretch_times(100.); //for greater accuracy in case of many bpm changes + adjust_bpm(); + stretch_times(1./100.); + //note: we still have inaccuracy of 1ms while converting from bms, but there's nothing we can do about that + + add_keysounds(); + cleanup_1(); + + add_standard_events(); + + add_stop_events(); //we need at least one bpm event for calculations + + //stretch_times(FPS_DD/1000.); //for DistorteD to Happy Sky + //stretch_times(FPS_GOLD/1000.); //for GOLD + + create_1(); + + create_2dx(); + encrypt_2dx(tdx, twodxsize, &tdx_enc); + + writeout_1(); + writeout_2dx(); + + if(twodxsize > 25000000) + printf("!!!.2dx file is larger than 25,000,000 bytes, IIDX will crash trying to load it!!!\n"); + + printf("\nDone. Press enter to exit.\n"); + //getchar(); + return 0; +} + diff --git a/iidx/bme2ac legacy/source/bme2ac new/bms.h b/iidx/bme2ac legacy/source/bme2ac new/bms.h new file mode 100644 index 0000000..369ed4c --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/bms.h @@ -0,0 +1,237 @@ +//bms.h +//stuff for .bms/.bme processing + +//searches *bms for stuff +//WARNING: this is very intolerant concerning capitalization and trailing whitespaces! + +#define BMS_MSIZE 2 + +typedef struct +{ + int length; + byte* data; + unsigned char wavnames[MAXWAVS][64]; + int ref[MAXWAVS]; + float bpmchange[MAXWAVS]; + int bpmchangecount; + float* msize; + int mcount; + float bpm; + int stopcount; + float stops[MAXWAVS]; + int lnobj; + int numwaves; + int numkeys[2]; +} bmsfile; + +bmsfile bms[CHARTCOUNT]; //one bme for each chart + +//attempt to read in the charts; returns the number of loaded charts +int readbmsfiles() +{ + int ret = 0; + int i; + FILE *f; + + printf("trying to open charts\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + printf("%s...", BMENAMES[i]); + f = fopen(BMENAMES[i], "rb"); + + if(f == NULL) + { + printf("not found\n"); + continue; + } + + ret++; //we got a chart, yay + + fseek(f, 0, SEEK_END); + bms[i].length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + bms[i].data = malloc(bms[i].length); + + fread(bms[i].data, bms[i].length, 1, f); + + fclose(f); + printf("OK\n"); + } + PNEWLINE; +} + +//parse the bms files for WAVxy entries and build a list of wav files to load +//THIS BREAKS WITH FILENAMES LONGER THAN 63 BYTES!! But who would do that -.- +void parsebms_wav() +{ + int i,j,k,l; + char *data; + + printf("parsing bms for wav references..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 6; k++) + { + l = 0; + if(data[k] == '#' && data[k+1] == 'W' && data[k+2] == 'A' && data[k+3] == 'V') + { + j = strtoi(data+k+4) - 1; + k += 7; //skip to the filename (after "#WAVxy ") + while((data[k+l] != '\n') && (data[k+l] != '\r') && k+l < bms[i].length) //CR or LF + l++; //count the length of the filename + + //bms[i].wavnames[j] = malloc((l+1)*sizeof(unsigned char)); + memcpy(bms[i].wavnames[j], data+k, l); //copy the wavename + + //bms[i].wavnames[j][l] = '\0'; //terminate the string //everything is zero anyway + bms[i].numwaves++; + //break; //we found what we wanted + } + } + printf("%s: %d...", CHARTNAMES[i], bms[i].numwaves); + } + PNEWLINE; +} + +//parse the bms files for BPMxy entries, essentially works the same as parsebpm_wav() +void parsebms_bpm() +{ + int i,j,k; + char *data; + + printf("parsing bms for BPM data..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 5; k++) + { + if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] == ' ') + { + k += 5; + sscanf((const char*)(data+k), "%f", &bms[i].bpm); + printf("%s: %.2fbpm...", CHARTNAMES[i], bms[i].bpm); + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] != ' ') + { + j = strtoi(data+k+4) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &bms[i].bpmchange[j]); + + //printf("found a bpm change (index %d) in chart %s: %f\n", j, CHARTNAMES[i], bms[i].bpmchange[j]); + bms[i].bpmchangecount++; + } + } + } + PNEWLINE; +} + +void parsebms_measures() +{ + int i, j; + int measure, channel; + byte *data; + byte measure_c[4]; + + measure_c[3] = '\n'; + + printf("parsing bms charts for measure data..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].length) continue; + + printf("%s...", CHARTNAMES[i]); + + data = bms[i].data; + + //we now look for '#X' where X is a number + for(j = 0; j < bms[i].length-6; j++) + { + //find a candidate + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + + if(measure > bms[i].mcount) bms[i].mcount = measure; //keep track of the highest measure count for later + } + } + + bms[i].msize = malloc(sizeof(float)*(bms[i].mcount+1)); + + for(j = 0; j <= bms[i].mcount; j++) + bms[i].msize[j] = 1.; //default measure size is 1 (4/4 measure) + + //now that we know the measure count, parse for measure length events + for(j = 0; j < bms[i].length-6; j++) + { + //find a candidate + if(data[j] == '#' && data[j+6] == ':') + { + sscanf(data+j+4, "%d", &channel); + + if(channel == BMS_MSIZE) + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf((const char*)(data+j+7), "%f", &bms[i].msize[measure]); //read in the new measure size + //printf("Measure size change in %s (m:%d, v:%f)\n", CHARTNAMES[i], measure, bms[i].msize[measure]); + } + } + } + //TODO: Do we need measure size events for the .1 file? + } + PNEWLINE; +} + +void parsebms_stops() +{ + int i,j,k; + char *data; + + printf("parsing bms for stops..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 6; k++) + { + if(data[k] == '#' && data[k+1] == 'S' && data[k+2] == 'T' && data[k+3] == 'O' && data[k+4] == 'P') + { + j = strtoi(data+k+5) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &bms[i].stops[j]); + + //printf("found a stop (index %d) in chart %s: %f\n", j, CHARTNAMES[i], bms[i].stops[j]); + bms[i].stopcount++; + } + + if(data[k] == '#' && data[k+1] == 'L' && data[k+2] == 'N' && data[k+3] == 'O' && data[k+4] == 'B' && data[k+5] == 'J') + { + k += 7; + bms[i].lnobj = strtoi(data+k); + //sscanf((const char*)(data+k), "%d", &bms[i].lnobj); + + //printf("found a lnobj in chart %s: %d\n", CHARTNAMES[i], bms[i].lnobj); + } + } + } + PNEWLINE; +} + diff --git a/iidx/bme2ac legacy/source/bme2ac new/common.h b/iidx/bme2ac legacy/source/bme2ac new/common.h new file mode 100644 index 0000000..0f87b20 --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/common.h @@ -0,0 +1,77 @@ +//common.h + + +#include +#include +#include +#include + + +#define MAXWAVS (36*36-1) //wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define CHARTCOUNT 7 //beginner + (normal,hyper,another times two), what about kaiden in gold cs? + +#define PNEWLINE printf("\n") //used too often + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) //rounds (a) up to the next mod 8 int + +typedef unsigned char byte; + +//chartorder inside .1 file: h7, n7, a7, b, h14, n14, a14 +const char *BMENAMES[] = { "h7.bme", "n7.bme", "a7.bme", "b.bme", "h14.bme", "n14.bme", "a14.bme" }; //we use constant filenames here for ease of coding/use +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int style; //produce files for this iidx version; 0 == Troopers, 1 == GOLD, 2 == DistorteD and Happy Sky +float factor; //us this factor to strech .1 event time indices (based on version); 1 for Troopers, FPS/1000 for everything else + + +//helper functions for BME numbering weirdness; +//converts a number to a 01-ZZ style string and places that in the first two bytes of str +void itostr(char *str, int i) +{ + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; +} + +//the above in inverse; convert a BME-style numbering to int. +//stupidly tries to convert the first two bytes of *str +int strtoi(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 36*a + b; + + return i; +} + + +//does the same as the above but converts from hex instead +int strtoi_h(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 16*a + b; + + return i; +} diff --git a/iidx/bme2ac legacy/source/bme2ac new/crypt.h b/iidx/bme2ac legacy/source/bme2ac new/crypt.h new file mode 100644 index 0000000..a310e3b --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/crypt.h @@ -0,0 +1,207 @@ + +//crypt.h +//code for encrypting .2dx files with DistorteD's algorithm/key + +//apparently konami's internal implementation of this doesn't do proper boundchecking and also doesn't zero its buffers, so there is some garbage left behind in the original files + +//format of encrypted .2dx file: +//header: +//4 bytes: identifier ("%e12" in case of distorted) +//4 bytes: length of the decrypted .2dx file +//after this follows the encrypted data + + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +byte cryptkey[8] = { 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03 }; //DistorteD'S encryption key + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//encrypts the .2dx file; this simply takes the reverse way from crack2dx.c by an unknown author (QQQ again, but HOLY SHIT that code is a mess (and buggy)) +int encrypt_2dx(byte *dec, int len, byte **enc) +{ + byte *cur; //current block of 8 bytes + int enclen; + + int i; + + //ciel to mod 8; + + enclen = len + 8; //length of the encoded 2dx = length of unencoded 2dx + headersize (8 bytes) + + if(enclen%8) + enclen += 8-enclen%8; + + *enc = malloc(enclen); + memset(*enc, 0, enclen); + memcpy(*enc+8, dec, len); //fill up the encoded array with unencoded stuff + + printf("encrypting .2dx file...\n"); + for(i = 8; i <= enclen - 8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = *enc+i; + + //Step 1: XOR the current block with the encrypted previous block + block_xor(cur, cur-8); + + //Step 2: Swap the lower and upper 4 bytes of the block + block_swap(cur); + + //Step 3: Further obfuscation with XOR; the lower 4 bytes are untouched, so encrypting works the same as decrypting + block_obfus(cur); + + //Step 4: XOR the block (yet again) with DistorteD's key + block_xor(cur, keys_11); + } + + memcpy(*enc, "%hid", 4); //encryption identifier (Troopers) + + memcpy(*enc+4, &len, 4); //write the length of the decoded 2dx file + + return enclen; +} + +int decrypt_2dx(byte *enc, byte **dec) +{ + int i; + int mult; + int len; + byte *buf; + byte *cur, *prev; + byte *cryptkey; + + buf = enc; + + //identify iidx version + + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + cryptkey = keys_16; //Empress + } + else + { + return -1; + } + + len = *((int*)(enc + 4)); + + if(len%8) + len += 8-len%8; + + + *dec = malloc(len); + //decrypt + + if(!(mult == 2)) //skip for unencrypted + { + memcpy(*dec, buf+8, len-8); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = *dec + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + + return len; +} \ No newline at end of file diff --git a/iidx/bme2ac legacy/source/bme2ac new/wav.h b/iidx/bme2ac legacy/source/bme2ac new/wav.h new file mode 100644 index 0000000..1407904 --- /dev/null +++ b/iidx/bme2ac legacy/source/bme2ac new/wav.h @@ -0,0 +1,103 @@ +//wav.h +//deals with stuff like reading wavfiles and stuff and such stuff + +typedef struct +{ + int length; + char *data; + char *name; +} WAVE; + +WAVE waves[MAXWAVS*CHARTCOUNT]; //wasteful but safe, whatever... +int wavcount; //stores the number of wavefiles to be used in the 2dx file +int wavlen; //stores the sum of length all wavefiles we have loaded + +//this fills up "waves" while eliminating duplicates across bme files. while doing so it fills up the bms's structs reference array like this: +//for any bms[i].ref[j], j+1 is the index inside the bme file while ref[j] contains the index which will be used in the .2dx and .1 files +//TODO: What do we do when files are (intentionally?) missing? needs investigation on what 2dx does with 0-byte waves... +void create_wavtable() +{ + int i,j,k; + int dup = 0; + + printf("building wave index\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].numwaves) continue; //no waves, no fun + + printf("%s...", CHARTNAMES[i]); + + for(j = 0; j < MAXWAVS; j++) + { + if(bms[i].wavnames[j][0] != 0) //a wave to load + { + //now check if we've found a wavefile with the same name before to avoid duplicates + for(k = 0; k < wavcount; k++) + { + if(!strcmp(waves[k].name, bms[i].wavnames[j])) + { + dup = 1; //this is a duplicate + //printf("dup(%d,%d %s == %s)\n", j, k, waves[k].name, bms[i].wavnames[j]); + break; + } + } + + if(dup) + { + bms[i].ref[j] = k+1; //save the reference for later use + //printf("%s (%d)\n", bms[i].wavnames[j], k); + dup = 0; + } + else //this is a new wavefile + { + wavcount++; //iidx starts counting samples at _1_, not 0 + bms[i].ref[j] = wavcount; //save the reference + waves[wavcount-1].name = bms[i].wavnames[j]; //remember decem^H^H^H^H^H the name of the ga..(ry + //printf("load(%d,%d %s)\n", j, wavcount, waves[wavcount-1].name); + } + } + } + } + printf("added %d wave files to table\n", wavcount); + return; +} + + +//actually load the wave files +int load_waves() +{ + int i, fail=0; + FILE *f; + + printf("loading wave files..."); + for(i = 0; i < wavcount; i++) + { + f = fopen(waves[i].name, "rb"); + if(f == NULL) + { + if(!fail) + printf("failed to load waves:\n"); + //printf("wav referenced but not found: %s\n", waves[i].name); + fail++; + printf("%s ", waves[i].name); + continue; + } + + fseek(f, 0, SEEK_END); + waves[i].length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + waves[i].data = malloc(waves[i].length); + + fread(waves[i].data, waves[i].length, 1, f); + + fclose(f); + //printf("loaded wave %s of length %d\n", waves[i].name, waves[i].length); + } + if(fail) + printf("\nout of %d wave files, %d were not found\n", wavcount, fail); + else + printf("all waves loaded successfully\n"); + PNEWLINE; + return fail; +} diff --git a/iidx/bme2ac legacy/source/create2dx_cs2emp.c b/iidx/bme2ac legacy/source/create2dx_cs2emp.c new file mode 100644 index 0000000..80622f0 --- /dev/null +++ b/iidx/bme2ac legacy/source/create2dx_cs2emp.c @@ -0,0 +1,254 @@ +//create2dx_dumb.c by ryuuou +//Authoring the 2dx file is based on create2dx.c by Kitaru +//Encrypting is taking the reverse way from crack2dx.c by some unknown author (at least to me) +//Packs BME-style sequenced .wav (01.wav to ZZ.wav, but should work with BMS-style 01 - FF as well) in the current folder +//into an unencrypted unencrypted.2dx and an DistorteD-style encrypted encrypted.2dx +//Takes no arguments and always outputs to the same files; only works with uppercase on unix but should work with lowercase on windows; +//We also assume that the ascending order or the wavefiles equals their order in the corresponding bme/bms file +//...hence "_dumb" + + +#include +#include +#include + +//wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define MAXWAVS (36*36-1) + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) + +typedef unsigned char byte; + +typedef struct{ + int length; + byte *data; + int offset; +} wavefile; + +const byte aftertoc[24] = { + '2', 'D', 'X', '9', //const string + 0x18, 0x00, 0x00, 0x00, //headersize (== 24) + 0x00, 0x00, 0x00, 0x00, //size of wave file (written at runtime) + 0x30, 0x32, 0xFF, 0xFF, //panning/initial volume? + 0x40, 0x00, 0x08, 0x00, //??? (64, 0, 8, 0) + 0x00, 0x00, 0x00, 0x00 //??? (0, 0, 0, 0) +}; + + +//helper function for BME numbering weirdness; +//converts a number to a 01-ZZ style string +char *itostr(int i) +{ + char *str; + + str = malloc(3); + + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; + + str[2] = '\0'; + + return str; +} + +/// +/// encryption related +/// + +byte cryptkey[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//Encrypts length bytes of inc and returns a pointer to the encoded array +byte *encrypt(byte *inc, int length) +{ + byte *data; + byte *cur; //current block of 8 bytes + + int i, enclen; + + enclen = 8 + CIELMOD8(length); //let's just make sure we're not running into uninitialized memory while encrypting + data = malloc(enclen); + + memset(data, 0, enclen); + memcpy(data+8, inc, length); //fill up the encoded array with unencoded stuff + + + for(i = 8; i <= enclen-8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = data+i; + + block_xor(cur, cur-8); + block_xor(cur, cryptkey+16); + block_obfus(cur); + block_xor(cur, cryptkey+8); + block_swap(cur); + block_obfus(cur); + block_xor(cur, cryptkey); + } + + memcpy(data, "%iO0", 4); //encryption identifier + enclen -= 8; + memcpy(data+4, &enclen, 4); //write the length of the decoded 2dx file + return data; +} + +int main(int argc, const char **argv) +{ + wavefile waves[MAXWAVS]; + + FILE *wavfile; + FILE *out; + FILE *bmsfile; + + byte *decrypted, *encrypted, *bms; + + int wav = 0; //wavefile count + int pos = 0, i = 0, ii = 0, j, firstwav = 0, bmslength = 0, len = 0; + int length = 72; //use this to compute the final file length along the way (72 = 2dx headersize) + int prev, maxwav; + + char wavepath[32]; //helperstring; ugly but works + + int bmestyle = 0; + memset(waves, 0, MAXWAVS*sizeof(wavefile)); + + printf("reading samples..."); + for(i = 1; i <= MAXWAVS; i++) //this is really inefficient but works, meh + { + if(bmestyle == 0) + { + sprintf(wavepath, "%s.wav", itostr(i)); + } + else if(bmestyle == 1) + { + sprintf(wavepath, "%d.wav", i); + } + + wavfile = fopen(wavepath, "rb"); + + if (wavfile != NULL) + { + //open the wave file and save its length and contents to the array + printf("%s...",wavepath); + fseek(wavfile, 0, SEEK_END); + waves[i-1].length = (int)ftell(wavfile); + fseek(wavfile, 0, SEEK_SET); + + waves[i-1].data = malloc(waves[i-1].length); + + fread(waves[i-1].data, waves[i-1].length, 1, wavfile); + + fclose(wavfile); + wav++; + length += 4 + 24 + waves[i-1].length; //toc index + header + actual length + maxwav = i; + } + } + + if(wav == 0) //learn2placefilesindirectories + { + printf("no wave files found, go die in a fire\n"); + return 0; + } + printf("OK\n"); + printf("\ntotal samplecount: %d, actual wavcount in .2dx: %d\n\n",wav, maxwav); + + wav = maxwav; + + for(i = maxwav-2; i >= 0; i--) + { + if(waves[i].length == 0) + { + waves[i].data = waves[i+1].data; + waves[i].length = waves[i+1].length; + printf("added wav: %i, len %i\n", i, waves[i].length); + length += waves[i].length; + } + } + + + //start constructing the 2dx file + decrypted = malloc(length); + memset(decrypted, 0, length); + + firstwav = 72+wav*4; //ugly... + memcpy(decrypted + 16, &firstwav, 4); //first wave position = 2dx header + size of TOC (= 72 + wavecount * sizeof(int)) + memcpy(decrypted + 20, &wav, 4); //the total numbers of waves + + printf("writing samples..."); + pos = firstwav; + for(i = 0; i < maxwav; i++) + { + memcpy(decrypted+pos, aftertoc, 8); //"2DX9" + headersize (== 24) + memcpy(decrypted+pos+8, &waves[i].length, 4); //size of the wave + memcpy(decrypted+pos+12, aftertoc+12, 12); //rest of the header + memcpy(decrypted+pos+24, waves[i].data, waves[i].length); //write the actual wav + memcpy(decrypted+0x48+(i*4), &pos, 4); //write toc entry + pos += 24 + waves[i].length; + } + printf("OK\n"); + + printf("encrypting..."); + encrypted = encrypt(decrypted, length); + printf("OK\n"); + + out = fopen("output.2dx", "wb"); //open the 2dx file and write out the array + fwrite(encrypted, 8+CIELMOD8(length), 1, out); + fclose(out); + + return 0; +} diff --git a/iidx/bme2ac legacy/source/cs2ac v1.3.c b/iidx/bme2ac legacy/source/cs2ac v1.3.c new file mode 100644 index 0000000..135df7b --- /dev/null +++ b/iidx/bme2ac legacy/source/cs2ac v1.3.c @@ -0,0 +1,479 @@ +/* cs2ac by 697—14 */ +/* + 09/05/22 v1.0 CS GOLDê—p”Å + 09/05/24 v1.1 CS DJT‚ɉ¼‘Ήž + 09/05/28 v1.2 ƒŠƒtƒ@ƒNƒ^ƒŠƒ“ƒO + 09/05/30 v1.3 CS DistorteDˆÈ‘O‚ɉ¼‘Ήž +*/ + + +/* ì‹Æ‚È‚ª‚ç‚Ì‚ ‚ꂱ‚ê +/* + 0x07: 3rd style CS BGM autoplay + 0x0A: ??? style CS BGM autoplay + 0x82, 0x82: 3rd style CS ƒL[‰¹•ÏX? + ‹ŒCSƒo[ƒWƒ‡ƒ“DP•ˆ–ÊI—¹éŒ¾ƒCƒxƒ“ƒgƒoƒO‘Ήž + BGMŽ©“®‰‰‘tiindex==1j‚ª•¡””­“®‚³‚¹‚È‚¢ +*/ + +#include +#include +#include + +#define MAGNIA 16.71309 // 3rd style - 8th style +#define MAGNIB 16.68335 // 9th style - DJ TROOPERS + +#define NAMEMAX 32 + +double version = 1.3; + +FILE *in, *out; +int i_timeA; +double i_timeB; +int d_type; +int b_data[3]; +int t_notes[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int f_size[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int head_adrs; +int f_exist[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int filetype; +int t_base_type; +int maxwav; +char inName[NAMEMAX], + outName[NAMEMAX]; + +/* ƒwƒbƒ_‘‚«Š·‚¦ */ +int headWritingUnit(int dif){ + int adrsA, adrsB; + + switch(dif) { + case 0: adrsA = 0x08; adrsB = 0x0c; break; // SPN + case 1: adrsA = 0x00; adrsB = 0x04; break; // SPH + case 2: adrsA = 0x10; adrsB = 0x14; break; // SPA + case 3: adrsA = 0x18; adrsB = 0x1c; break; // SPB + case 4: adrsA = 0x38; adrsB = 0x3c; break; // DPN + case 5: adrsA = 0x30; adrsB = 0x34; break; // DPH + case 6: adrsA = 0x40; adrsB = 0x44; break; // DPA + } + + fseek(out, adrsA, SEEK_SET); + fwrite(&head_adrs, 1, 4, out); + fseek(out, adrsB, SEEK_SET); + fwrite(&f_size[dif], 1, 4, out); + head_adrs += f_size[dif]; + + return 0; +} + +/* ƒf[ƒ^‘‚«ž‚Ý */ +int dataWritingUnit(int dif){ + i_timeB = i_timeA; + switch(t_base_type){ + case 0: + i_timeB *= MAGNIA; + break; + case 1: + i_timeB *= MAGNIB; + break; + } + i_timeA = i_timeB; + fwrite(&i_timeA, 1, 4, out); + fwrite(&d_type, 1, 1, out); + fwrite(&b_data[0], 1, 1, out); + fwrite(&b_data[1], 1, 1, out); + fwrite(&b_data[2], 1, 1, out); + f_size[dif] += 8; + + return 0; +} + +int cs2ac(int dif){ + /* •ϔݒè */ + int i; + int temp; + int dp_flag; + int rtm_flag = 0; + int start_flag = 0; + int wav01_auto = 0; + + /* ˆ—•”•ª */ + /* •Ï”‰Šú‰» */ + t_base_type = 0; + f_size[dif] = 0; + t_notes[dif] = 0; + + if(dif >= 4){ + dp_flag = 1; + } + else { + dp_flag = 0; + } + + fseek(out, head_adrs, SEEK_SET); + + /* ƒTƒuƒwƒbƒ_‘‚«ž‚Ý */ + /* [00 00 00 00 10 00 00 00][00 00 00 00 10 01 00 00] */ + temp = 0x00; + for(i=0;i<0x04;i++){ + fwrite(&temp, 1, 1, out); + } + temp = 0x10; + fwrite(&temp, 1, 1, out); + temp = 0x00; + for(i=0;i<0x07;i++){ + fwrite(&temp, 1, 1, out); + } + temp = 0x0110; + fwrite(&temp, 1, 2, out); + temp = 0x00; + for(i=0;i<0x02;i++){ + fwrite(&temp, 1, 1, out); + } + f_size[dif] += 16; + + /* •ˆ–ÊI’[‚܂ŌJ‚è•Ô‚µ */ + while((d_type != 0x06)||((dp_flag != 2)&&(dp_flag != 5))) { + /* ƒf[ƒ^‰Šú‰» */ + i_timeA = 0x00; + d_type = 0x00; + b_data[0] = 0x00; + b_data[1] = 0x00; + b_data[2] = 0x00; + + /* ƒf[ƒ^“ǂݞ‚Ý */ + switch(filetype){ + case 1: case 2: // CS3(DJT,GOLD),CS(DistorteD - 7th style) + fread(&i_timeA, 1, 4, in); + fread(&d_type, 1, 1, in); + fread(&b_data[0], 1, 1, in); + fread(&b_data[1], 1, 1, in); + fread(&b_data[2], 1, 1, in); + break; + + case 3: // CS2 (6th style - 3rd style) + fread(&i_timeA, 1, 2, in); + fread(&d_type, 1, 1, in); + fread(&b_data[0], 1, 1, in); + b_data[1] = 0x00; + b_data[2] = 0x00; + break; + } + + //ˆê•”‚Ì‹ŒCSƒo[ƒWƒ‡ƒ“•ˆ–ʃoƒO‘ΉžiDP‚Ȃ̂É2P‚Ì•ˆ–ÊI—¹éŒ¾ƒCƒxƒ“ƒg‚ª‚È‚¢j + if((short int)i_timeA == 0x7FFF && dp_flag == 3) + d_type = 0x06; + + /* ƒf[ƒ^ƒ^ƒCƒv‚ÅU‚蕪‚¯ */ + switch(d_type) { + /* ƒm[ƒgƒCƒxƒ“ƒg */ + case 0x00: case 0x10: case 0x20: case 0x30: case 0x40: case 0x50: case 0x60: case 0x70: + case 0x01: case 0x11: case 0x21: case 0x31: case 0x41: case 0x51: case 0x61: case 0x71: + if (start_flag == 0){ break; } + t_notes[dif]++; + + b_data[0] = d_type / 0x10; + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* ƒL[‰¹•ÏX */ + case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52: case 0x62: case 0x72: + case 0x03: case 0x13: case 0x23: case 0x33: case 0x43: case 0x53: case 0x63: case 0x73: + switch(filetype){ + case 3: b_data[1] = b_data[0]; break; + } + if (maxwav < (b_data[2]*0x100 + b_data[1])){ + maxwav = b_data[2]*0x100 + b_data[1]; + } + if ((b_data[2]*0x100 + b_data[1]) == 0){ + printf("\nFile \"00\" assigned ! : %08x : %02x\n",i_timeA ,d_type); + } + + /* ¬ßü */ + case 0x0C: case 0x1C: + b_data[0] = d_type / 0x10; + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* ”»’è•Ý’è */ + case 0x08: case 0x18: case 0x28: case 0x38: case 0x48: case 0x58: + switch(filetype){ + case 3: // 6th style ‰ð̓oƒO‘Îô + if(d_type == 0x48){ + b_data[1] = 0x08; + b_data[0] = 0x04; + } + else { + b_data[1] = b_data[0]; + b_data[0] = d_type / 0x10; + } + break; + + default: + b_data[1] = b_data[0]; + b_data[0] = d_type / 0x10; + break; + } + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* Ž©“®‰‰‘t */ + case 0xF7: + break; + case 0x87: case 0x17: case 0x07: case 0xA7: + switch(filetype){ + case 3: + b_data[1] = b_data[0]; + b_data[0] = 0x00; + } + d_type %= 0x10; + + if (maxwav < (b_data[2]*0x100 + b_data[1])){ + maxwav = b_data[2]*0x100 + b_data[1]; + } + + if((b_data[2]*0x100 + b_data[1]) == 1) + { + if(wav01_auto) + break; + else + wav01_auto++; + } + + dataWritingUnit(dif); + break; + + + /* BPM•ÏX */ + case 0x04: case 0x14: case 0x24: case 0x34: + b_data[2] = d_type / 0x10; + b_data[1] = b_data[0]; + b_data[0] = 0x01; + d_type %= 0x10; + dataWritingUnit(dif); + + start_flag++; + + switch(filetype){ + case 3: + if(rtm_flag == 0){ + d_type = 0x05; + b_data[0] = 0x04; + b_data[1] = 0x04; + b_data[2] = 0x00; + dataWritingUnit(dif); + rtm_flag++; + } + break; + } + break; + + /* ”Žq•ÏX */ + case 0x05: + switch(filetype){ + case 3: + break; + default: + dataWritingUnit(dif); + } + break; + + /* •ˆ–ÊI—¹éŒ¾ */ + case 0x06: + if(dp_flag == 3){ + b_data[0] = 0x01; + } + dataWritingUnit(dif); + + if((dp_flag == 0)||(dp_flag == 3)){ + temp = 0x7FFFFFFF; + fwrite(&temp, 1, 4, out); + temp = 0x00; + for(i=0;i<0x04;i++){ + fwrite(&temp, 1, 1, out); + } + f_size[dif] += 8; + } + dp_flag += 2; + break; + + /* ’PˆÊŽžŠÔ”»’è */ + case 0x2B: + t_base_type = 1; + break; + + case 0x4C: + break; + + default: + printf("Unknown data type! : %06x : %02x (%02x %02x %02x)\n",i_timeA ,d_type, b_data[0], b_data[1], b_data[2]); + break; + } + //printf("DEBUG: %06x : %02x (%02x %02x %02x); %d\n",i_timeA ,d_type, b_data[0], b_data[1], b_data[2], dp_flag); + } + + /* ƒTƒuƒwƒbƒ_‚ÌTotalNotes‘‚«Š·‚¦ */ + fseek(out, head_adrs + 0x06, SEEK_SET); + fwrite(&t_notes[dif], 1, 2, out); + + /* ƒwƒbƒ_‘‚«Š·‚¦ */ + headWritingUnit(dif); + + return 0; +} + +/* .1ƒwƒbƒ_¶¬ */ +int makeHeader(void){ + int i; + int temp; + /* ƒwƒbƒ_‰¼’u‚« */ + temp = 0x00; + for(i=0;i<0x60;i++){ + fwrite(&temp, 1, 1, out); + } + return 0; +} + +/* CS•ˆ–ʃtƒ@ƒCƒ‹Šm”F */ +int checkScoreFile(void){ + int i,j; + int existflag; + int headerflag; + char f_type[NAMEMAX]; + + filetype = 0; + headerflag = 0; + + /* CS3ƒtƒ@ƒCƒ‹ */ + if((in = fopen("cs3.raw", "rb")) == NULL) { + printf("cs3.raw : Not Found.\n\n"); + } + else { + printf("cs3.raw : Read success / "); + filetype = 1; + + /* DJT,GOLD”»•Ê */ + fseek(in, 0, SEEK_END); + if (ftell(in) / 0x10000 == 6){ + f_exist[3] = -1; + printf("CS3 type : GOLD\n\n"); + } + else { + printf("CS3 type : DJ TROOPERS\n\n"); + } + + /* •ˆ–Ê‘¶Ýƒtƒ‰ƒOŒŸo */ + printf("Prosessing "); + for(j=0;j<7;j++){ + /* ƒtƒ‰ƒO“ǂݞ‚Ý */ + existflag = 0; + fseek(in, 0x10000 * j, SEEK_SET); + fread(&existflag, 1, 1, in); + fseek(in, 0x10000 * j, SEEK_SET); + + /* GOLD‚Ìê‡SPB•ª‚ð”ò‚΂· */ + if((j >= 3)&&(f_exist[3] == -1)){ + j++; + } + + /* ƒtƒ‰ƒO”»’è */ + if(existflag == 0x00){ // ‘¶Ý‚µ‚È‚¢ + f_exist[j] = 0; + } + else { // ‘¶Ý‚·‚é + /* ƒwƒbƒ_¶¬ */ + if(headerflag == 0){ + makeHeader(); + headerflag++; + } + /* •ÏŠ·ˆ— */ + printf("-"); + cs2ac(j); + printf("> "); + f_exist[j] = 1; + } + + /* GOLD‚Ìꇃ‹[ƒvƒJƒEƒ“ƒ^‚ð–ß‚· */ + if((j >= 3)&&(j != 6)&&(f_exist[3] == -1)){ j--; } + } + printf("OK\n"); + } + + /* CS,CS2,CS5ƒtƒ@ƒCƒ‹ */ + for(i=2;i<=3;i++){ + if(filetype != 0){ + break; + } + + switch(i){ + case 2: sprintf(f_type, "cs"); break; // 7th style - DistorteD + case 3: sprintf(f_type, "cs2"); break; // 3rd style - 6th style +// case 4: sprintf(f_type, "cs5"); break; // ?? + } + for(j=0;j<7;j++){ + switch(j){ + case 0: sprintf(inName, "n7.%s",f_type); break; + case 1: sprintf(inName, "h7.%s",f_type); break; + case 2: sprintf(inName, "a7.%s",f_type); break; + case 3: sprintf(inName, "b.%s",f_type); break; + case 4: sprintf(inName, "n14.%s",f_type); break; + case 5: sprintf(inName, "h14.%s",f_type); break; + case 6: sprintf(inName, "a14.%s",f_type); break; + } + if((in = fopen(inName, "rb")) == NULL) { + printf("%7s : Not Found.\n",inName); + } + else { + printf("%7s : Prosessing ",inName); + filetype = i; + /* ƒwƒbƒ_¶¬ */ + if(headerflag == 0){ + makeHeader(); + headerflag++; + } + /* •ÏŠ·ˆ— */ + printf("-"); + cs2ac(j); + f_exist[j] = 1; + fclose(in); + printf("> OK\n"); + } + } + printf("\n"); + } + return filetype; +} + +int main(){ + char wait[0xff]; + head_adrs = 0x60; + maxwav = 0; + + printf(" -* beatmaniaIIDX CS to AC Chart Converter v%.2f by 697@14 *-\n\n",version); + + if((out = fopen("output.1", "wb")) == NULL) { + printf("Failed to open \"output.1\".\n"); + return 1; + } + + if(checkScoreFile() == 0) { + printf("Chart File not found...\n"); + return 1; + } + else { + printf("Number of wav : %d\n\n",maxwav); + printf("Writing \"output.1\"\n\nDone.\n"); + } + fclose(out); + + //gets(wait); + return 0; +} + + + diff --git a/iidx/bme2ac legacy/source/fixtimingwindows.c b/iidx/bme2ac legacy/source/fixtimingwindows.c new file mode 100644 index 0000000..1f06649 --- /dev/null +++ b/iidx/bme2ac legacy/source/fixtimingwindows.c @@ -0,0 +1,129 @@ +//timebase_single.c by ryuuou +//changes the base fps value of .1 files like timebase.exe, but works on a bunch of single .1 files instead of folders +//this is mainly to assist with custom songs so that you don't have to timebase your whole folder again for single songs and deal with file versions + +#include +#include +#include +#include + +#define byte unsigned char + +#define CHARTCOUNT 7 +#define EVENTSIZE 8 +#define FPS_STANDARD_GOLD 60.05 +#define FPS_STANDARD_DD 59.95 + +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; +} event; + +int main(int argc, const char **argv) +{ + int i,j,k; + FILE *in, *out; + byte *buf; + int *p; + int flength; + int pos, len; + short int np1, np2; + + event *ev; + + printf("fixtimingwindows by ryuuou\n\tfixes timing windows to be consistent\n\n"); + if(argc < 2) + { + printf("usage: fixtimingwindows ...\n\talternatively drop a bunch of .1 files on the executable\n"); + getchar(); + return 0; + } + + for(i = 2; i <= argc; i++) + { + printf("processing %s...", argv[i-1]); + in = fopen(argv[i-1], "rb"); + if(!in) + { + printf("file not found\n"); + continue; + } + + fseek(in, 0, SEEK_END); + flength = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(flength); + + fread(buf, flength, 1, in); + fclose(in); + + for(j = 0; j < CHARTCOUNT; j++) + { + p = (int*)(buf+offsets[j]); + if(!*p) continue; //no chart here + + //printf("%s...\n", CHARTNAMES[j]); + + pos = p[0]; + len = p[1]; + + np1 = 0; + np2 = 0; + + for(k = pos; k < pos+len - EVENTSIZE; k += EVENTSIZE) + { + ev = (event*)(buf+k); + + if(ev->type == 8) //adjust timing + { + //printf("%d (%d->%d)...", ev->data1, ev->data2, judgements[ev->data1]); + ev->data2 = judgements[ev->data1]; + } + if(ev->type == 0)//player 1 keypress + { + np1++; + } + else if(ev->type == 1) //player 2 keypress + { + np2++; + } + } + + for(k = pos; k < pos+len; k += EVENTSIZE) + { + ev = (event*)(buf+k); + + if(ev->type == 0x10)//notecount + { + if(ev->data1 == 0) //player1 + { + printf("%d -> %d | ", ev->data2, np1); + ev->data2 = np1; + } + else if(ev->data1 == 1) //player2 + { + printf("%d -> %d\n", ev->data2, np2); + ev->data2 = np2; + } + } + } + //printf("%s: p1: %d, p2: %d\n", CHARTNAMES[j], np1, np2); + } + + out = fopen(argv[i-1], "wb"); + fwrite(buf, flength, 1, out); + fclose(out); + + free(buf); + + printf("done\n"); + } +} diff --git a/iidx/bme2ac legacy/source/merge1.c b/iidx/bme2ac legacy/source/merge1.c new file mode 100644 index 0000000..2425e57 --- /dev/null +++ b/iidx/bme2ac legacy/source/merge1.c @@ -0,0 +1,157 @@ +//merge1.c by ryuuou +//merges several .1 files into a single one to help with songs that have too many wav references + +#include +#include +#include + +#define CHARTCOUNT 7 +#define byte unsigned char + +const char *ONAMES[] = { "h7.1", "n7.1", "a7.1", "b.1", "h14.1", "n14.1", "a14.1" }; +const char *NAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +int worder[CHARTCOUNT] = {0, 4, 1, 5, 2, 6, 3}; + + +int main() +{ + int i, len; + int *plen, *poff; + byte *onechart[CHARTCOUNT]; + int olen[CHARTCOUNT]; + FILE *in, *out; + int ccount = 0; + + byte *buf; + int blen; + + printf("merge1 by ryuuou\n\tmultiplexes several .1 files into a single one\n\n\n"); + + in = fopen("base.1", "rb"); + + memset(onechart, 0, sizeof(int*)*CHARTCOUNT); + memset(olen, 0, sizeof(int)*CHARTCOUNT); + + printf("trying to open files...\n"); + printf("base.1..."); + if(!in) printf("not found, authoring new .1 file\n"); + else printf("OK\n"); + + if(in) //load base.1 as reference + { + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + printf("loading charts from base.1..."); + //load the charts contained in the base file + for(i = 0; i < CHARTCOUNT; i++) + { + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + if(!*plen) continue; //no chart + + olen[i] = *plen; + + printf("%s...", NAMES[i]); + + onechart[i] = malloc(olen[i]); + + memcpy(onechart[i], buf+*poff, olen[i]); //copy the chart + } + + free(buf); + printf("done\n\n"); + } + + printf("loading and inserting/overwriting charts...\n"); + + for(i = 0; i < CHARTCOUNT; i++) + { + printf("%s...", ONAMES[i]); + in = fopen(ONAMES[i], "rb"); + if(!in) + { + printf("not found\n"); + continue; + } + + ccount++; + + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + + if(!*plen) + { + printf("no %s chart\n", NAMES[i]); + continue; //this file contains no appropriate chart, l2namefiles + } + + if(olen[i]) //we previously loaded a chart from base.1 and we don't want to leak memory + free(onechart[i]); + + olen[i] = *plen; + + onechart[i] = malloc(*plen); + + memcpy(onechart[i], buf+*poff, *plen); + free(buf); + printf("OK\n"); + } + + if(!ccount) + { + printf("no charts found, aborting\npress any key to exit\n"); + getchar(); + return 0; + } + + //create the aggregated .1 file + + len = 96; //.1 headersize + + for(i = 0; i < CHARTCOUNT; i++) + len += olen[i]; + + buf = malloc(len); + + memset(buf, 0, len); + + len = 96; //abuse len as position counter + + printf("\nauthoring .1 file..."); + for(i = 0; i < CHARTCOUNT; i++) + { + memcpy(buf+offsets[worder[i]], &len, 4); + memcpy(buf+offsets[worder[i]]+4, &olen[worder[i]], 4); + + memcpy(buf+len, onechart[worder[i]], olen[worder[i]]); + len += olen[worder[i]]; + } + printf("done\n"); + + printf("writing merged.1..."); + out = fopen("merged.1", "wb"); + + fwrite(buf, len, 1, out); + + fclose(out); + free(buf); + printf("done\npress any key to exit\n"); + + getchar(); + return 0; +} diff --git a/iidx/bme2ac legacy/source/oldac2dx2newac2dx.c b/iidx/bme2ac legacy/source/oldac2dx2newac2dx.c new file mode 100644 index 0000000..5a27f3d --- /dev/null +++ b/iidx/bme2ac legacy/source/oldac2dx2newac2dx.c @@ -0,0 +1,228 @@ +//crack2dx_new.c +//decrypts .2dx files from every style from 9th to Troopers +//decryption method and keys taken from crack2dx.c, rewritten with added support for Troopers, Empress and usablility +//...and for bugfixing -_- + +#include +#include +#include + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + + +int main(int argc, byte **argv) +{ + int i; + int style=2; + int mult; + byte *buf, *buf_dec, *enc; + byte *cur, *prev; + byte *cryptkey; + int *wavcount; + int *wavpos, *wavlen; + int len; + FILE *in, *out; + unsigned char n_out[10]; //wav name + + printf("oldac2newac_2dx by v0.1 ryuuou\n\treencrypts .2dx files from Troopers AC and before \n\tto .2dx compatible with Empress AC\n\n"); + + if(argc < 2) + { + printf("USAGE: oldac2newac_2dx \n"); + return 0; + } + + printf("\nprocessing %s...\n", argv[1]); + + in = fopen(argv[1], "rb"); + + if(!in) + { + printf("not found: %s\n", argv[1]); + return -1; + } + + fseek(in, 0, SEEK_END); + len = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(len); + + fread(buf, len, 1, in); + fclose(in); + + //identify iidx version + + printf("identifying encryption..."); + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + printf("9th style\n"); + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + printf("10th style\n"); + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + printf("RED\n"); + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + printf("Happy Sky/DistorteD/GOLD\n"); + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + printf("Troopers\n"); + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + printf("Empress, nothing to do\n"); + cryptkey = keys_16; //Empress + return 0; + } + else + { + printf("unknown encryption, trying unencrypted...\n"); + mult = 2; + } + + + //decrypt + + + + if(!(mult == 2)) //skip for unencrypted + { + buf_dec = malloc(len); + memcpy(buf_dec, buf, len); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = buf_dec + 8 + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + else + { + buf_dec = malloc(len); + memcpy(buf_dec, buf, len); //copy for splitting + } + + + //reencrypt to empress + + cryptkey = keys_16; + + for(i = 0; i <= len-16; i+= 8) + { + cur = buf_dec + i + 8; //cur points to the current decrypted block to encrypt + + block_xor(cur, cur-8); + block_xor(cur, cryptkey+16); + block_obfus(cur); + block_xor(cur, cryptkey+8); + block_swap(cur); + block_obfus(cur); + block_xor(cur, cryptkey); + } + + memcpy(buf_dec, "%iO0", 4); + + //*((int*)buf_dec+4) = len-8; + + out = fopen(argv[1], "wb"); + fwrite(buf_dec, len, 1, out); + fclose(out); + + printf("done\n"); + free(buf); + free(buf_dec); + return 0; +} diff --git a/iidx/bme2ac legacy/source/timebase_59.c b/iidx/bme2ac legacy/source/timebase_59.c new file mode 100644 index 0000000..28404f8 --- /dev/null +++ b/iidx/bme2ac legacy/source/timebase_59.c @@ -0,0 +1,103 @@ +//timebase_single.c by ryuuou +//changes the base fps value of .1 files like timebase.exe, but works on a bunch of single .1 files instead of folders +//this is mainly to assist with custom songs so that you don't have to timebase your whole folder again for single songs and deal with file versions + +#include +#include +#include +#include + +#define byte unsigned char + +#define CHARTCOUNT 7 +#define EVENTSIZE 8 +#define FPS_STANDARD_GOLD 60.05 +#define FPS_STANDARD_DD 59.95 + +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; + +int main(int argc, const char **argv) +{ + int i,j,k; + float basefps, targetfps; + FILE *in, *out; + byte *buf; + int *p; + int flength; + int pos, len; + + printf("timebase_single by ryuuou\n\tchanges the base fps of .1 files like timebase.exe,\n\tbut works on a batch of files instead of folders\n\n"); + if(argc < 2) + { + printf("usage: timebase_single ...\n\talternatively drop a bunch of .1 files on the executable\n"); + getchar(); + return 0; + } + + basefps = targetfps = 0; + + /*printf("please input the current fps (or 0 for 60.05 or 1 for 59.95): "); + scanf("%f", &basefps); + if(basefps == 0) + basefps = FPS_STANDARD_GOLD; + if(basefps == 1) + basefps = FPS_STANDARD_DD; + printf("please input the target fps: (or 0 for 60.05 or 1 for 59.95)"); + scanf("%f", &targetfps); + if(targetfps == 0) + targetfps = FPS_STANDARD_GOLD; + if(targetfps == 1) + targetfps = FPS_STANDARD_DD; + + + printf("converting from %.3f fps to %.3f fps\npress enter to continue or ctrl-c to cancel\nMAKE SURE YOU HAVE BACKUPS OF YOUR FILES!!\n", basefps, targetfps); + getchar();getchar();*/ + + for(i = 2; i <= argc; i++) + { + printf("processing %s...", argv[i-1]); + in = fopen(argv[i-1], "rb"); + if(!in) + { + printf("file not found\n"); + continue; + } + + fseek(in, 0, SEEK_END); + flength = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(flength); + + fread(buf, flength, 1, in); + fclose(in); + + for(j = 0; j < CHARTCOUNT; j++) + { + p = (int*)(buf+offsets[j]); + if(!*p) continue; //no chart here + + printf("%s...", CHARTNAMES[j]); + + pos = p[0]; + len = p[1]; + + for(k = pos; k < pos+len; k += EVENTSIZE) + { + p = (int*)(buf+k); + if(*p == 0x7FFFFFFF || *p == 0x7F000000) //end sequence event, we skip these + continue; + *p = (int)roundf((float)*p *1000. / FPS_STANDARD_DD); + } + } + + out = fopen(argv[i-1], "wb"); + fwrite(buf, flength, 1, out); + fclose(out); + + free(buf); + + printf("done\n"); + } +} diff --git a/iidx/bme2ac legacy/split2dx.c b/iidx/bme2ac legacy/split2dx.c new file mode 100644 index 0000000..88e3730 --- /dev/null +++ b/iidx/bme2ac legacy/split2dx.c @@ -0,0 +1,78 @@ +/* split2dx.c: Extract all WAVs from a .2DX file (sound archive) */ +#include +#include +#include + +int main(int argc, char **argv) +{ + static const char base36[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + char outname[64]; + FILE *out; + FILE *in; + void *bytes; + int nfiles; + int nbytes; + int *toc; + int i; + + /* Usage */ + if (argc != 3) { + fprintf(stderr, "Usage: %s [infile] [outdir]\n", argv[0]); + return EXIT_FAILURE; + } + + /* Open input */ + in = fopen(argv[1], "rb"); + if (!in) { + fprintf(stderr, "%s: Could not open file for reading\n", argv[1]); + return EXIT_FAILURE; + } + + /* Read TOC length */ + fseek(in, 0x14, SEEK_SET); + fread(&nfiles, 4, 1, in); + + /* Read TOC */ + toc = malloc(4 * nfiles); + fseek(in, 0x48, SEEK_SET); + fread(toc, 4, nfiles, in); + + /* Extract files */ + for (i = 0 ; i < nfiles ; i++) { + /* Name output file */ + sprintf(outname, "%s/%c%c.wav", argv[2], + base36[(i + 1) / 36], base36[(i + 1) % 36]); + + /* Open output file */ + out = fopen(outname, "wb"); + if (!out) { + fprintf(stderr, "%s: Could not open file for writing\n", outname); + free(toc); + + return EXIT_FAILURE; + } + + /* Put RIFF fourcc which we skipped */ + fwrite("RIFF", 4, 1, out); + + /* Get file length */ + fseek(in, toc[i] + 0x1C, SEEK_SET); + fread(&nbytes, 4, 1, in); + fwrite(&nbytes, 4, 1, out); + + /* Copy */ + bytes = malloc(nbytes); + fread(bytes, 1, nbytes, in); + fwrite(bytes, 1, nbytes, out); + + /* Clean up */ + fclose(out); + free(bytes); + } + + fclose(in); + free(toc); + + return EXIT_SUCCESS; +} + diff --git a/iidx/bme2ac legacy/txt2eout.c b/iidx/bme2ac legacy/txt2eout.c new file mode 100644 index 0000000..5fac2a7 --- /dev/null +++ b/iidx/bme2ac legacy/txt2eout.c @@ -0,0 +1,144 @@ + +#define byte unsigned char + +#include "stdio.h" +#include "string.h" + +typedef struct +{ + byte iidx[4]; + int version; + short int songcount; + short int indexcount; + int zero; +} eoutheader; + +typedef struct +{ + byte songname[64]; + byte labelname[32]; //filename + byte titlename[64]; //filename + byte genrename[32]; //filename + byte artistname[32]; //filename + + short int style; + short int sort_others; + short int sort_bemani; + short int sort_bemani2; + + byte diff_n7; + byte diff_h7; + byte diff_a7; + byte diff_n14; + byte diff_h14; + byte diff_a14; + byte diff_beg; + byte diff_zero; + + byte zeros[128]; + byte FF[20]; + + int index; + int volume; + + byte suffix[8]; + + int movieoffset; + byte moviefile[32]; + + byte bgname[32]; + byte graphicsfolder[32]; + + int layerinfo; + byte layerdata[9*32]; +} songinfo; + +int main(int *argc, char* argv[]) +{ + eoutheader header; + songinfo info; + FILE *in, *out; + int i; + int pc, id; + int myn; + byte asuffix[9]; + + in = fopen(argv[1], "rb"); + if(!in) + { + printf("file not found: %s", argv[1]); + return 0; + } + + out = fopen("txt_eout.dec", "wb"); + + memset(&header, 0, 16); + sprintf(header.iidx, "IIDX"); + header.version = 15; + + fwrite(&header, sizeof(eoutheader), 1, out); + + while(!feof(in)) + { + memset(&info, 0, sizeof(songinfo)); + memset(info.FF, 0xFF, 20); + memset(info.suffix, 0x30, 8); + + pc = fscanf(in, "%d\t%[a-zA-Z0-9*+<>/\()!? -]\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%[a-z.]\n",\ + &info.index, info.songname, \ + &info.diff_beg, &info.diff_n7, &info.diff_h7, &info.diff_a7, &info.diff_n14, &info.diff_h14, &info.diff_a14,\ + &info.style, &info.sort_others, &info.sort_bemani, &myn, &info.movieoffset, asuffix); + + if(pc != 15) + { + printf("parse error in line %d after token %d\n", header.songcount+1, pc); + break; + } + + id = info.index; + + sprintf(info.labelname, "L_%d", id); + sprintf(info.titlename, "T_%d", id); + sprintf(info.genrename, "G_%d", id); + sprintf(info.artistname, "A_%d", id); + sprintf(info.bgname, "B_%d", id); + + sprintf(info.graphicsfolder, "in_%02d", id/100); + + if(myn == 1) + sprintf(info.moviefile, "%d", id); + else if(!myn) + sprintf(info.moviefile, "0000"); + else + sprintf(info.moviefile, "%d", myn); + + for(i = 0; i < 8; i++) + if(asuffix[i] == '.') + asuffix[i] = '0'; + + memcpy(info.suffix, asuffix, 8); + + if(info.diff_h7 == 0) + info.diff_h7 = 1; + if(info.diff_h14 == 0) + info.diff_h14 = 1; + + info.sort_bemani2 = info.sort_bemani; //??? + + info.volume = 90; + + header.songcount++; + + fwrite(&info, sizeof(songinfo), 1, out); + } + + rewind(out); + fwrite(&header, sizeof(eoutheader), 1, out); + + fclose(in); + fclose(out); + + printf("%d songs in all\n", header.songcount); + + return 0; +} diff --git a/iidx/bme2ac legacy/unz.c b/iidx/bme2ac legacy/unz.c new file mode 100644 index 0000000..8f633f3 --- /dev/null +++ b/iidx/bme2ac legacy/unz.c @@ -0,0 +1,84 @@ +/** unz.c: Decompress miscellaneous stuff like .INZ and .XZ files */ +#include +#include + +typedef unsigned char u8_t; +typedef unsigned int u32_t; + +static void expand_lzss(FILE *in, FILE *out) +{ + static u8_t ring[0x1000]; + unsigned int ring_pos = 0x0FEE; + unsigned int chunk_offset; + unsigned int chunk_length; + unsigned int length; + u32_t control_word = 1; + u8_t cmd1; + u8_t cmd2; + u8_t byte; + + /* Read header (i.e. file length, ignore it) */ + fread(&length, 4, 1, in); + + while (!feof(in) && length > 0) { + if (control_word == 1) { + /* Read a control byte */ + control_word = 0x100 | getc(in); + } + + /* Decode a byte according to the current control byte bit */ + if (control_word & 1) { + /* Straight copy, store into history ring */ + byte = getc(in); + + putc(byte, out); + ring[ring_pos] = byte; + + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } else { + /* Reference to data in ring buffer */ + cmd1 = getc(in); + cmd2 = getc(in); + + chunk_length = (cmd2 & 0x0F) + 3; + chunk_offset = ((cmd2 & 0xF0) << 4) | cmd1; + + for ( ; chunk_length > 0 && length > 0 ; chunk_length--) { + /* Copy historical data to output AND current ring pos */ + putc(ring[chunk_offset], out); + ring[ring_pos] = ring[chunk_offset]; + + /* Update counters */ + chunk_offset = (chunk_offset + 1) % 0x1000; + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } + } + + /* Get next control bit */ + control_word >>= 1; + } +} + +int main(int argc, char **argv) +{ + FILE *in; + FILE *out; + + if (argc != 3) { + fprintf(stderr, "Usage: %s [infile] [outfile]\n", argv[0]); + return EXIT_FAILURE; + } + + in = fopen(argv[1], "rb"); + out = fopen(argv[2], "wb"); + + expand_lzss(in, out); + + fclose(in); + fclose(out); + + return EXIT_SUCCESS; +} + diff --git a/iidx/bme2ac workspace djt custom songs/1Multiplexer.exe b/iidx/bme2ac workspace djt custom songs/1Multiplexer.exe new file mode 100644 index 0000000..d530188 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/1Multiplexer.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/bme2ac0.7_src.zip b/iidx/bme2ac workspace djt custom songs/bme2ac0.7_src.zip new file mode 100644 index 0000000..6fa6ca9 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/bme2ac0.7_src.zip differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/DXWnd.rar b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/DXWnd.rar new file mode 100644 index 0000000..1c4d41f Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/DXWnd.rar differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/ImageMagick-6.4.4-10-Q16-windows-dll.exe b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/ImageMagick-6.4.4-10-Q16-windows-dll.exe new file mode 100644 index 0000000..0b4c890 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/ImageMagick-6.4.4-10-Q16-windows-dll.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac.exe b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac.exe new file mode 100644 index 0000000..89030c2 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac_src.zip b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac_src.zip new file mode 100644 index 0000000..1fdf90a Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/bme2ac_src.zip differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertogg.bat b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertogg.bat new file mode 100644 index 0000000..2db8f45 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertogg.bat @@ -0,0 +1,3 @@ +mkdir old +move *.ogg old +for %%s in (old\*.ogg) do sox "%%s" -S -a "%%~ns.wav" diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertwav.bat b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertwav.bat new file mode 100644 index 0000000..5c969d3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a "%%~ns%%~xs" diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample and mono convertwav.bat b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample and mono convertwav.bat new file mode 100644 index 0000000..4372824 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample and mono convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a -c 1 "%%~ns%%~xs" rate -v 21k diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample convertwav.bat b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample convertwav.bat new file mode 100644 index 0000000..628069b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/downsample convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a "%%~ns%%~xs" rate -v 21k diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/dummy.WAV b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/dummy.WAV new file mode 100644 index 0000000..d3ee2de Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/dummy.WAV differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/eoutEdit15.rar b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/eoutEdit15.rar new file mode 100644 index 0000000..7b3b6f2 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/eoutEdit15.rar differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/COMPCTAB.TTF b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/COMPCTAB.TTF new file mode 100644 index 0000000..37912ca Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/COMPCTAB.TTF differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM3.TTC b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM3.TTC new file mode 100644 index 0000000..9371211 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM3.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM4.TTC b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM4.TTC new file mode 100644 index 0000000..c079358 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM4.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM5.TTC b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM5.TTC new file mode 100644 index 0000000..407db48 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/DFPOM5.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/arial.ttf b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/arial.ttf new file mode 100644 index 0000000..ff0815c Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/arial.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/convert images to tga.txt b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/convert images to tga.txt new file mode 100644 index 0000000..7cf8281 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/convert images to tga.txt @@ -0,0 +1 @@ +mogrify -format tga -type TrueColorMatte *.png \ No newline at end of file diff --git a/iidx/packgcz_pop/cygwin1.dll b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/cygwin1.dll similarity index 100% rename from iidx/packgcz_pop/cygwin1.dll rename to iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/cygwin1.dll diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/generator.exe b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/generator.exe new file mode 100644 index 0000000..e209e6b Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/generator.exe differ diff --git a/iidx/packgcz_pop/packgcz.exe b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/packgcz.exe similarity index 100% rename from iidx/packgcz_pop/packgcz.exe rename to iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/packgcz.exe diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/resize L, A G.txt b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/resize L, A G.txt new file mode 100644 index 0000000..05a22b6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/resize L, A G.txt @@ -0,0 +1 @@ +mogrify -resize 33%x33% L_*.png A_*.png G_*.png \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/tahoma.ttf b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/tahoma.ttf new file mode 100644 index 0000000..f5a011e Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/graphic tools/tahoma.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/h14.bme b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/h14.bme new file mode 100644 index 0000000..3f8e2b8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/h14.bme @@ -0,0 +1,23 @@ + +*---------------------- HEADER FIELD + +#PLAYER 2 +#GENRE +#TITLE +#ARTIST +#BPM 573 +#PLAYLEVEL 1 +#RANK 3 +#STAGEFILE + + + + + + + + + +*---------------------- MAIN DATA FIELD + + diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/sox-14.1.0.zip b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/sox-14.1.0.zip new file mode 100644 index 0000000..df6d6bf Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/sox-14.1.0.zip differ diff --git a/iidx/bme2ac workspace djt custom songs/djt hacking stuff/xout.dec b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/xout.dec new file mode 100644 index 0000000..6658aac Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/djt hacking stuff/xout.dec differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/checkeout.exe b/iidx/bme2ac workspace djt custom songs/eout/checkeout.exe new file mode 100644 index 0000000..7260a17 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/checkeout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/crackeout.exe b/iidx/bme2ac workspace djt custom songs/eout/crackeout.exe new file mode 100644 index 0000000..d18aa75 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/crackeout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/createeout.exe b/iidx/bme2ac workspace djt custom songs/eout/createeout.exe new file mode 100644 index 0000000..9b26e94 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/createeout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/decrypt.exe b/iidx/bme2ac workspace djt custom songs/eout/decrypt.exe new file mode 100644 index 0000000..b74fcbc Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/decrypt.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/10.dec b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/10.dec new file mode 100644 index 0000000..1089873 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/10.dec differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/djt.dec b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/djt.dec new file mode 100644 index 0000000..58b837e Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/djt.dec differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/empress.dec b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/empress.dec new file mode 100644 index 0000000..776faff Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/empress.dec differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/gold.dec b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/gold.dec new file mode 100644 index 0000000..3c310cf Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/decrypted eouts/gold.dec differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/encrypt.exe b/iidx/bme2ac workspace djt custom songs/eout/encrypt.exe new file mode 100644 index 0000000..8fb4693 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/encrypt.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/eout.txt b/iidx/bme2ac workspace djt custom songs/eout/eout.txt new file mode 100644 index 0000000..d0d8b60 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/eout/eout.txt @@ -0,0 +1,337 @@ +102 PRINCE ON A STAR 0 4 5 6 5 8 10 0 0 0 0 0 111222.. 80 +111 LUV TO ME 0 5 6 7 4 8 11 0 0 0 0 0 ........ 80 +112 MELT IN MY ARMS 0 3 4 4 3 4 0 0 0 0 0 0 ........ 80 +116 SPECIAL ENERGY 0 3 3 5 9 9 7 0 0 0 0 0 ........ 80 +118 DIVING MONEY 0 2 2 3 5 5 0 0 0 0 0 0 ........ 80 +122 CELEBRATE 0 4 5 7 6 6 10 0 0 0 0 0 ........ 80 +126 G.M.D. 0 2 2 4 2 7 0 0 0 0 0 0 ........ 80 +130 PERFECT FREE 0 3 4 5 4 5 5 0 0 0 0 0 ........ 80 +131 SALAMANDER BEAT CRUSH MIX 0 2 3 3 2 3 0 0 0 0 0 0 ........ 80 +137 PATSENNER 0 3 4 0 5 6 0 0 0 0 0 0 ........ 80 +138 BE IN MY PARADISE 0 1 2 0 1 2 0 0 0 0 0 0 ........ 80 +139 BEEN SO LONG 0 0 3 0 0 3 4 0 0 0 0 0 ........ 80 +140 BEGINNING OF LIFE 0 1 2 3 1 2 0 0 0 0 0 0 ........ 80 +141 DEEP CLEAR EYES 0 0 4 4 0 6 5 0 0 0 0 0 ........ 80 +142 DO YOU LOVE ME? 0 0 3 0 0 5 0 0 0 0 0 0 ........ 80 +143 E-MOTION 0 1 2 3 1 2 5 0 0 0 0 0 ........ 80 +144 THE THEME FROM FLO-JACK 0 0 1 0 0 2 0 0 0 0 0 0 ........ 80 +145 INTO THE WORLD 0 0 3 0 0 3 0 0 0 0 0 0 ........ 80 +146 JAM JAM REGGAE 0 0 1 3 0 1 3 0 0 0 0 0 ........ 80 +147 LOVE SO GROOVY 0 0 4 0 0 4 0 0 0 0 0 0 ........ 80 +148 OVERDOSER 0 2 2 2 3 3 0 0 0 0 0 0 ........ 80 +149 QUEEN'S JAMAICA (ASTRIA MIX) 0 0 3 0 0 3 0 0 0 0 0 0 ........ 80 +150 SKA A GO GO 0 0 5 6 0 6 7 0 0 0 0 0 ........ 80 +151 THE RHYME BROKERS 0 0 4 5 0 5 6 0 0 0 0 0 ........ 80 +152 YOU MAKE ME 0 0 2 0 0 3 0 0 0 0 0 0 ........ 80 +153 NAHANAHA VS. GATTCHOON BATTLE 0 0 3 0 0 3 0 1 0 0 0 0 ........ 80 +154 PARANOIA MAX -DIRTY MIX- 0 3 4 4 3 5 8 1 0 0 0 0 ........ 80 +155 CHOTTO KIITE NA 0 0 3 0 0 3 0 1 1 0 0 0 ........ 80 +201 BAD BOY 0 2 3 0 2 4 0 2 0 0 0 0 111222.. 80 +204 DONG-TEPO NO.1 0 5 8 0 4 9 0 2 0 0 0 0 ........ 80 +207 I'M IN LOVE AGAIN 0 4 5 0 4 5 0 2 0 0 0 0 111222.. 80 +209 SOFT LANDING ON THE BODY 0 4 6 0 4 6 0 2 0 0 0 0 ........ 80 +211 HITCH HIKER 0 3 4 5 4 6 0 2 0 0 0 0 ........ 80 +213 SECOND STYLE 0 4 5 0 4 5 0 2 0 0 0 0 ........ 80 +214 SHINE ON 0 3 5 6 4 9 0 2 0 0 0 0 ........ 80 +215 BRAZILIAN RHYME 0 3 4 0 5 9 0 2 0 0 0 0 ........ 80 +217 GET ON BEAT 0 0 3 3 0 3 3 2 0 0 0 0 ........ 80 +218 JUNGLIST KING 0 0 3 0 0 3 0 2 0 0 0 0 ........ 80 +220 LET THE BEAT HIT EM! BASS MIX 0 0 2 0 0 2 0 2 0 0 0 0 ........ 80 +221 LOVIN' YOU 0 3 4 0 3 4 0 2 0 0 0 0 ........ 80 +224 PANORAMA 0 2 3 0 3 4 0 2 0 0 0 0 ........ 80 +225 S.O.S. 0 4 8 0 5 11 0 2 0 0 0 0 ........ 80 +227 CALCUTTA 0 4 5 7 5 8 0 2 1 0 0 0 ........ 80 +229 HEADACHE 0 2 4 0 2 3 0 2 0 0 0 0 ........ 80 +231 MIRRORBALL SATELITE 2012 0 0 3 3 0 3 0 2 0 0 0 0 ........ 80 +232 MORNING PRAYER 0 0 1 1 0 1 0 2 0 0 0 0 ........ 80 +234 SHAKE 0 0 2 2 0 2 2 2 0 0 0 0 ........ 80 +314 COLD PULSE 0 4 5 5 4 5 5 3 0 0 0 0 ........ 80 +315 GET ME IN YOUR SIGHT 0 5 5 0 5 5 0 3 0 0 0 0 ........ 80 +317 ARTIFICIAL IMPATIENCE 0 3 4 5 3 4 0 3 0 0 0 0 ........ 80 +318 DREAM 0 3 4 6 5 7 0 3 0 0 0 0 ........ 80 +319 FIVE FATHOMS 0 1 3 0 1 3 0 3 0 0 0 0 ........ 80 +320 GARDON OF LOVE 0 2 3 0 3 4 0 3 0 0 0 0 ........ 80 +321 LOVE OR TRUTH 0 2 2 0 1 2 0 3 0 0 0 0 ........ 80 +322 LET'S TALK IT OVER 0 3 5 6 4 6 0 3 0 0 0 0 ........ 80 +323 MAKE YOUR MOVE 0 3 4 6 3 5 7 3 0 0 0 0 ........ 80 +324 RIGHT NOW 0 3 4 4 3 4 5 3 0 0 0 0 ........ 80 +325 S.O.S. (THE TIGER TOOK MY FAMILY) 0 5 8 0 7 8 0 3 0 0 0 0 ........ 80 +327 TAKE ON ME 0 5 6 6 5 6 6 3 0 0 0 0 ........ 80 +328 BEAT MACHINE 0 4 5 0 4 6 0 3 0 0 0 0 ........ 80 +329 THE SAFARI 0 6 9 0 6 9 0 3 0 0 0 0 ........ 80 +330 SKIN 0 0 2 0 0 2 0 3 0 0 0 0 ........ 80 +331 ALMOST LOVE 0 0 4 0 0 4 0 3 0 0 0 0 ........ 80 +409 FANTASY 0 5 8 9 6 7 9 4 0 0 0 0 ........ 80 +410 FINAL COUNT DOWN (MTO CRY BABY STYLE) 0 5 8 9 4 7 7 4 0 0 0 0 ........ 80 +411 GET ON BEAT (WILD STYLE) 0 6 9 10 6 8 10 4 0 0 0 0 ........ 80 +413 JIVE INTO THE NIGHT 0 5 8 10 5 10 11 4 0 0 0 0 ........ 80 +418 NORTH 0 4 5 0 5 8 0 4 0 0 0 0 111222.. 80 +419 NIGHTING AIN'T STOPPIN' US 0 2 3 0 1 2 0 4 0 0 0 0 ........ 80 +424 I'M FOR REAL 0 3 4 4 3 4 0 4 0 0 0 0 ........ 80 +425 SWEET LAB 0 3 5 6 6 11 0 4 0 0 0 0 ........ 80 +426 DIAMOND JEALOUSY 0 5 6 0 4 6 0 4 0 0 0 0 ........ 80 +428 LUV TO ME 0 5 6 11 5 8 8 4 0 0 0 0 ........ 80 +431 CONGA 0 4 6 7 3 8 0 4 0 0 0 0 ........ 80 +432 GIRIGIRI DADDY 0 3 5 7 3 7 8 4 0 0 0 0 ........ 80 +433 INFINITE PRAYER 0 4 5 7 5 7 9 4 0 0 0 0 ........ 80 +434 NEW YORK CITY BOY 0 3 5 0 3 5 0 4 0 0 0 0 ........ 80 +435 R10K 0 5 6 7 4 6 8 4 0 0 0 0 ........ 80 +436 REST MY MIND 0 3 4 0 3 4 0 4 0 0 0 0 ........ 80 +437 SANA MOLLETTE NE ENTE 0 3 5 5 4 7 0 4 0 0 0 0 ........ 80 +438 SANCTUS 0 3 5 0 3 4 0 4 0 0 0 0 ........ 80 +439 SMALL WAVES 0 4 5 6 4 5 0 4 0 0 0 0 ........ 80 +440 TWIN BEE -GENERATION X- 0 4 5 6 4 5 7 4 0 0 0 0 ........ 80 +441 UNDER CONSTRUCTION 0 4 5 6 4 6 0 4 0 0 0 0 ........ 80 +442 FLOWERS FOR ALBION 0 1 5 0 5 7 0 4 0 0 0 0 ........ 80 +443 JAM AND MARMALADE 0 4 5 7 3 6 0 4 0 0 0 0 ........ 80 +444 GET ON BEAT (WILD STYLE) 0 5 8 9 5 7 9 4 0 0 0 0 ........ 80 +450 VIENNA 0 3 5 0 4 6 0 4 0 0 0 0 ........ 80 +501 COME WITH ME 0 4 5 6 4 8 0 5 0 0 0 0 ........ 80 +502 DEADLINE 0 4 5 7 3 8 10 5 0 0 0 0 ........ 80 +503 GIVE ME A SIGN 0 4 6 8 5 8 9 5 0 0 0 0 ........ 80 +513 REMEMBER YOU 0 2 4 0 2 4 0 5 0 0 0 0 ........ 80 +520 TABLETS 0 4 6 8 4 6 9 5 0 0 0 0 111222.. 80 +522 I-I-DE-ECKS 0 3 4 7 3 4 7 5 0 0 0 0 ........ 80 +526 VIRTUAL MIND 0 3 7 10 5 8 11 5 0 0 0 0 ........ 80 +528 ESTELLA 0 4 6 0 6 10 0 5 0 0 0 0 ........ 80 +530 FLASH OF LOVE 0 4 5 6 4 6 7 5 0 0 0 0 ........ 80 +533 TENGOKU NO KISS 0 3 5 7 4 6 7 5 1 0 0 0 ........ 80 +534 INSERTION 0 4 7 8 5 7 0 5 0 0 0 0 ........ 80 +506 MOBO*MOGA 0 5 6 7 4 5 9 5 0 0 0 0 ........ 80 +508 OVER THE CLOUDS 0 3 5 7 3 5 9 5 0 0 0 0 ........ 80 +540 THE BIG VOYAGER 0 5 8 8 6 9 0 5 0 0 0 0 12312... 80 +538 1989 0 4 6 0 5 7 0 5 1 0 0 0 ........ 80 +539 THE SHINING POLARIS 0 4 5 6 4 7 0 5 0 0 0 0 122122.. 80 +600 20.NOVEMBER 0 4 8 8 6 10 9 6 1 0 0 0 ........ 80 +602 BEAUTIFUL DAYS 0 4 5 7 4 5 0 6 0 0 0 0 ........ 80 +606 COMMENT TE DIRE ADIEU 0 4 5 7 5 7 0 6 0 0 0 0 ........ 80 +608 A NEW MORNING 0 4 5 6 4 8 0 6 0 0 0 0 ........ 80 +609 FLY AWAY (INSTRUMENTAL) 0 4 6 8 5 9 11 6 0 0 0 0 ........ 80 +614 L'AMOUR ET LA LIBERTE 0 5 8 0 5 8 0 6 0 0 0 0 ........ 80 +617 ROMEO AND JULIET 0 4 6 10 4 6 10 6 0 0 0 0 ........ 80 +620 SILHOETTE OF MY MIND 0 3 4 0 3 4 0 6 0 0 0 0 ........ 80 +624 WOW WOW 70'S 0 4 5 6 5 7 0 6 0 0 0 0 ........ 80 +625 Y31 0 6 8 9 5 8 11 6 0 0 0 0 ........ 80 +626 YESTERDAY 0 4 6 8 5 6 8 6 0 0 0 0 ........ 80 +631 DOIGTS DE FATIMA 0 2 3 4 2 3 4 6 0 0 0 0 ........ 80 +632 FLOWTATION (ORIGINAL MIX) 0 5 7 8 5 8 9 6 0 0 0 0 ........ 80 +633 JUST DO IT 0 4 6 8 4 7 0 6 0 0 0 0 ........ 80 +634 LOVE IS DREAMINESS 0 5 6 0 7 8 0 6 0 0 0 0 ........ 80 +635 M-02STP.VER.1.01 0 4 6 8 4 7 10 6 0 0 0 0 ........ 80 +636 NIGHT OF FIRE 0 4 7 10 5 7 10 6 0 0 0 0 ........ 80 +637 PARAPARA PARADISE 0 5 9 9 5 9 0 6 0 0 0 0 ........ 80 +638 REAL LOVE 0 5 6 7 4 7 0 6 0 0 0 0 ........ 80 +639 SOMETHING WONDERFUL 0 4 7 0 6 11 0 6 0 0 0 0 12.34... 80 +700 2002 0 4 5 7 4 5 0 7 1 0 0 0 ........ 80 +701 9 O'CLOCKS 0 4 7 8 5 7 0 7 1 0 0 0 ........ 80 +707 BURNING UP FOR YOU 0 2 4 6 4 5 6 7 0 0 0 0 ........ 80 +712 E.V CAFE 0 4 5 8 4 5 0 7 0 0 0 0 ........ 80 +713 ENTRANCE 0 4 7 8 5 8 0 7 0 0 0 0 ........ 80 +715 GENERAL RELATIVITY 0 3 5 6 6 7 8 7 0 0 0 0 ........ 80 +719 HEARTBEAT 0 5 8 9 4 8 0 7 0 0 0 0 ........ 80 +723 LOVE GENERATION 0 5 8 10 5 8 0 7 0 0 0 0 ........ 80 +727 NEW YORK 0 3 4 7 4 5 7 7 0 0 0 0 ........ 80 +728 REMEMBER ME 0 5 9 0 4 8 0 7 0 0 0 0 ........ 80 +729 SECRET TALE 0 3 5 7 4 5 0 7 0 0 0 0 ........ 80 +730 SOLID GOLD 0 5 6 7 5 6 8 7 0 0 0 0 ........ 80 +731 SOMEBODY LIKE YOU 0 5 7 9 5 6 8 7 0 0 0 0 ........ 80 +735 THE BEAUTY OF SILENCE 0 5 6 7 4 6 0 7 0 0 0 0 ........ 80 +740 MORE DEEP (VER.2.1) 0 4 6 7 6 3 0 7 0 0 0 0 ........ 80 +741 NEVER LOOK BACK 0 5 8 0 6 7 0 7 0 0 0 0 ........ 80 +742 THE SOUND OF GOODBYE 0 4 8 10 4 7 0 7 0 0 0 0 ........ 80 +815 FOUNDATION OF OUR LOVE 0 2 6 7 2 9 10 8 0 0 0 0 ........ 80 +816 FUNKY BINGO PARADISE 0 5 6 8 5 6 8 8 0 0 0 0 ........ 80 +819 HORMIGA OBRERA 0 5 7 8 6 8 9 8 0 0 0 0 ........ 80 +820 HYPER BOUNDARY GATE 0 3 8 0 6 9 0 8 0 0 0 0 ........ 80 +821 I.C.F.5800 0 4 7 8 5 6 10 8 0 0 0 0 ........ 80 +822 JELLY KISS 0 4 5 0 5 8 0 8 0 0 0 0 ........ 80 +825 LUV 2 FEEL YOUR BODY 0 4 5 9 6 9 0 8 0 0 0 0 ........ 80 +833 RED NIKITA 0 4 8 9 3 8 10 8 0 0 0 0 ........ 80 +834 SMALL CLONE 0 3 6 8 5 7 0 8 0 0 0 0 ........ 80 +835 SMOKE 0 4 8 10 4 8 0 8 0 0 0 0 ........ 80 +836 SPEED TRANCE MACH 3 0 3 7 8 5 7 8 8 0 0 0 0 ........ 80 +837 STAR DREAM 0 4 7 9 6 8 0 8 0 0 0 0 ........ 80 +838 STICK AROUND 0 2 3 4 3 5 0 8 0 0 0 0 ........ 80 +841 TRIBAL MASTER 0 4 6 8 5 6 7 8 0 0 0 0 ........ 80 +842 V35 0 4 6 8 5 6 10 8 0 0 0 0 ........ 80 +903 FUN 0 4 7 10 4 7 0 9 0 0 0 0 ........ 80 +909 LOVE IS DROWNING 0 3 7 8 4 7 8 9 0 0 0 0 ........ 80 +913 THE END OF MY SPIRITUALLY 0 4 6 7 5 6 8 9 0 0 0 0 ........ 80 +916 MANATSU NO HANA MANATSU NO YUME 0 4 6 0 5 8 0 9 1 0 0 0 ........ 80 +917 THE BIGGEST ROASTER 0 3 6 7 4 6 0 9 0 0 0 0 ........ 80 +919 YOUR BODY 0 5 6 9 5 7 0 9 0 0 0 0 ........ 80 +920 HONEY 0 4 5 0 6 8 0 9 0 0 0 0 ........ 80 +922 LOGIC BOARD 0 5 8 11 6 8 12 9 0 0 0 0 ........ 80 +923 TWO DAYS OF LOVE 0 5 7 8 5 8 10 9 0 0 0 0 ........ 80 +925 I CAN FLY I'VE GOT REASON 0 3 7 9 4 7 10 9 0 0 0 0 ........ 80 +931 SWITCH 0 4 6 10 6 9 9 9 0 0 0 0 ........ 80 +933 SWEETEST SAVAGE 0 4 7 8 6 7 8 9 0 0 0 0 ........ 80 +935 WANNA TELL THAT WORD 0 5 8 9 5 7 10 9 0 0 0 0 ........ 80 +936 ATOMIC AGE 0 2 8 9 1 8 0 9 0 0 0 0 ........ 80 +940 LET'S SAY HELLO! 0 3 6 7 4 7 9 9 0 0 0 0 ........ 80 +941 CHARLOTTE 0 3 4 7 3 5 10 9 0 0 0 0 ........ 80 +943 PARANOIA SURVIVOR MAX 0 5 8 9 5 7 0 9 0 0 0 0 ........ 80 +946 BAG 0 5 6 0 6 9 0 9 0 0 0 0 ........ 80 +947 FESTA DO SOL 0 3 6 8 3 6 0 9 0 0 0 0 ........ 80 +949 U GOTTA GROOVE 0 3 6 8 2 6 10 9 0 0 0 0 ........ 80 +950 TRACES -TRACING YOU MIX- 0 4 6 0 6 9 0 9 0 0 0 0 ........ 80 +953 I'M IN LOVE AGAIN 0 3 6 9 4 6 0 9 0 0 0 0 ........ 80 +956 OVER THE CLOUDS 0 4 5 0 4 5 0 9 0 0 0 0 ........ 80 +1003 JAM 0 5 7 9 6 10 12 10 0 0 0 0 ........ 80 +1007 DONNA TOKI MO 0 3 6 9 3 8 0 10 1 0 0 0 ........ 80 +1008 PLATONIC-XXX 0 4 6 8 5 8 10 10 0 0 0 0 ........ 80 +1011 ICHIZU NA KOI 0 4 6 8 5 8 10 10 1 0 0 0 ........ 80 +1015 CHOO CHOO TRAIN (DNB MIX) 0 3 8 9 4 8 10 10 0 0 0 0 ........ 80 +1021 SCHERZO 0 3 8 9 3 8 0 10 0 0 0 0 ........ 80 +1026 THINK OF ME 0 2 5 7 3 5 7 10 0 0 0 0 ........ 80 +1031 SCORE 0 6 7 10 5 6 9 10 0 0 0 0 ........ 80 +1032 SHAKIN' 31 0 5 7 8 6 7 9 10 0 0 0 0 ........ 80 +1039 NO DOUBT GET LOUD 0 2 6 8 4 5 7 10 0 0 0 0 ........ 80 +1043 LET'S RUN 0 3 5 8 2 4 8 10 0 0 0 0 ........ 80 +1045 COSMIC RAISE 0 3 6 10 3 6 0 10 0 0 0 0 ........ 80 +1050 R2 0 5 7 9 5 8 10 10 0 0 0 0 ........ 80 +1051 5.8.8. 0 2 4 5 1 4 5 10 1 0 0 0 ........ 80 +1054 A-JAX (3-WAY MIX) 0 4 8 10 4 8 10 10 0 0 0 0 ........ 80 +1106 CAR OF YOUR DREAMS 0 5 6 7 4 6 0 11 0 0 0 0 ........ 80 +1117 MOVE ME 0 4 6 8 4 6 0 11 0 0 0 0 ........ 80 +1120 ON THE TUBE 0 5 8 9 4 9 0 11 0 0 0 0 ........ 80 +1121 BELIEVE...? 0 4 6 8 3 6 0 11 0 0 0 0 ........ 80 +1122 KING OF GROOVE 0 4 7 9 4 7 11 11 0 0 0 0 ........ 80 +1123 EVO66 0 4 7 9 4 7 11 11 0 0 0 0 ........ 80 +1124 ROK DA WORLD 0 4 6 8 3 6 0 11 0 0 0 0 ........ 80 +1129 BACK TO THE DANCE FLOOR 0 4 5 9 3 5 0 11 0 0 0 0 ........ 80 +1139 KECAK 0 5 7 11 4 7 0 11 0 0 0 0 ........ 80 +1141 WAKU 0 3 5 6 3 4 6 11 1 0 0 0 ........ 80 +1142 LISTEN TO YOURSELF 0 5 7 10 5 9 0 11 0 0 0 0 ........ 80 +1144 NIGHT FLY TO TOKYO 0 5 8 9 5 9 0 11 0 0 0 0 ........ 80 +1145 HARMONY 0 4 6 7 4 6 0 11 0 0 0 0 ........ 80 +1146 PERFECTWORLD 0 2 5 7 3 5 0 11 0 0 0 0 ........ 80 +1147 KI SE KI (IIDX RED EDIT) 0 4 7 8 3 7 9 11 0 0 0 0 ........ 80 +1148 TELL ME MORE... 0 3 5 8 3 6 10 11 0 0 0 0 ........ 80 +1149 MORE MOVE 0 5 7 8 5 8 8 11 0 0 0 0 ........ 80 +1214 UNDER THE SKY 0 5 7 9 4 7 9 12 0 0 0 0 ........ 80 +1224 TANT PIS POUR TOI 0 5 8 9 4 9 0 12 0 0 0 0 ........ 80 +1232 SEXYSEXYCHEVY 0 5 6 8 4 7 9 12 0 0 0 0 ........ 80 +1233 FUNKTION 0 5 7 9 4 7 9 12 0 0 0 0 ........ 80 +1235 LISTEN UP 0 4 7 9 5 8 10 12 0 0 0 0 ........ 80 +1246 MIND THE GAP 0 4 7 9 4 8 0 12 0 0 0 0 ........ 80 +1247 TOE JAM 0 4 8 8 4 8 0 12 0 0 0 0 ........ 80 +1248 PATRIOTISM 0 4 7 9 3 7 0 12 0 0 0 0 ........ 80 +1251 PINK ROSE 0 3 5 6 3 5 0 12 0 0 0 0 ........ 80 +1304 SAMBA DE JANEIRO 0 5 9 10 5 9 0 13 0 0 0 0 ........ 80 +1307 SPRING RAIN (LLUVIA DE PRIMAVERA) 0 4 7 8 5 7 9 13 0 0 0 0 ........ 80 +1316 BREAK OUT 0 4 7 9 4 7 0 13 0 0 0 0 ........ 80 +1320 LOOK TO THE SKY (CYBER TRUE COLOR) 0 5 8 9 5 9 0 13 0 0 0 0 ........ 80 +1342 TIGER YAMATO 0 4 7 9 4 8 10 13 0 0 0 0 ........ 80 +1454 HONEY PUNCH 0 4 7 9 4 7 10 14 0 0 0 0 ........ 80 +1457 RED ROCKET RISING 0 5 7 10 6 9 0 14 0 0 0 0 ........ 80 +1537 I'M IN LOVE AGAIN 0 6 8 10 6 9 0 15 0 0 0 0 ........ 80 +1542 SHONANZOKU 0 4 5 8 4 6 9 15 1 0 0 0 ........ 80 +449 ERASERMOTOR MAXIMUM 0 5 7 12 5 3 12 4 0 1 0 0 ........ 100 +445 GOBBLE 0 3 5 0 6 12 0 4 0 1 0 0 ........ 100 +446 INFINITE PRAYER 0 3 4 5 5 6 0 4 0 1 0 0 ........ 100 +447 SANA MOLETTE NE ENTE 0 3 5 0 7 8 0 4 0 1 0 0 ........ 100 +448 TRANCEMISSION 0 3 5 0 4 6 0 4 0 1 0 0 ........ 100 +534 C-R-A-C-K-ER 0 3 5 7 5 7 0 5 0 1 0 0 ........ 100 +535 DENGUE 0 3 4 5 4 6 0 5 0 1 0 0 ........ 100 +536 DUNE 0 4 5 6 6 7 0 5 0 1 0 0 ..a..a.. 100 +537 PRAT FALL 0 4 5 6 5 7 0 5 0 1 0 0 ........ 100 +640 CHANGES 0 2 4 0 2 5 0 6 0 1 0 0 ........ 100 +851 EVERYDAY LOVELY DAY 0 5 7 8 5 7 0 8 0 1 0 0 ........ 100 +852 LOVE BOX 0 2 5 7 3 5 8 8 0 1 0 0 ........ 100 +853 STEP INTO THE NEW WORLD 0 6 9 10 6 8 9 8 0 1 0 0 ........ 100 +854 SUGGESTION 0 3 6 8 5 7 8 8 0 1 0 0 ..a..a.. 100 +961 5PM ETERNAL 0 5 9 10 6 9 10 9 1 1 0 0 ........ 100 +962 80'S CAPSULE 0 3 5 9 3 5 0 9 1 1 0 0 ........ 100 +963 BEYOND THE EARTH 0 5 10 11 6 8 0 9 0 1 0 0 ........ 100 +964 SAKURETSU! JAEGER DENKOU CHOP!! 0 5 9 10 7 10 12 9 1 1 0 0 ........ 100 +965 PARAMNESIA 0 4 6 9 6 7 11 9 0 1 0 0 ........ 100 +966 USUAL DAYS -REMIX- 0 4 8 11 4 9 12 9 0 1 0 0 ........ 100 +1056 ACID VISION 0 6 8 9 5 8 10 10 0 1 0 0 ........ 100 +1057 HYPE THE CORE 0 4 9 11 5 9 12 10 0 1 0 0 ........ 100 +1058 IXION 0 5 8 9 5 8 11 10 0 1 0 0 ........ 100 +1059 JELLY KISS 0 4 7 10 4 6 12 10 0 1 0 0 ........ 100 +1060 STRONG WOMAN FEAT. DABO 0 4 6 9 4 5 9 10 0 1 0 0 ........ 100 +1061 TAITO NO SUIKA 0 2 4 10 2 5 11 10 1 1 0 0 ........ 100 +1154 GO BERZERK 0 5 10 11 5 10 12 11 0 1 0 0 ........ 100 +1155 SUIJOU NO TEITOKU 0 4 8 10 3 9 11 11 1 1 0 0 ........ 100 +1156 TOXIC 0 2 3 7 2 4 7 11 0 1 0 0 ........ 100 +1157 YOU REALLY GOT ME 0 1 2 7 2 4 8 11 0 1 0 0 ........ 100 +1256 BLUE MIRAGE 0 5 10 12 5 9 11 12 0 1 0 0 ........ 100 +1257 DAWN -THE NEXT ENDEAVOUR- 0 7 9 11 7 9 10 12 0 1 0 0 ........ 100 +1258 ENDLESS SUMMER STORY 0 2 6 8 2 6 8 12 0 1 0 0 ........ 100 +1259 ICE CUBE PF. (RX-VER.S.P.L.) 0 2 5 7 4 8 0 12 0 1 0 0 ........ 100 +1260 KAZE NO TANI NO DREAM 0 4 7 9 4 6 10 12 1 1 0 0 ........ 100 +1261 RECOLLECTION 0 4 6 10 5 7 10 12 0 1 0 0 ........ 100 +1262 REFLECTION INTO THE EDEN 0 4 6 10 5 7 10 12 0 1 0 0 ........ 100 +1263 SAYONARA HEAVEN 0 4 6 8 6 7 8 12 1 1 0 0 ........ 100 +1357 321 STARS 0 5 8 10 4 6 9 13 1 1 0 0 ........ 100 +1358 ATTACK THE MUSIC 0 1 5 6 4 7 6 13 0 1 0 0 11a22a.. 100 +1359 BLEEDING LUV -IMMORALITY ACT- 0 6 8 11 6 9 11 13 0 1 0 0 ........ 100 +1360 BREATHLESS 0 4 7 9 4 8 0 13 0 1 0 0 ........ 100 +1361 CALDERA 0 7 10 11 6 9 11 13 0 1 0 0 ........ 100 +1362 DRUNK MONKY 0 7 10 12 6 9 11 13 0 1 0 0 ........ 100 +1363 HYBRID LANDSCAPE 0 4 8 9 4 8 0 13 0 1 0 0 ........ 100 +1364 INFINITE CAVE 0 6 9 10 7 10 12 13 0 1 0 0 ........ 100 +1365 LIGHT MOTION 0 5 6 8 3 5 7 13 0 1 0 0 ........ 100 +1366 QUANTUM TELEPORTATION 0 6 10 11 6 10 12 13 0 1 0 0 ........ 100 +1367 SHOOT'EM ALL 0 4 7 11 4 7 11 13 0 1 0 0 ........ 100 +1368 SOLID STATE SQUAD 0 5 10 12 5 11 12 13 0 1 0 0 ........ 100 +1369 SUPER HIGHWAY 0 4 7 8 4 8 8 13 0 1 0 0 222112.. 100 +1370 VANISHING POINT 0 4 8 10 4 8 10 13 0 1 0 0 ........ 100 +1371 WATER CUBE PF.(RX-VER.S.P.L.) 0 3 7 10 3 7 10 13 0 1 0 0 ........ 100 +1372 ERASERMOTORPHANTOM 0 7 10 12 7 10 12 13 0 1 0 0 ........ 100 +1562 AROUND THE GALAXY 0 4 7 10 6 9 10 15 0 1 0 0 ........ 100 +1563 BATTLE TRAIN -IIDX EDITION- 0 4 9 11 5 9 11 15 0 1 0 0 ........ 100 +1564 BEAUTIFUL ANGEL 0 4 8 10 5 8 10 15 0 1 0 0 ........ 100 +1461 BEGINNING OF LIFE (THE GROUND PULSE MIX) 0 5 8 11 8 10 12 14 0 1 0 0 ........ 100 +1565 BIOMETRICS WARRIOR 0 5 10 12 5 10 12 15 0 1 0 0 ........ 100 +1566 BRAINSTORM 0 4 9 11 5 10 12 15 0 1 0 0 ........ 100 +1462 CHAIN OF PAIN 0 4 8 10 7 9 11 14 0 1 0 0 ........ 100 +1567 CLAIMH SOLAIS 0 2 6 9 2 8 10 15 0 1 0 0 ........ 100 +1568 COOKIE BOUQUETS 0 5 9 11 7 10 11 15 0 1 0 0 ........ 100 +1569 CRYMSON 0 5 6 9 5 6 9 15 0 1 0 0 ........ 100 +1463 DENIM 0 4 8 10 4 10 11 14 0 1 0 0 ........ 100 +1464 ELECTRIFIED 0 4 8 10 5 9 11 14 0 1 0 0 ........ 100 +1465 FEELING OF LOVE 0 2 6 9 4 5 8 14 0 1 0 0 ........ 100 +1570 FFFFF 0 4 10 12 5 10 12 15 0 1 0 0 ........ 100 +1466 GOLDEN CROSS 0 4 9 12 6 8 12 14 0 1 0 0 ........ 100 +1467 GUILT AND LOVE 0 6 9 10 5 7 10 14 0 1 0 0 ........ 100 +1571 GUILTY 0 5 8 10 5 9 11 15 0 1 0 0 ........ 100 +1572 HELL SCAPER 0 5 8 11 6 9 11 15 0 1 0 0 ........ 100 +1573 IMPLANTATION 0 5 10 12 5 9 11 15 0 1 0 0 ........ 100 +1468 MNEMONIQ 0 3 5 8 4 6 8 14 0 1 0 0 ........ 100 +1469 PENTACUBE GT.(RX-VER.S.P.L.) 0 4 7 9 6 7 9 14 0 1 0 0 ........ 100 +1470 PLAYBALL 0 4 5 7 4 7 9 14 0 1 0 0 ........ 100 +1575 PLUTO 0 8 11 12 8 11 12 15 0 1 0 0 ........ 100 +1576 QUICK MASTER (REFORM VERSION) 0 1 3 4 1 5 6 15 0 1 0 0 ........ 100 +1577 REPLAY 0 4 8 10 6 9 11 15 0 1 0 0 ........ 100 +1578 SATURN 0 7 10 11 6 9 11 15 0 1 0 0 ........ 100 +1471 SEQUENCE CAT 0 5 10 11 6 10 12 14 0 1 0 0 ........ 100 +1472 SHOX 0 5 8 10 7 9 11 14 0 1 0 0 ........ 100 +1579 SIDECHAINED THREATS 0 5 8 10 8 9 10 15 0 1 0 0 ........ 100 +1580 SYMPTOM 0 4 9 11 6 10 12 15 0 1 0 0 ........ 100 +1473 THE DETONATOR 0 6 10 11 7 9 10 14 0 1 0 0 ........ 100 +1581 THE LAST STRIKER 0 6 8 11 6 8 10 15 0 1 0 0 ........ 100 +1474 THE LEAST 100 SEC 0 5 9 12 5 9 12 14 0 1 0 0 ........ 100 +1475 THE STORY BEGINS 0 4 8 10 6 9 11 14 0 1 0 0 ........ 100 +1476 TREASURE X STAR 0 4 9 10 7 9 10 14 0 1 0 0 ........ 100 +1477 TURNING THE MOTOR OVER 0 3 5 6 3 5 6 14 0 1 0 0 ........ 100 +1582 VOX UP 0 8 11 12 8 10 12 15 0 1 0 0 ........ 100 +1478 WELCOME 0 4 10 11 6 8 11 14 0 1 0 0 ........ 100 +1583 WHAT'S NEXT? 0 5 9 10 4 9 10 15 0 1 0 0 ........ 100 +1574 KODOMO NO RAKUGAKICHOU 0 6 10 12 7 10 12 15 1 1 0 0 ........ 100 +1654 ELECTRORGASM 0 5 9 10 6 9 11 16 0 1 0 0 ........ 100 +1655 FLAG OF PEACE 0 5 8 11 5 9 11 16 0 1 0 0 ........ 100 +1656 FROM TIME TO TIME 0 4 9 10 4 10 11 16 0 1 0 0 ........ 100 +1657 GYMNOPEDIE 009 0 5 8 10 5 8 10 16 0 1 0 0 ........ 100 +1658 RIZING YOU UP 0 6 9 10 7 10 12 16 0 1 0 0 ........ 100 +1659 SUNSHINE HERO 0 2 7 9 1 7 10 16 0 1 0 0 ........ 100 +1660 TAMAYURA 0 6 9 12 6 10 12 16 1 1 0 0 ........ 100 +1661 TIME TO EMPRESS 0 4 8 10 5 9 11 16 0 1 0 0 ........ 100 +1662 TORI-NO-KIMOCHI 0 1 6 10 2 7 11 16 0 1 0 0 ........ 100 +1663 TOYCUBE PF. 0 4 7 9 7 8 11 16 0 1 0 0 ........ 100 +1664 TROPOSPHERE 0 5 8 10 6 9 11 16 0 1 0 0 ........ 100 +1665 UNICORN TAIL 0 4 8 11 4 9 12 16 0 1 0 0 ........ 100 +1666 BACK INTO THE LIGHT 0 4 9 10 5 9 11 16 0 1 0 0 ........ 100 +1667 ERASER ENGINE DISTORTED 0 5 10 11 6 10 12 16 0 1 0 0 ........ 100 diff --git a/iidx/bme2ac workspace djt custom songs/eout/eout.xls b/iidx/bme2ac workspace djt custom songs/eout/eout.xls new file mode 100644 index 0000000..71df8ce Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/eout.xls differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/formateout.exe b/iidx/bme2ac workspace djt custom songs/eout/formateout.exe new file mode 100644 index 0000000..d481841 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/formateout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.c b/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.c new file mode 100644 index 0000000..b28f06e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.c @@ -0,0 +1,279 @@ +#define byte unsigned char + +#include +#include +#include +#include "crypt.h" + +typedef struct +{ + byte iidx[4]; + int version; + short int songcount; + short int indexcount; + int zero; +} eoutheader; + +typedef struct +{ + byte songname[64]; + byte labelname[32]; //filename + byte titlename[64]; //filename + byte genrename[32]; //filename + byte artistname[32]; //filename + + short int style; + short int sort_others; + short int sort_bemani; + short int sort_bemani2; + + byte diff_n7; + byte diff_h7; + byte diff_a7; + byte diff_n14; + byte diff_h14; + byte diff_a14; + byte diff_beg; + byte diff_ex; + + byte zeros[128]; + byte FF[20]; + + int index; + int volume; + + char suffix[8]; + + int movieoffset; //used as temp var here + byte moviefile[32]; + + byte bgname[32]; + byte graphicsfolder[32]; + + int layerinfo; + byte layerdata[9*32]; +} songinfo; + +typedef struct +{ + int offh7; + int lenh7; + int offn7; + int lenn7; + int offa7; + int lena7; + int offb; + int lenb; + int offex1; + int lenex1; + int offex2; + int lenex2; + int offh14; + int lenh14; + int offn14; + int lenn14; + int offa14; + int lena14; +} oneheader; + +eoutheader ehead; +songinfo cursong; +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +#define PRINTW(a,b) if(warn) {printf("__: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} +#define PRINTA(a,b) if(warn) {printf("**: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} +#define PRINTE(a,b) if(err) {printf("!!: %d (%s) - ", cursong.index, cursong.songname);printf(a,b);} + +int main(int argc, char* argv[]) +{ + FILE *eout, *one, *tdx, *movie; + char file[60]; + char onepart[2], prev, *diff; + oneheader onehead; + int warn, err; + int k, i, l, songcount; + int tdxlen; + byte *enc, *dec; + short int fmt; + int pos, wavcount, wavlen; + + if(argc < 2) + { + printf("checkeout \n\tlevel: v = errors only\n\tvv = warnings only\n\t(default) = errors and warnings"); + return 0; + } + + warn = err = 1; + + if(argc > 2) + { + if(!strcmp(argv[2], "vv")) + err = 0; + else if(!strcmp(argv[2], "v")) + warn = 0; + } + + //warn=err=0; + eout = fopen(argv[1], "rb"); + + if(!eout) + { + printf("could not find %s, aborting\n", argv[1]); + return 0; + } + + fread(&ehead, sizeof(eoutheader), 1, eout); + + if(strncmp(ehead.iidx, "IIDX", 4)) + { + printf("%s is not a decrypted eout.bin file, aborting\n", argv[1]); + return -1; + } + + fseek(eout, sizeof(eoutheader) + ehead.indexcount*2, SEEK_SET); + + songcount = 0; + + //while(!feof(eout)) + for(k = 0; k < ehead.songcount; k++) + { + fread(&cursong, sizeof(songinfo), 1, eout); + songcount++; + //printf("ID: %d\tNAME: %s || %d\n", cursong.index, cursong.songname, cursong.style); + + //check for movie file + sprintf(file, "movie/%s.4", cursong.moviefile); + if(!(movie = fopen(file, "rb"))) + {PRINTW("moviefile not found: %s\n", file)} + else + fclose(movie); + + //check mendatory difficulties + if(!cursong.diff_h7) + {PRINTE("song has no hyper7 chart\n", NULL)} + + if(!cursong.diff_h14) + {PRINTE("song has no hyper14 chart\n", NULL)} + + //check .1 files + sprintf(file, "sd_data/%04d/%04d.1", cursong.index, cursong.index); + printf("checking %s (%d)...\n", file, k); + if(!(one = fopen(file, "rb"))) + {PRINTE(".1 file not found: %s\n", file)} + else + { + //check if difficulties are availible + fread(&onehead, sizeof(onehead), 1, one); + fclose(one); + + if(cursong.diff_n7 && !onehead.offn7) + PRINTE("referenced n7 (%d) chart not found in .1 file\n", cursong.diff_n7) + if(cursong.diff_h7 && !onehead.offh7) + PRINTE("referenced h7 (%d) chart not found in .1 file\n", cursong.diff_h7) + if(cursong.diff_a7 && !onehead.offa7) + PRINTE("referenced a7 (%d) chart not found in .1 file\n", cursong.diff_a7) + if(cursong.diff_n14 && !onehead.offn14) + PRINTE("referenced n14 (%d) chart not found in .1 file\n", cursong.diff_n14) + if(cursong.diff_h14 && !onehead.offh14) + PRINTE("referenced h14 (%d) chart not found in .1 file\n", cursong.diff_h14) + if(cursong.diff_a14 && !onehead.offa14) + PRINTE("referenced a14 (%d) chart not found in .1 file\n", cursong.diff_a14) + if(cursong.diff_beg && !onehead.offb) + PRINTE("referenced beg (%d) chart not found in .1 file\n", cursong.diff_beg) + if(cursong.diff_ex && !onehead.offex1) + PRINTE("referenced ex (%d) chart not found in .1 file\n", cursong.diff_ex) + + if(!cursong.diff_n7 && onehead.offn7) + PRINTW("unreferenced n7 chart in .1 file\n", NULL) + if(!cursong.diff_h7 && onehead.offh7) + PRINTW("unreferenced h7 chart in .1 file\n", NULL) + if(!cursong.diff_a7 && onehead.offa7) + PRINTW("unreferenced a7 chart in .1 file\n", NULL) + if(!cursong.diff_n14 && onehead.offn14) + PRINTW("unreferenced n14 chart in .1 file\n", NULL) + if(!cursong.diff_h14 && onehead.offh14) + PRINTW("unreferenced h14 chart in .1 file\n", NULL) + if(!cursong.diff_a14 && onehead.offa14) + PRINTW("unreferenced a14 chart in .1 file\n", NULL) + if(!cursong.diff_beg && onehead.offb) + PRINTW("unreferenced beg chart in .1 file\n", NULL) + if(!cursong.diff_ex && onehead.offex1) + PRINTA("unreferenced ex chart in .1 file\n", NULL) + + if(cursong.diff_ex) + PRINTA("ex chart (%d) in eout\n", cursong.diff_ex) + if(onehead.offex1) + PRINTA("ex1 chart in .1 file\n", NULL) + if(onehead.offex2) + PRINTA("ex2 chart in .1 file\n", NULL) + + //todo: .1 file sanity check? + } + + + //check .2dx files + onepart[0] = prev = 0xFF; + onepart[1] = '\0'; + diff = &cursong.diff_n7; + + for(i = 0; i <= 7; i++) + { + if(!diff[i]) + continue; + if(prev == cursong.suffix[i]) + continue; + else + onepart[0] = prev = cursong.suffix[i]; + + if(onepart[0] == '0') + onepart[0] = '\0'; + + sprintf(file, "sd_data/%04d/%04d%s.2dx", cursong.index, cursong.index, onepart); + //printf("checking %s (%d)...\n", file, k); + if(!(tdx = fopen(file, "rb"))) + {PRINTE(".2dx file not found: %s\n", file)} + else + { + //printf("decoding: %s...", file); + fseek(tdx, 0, SEEK_END); + tdxlen = (int)ftell(tdx); + if(tdxlen > 25000000) + {PRINTE("%s larger than 25,000,000 bytes\n", file)} + rewind(tdx); + enc = malloc(tdxlen); + fread(enc, 1, tdxlen, tdx); + fclose(tdx); + decrypt_2dx(enc, &dec); + //printf("done\n"); + memcpy(&wavcount, dec + 20, 4); + pos = 72; + + for(l=0; l < wavcount-1; l++) + { + memcpy(&fmt, dec + *((int*)(dec+pos)) + 24 + 20, 2); + memcpy(&wavlen, dec + *((int*)(dec+pos)) + 8, 4); + pos += 4; + //printf("(%d %d %d)\n", wavcount, pos, *((int*)(dec+pos))); + /*if(wavlen == 0) + { + {PRINTE("%s has 0-length wav files\n", file)} + break; + } + if(fmt != 2) + { + {PRINTE("%s has unconverted wav files\n", file)} + break; + }*/ + } + free(enc); + free(dec); + } + } + } + + printf("songcount: %d", songcount); + + getchar(); + + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.exe b/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.exe new file mode 100644 index 0000000..f15740b Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/source/checkeout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/eout/source/crypt.h b/iidx/bme2ac workspace djt custom songs/eout/source/crypt.h new file mode 100644 index 0000000..a310e3b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/eout/source/crypt.h @@ -0,0 +1,207 @@ + +//crypt.h +//code for encrypting .2dx files with DistorteD's algorithm/key + +//apparently konami's internal implementation of this doesn't do proper boundchecking and also doesn't zero its buffers, so there is some garbage left behind in the original files + +//format of encrypted .2dx file: +//header: +//4 bytes: identifier ("%e12" in case of distorted) +//4 bytes: length of the decrypted .2dx file +//after this follows the encrypted data + + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +byte cryptkey[8] = { 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03 }; //DistorteD'S encryption key + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//encrypts the .2dx file; this simply takes the reverse way from crack2dx.c by an unknown author (QQQ again, but HOLY SHIT that code is a mess (and buggy)) +int encrypt_2dx(byte *dec, int len, byte **enc) +{ + byte *cur; //current block of 8 bytes + int enclen; + + int i; + + //ciel to mod 8; + + enclen = len + 8; //length of the encoded 2dx = length of unencoded 2dx + headersize (8 bytes) + + if(enclen%8) + enclen += 8-enclen%8; + + *enc = malloc(enclen); + memset(*enc, 0, enclen); + memcpy(*enc+8, dec, len); //fill up the encoded array with unencoded stuff + + printf("encrypting .2dx file...\n"); + for(i = 8; i <= enclen - 8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = *enc+i; + + //Step 1: XOR the current block with the encrypted previous block + block_xor(cur, cur-8); + + //Step 2: Swap the lower and upper 4 bytes of the block + block_swap(cur); + + //Step 3: Further obfuscation with XOR; the lower 4 bytes are untouched, so encrypting works the same as decrypting + block_obfus(cur); + + //Step 4: XOR the block (yet again) with DistorteD's key + block_xor(cur, keys_11); + } + + memcpy(*enc, "%hid", 4); //encryption identifier (Troopers) + + memcpy(*enc+4, &len, 4); //write the length of the decoded 2dx file + + return enclen; +} + +int decrypt_2dx(byte *enc, byte **dec) +{ + int i; + int mult; + int len; + byte *buf; + byte *cur, *prev; + byte *cryptkey; + + buf = enc; + + //identify iidx version + + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + cryptkey = keys_16; //Empress + } + else + { + return -1; + } + + len = *((int*)(enc + 4)); + + if(len%8) + len += 8-len%8; + + + *dec = malloc(len); + //decrypt + + if(!(mult == 2)) //skip for unencrypted + { + memcpy(*dec, buf+8, len-8); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = *dec + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + + return len; +} \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/eout/source/txt2eout.c b/iidx/bme2ac workspace djt custom songs/eout/source/txt2eout.c new file mode 100644 index 0000000..5fac2a7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/eout/source/txt2eout.c @@ -0,0 +1,144 @@ + +#define byte unsigned char + +#include "stdio.h" +#include "string.h" + +typedef struct +{ + byte iidx[4]; + int version; + short int songcount; + short int indexcount; + int zero; +} eoutheader; + +typedef struct +{ + byte songname[64]; + byte labelname[32]; //filename + byte titlename[64]; //filename + byte genrename[32]; //filename + byte artistname[32]; //filename + + short int style; + short int sort_others; + short int sort_bemani; + short int sort_bemani2; + + byte diff_n7; + byte diff_h7; + byte diff_a7; + byte diff_n14; + byte diff_h14; + byte diff_a14; + byte diff_beg; + byte diff_zero; + + byte zeros[128]; + byte FF[20]; + + int index; + int volume; + + byte suffix[8]; + + int movieoffset; + byte moviefile[32]; + + byte bgname[32]; + byte graphicsfolder[32]; + + int layerinfo; + byte layerdata[9*32]; +} songinfo; + +int main(int *argc, char* argv[]) +{ + eoutheader header; + songinfo info; + FILE *in, *out; + int i; + int pc, id; + int myn; + byte asuffix[9]; + + in = fopen(argv[1], "rb"); + if(!in) + { + printf("file not found: %s", argv[1]); + return 0; + } + + out = fopen("txt_eout.dec", "wb"); + + memset(&header, 0, 16); + sprintf(header.iidx, "IIDX"); + header.version = 15; + + fwrite(&header, sizeof(eoutheader), 1, out); + + while(!feof(in)) + { + memset(&info, 0, sizeof(songinfo)); + memset(info.FF, 0xFF, 20); + memset(info.suffix, 0x30, 8); + + pc = fscanf(in, "%d\t%[a-zA-Z0-9*+<>/\()!? -]\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%[a-z.]\n",\ + &info.index, info.songname, \ + &info.diff_beg, &info.diff_n7, &info.diff_h7, &info.diff_a7, &info.diff_n14, &info.diff_h14, &info.diff_a14,\ + &info.style, &info.sort_others, &info.sort_bemani, &myn, &info.movieoffset, asuffix); + + if(pc != 15) + { + printf("parse error in line %d after token %d\n", header.songcount+1, pc); + break; + } + + id = info.index; + + sprintf(info.labelname, "L_%d", id); + sprintf(info.titlename, "T_%d", id); + sprintf(info.genrename, "G_%d", id); + sprintf(info.artistname, "A_%d", id); + sprintf(info.bgname, "B_%d", id); + + sprintf(info.graphicsfolder, "in_%02d", id/100); + + if(myn == 1) + sprintf(info.moviefile, "%d", id); + else if(!myn) + sprintf(info.moviefile, "0000"); + else + sprintf(info.moviefile, "%d", myn); + + for(i = 0; i < 8; i++) + if(asuffix[i] == '.') + asuffix[i] = '0'; + + memcpy(info.suffix, asuffix, 8); + + if(info.diff_h7 == 0) + info.diff_h7 = 1; + if(info.diff_h14 == 0) + info.diff_h14 = 1; + + info.sort_bemani2 = info.sort_bemani; //??? + + info.volume = 90; + + header.songcount++; + + fwrite(&info, sizeof(songinfo), 1, out); + } + + rewind(out); + fwrite(&header, sizeof(eoutheader), 1, out); + + fclose(in); + fclose(out); + + printf("%d songs in all\n", header.songcount); + + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/eout/txt2eout.exe b/iidx/bme2ac workspace djt custom songs/eout/txt2eout.exe new file mode 100644 index 0000000..539da29 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/eout/txt2eout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/fix1/fix1.exe b/iidx/bme2ac workspace djt custom songs/fix1/fix1.exe new file mode 100644 index 0000000..ca4bf2d Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/fix1/fix1.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/gcz2tga.c b/iidx/bme2ac workspace djt custom songs/gcz2tga.c new file mode 100644 index 0000000..70e5b8e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/gcz2tga.c @@ -0,0 +1,306 @@ +/* gcz2tga.c: Slice up a directory full of GCZ (texture) files into TGA files. + * + * Credit goes to afwefwe for reverse-engineering the texture format + * and LZSS compression */ + +#include +#include +#include + +/* Assuming x86, usual endian crap is not accounted for */ +typedef unsigned char u8_t; +typedef unsigned short u16_t; +typedef unsigned int u32_t; + +struct image +{ + unsigned int width, height; + u8_t *planes; +}; + +struct clip +{ + short x, y, w, h; +}; + +static u16_t swab16(u16_t in) +{ + /* GC headers are big-endian */ + return ((in & 0xFF) << 8) | (in >> 8); +} + +static void unpack_gc(struct image *out, u8_t *in, size_t out_sz) +{ + unsigned int npixels; + unsigned int i; + unsigned int j; + u16_t *pixels; + u16_t *pheight; + u16_t *pwidth; + u16_t *pmagic; + u16_t pixel; + + pmagic = (u16_t *) in; + pheight = (u16_t *) (in + 14); + pwidth = (u16_t *) (in + 12); + + if (*pmagic != 0x4347) { + fprintf(stderr, "(FAIL: Invalid header)\n"); + exit(EXIT_FAILURE); + } + + /* Set up output image struct */ + in += 24; + out->width = swab16(*pwidth); + out->height = swab16(*pheight); + out->planes = malloc(out->width * out->height * 4); + + /* Clamp W/H (don't know why this is necessary but it is) */ + out->width = out->width > 1024 ? 1024 : out->width; + out->height = out->height > 1024 ? 1024 : out->height; + + fprintf(stderr, "(%dx%d)", out->width, out->height); + + /* Unpack pixels */ + pixels = (u16_t *) in; + npixels = out->width * out->height; + + if (out_sz > npixels * 4) { + /* Deep image (i.e. 32-bit) */ + memcpy(out->planes, pixels, npixels * 4); + } else { + /* Shallow image (i.e. 16-bit) */ + for (i = 0, j = 0 ; i < npixels ; i++) { + pixel = pixels[i]; + out->planes[j++] = ((pixel ) & 0x1F) << 3; /* B */ + out->planes[j++] = ((pixel >> 5) & 0x1F) << 3; /* G */ + out->planes[j++] = ((pixel >> 10) ) << 3; /* R */ + out->planes[j++] = pixel & 0x8000 ? 0xFF : 0x00; /* A */ + } + } +} + +static u8_t *expand_lzss(u8_t *lzss, size_t *pout_sz) +{ + static u8_t ring[0x1000]; + unsigned int ring_pos = 0x0FEE; + unsigned int chunk_offset; + unsigned int chunk_length; + u32_t control_word = 1; + size_t length; + u8_t cmd1; + u8_t cmd2; + u8_t *out; + u8_t *pos; + u8_t *in; + + /* Header = 32 bit unpacked file length */ + length = *((u32_t *) lzss); + *pout_sz = length; + + if (length > 8000000) { + fprintf(stderr, "(FAIL: Unreasonably large expanded size %d)\n", + length); + + exit(EXIT_FAILURE); + } + + out = malloc(length * 2); /* Seems to overrun */ + pos = out; + in = lzss + 4; + + while (length > 0) { + if (control_word == 1) { + /* Read a control byte */ + control_word = 0x100 | *in++; + } + + /* Decode a byte according to the current control byte bit */ + if (control_word & 1) { + /* Straight copy */ + *pos++ = *in; + ring[ring_pos] = *in++; + + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } else { + /* Reference to data in ring buffer */ + cmd1 = *in++; + cmd2 = *in++; + + chunk_length = (cmd2 & 0x0F) + 3; + chunk_offset = ((cmd2 & 0xF0) << 4) | cmd1; + + for ( ; chunk_length > 0 ; chunk_length--) { + /* Copy historical data to output AND current ring pos */ + *pos++ = ring[chunk_offset]; + ring[ring_pos] = ring[chunk_offset]; + + /* Update counters */ + chunk_offset = (chunk_offset + 1) % 0x1000; + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } + } + + /* Get next control bit */ + control_word >>= 1; + } + + return out; +} + +static void readfile(const char *filename, u8_t **data, long *nbytes) +{ + FILE *f; + + f = fopen(filename, "rb"); + if (f == NULL) abort(); + + fseek(f, 0, SEEK_END); + *nbytes = ftell(f); + fseek(f, 0, SEEK_SET); + + *data = malloc(*nbytes); + fread(*data, *nbytes, 1, f); + + fclose(f); +} + +void put8(FILE *f, unsigned char val) +{ + fwrite(&val, 1, 1, f); +} + +void put16(FILE *f, unsigned short val) +{ + fwrite(&val, 2, 1, f); +} + +void split_images(const char *in_dir, const char *out_dir, + struct image *images, int nimages) +{ + struct clip *clips; + char filename[512]; + long nbytes; + u8_t *data; + char *name; + FILE *f; + int i; + int j; + int k; + + /* Read file and get TOC */ + sprintf(filename, "%s/system.idx", in_dir); + readfile(filename, &data, &nbytes); + clips = (struct clip *) (data + 0x01BC); + name = (char *) (data + 8 + *((long *) data)); + + /* Guess how many clips there are with a heuristic */ + for (i = 0 ; clips[i].w != 0 && clips[i].h != 0 ; i++) { + sprintf(filename, "%s/%s.tga", out_dir, name); + name += strlen(name) + 3; + + f = fopen(filename, "wb"); + if (f == NULL) abort(); + + /* Locate the correct source image */ + j = 0; + while (clips[i].y > images[j].height) { + clips[i].y -= images[j].height; + j++; + } + + /* Write header */ + put8(f, 0); put8(f, 0); put8(f, 2); + put16(f, 0); put16(f, 0); put8(f, 0); + put16(f, 0); put16(f, 0); put16(f, clips[i].w); put16(f, clips[i].h); + put8(f, 32); put8(f, 32); + + /* Write scanlines */ + for (k = 0 ; k < clips[i].h ; k++) { + if (clips[i].y == images[j].height) { + clips[i].y = 0; + j++; + } + + fwrite(images[j].planes + ((images[j].width * clips[i].y) + + clips[i].x) * 4, clips[i].w, 4, f); + clips[i].y++; + } + + /* Close output file */ + fclose(f); + } + + /* Cleanup */ + free(data); +} + +int main(int argc, char **argv) +{ + char *in_dir; + char *out_dir; + + struct image images[32]; + char filename[256]; + unsigned int i; + long filesize; + u8_t *lzss, *gc; + size_t out_sz; + FILE *f; + + /* Usage */ + if (argc != 3) { + fprintf(stderr, "Usage: %s [indir] [outdir]\n", argv[0]); + return EXIT_FAILURE; + } + + /* Setup */ + memset(images, 0, sizeof(images)); + in_dir = argv[1]; + out_dir = argv[2]; + + for (i = 0 ; i < 32 ; i++) { + /* Open 0.gcz, 1.gcz etc ... */ + sprintf(filename, "%s/%d.gcz", in_dir, i); + f = fopen(filename, "rb"); + if (f == NULL) break; + + /* Read entire file */ + fseek(f, 0, SEEK_END); + filesize = ftell(f); + fseek(f, 0, SEEK_SET); + + fprintf(stderr, "%s: fread", filename); + lzss = malloc(filesize); + fread(lzss, filesize, 1, f); + fclose(f); + + /* Decompress */ + fprintf(stderr, "(OK) expand_lzss"); + gc = expand_lzss(lzss, &out_sz); + free(lzss); + + /* Unpack GC to 32-bit RGBA */ + fprintf(stderr, "(OK) unpack_gc"); + unpack_gc(&images[i], gc, out_sz); + free(gc); + + fprintf(stderr, "(OK)\n"); + } + + /* Sanity check */ + if (i == 0) { + fprintf(stderr, "No GCZ files found\n"); + exit(EXIT_FAILURE); + } + + /* Emit pile of TGAs */ + fprintf(stderr, "split_images"); + split_images(in_dir, out_dir, images, i); + fprintf(stderr, "(OK)\n\n"); + + return 0; +} + diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/COMPCTAB.TTF b/iidx/bme2ac workspace djt custom songs/graph/fonts/COMPCTAB.TTF new file mode 100644 index 0000000..37912ca Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/COMPCTAB.TTF differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM3.TTC b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM3.TTC new file mode 100644 index 0000000..9371211 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM3.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM4.TTC b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM4.TTC new file mode 100644 index 0000000..c079358 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM4.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM5.TTC b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM5.TTC new file mode 100644 index 0000000..407db48 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/DFPOM5.TTC differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/arial.ttf b/iidx/bme2ac workspace djt custom songs/graph/fonts/arial.ttf new file mode 100644 index 0000000..ff0815c Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/arial.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/fonts/tahoma.ttf b/iidx/bme2ac workspace djt custom songs/graph/fonts/tahoma.ttf new file mode 100644 index 0000000..f5a011e Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/fonts/tahoma.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/generator.exe b/iidx/bme2ac workspace djt custom songs/graph/generator.exe new file mode 100644 index 0000000..88fd523 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/generator.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/generator_blue.exe b/iidx/bme2ac workspace djt custom songs/graph/generator_blue.exe new file mode 100644 index 0000000..e2c9c5f Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/generator_blue.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/generator_green.exe b/iidx/bme2ac workspace djt custom songs/graph/generator_green.exe new file mode 100644 index 0000000..5b2f64d Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/generator_green.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/generator_red.exe b/iidx/bme2ac workspace djt custom songs/graph/generator_red.exe new file mode 100644 index 0000000..fafe1af Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/generator_red.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/packgcz.exe b/iidx/bme2ac workspace djt custom songs/graph/packgcz.exe new file mode 100644 index 0000000..442bf01 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/graph/packgcz.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/graph/resize.bat b/iidx/bme2ac workspace djt custom songs/graph/resize.bat new file mode 100644 index 0000000..1337810 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/graph/resize.bat @@ -0,0 +1,3 @@ +mogrify -resize 33%x33% L_*.png A_*.png G_*.png +mogrify -resize 85%x85% T_*.png +mogrify -format tga -type TrueColorMatte *.png \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/graph/sort.bat b/iidx/bme2ac workspace djt custom songs/graph/sort.bat new file mode 100644 index 0000000..9c5060d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/graph/sort.bat @@ -0,0 +1,20 @@ +FOR %%i IN (1 2 3 4 5 6 7 8 9) DO ( +mkdir 0%%i +move B_%%i??.tga 0%%i +cd 0%%i +mkdir in_0%%i +..\..\packgcz in_0%%i *.tga +move in_0%%i .. +cd .. +) +FOR %%i IN (10 11 12 13 14 15) DO ( +mkdir %%i +move B_%%i??.tga %%i +cd %%i +mkdir in_%%i +..\..\packgcz in_%%i *.tga +move in_%%i .. +cd .. +) +mkdir mdata +..\packgcz mdata *.tga \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/libiidx.7z b/iidx/bme2ac workspace djt custom songs/libiidx.7z new file mode 100644 index 0000000..58ea2ca Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/libiidx.7z differ diff --git a/iidx/bme2ac workspace djt custom songs/misc/convert bms to ac.bat b/iidx/bme2ac workspace djt custom songs/misc/convert bms to ac.bat new file mode 100644 index 0000000..cab1ec3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/misc/convert bms to ac.bat @@ -0,0 +1,10 @@ +move "*(1 H).bms" h7.bme +move "*(2 A).bms" a7.bme +move "*(3 DH).bms" h14.bme +move "*(4 DA).bms" a14.bme +move "*(5 N).bms" n7.bme +move "*(6 DN).bms" n14.bme +del *.bat +..\oggdec.exe *.ogg +..\convertwav.bat +..\bme2ac diff --git a/iidx/bme2ac workspace djt custom songs/misc/patch.bat b/iidx/bme2ac workspace djt custom songs/misc/patch.bat new file mode 100644 index 0000000..63a94d1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/misc/patch.bat @@ -0,0 +1,10 @@ +@ECHO OFF +for /R %%a in (".") do ( +cd "%%a" +@ECHO ON + +echo "%%a" +..\fixtimingwindows.exe *.1 +@ECHO OFF +cd .. +) \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/misc/rename bms 2.bat b/iidx/bme2ac workspace djt custom songs/misc/rename bms 2.bat new file mode 100644 index 0000000..2370f08 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/misc/rename bms 2.bat @@ -0,0 +1,8 @@ + +move "*SP HYPER].bme" h7.bme +move "*SP ANOTHER].bme" a7.bme +move "*DP HYPER].bme" h14.bme +move "*DP ANOTHER].bme" a14.bme +move "*SP NORMAL].bme" n7.bme +move "*DP NORMAL].bme" n14.bme +del *.bat \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/misc/rename bms.bat b/iidx/bme2ac workspace djt custom songs/misc/rename bms.bat new file mode 100644 index 0000000..f012d29 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/misc/rename bms.bat @@ -0,0 +1,8 @@ + +move "*(1 H).bms" h7.bme +move "*(2 A).bms" a7.bme +move "*(3 DH).bms" h14.bme +move "*(4 DA).bms" a14.bme +move "*(5 N).bms" n7.bme +move "*(6 DN).bms" n14.bme +del *.bat \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac.exe new file mode 100644 index 0000000..378e2d9 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_0.6.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_0.6.exe new file mode 100644 index 0000000..351605b Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_0.6.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_en.txt b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_en.txt new file mode 100644 index 0000000..7c8c940 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_en.txt @@ -0,0 +1,51 @@ +bme2ac by ryuuou + Converts BME/BMS style files and WAVs into .1 and .2dx files + Suitable for use with beatmania IIDX TROOPERS AC _only_! + +Changelog: + v0.5 + - partial support for freezenotes + - random bugfixes? + v0.4 + - speedups + - implemented #STOP events (_NOT_ #STP events!) + - fixed a potential problem with fractional bpm + - fixed a bug with file names that have '#' in them + - the measure line of the last measure wasn't written out correctly + - nixed decrypted.2dx; encrypted.2dx -> output.2dx + - songs now end 3 seconds after the end of the last measure + - added several tools including their sourcecode: + create2dx_dumb, crack2dx_new, timebase_single, encrypt2dx, merge1, parse1 + v0.3 + - killed debug output + - standard events are now written after bpm corrections to avoid screwing with the end-song event + - keysound preload events are now dynamic and always placed between keys; this should fix wrong keysounds on fast repeats once and for all + v0.2 + - added English and Japanese readme files + - implemented bpm changes + - implemented changing measure sizes, this should fix a lot of offsync songs + v0.1 + - initial release + + +============= + +HOWTO: +Download SoX here: +http://prdownloads.sourceforge.net/sox/sox-14.1.0.zip?download +Extract sox.exe into your windows folder. +Put both convertwav.bat and bme2ac.exe into the same folder as the BMS files you want to convert. + +Run convertwav.bat. It will convert all wavs in the same folder to a format Troopers can understand. You can find the original files in the newly created folder "old". +Now rename all your BMS/BME files like this: +b.bme n7.bme h7.bme a7.bme n14.bme h14.bme a14.bme +Now run bme2ac. It will produce 3 files: output.1, encrypted.2dx and decrypted.2dx. The former two files are now usable with Troopers. + +============= + +IMPORTANT NOTES: +Should bme2ac tell you that it can't find some wav files, fill those in with short silent wav files, _NOT_ 0 byte files or other garbage. Don't forget to run convertwav.bat again. +Charts without keysounds probably won't work. +Should you choose to replace an original IIDX song with a custom one, make sure that your new song has at least + the same number of charts as the old one or Troopers will refuse to boot. + You can for example copy over n7.bme to a14.bme if needed. diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_ja.txt b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_ja.txt new file mode 100644 index 0000000..f3b37ee --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.README_ja.txt @@ -0,0 +1,49 @@ +bme2ac by ryuuou + BME/BMSå¼ã¨wavファイルを.1ã¨.2dxファイルã«å¤‰åŒ–ã™ã‚‹ã‚½ãƒ•ト + DJT以上ã®ã¿ã«å¯¾å¿œ + +ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚ˆã‚‹å¤‰åŒ–: + v0.5 + - ロングノート対応(ã¡ã‚‡ã£ã¨ä¸å®Œå…¨ï¼‰ + - ãƒã‚°ä¿®æ­£ï¼Ÿ + v0.4 + - 速度大アップw + - #STOP対応ã«ãªã£ãŸï¼ˆ#STPã§ã¯ãªã„) + - æ•´æ•°ã§ã¯ãªã„BPMã®å•題を修正 + - 「#ã€ãŒå«ã‚“ã§ã„ã‚‹wavã®ãƒ•ァイルåã®ãƒã‚°ã‚’修正 + - æœ€å¾Œã®æ‹å­æ£’(?)ãŒãªã„ãƒã‚°ã‚’修正 + - 「decrypted.2dxã€ã‚’ãªãã—ã¦ã€ã€Œencrypted.2dxã€ã‚’「output.2dxã€ã«å¤‰å + - æ›²ãŒæœ€å¾Œã®æ‹å­ã®3秒後ã«çµ‚ã‚るよã†ã«ãªã£ãŸ + - ソースコードをå«ã‚ã¦ãƒ„ールを追加: + create2dx_dumb, crack2dx_new, timebase_single, encrypt2dx, merge1, parse1, checkeout + v0.3 + - 黙らã›ãŸã€ã‚µãƒ¼ã‚»ãƒ³w + - 基本的ãªã‚¤ãƒ™ãƒ³ãƒˆã¯BPM修正ã®å¾Œã«æ›¸ã込むã€ã€Œæ›²ãŒçµ‚ã‚ã£ãŸã€ã‚¤ãƒ™ãƒ³ãƒˆã¯ã‚‚ã†ã‚ºãƒ¬ãªã„ + - キー音変化イベントã¨å½“キーã®é–“ã‚’å¯å¤‰ã«ï¼ˆã„ã¤ã‚‚ãµãŸã¤ã®ã‚­ãƒ¼ã®æœ€ä¸­ã«ãªã‚‹ï¼‰ã€é€£æ‰“ã®ã‚­ãƒ¼éŸ³ã‚ºãƒ«ã¯ã“れã§ãªããªã‚‹ + v0.2 + - è‹±èªžã¨æ—¥æœ¬èªžã®READMEを追加 + - BPM変化ã¯å¯èƒ½ã«ãªã£ãŸ + - æ‹å­å¤‰åŒ–ã¯å¯èƒ½ã«ãªã£ãŸï¼ˆã‚¿ãƒ–ンw)ã€éŸ³ã‚ºãƒ¬ã¯ã‚‚ã†ãªã„ã¯ãš + v0.1 + - åˆå…¬é–‹ + +============= + +ä½¿ã„æ–¹: + +準備ã¨ã—㦠+http://prdownloads.sourceforge.net/sox/sox-14.1.0.zip?download +SoXをダウンロードã—ã¦ã€sox.exeã‚’windowsフォルダーã«å…¥ã‚Œã¦ãŠã。 +bme2ac.exeã¨convertwav.batã‚’BMSãŒã‚るフォルダーã«å…¥ã‚Œã‚‹ã€‚ + +convertwavを起動。楽ã—ã„æ¥½ã—ã„ファイル変化(元ファイルã¯ã€Œoldã€ãƒ•ォルダã«ç§»å‹•)をã¡ã‚ƒã‚“ã¨è¦‹å®ˆã£ã¦ã‹ã‚‰ã€ +BMEã¾ãŸã¯BMSファイルåを「b.bme, n7.bme, h7.bme, a7.bme, n14.bme, h14.bme, a14.bmeã€ã«å¤‰ãˆã¾ã—ょã†ã€‚ +bme2acを起動。出ã¦ãã‚‹output.1ã¨encrypted.2dxã¯AC対応ã¨ãªã‚Šã¾ã™ã€‚ + +============= + +注æ„点 +DJTã®æ›²ã‚’上書ãã—ãŸå ´åˆã€æ–°ã—ãå…¥ã‚ŒãŸæ›²ã¨ä¸Šæ›¸ãã—ãŸæ›²ã®æ¥½è­œã®æ•°ãŒä¸€è‡´ã—ãªã„ã¨ã ã‚〠+  a14ãŒã‚る曲をãれãŒãªã„曲ã§ä¸Šæ›¸ãã¨ã‹ã€‚n7.bmeã‚’a14.bmeã¨ã‹ã«ã‚³ãƒ”ーã™ã‚Œã°OK。 +キーサウンドãŒãªã„曲ã¯ã ã‚(ãŸã¶ã‚“)。 +「Failed to load waves: ...ã€ã¯ã¡ã‚‡ã£ã¨ã‚„ã°ã„。欠ã‘ã¦ã„るファイルã®ä»£ã‚りã«çŸ­ã„音ã®ãªã„wavを使ã„ã¾ã—ょã†ã€‚convertwavã‚’ã‹ã‘ã‚‹ã®ã‚‚忘れãšã«ã€‚ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.exe new file mode 100644 index 0000000..a478dde Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/bme2ac.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/checkeout.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/checkeout.exe new file mode 100644 index 0000000..7837c33 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/checkeout.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/convertwav.bat b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/convertwav.bat new file mode 100644 index 0000000..cde20e9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/convertwav.bat @@ -0,0 +1,5 @@ +mkdir old + +move *.wav old + +for %%s in (old\*.wav) do sox "%%s" -S -a "%%~ns%%~xs" diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/crack2dx_new.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/crack2dx_new.exe new file mode 100644 index 0000000..159eca3 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/crack2dx_new.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/create2dx_dumb.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/create2dx_dumb.exe new file mode 100644 index 0000000..366f3d3 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/create2dx_dumb.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/encrypt2dx.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/encrypt2dx.exe new file mode 100644 index 0000000..d0c8980 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/encrypt2dx.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/merge1.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/merge1.exe new file mode 100644 index 0000000..af424fb Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/merge1.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/parse1.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/parse1.exe new file mode 100644 index 0000000..1a2abbe Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/parse1.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/checkeout.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/checkeout.c new file mode 100644 index 0000000..851a63a --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/checkeout.c @@ -0,0 +1,216 @@ +#define byte unsigned char + +#include "stdio.h" +#include "string.h" + +typedef struct +{ + byte iidx[4]; + int version; + short int songcount; + short int indexcount; + int zero; +} eoutheader; + +typedef struct +{ + byte songname[64]; + byte labelname[32]; //filename + byte titlename[64]; //filename + byte genrename[32]; //filename + byte artistname[32]; //filename + + short int style; + short int sort_others; + short int sort_bemani; + short int sort_bemani2; + + byte diff_n7; + byte diff_h7; + byte diff_a7; + byte diff_n14; + byte diff_h14; + byte diff_a14; + byte diff_beg; + byte diff_zero; + + byte zeros[128]; + byte FF[20]; + + int index; + int volume; + + char suffix[8]; + + int movieoffset; //used as temp var here + byte moviefile[32]; + + byte bgname[32]; + byte graphicsfolder[32]; + + int layerinfo; + byte layerdata[9*32]; +} songinfo; + +typedef struct +{ + int offh7; + int lenh7; + int offn7; + int lenn7; + int offa7; + int lena7; + int offb; + int lenb; + int dummy1; + int dummy2; + int dummy3; + int dummy4; + int offh14; + int lenh14; + int offn14; + int lenn14; + int offa14; + int lena14; +} oneheader; + +eoutheader ehead; +songinfo cursong; + +#define PRINTW if(warn) {printf("__: %d (%s) - ", cursong.index, cursong.songname) +#define PRINTE if(err) {printf("!!: %d (%s) - ", cursong.index, cursong.songname) + +int main(int argc, char* argv[]) +{ + FILE *eout, *sys, *one, *tdx, *movie; + char file[34]; + char onepart[2], prev, *diff; + oneheader onehead; + int *iptr; + int warn, err; + int i; + int tdxlen; + + if(argc < 2) + { + printf("checkeout \n\tlevel: v = errors only\n\tvv = warnings only\n\t(default) = errors and warnings"); + return 0; + } + + warn = err = 1; + + if(argc > 2) + { + if(!strcmp(argv[2], "vv")) + err = 0; + else if(!strcmp(argv[2], "v")) + warn = 0; + } + + eout = fopen(argv[1], "rb"); + + if(!eout) + { + printf("could not find %s, aborting\n", argv[2]); + return 0; + } + + fread(&ehead, sizeof(eoutheader), 1, eout); + + fseek(eout, sizeof(eoutheader) + ehead.indexcount*2, SEEK_SET); + + while(!feof(eout)) + { + fread(&cursong, sizeof(songinfo), 1, eout); + //printf("ID: %d\tNAME: %s\n", cursong.index, cursong.songname); + + //check for movie file + sprintf(file, "movie/%s.4", cursong.moviefile); + if(!(movie = fopen(file, "rb"))) + { + PRINTW; + printf("moviefile not found: %s\n", file); } + } + else + fclose(movie); + + //check difficulties + if(!cursong.diff_h7) + { + PRINTE; + printf("song has no hyper7 chart\n"); } + } + if(!cursong.diff_h14) + { + PRINTE; + printf("song has no hyper14 chart\n"); } + } + + //check .1 files + sprintf(file, "sd_data/%04d/%04d.1", cursong.index, cursong.index); + if(!(one = fopen(file, "rb"))) + { + PRINTE; + printf(".1 file not found: %s\n", file); } + } + else + { + //check if difficulties are availible + fread(&onehead, sizeof(onehead), 1, one); + fclose(one); + + if(cursong.diff_n7 && !onehead.offn7) + PRINTE; printf("referenced n7 (%d) chart not found in .1 file\n", cursong.diff_n7); } + if(cursong.diff_h7 && !onehead.offh7) + PRINTE; printf("referenced h7 (%d) chart not found in .1 file\n", cursong.diff_h7); } + if(cursong.diff_a7 && !onehead.offa7) + PRINTE; printf("referenced a7 (%d) chart not found in .1 file\n", cursong.diff_a7); } + if(cursong.diff_n14 && !onehead.offn14) + PRINTE; printf("referenced n14 (%d) chart not found in .1 file\n", cursong.diff_n14); } + if(cursong.diff_h14 && !onehead.offh14) + PRINTE; printf("referenced h14 (%d) chart not found in .1 file\n", cursong.diff_h14); } + if(cursong.diff_a14 && !onehead.offa14) + PRINTE; printf("referenced a14 (%d) chart not found in .1 file\n", cursong.diff_a14); } + if(cursong.diff_beg && !onehead.offb) + PRINTE; printf("referenced beg (%d) chart not found in .1 file\n", cursong.diff_beg); } + + //todo: .1 file sanity check? + } + + + //check .2dx files + onepart[0] = prev = 0xFF; + onepart[1] = '\0'; + diff = &cursong.diff_n7; + + for(i = 0; i <= 7; i++) + { + if(!diff[i]) + continue; + if(prev == cursong.suffix[i]) + continue; + else + onepart[0] = prev = cursong.suffix[i]; + + if(onepart[0] == '0') + onepart[0] = '\0'; + + sprintf(file, "sd_data/%04d/%04d%s.2dx", cursong.index, cursong.index, onepart); + if(!(tdx = fopen(file, "rb"))) + { + PRINTE; + printf(".2dx file not found: %s\n", file); } + } + else + { + fseek(tdx, 0, SEEK_END); + tdxlen = (int)ftell(tdx); + if(tdxlen > 25000000) + PRINTE; printf(".2dx larger than 25,000,000 bytes\n"); } + fclose(tdx); + } + } + } + + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/crack2dx_new.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/crack2dx_new.c new file mode 100644 index 0000000..c8ec38d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/crack2dx_new.c @@ -0,0 +1,251 @@ +//crack2dx_new.c +//decrypts .2dx files from every style from 9th to Troopers +//decryption method and keys taken from crack2dx.c, rewritten with added support for Troopers, Empress and usablility +//...and for bugfixing -_- + +#include +#include +#include + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //distorted+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + + +char *itostr(int i) +{ + char *str; + + str = malloc(3); + + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; + + str[2] = '\0'; + + return str; +} + +int main(int argc, byte **argv) +{ + int i; + int style=2; + int mult; + byte *buf, *buf_dec; + byte *cur, *prev; + byte *cryptkey; + int *wavcount; + int *wavpos, *wavlen; + int len; + FILE *in, *out; + unsigned char n_out[10]; //wav name + + printf("crack2dx_new by v0.1 ryuuou\n\tdecrypts .2dx files from 9th style to Empress\n\tbased on crack2dx.c\n\n"); + + if(argc < 2) + { + printf("USAGE: crack2dx_new \n"); + printf("output format (0~4):\n0: 1.wav, 2.wav...\n1: 0001.wav, 0002.wav...\n2 (default): 01.wav, 02.wav..., ZZ.wav\n3: 01.wav, 02.wav..., FF.wav\n"); + return 0; + } + + if(argc >= 3) + sscanf(argv[2], "%d", &style); + + if(!(style >= 0 && style <=3)) style = 2; + + printf("\nprocessing %s...\n", argv[1]); + + in = fopen(argv[1], "rb"); + + if(!in) + { + printf("not found\n"); + return 0; + } + + fseek(in, 0, SEEK_END); + len = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(len); + + fread(buf, len, 1, in); + fclose(in); + + //identify iidx version + + printf("identifying encryption..."); + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + printf("9th style\n"); + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + printf("10th style\n"); + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + printf("RED\n"); + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + printf("DistorteD/Happy Sky/GOLD\n"); + cryptkey = keys_11; //DistorteD+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + printf("Troopers\n"); + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + printf("Empress\n"); + cryptkey = keys_16; //Empress + mult = 1; + } + else + { + printf("unknown encryption, trying unencrypted...\n"); + mult = 2; + } + + + //decrypt + + if(!(mult == 2)) //skip for unencrypted + { + buf_dec = malloc(len - 8); + memcpy(buf_dec, buf+8, len-8); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = buf_dec + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + else + { + buf_dec = malloc(len); + memcpy(buf_dec, buf, len); //copy for splitting + } + + wavpos = (int*)(buf_dec+16); + wavcount = (int*)(buf_dec+20); + printf("extracting wav files (%d in all, start at 0x%08X)...\n", *wavcount, *wavpos); + for(i = 0; i < *wavcount; i++) + { + wavpos = (int*)(buf_dec + 72 + i*4); //get offset from TOC + wavlen = (int*)(buf_dec + *wavpos + 8); //get wav length from header + //printf("wavpos 0x%08X \n", *wavpos); getchar(); + //continue; + wavpos = (int*)(buf_dec + *wavpos + 24); //offset of the actual wav file + //printf("%d (%d)...\n", i, *wavpos, *wavlen); + if(style == 0) + sprintf(n_out, "%d.wav", i+1); + else if(style == 1) + sprintf(n_out, "%04d.wav", i+1); + else if(style == 2) + sprintf(n_out, "%s.wav", itostr(i+1)); //this leaks memory, but who cares + else if(style == 3) + sprintf(n_out, "%02X.wav", i+1); + + out = fopen(n_out, "wb"); + fwrite(wavpos, 1, *wavlen, out); + fclose(out); + } + printf("done\n"); + free(buf); + free(buf_dec); + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/create2dx_dumb.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/create2dx_dumb.c new file mode 100644 index 0000000..0698a53 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/create2dx_dumb.c @@ -0,0 +1,336 @@ +//create2dx_dumb.c by ryuuou +//Authoring the 2dx file is based on create2dx.c by Kitaru +//Encrypting is taking the reverse way from crack2dx.c by some unknown author (at least to me) +//Packs BME-style sequenced .wav (01.wav to ZZ.wav, but should work with BMS-style 01 - FF as well) in the current folder +//into an unencrypted unencrypted.2dx and an DistorteD-style encrypted encrypted.2dx +//Takes no arguments and always outputs to the same files; only works with uppercase on unix but should work with lowercase on windows; +//We also assume that the ascending order or the wavefiles equals their order in the corresponding bme/bms file +//...hence "_dumb" + + +#include +#include +#include + +//wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define MAXWAVS (36*36-1) + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) + +typedef unsigned char byte; + +typedef struct{ + int length; + byte *data; +} wavefile; + +const byte aftertoc[24] = { + '2', 'D', 'X', '9', //const string + 0x18, 0x00, 0x00, 0x00, //headersize (== 24) + 0x00, 0x00, 0x00, 0x00, //size of wave file (written at runtime) + 0x30, 0x32, 0xFF, 0xFF, //panning/initial volume? + 0x40, 0x00, 0x08, 0x00, //??? (64, 0, 8, 0) + 0x00, 0x00, 0x00, 0x00 //??? (0, 0, 0, 0) +}; + + +//helper function for BME numbering weirdness; +//converts a number to a 01-ZZ style string +char *itostr(int i) +{ + char *str; + + str = malloc(3); + + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; + + str[2] = '\0'; + + return str; +} + +/// +/// encryption related +/// + +byte cryptkey[8] = { 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03 }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//Encrypts length bytes of inc and returns a pointer to the encoded array +byte *encrypt(byte *inc, int length) +{ + byte *data; + byte *cur; //current block of 8 bytes + + int i, enclen; + + enclen = 8 + CIELMOD8(length); //let's just make sure we're not running into uninitialized memory while encrypting + data = malloc(enclen); + + memset(data, 0, enclen); + memcpy(data+8, inc, length); //fill up the encoded array with unencoded stuff + + + for(i = 8; i <= enclen-8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = data+i; + + //Step 1: XOR the current block with the encrypted previous block + block_xor(cur, cur-8); + + //Step 2: Swap the lower and upper 4 bytes of the block + block_swap(cur); + + //Step 3: Further obfuscation with XOR; the lower 4 bytes are untouched, so encrypting works the same as decrypting + block_obfus(cur); + + //Step 4: XOR the block (yet again) with DistorteD's key + block_xor(cur, cryptkey); + } + + memcpy(data, "%e12", 4); //encryption identifier + enclen -= 8; + memcpy(data+4, &enclen, 4); //write the length of the decoded 2dx file + return data; +} + + +//searches *bms for 'WAVxy' where xy is the bme index (01-ZZ) indicated by index +//WARNING: this is very intolerant concerning capitalization and trailing whitespaces! +char *wavfrombms(byte *bms, int length, int index) +{ + char *bmeindex; + int i = 0, j = 0; + char *wavname; + + bmeindex = itostr(index); + + while(i < length - 5) + { + if(bms[i] == 'W' && bms[i+1] == 'A' && bms[i+2] == 'V' && bms[i+3] == bmeindex[0] && bms[i+4] == bmeindex[1]) //long if-clause is long + { + i += 6; //skip to the filename (after "WAVxy ") + while((bms[i+j] != '\n') && (bms[i+j] != '\r') && i+j < length) //CR or LF + j++; //count the length of the filename + break; //we found what we wanted + } + + i++; + } + + + wavname = malloc(j + 1); + + memcpy(wavname, bms+i, j); //copy the wavename + + wavname[j] = '\0'; //terminate the string + + return wavname; +} + + +int main(int argc, const char **argv) +{ + //coding while listening to kachoufuusetsu long, hell yeah! + + wavefile waves[MAXWAVS]; //use this to hold the wavefiles; MAYBE I SHOULD NAME THIS SMALL_WAVES ZOMG GET IT? + + FILE *wavfile; + FILE *out; + FILE *bmsfile; + byte *decrypted, *encrypted, *bms; + + int wav = 0; //wavefile count + int pos = 0, i = 0, ii = 0, firstwav = 0, bmslength = 0; + int length = 72; //use this to compute the final file length along the way (72 = 2dx headersize) + + char wavepath[32]; //helperstring; ugly but works + + int bmestyle = 0; + + if(argc >= 2) //we got a parameter + { + bmestyle = 2; + bmsfile = fopen(argv[1], "rb"); + + if(bmsfile == NULL) + { + printf("file not found: %s\n", argv[1]); + return 0; + } + + fseek(bmsfile, 0, SEEK_END); + bmslength = (int)ftell(bmsfile); + fseek(bmsfile, 0, SEEK_SET); + + bms = malloc(bmslength); + + fread(bms, bmslength, 1, bmsfile); + + fclose(bmsfile); + printf("got file input (%s) of length %d\n", argv[1], bmslength); + } + + + memset(waves, 0, MAXWAVS*sizeof(wavefile)); + + i = 1; //BME starts counting at 01.wav + printf("reading samples..."); + while(i <= MAXWAVS) //this is really inefficient but works, meh + { + if(bmestyle == 0) + { + sprintf(wavepath, "%s.wav", itostr(i)); + } + else if(bmestyle == 1) + { + sprintf(wavepath, "%d.wav", i); + } + else if(bmestyle == 2) + { + sprintf(wavepath, "%s", wavfrombms(bms, bmslength, i)); + if(wavepath[0] == '\0') + { + i++; + continue; //parsing the bms returned no file for index i + } + } + + wavfile = fopen(wavepath, "rb"); + + if (wavfile != NULL) + { + //open the wave file and save its length and contents to the array + printf("%s...",wavepath); + fseek(wavfile, 0, SEEK_END); + waves[i-1].length = (int)ftell(wavfile); + fseek(wavfile, 0, SEEK_SET); + + waves[i-1].data = malloc(waves[i-1].length); + + fread(waves[i-1].data, waves[i-1].length, 1, wavfile); + + fclose(wavfile); + wav++; + length += 4 + 24 + waves[i-1].length; //toc index + header + actual length + } + else + if(bmestyle == 2) + printf("\n!!%s referenced by bms file but not found!!\n...", wavepath); + i++; + //if(wav == 99) break; + } + + if(wav == 0) //learn2placefilesindirectories + { + printf("no wave files found, go die in a fire\n"); + return 0; + } + printf("OK\n"); + printf("\ntotal samplecount: %d\n\n",wav); + + + //start constructing the 2dx file + decrypted = malloc(length); + memset(decrypted, 0, length); + + firstwav = 72+wav*4; //ugly... + memcpy(decrypted + 16, &firstwav, 4); //first wave position = 2dx header + size of TOC (= 72 + wavecount * sizeof(int)) + memcpy(decrypted + 20, &wav, 4); //the total numbers of waves + + ii = 0x48; //current position in the array + + //write the table of contents (absolute position of the waves in the .2dx file) + pos = 0x48 + ((wav) * 4); //start of the wavefiles + printf("writing TOC..."); + for(i = 0; i < MAXWAVS; i++) + { + if(waves[i].length > 0) //we only want waves with content + { + memcpy(decrypted+ii, &pos, 4); + pos += waves[i].length + 0x18; //don't forget about the 24 byte header + ii += 4; + } + } + + //write the actual waves + printf("writing samples..."); + for(i = 0; i < MAXWAVS; i++) + { + if(waves[i].length > 0) + { + memcpy(decrypted+ii, aftertoc, 8); //"2DX9" + headersize (== 24) + memcpy(decrypted+ii+8, &waves[i].length, 4); //size of the wave + memcpy(decrypted+ii+12, aftertoc+12, 12); //rest of the header + memcpy(decrypted+ii+24, waves[i].data, waves[i].length); //write the actual wave + ii += 24 + waves[i].length; + } + } + printf("OK\n"); + + printf("encrypting..."); + encrypted = encrypt(decrypted, length); + printf("OK\n"); + + out = fopen("unencrypted.2dx", "wb"); //open the 2dx file and write out the array + fwrite(decrypted, length, 1, out); + fclose(out); + + out = fopen("encrypted.2dx", "wb"); //open the 2dx file and write out the array + fwrite(encrypted, 8+CIELMOD8(length), 1, out); + fclose(out); + + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/encrypt2dx.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/encrypt2dx.c new file mode 100644 index 0000000..efa25c7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/encrypt2dx.c @@ -0,0 +1,192 @@ +//encrypt2dx.c by ryuuou +//encrypts a file with DistorteD's .2dx encryption algorithm +//takes the inverse way of crack2dx.c + + +#include +#include +#include + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) + +typedef unsigned char byte; + + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //distorted+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +const char* ident[] = { "%hid", "%e12", "%e11", "%e10", "%eNc" }; + +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + + +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + + +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + + +byte *encrypt(byte *inc, int length, int style) +{ + byte *data; + byte *cur; + byte *cryptkey; + + int i, enclen, mult; + + mult = 1; + switch(style) + { + case 4: + cryptkey = keys_09; + break; + case 3: + cryptkey = keys_10; + break; + case 2: + cryptkey = keys_11; + break; + case 1: + case 0: + cryptkey = keys_11; + mult = 0; + break; + } + + enclen = 8 + CIELMOD8(length); + data = malloc(enclen); + + memset(data, 0, enclen); + memcpy(data+8, inc, length); + + + for(i = 8; i <= enclen-8; i+=8) + { + cur = data+i; + + block_xor(cur, cur-8); + + if(mult) + { + block_xor(cur, cryptkey+16); + block_obfus(cur); + block_xor(cur, cryptkey+8); + } + + block_swap(cur); + block_obfus(cur); + block_xor(cur, cryptkey); + } + + memcpy(data, ident[style], 4); + enclen -= 8; + memcpy(data+4, &enclen, 4); + return data; +} + +int main(int argc, const char **argv) +{ + FILE *in, *out; + int len; + int style = 99; + byte *decrypted, *encrypted; + byte *cryptkey; + + printf("encrypt2dx by ryuuou\n\tencrypts unencrypted .2dx files (ORLY)\n\n"); + + if(argc < 2) + { + printf("USAGE: encrypt2dx \n\npress enter to exit\n"); + getchar(); + return 0; + } + + in = fopen(argv[1], "rb"); + + if(in == NULL) + { + printf("file not found: %s\n\npress enter to exit\n", argv[1]); + getchar(); + return 0; + } + + do + { + printf("select encryption (0-4)\n\t0: Troopers\n\t1: DistorteD, Happy Sky, GOLD\n\t2: RED\n\t3: 10th style\n\t4: 9th style\n"); + scanf("%d", &style); + } + while(!(style >= 0 && style <= 4)); + + fseek(in, 0, SEEK_END); + len = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + decrypted = malloc(len); + + fread(decrypted, len, 1, in); + + fclose(in); + + printf("encrypting...\n"); + encrypted = encrypt(decrypted, len, style); + + printf("writing encrypted.2dx to disk...\n"); + out = fopen("encrypted.2dx", "wb"); + fwrite(encrypted, 8+CIELMOD8(len), 1, out); + fclose(out); + + free(decrypted); + free(encrypted); + + printf("press enter to exit\n"); + getchar(); getchar(); + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/merge1.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/merge1.c new file mode 100644 index 0000000..2425e57 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/merge1.c @@ -0,0 +1,157 @@ +//merge1.c by ryuuou +//merges several .1 files into a single one to help with songs that have too many wav references + +#include +#include +#include + +#define CHARTCOUNT 7 +#define byte unsigned char + +const char *ONAMES[] = { "h7.1", "n7.1", "a7.1", "b.1", "h14.1", "n14.1", "a14.1" }; +const char *NAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +int worder[CHARTCOUNT] = {0, 4, 1, 5, 2, 6, 3}; + + +int main() +{ + int i, len; + int *plen, *poff; + byte *onechart[CHARTCOUNT]; + int olen[CHARTCOUNT]; + FILE *in, *out; + int ccount = 0; + + byte *buf; + int blen; + + printf("merge1 by ryuuou\n\tmultiplexes several .1 files into a single one\n\n\n"); + + in = fopen("base.1", "rb"); + + memset(onechart, 0, sizeof(int*)*CHARTCOUNT); + memset(olen, 0, sizeof(int)*CHARTCOUNT); + + printf("trying to open files...\n"); + printf("base.1..."); + if(!in) printf("not found, authoring new .1 file\n"); + else printf("OK\n"); + + if(in) //load base.1 as reference + { + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + printf("loading charts from base.1..."); + //load the charts contained in the base file + for(i = 0; i < CHARTCOUNT; i++) + { + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + if(!*plen) continue; //no chart + + olen[i] = *plen; + + printf("%s...", NAMES[i]); + + onechart[i] = malloc(olen[i]); + + memcpy(onechart[i], buf+*poff, olen[i]); //copy the chart + } + + free(buf); + printf("done\n\n"); + } + + printf("loading and inserting/overwriting charts...\n"); + + for(i = 0; i < CHARTCOUNT; i++) + { + printf("%s...", ONAMES[i]); + in = fopen(ONAMES[i], "rb"); + if(!in) + { + printf("not found\n"); + continue; + } + + ccount++; + + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + + if(!*plen) + { + printf("no %s chart\n", NAMES[i]); + continue; //this file contains no appropriate chart, l2namefiles + } + + if(olen[i]) //we previously loaded a chart from base.1 and we don't want to leak memory + free(onechart[i]); + + olen[i] = *plen; + + onechart[i] = malloc(*plen); + + memcpy(onechart[i], buf+*poff, *plen); + free(buf); + printf("OK\n"); + } + + if(!ccount) + { + printf("no charts found, aborting\npress any key to exit\n"); + getchar(); + return 0; + } + + //create the aggregated .1 file + + len = 96; //.1 headersize + + for(i = 0; i < CHARTCOUNT; i++) + len += olen[i]; + + buf = malloc(len); + + memset(buf, 0, len); + + len = 96; //abuse len as position counter + + printf("\nauthoring .1 file..."); + for(i = 0; i < CHARTCOUNT; i++) + { + memcpy(buf+offsets[worder[i]], &len, 4); + memcpy(buf+offsets[worder[i]]+4, &olen[worder[i]], 4); + + memcpy(buf+len, onechart[worder[i]], olen[worder[i]]); + len += olen[worder[i]]; + } + printf("done\n"); + + printf("writing merged.1..."); + out = fopen("merged.1", "wb"); + + fwrite(buf, len, 1, out); + + fclose(out); + free(buf); + printf("done\npress any key to exit\n"); + + getchar(); + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/parse1.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/parse1.c new file mode 100644 index 0000000..0040bfc --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/parse1.c @@ -0,0 +1,164 @@ +//parser.c + +#include +#include + +const char *BMENAMES[] = { "Hyper7", "Normal7", "Another7", "Beginner", "Hyper14", "Normal14", "Another14" }; +int offsets[7] = {0, 8, 16, 24, 48, 56, 64}; + +#define byte unsigned char + +int main(int argc, const char **argv) +{ + FILE *f; + int length; + byte *buffer, event, *data1; + int i,k,pos; + byte *chart; + int chartl,offset; + int maxwav = 0; + int minwav = 9999; + int *time; + int evcount; + int mcount; + int v=1; + unsigned short int *data2; + + printf("parse1 by ryuuou\n\tparses .1 files and prints out event information\n"); + + if(argc < 2) + { + printf("USAGE: parse1 \n"); + printf("\tverbosity:\n\t\tv (default): print standard info and summary only\n\t\tvv: same as v, also print bpm info and measure related events\ +\n\t\tvvv: print everything except for keysound preload and autoplay events\n\t\tvvvv: print everything\n\n"); + getchar(); + return 0; + } + f = fopen(argv[1], "rb"); + if(!f) return 1; + + if(argc > 2) + { + if(!strcmp(argv[2], "vvvv")) + v = 4; + else if(!strcmp(argv[2], "vvv")) + v = 3; + else if(!strcmp(argv[2], "vv")) + v = 2; + } + + fseek(f, 0, SEEK_END); + length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + buffer = malloc(length); + fread(buffer, length, 1, f); + + printf("output format: (): \n\n"); + for(k = 0; k < 7; k++) + { + offset = *((int*)(buffer+offsets[k])); + chartl = *((int*)(buffer+offsets[k]+4)); + if(!chartl) continue; + + printf("\nchart %s\n", BMENAMES[k]); + + maxwav=0; + minwav=9999; + evcount = 0; + mcount = 0; + for(i = offset + 4; i <= offset+chartl -4; i+=8) + { + evcount++; + data1 = buffer+1+i; + data2 = (unsigned short int *)(buffer+i+2); + time = (int*)(buffer+i-4); + //printf("data2: %d") + if(*time == 0x7FFFFFFF) + { + printf("%x(%x): END SEQUENCE EVENT\n", *time, i); + continue; + } + + switch(buffer[i]) + { + case 2: //keysound preload + case 3: + if(*data2 < minwav) minwav = *data2; + if(*data2 > maxwav) maxwav = *data2; + case 0: //keypress, preloads + case 1: + switch(*data1) + { + case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: + + if(buffer[i] == 3 || buffer[i] == 2) {if(v>3) printf("%d(%x): LOAD KEY%d P%d: SAMPLE %d\n", *time, i, *data1+1, buffer[i]-1, *data2);} + else {if(v>2)printf("%d(%x): KEY EVENT: KEY%d P%d\n", *time, i, *data1+1, buffer[i]+1);} + continue; + break; + } + break; + case 4: //bgm change + if(*data1 == 1 || *data1 == 100) + { + if(v>1)printf("%d(%x): BPM CHANGE EVENT: %d %d\n", *time, i, *data1, *data2); + continue; + } + break; + case 5: //measure size + { + if(v>1)printf("%d(%x): MEASURE SIZE EVENT\n", *time, i); + if(*data1 == 4) continue; + } + break; + break; + case 6: //end song + if(*data1 == 0 || *data1 == 1) + { + printf("%d(%x): ENDSONG MARKER for player %d\n", *time, i, *data1+1); + continue; + } + break; + case 7: //autoplay + if(*data1 == 0); + { + if(*data2 < minwav) minwav = *data2; + if(*data2 > maxwav) maxwav = *data2; + if(v>3) printf("%d(%x): AUTOPLAY SAMPLE %d\n", *time, i, *data2); + continue; + } + case 8: //jugdement + switch(*data1) + { + case 0: case 1: case 2: case 3: case 4: case 5: + continue; + break; + } + break; + case 0xC: //measure line + if(*data1 == 0 || *data1 == 1) + { + if(*data1 == 0) mcount++; + if(v>1) printf("%d(%x): MEASURE LINE EVENT P%d (%d)\n", *time, i, *data1+1, mcount); + continue; + } + break; + case 0x10: + if(*data1 == 0 || *data1 == 1) + { + printf("%d(%x): NOTECOUNT EVENT: P%d %d\n", *time, i, *data1+1, *data2); + continue; + } + break; + default: + break; + } + + printf("UNKNOWN EVENT AT %d(%x): ID:%d DATA1:%d DATA2:%d\n", *time, i, buffer[i], *data1, *data2); + + } + printf("sample preload indices: highest: %d, lowest: %d\n", maxwav, minwav); + printf("%d events in all\n", evcount); + } + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/timebase_single.c b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/timebase_single.c new file mode 100644 index 0000000..f5a2336 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/src/timebase_single.c @@ -0,0 +1,103 @@ +//timebase_single.c by ryuuou +//changes the base fps value of .1 files like timebase.exe, but works on a bunch of single .1 files instead of folders +//this is mainly to assist with custom songs so that you don't have to timebase your whole folder again for single songs and deal with file versions + +#include +#include +#include +#include + +#define byte unsigned char + +#define CHARTCOUNT 7 +#define EVENTSIZE 8 +#define FPS_STANDARD_GOLD 60.05 +#define FPS_STANDARD_DD 59.95 + +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; + +int main(int argc, const char **argv) +{ + int i,j,k; + float basefps, targetfps; + FILE *in, *out; + byte *buf; + int *p; + int flength; + int pos, len; + + printf("timebase_single by ryuuou\n\tchanges the base fps of .1 files like timebase.exe,\n\tbut works on a batch of files instead of folders\n\n"); + if(argc < 2) + { + printf("usage: timebase_single ...\n\talternatively drop a bunch of .1 files on the executable\n"); + getchar(); + return 0; + } + + basefps = targetfps = 0; + + printf("please input the current fps (or 0 for 60.05 or 1 for 59.95): "); + scanf("%f", &basefps); + if(basefps == 0) + basefps = FPS_STANDARD_GOLD; + if(basefps == 1) + basefps = FPS_STANDARD_DD; + printf("please input the target fps: (or 0 for 60.05 or 1 for 59.95)"); + scanf("%f", &targetfps); + if(targetfps == 0) + targetfps = FPS_STANDARD_GOLD; + if(targetfps == 1) + targetfps = FPS_STANDARD_DD; + + + printf("converting from %.3f fps to %.3f fps\npress enter to continue or ctrl-c to cancel\nMAKE SURE YOU HAVE BACKUPS OF YOUR FILES!!\n", basefps, targetfps); + getchar();getchar(); + + for(i = 2; i <= argc; i++) + { + printf("processing %s...", argv[i-1]); + in = fopen(argv[i-1], "rb"); + if(!in) + { + printf("file not found\n"); + continue; + } + + fseek(in, 0, SEEK_END); + flength = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(flength); + + fread(buf, flength, 1, in); + fclose(in); + + for(j = 0; j < CHARTCOUNT; j++) + { + p = (int*)(buf+offsets[j]); + if(!*p) continue; //no chart here + + printf("%s...", CHARTNAMES[j]); + + pos = p[0]; + len = p[1]; + + for(k = pos; k < pos+len; k += EVENTSIZE) + { + p = (int*)(buf+k); + if(*p == 0x7FFFFFFF || *p == 0x7F000000) //end sequence event, we skip these + continue; + *p = (int)roundf((float)*p * targetfps / basefps); + } + } + + out = fopen(argv[i-1], "wb"); + fwrite(buf, flength, 1, out); + fclose(out); + + free(buf); + + printf("done\n"); + } +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/timebase_single.exe b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/timebase_single.exe new file mode 100644 index 0000000..d2e5168 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/timebase_single.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/tools.README.txt b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/tools.README.txt new file mode 100644 index 0000000..aef9252 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/bme2ac_v0.5/bme2ac_v0.5/tools.README.txt @@ -0,0 +1,58 @@ +ALL TOOLS ARE OMAKE _ONLY, DO NOT COME RUNNING WITH PROBLEMS, BUGS, REQUESTS OR QUESTIONS HOW TO USE THEM. +Also they might be of absolutely no use to you. + + +crack2dx_new: + cracks and decomposes a .2dx file with variable filenames; supports 9th style to Empress + "crack2dx_new <2dx file> " + output format (0~4): + 0: 1.wav, 2.wav... + 1: 0001.wav, 0002.wav... + 2 (default): 01.wav, 02.wav..., ZZ.wav + 3: 01.wav, 02.wav..., FF.wav + +encrypt2dx: + encrypts unencrypted .2dx files (or any other file, no idea why you'd want to do that though) + "encrypt2dx " + choose the encryption you want, the output will always be "encrypted.2dx" + +parse1: + parses a .1 file and prints various information, mainly for debugging + "parse1 " + verbosity: + v (default): print standard info and summary only + vv: same as v, also print bpm info and measure related events + vvv: print everything except for keysound preload and autoplay events + vvvv: print pretty much everything + +create2dx_dumb: + creates an (troopers-)encrypted and unencrypted .2dx file from a .bme/.bms file or from BME-style named wav files in the same folder + "create2dx_dumb " + the file parameter is optional; if given it searches the .bme/.bms for wav references and create the .2dx files from wavs in the same folder + if no parameter is given, it simply searches the current directory for BME-style named wav files and uses those in order instead, hence _dumb + +timebase_single: + does the same as timebase, but can be used on a batch of files instead. + THIS OVERWRITES THE ORIGINAL FILES, MAKE BACKUPS BEFOREHAND, YOU HAVE BEEN WARNED! THIS ALSO KILLS EVERYTHING EXCEPT .1 FILES, THERE ARE NO SAFETIES! + "timebase_single ..." + you will need to specify the base fps currently used inside the .1 file (or 0 or 1 for the respective defaults) + use your refresh rate for the target fps + this also allows converting from troopers to gold and below: + insert 1000 for the troopers fps and the default gold/dd-and-below fps + +merge1: + merges several .1 files into one; this can help when you have too large .2dx files because or different sounding charts + "merge1" + the .1 files have to be named according to the difficulty you want to extract from them: + b.1, n7.1...a14.1, so the final .1 file will have the n7 chart from n7.1, the h14 chart from h14.1 etc. + if you also provide a base.1, then all charts from that file will be taken and selectively overwritten by the other files you provide + (usefull if you only want to overwrite one chart out of 6 or so) + +checkeout: + checks your iidx environment for sanity to help search for errors + does not currently support graphics stuff like banners, but pretty much everything else that usually goes wrong + first of all PLACE checkeout.exe IN YOUR "data" FOLDER! RUN IT FROM THE COMMAND PROMPT (cmd.exe), NOT BY DOUBLECLICK! + "checkeout " + by default both warnings and errors are displayed, verbosity = "v" means errors only, "vv" means warnings only + warnings ("__") can be ignored for the most part (missing videos etc.) + errors ("!!") will most likely prevent iidx from booting or make the respective song crash. diff --git a/iidx/bme2ac workspace djt custom songs/songs/convertac.bat b/iidx/bme2ac workspace djt custom songs/songs/convertac.bat new file mode 100644 index 0000000..c3c0b3d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/convertac.bat @@ -0,0 +1,19 @@ +@ECHO OFF +for /r %%a in (".") do ( +cd "%%a" +rem for /r %%b in (".") do ( +rem cd "%%b" + +echo %%a + @ECHO ON + + ..\..\timebase_59 *.1 >> ..\..\log.txt + + for %%c in (*.2dx) do ( + ..\..\oldac2dx2newac2dx %%c >> ..\..\log.txt + ) + +@ECHO OFF +cd ..\.. +) +) diff --git a/iidx/bme2ac workspace djt custom songs/songs/convertcs.bat b/iidx/bme2ac workspace djt custom songs/songs/convertcs.bat new file mode 100644 index 0000000..46bbc9b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/convertcs.bat @@ -0,0 +1,31 @@ +@ECHO OFF +for /R %%a in (".") do ( +cd "%%a" +for /R %%b in (".") do ( +cd "%%b" + +move *Another7*.cs2 a7.cs2 +move *Another14*.cs2 a14.cs2 +move *Light14*.cs2 n14.cs2 +move *Light7*.cs2 n7.cs2 +move *7Keys*.cs2 h7.cs2 +move *14Keys*.cs2 h14.cs2 + +move *Another7*.cs a7.cs +move *Another14*.cs a14.cs +move *Light14*.cs n14.cs +move *Light7*.cs n7.cs +move *7Keys*.cs h7.cs +move *14Keys*.cs h14.cs + +move *^ * 01.wav + +@ECHO ON + +D:\bms\cs2ac >> ..\..\log.txt +@ECHO OFF +D:\bms\created2dx_cs2emp +@ECHO OFF +cd ..\.. +) +) diff --git a/iidx/bme2ac workspace djt custom songs/songs/convertogg.bat b/iidx/bme2ac workspace djt custom songs/songs/convertogg.bat new file mode 100644 index 0000000..2db8f45 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/convertogg.bat @@ -0,0 +1,3 @@ +mkdir old +move *.ogg old +for %%s in (old\*.ogg) do sox "%%s" -S -a "%%~ns.wav" diff --git a/iidx/bme2ac workspace djt custom songs/songs/convertwav.bat b/iidx/bme2ac workspace djt custom songs/songs/convertwav.bat new file mode 100644 index 0000000..8a89fc9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a "%%~ns%%~xs" rate -v 44k diff --git a/iidx/bme2ac workspace djt custom songs/songs/crack2dx_new.exe b/iidx/bme2ac workspace djt custom songs/songs/crack2dx_new.exe new file mode 100644 index 0000000..3721173 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/crack2dx_new.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/create2dx_cs2emp.exe b/iidx/bme2ac workspace djt custom songs/songs/create2dx_cs2emp.exe new file mode 100644 index 0000000..e4765cf Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/create2dx_cs2emp.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/cs2ac.exe b/iidx/bme2ac workspace djt custom songs/songs/cs2ac.exe new file mode 100644 index 0000000..92f2728 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/cs2ac.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/cygwin1.dll b/iidx/bme2ac workspace djt custom songs/songs/cygwin1.dll new file mode 100644 index 0000000..f1a22fe Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/cygwin1.dll differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/downsample and mono convertwav.bat b/iidx/bme2ac workspace djt custom songs/songs/downsample and mono convertwav.bat new file mode 100644 index 0000000..4372824 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/downsample and mono convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a -c 1 "%%~ns%%~xs" rate -v 21k diff --git a/iidx/bme2ac workspace djt custom songs/songs/downsample convertwav.bat b/iidx/bme2ac workspace djt custom songs/songs/downsample convertwav.bat new file mode 100644 index 0000000..628069b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/downsample convertwav.bat @@ -0,0 +1,3 @@ +mkdir old +move *.wav old +for %%s in (old\*.wav) do sox "%%s" -S -a "%%~ns%%~xs" rate -v 21k diff --git a/iidx/bme2ac workspace djt custom songs/songs/dummy.WAV b/iidx/bme2ac workspace djt custom songs/songs/dummy.WAV new file mode 100644 index 0000000..87cbf70 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/dummy.WAV differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/fixtimingwindows.exe b/iidx/bme2ac workspace djt custom songs/songs/fixtimingwindows.exe new file mode 100644 index 0000000..4fe2df9 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/fixtimingwindows.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/h14.bme b/iidx/bme2ac workspace djt custom songs/songs/h14.bme new file mode 100644 index 0000000..3f8e2b8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/h14.bme @@ -0,0 +1,23 @@ + +*---------------------- HEADER FIELD + +#PLAYER 2 +#GENRE +#TITLE +#ARTIST +#BPM 573 +#PLAYLEVEL 1 +#RANK 3 +#STAGEFILE + + + + + + + + + +*---------------------- MAIN DATA FIELD + + diff --git a/iidx/bme2ac workspace djt custom songs/songs/h7.bme b/iidx/bme2ac workspace djt custom songs/songs/h7.bme new file mode 100644 index 0000000..3f8e2b8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/h7.bme @@ -0,0 +1,23 @@ + +*---------------------- HEADER FIELD + +#PLAYER 2 +#GENRE +#TITLE +#ARTIST +#BPM 573 +#PLAYLEVEL 1 +#RANK 3 +#STAGEFILE + + + + + + + + + +*---------------------- MAIN DATA FIELD + + diff --git a/iidx/bme2ac workspace djt custom songs/songs/merge1.exe b/iidx/bme2ac workspace djt custom songs/songs/merge1.exe new file mode 100644 index 0000000..1d6b6c0 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/merge1.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/oggdec.exe b/iidx/bme2ac workspace djt custom songs/songs/oggdec.exe new file mode 100644 index 0000000..54193b9 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/oggdec.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/oldac2dx2newac2dx.exe b/iidx/bme2ac workspace djt custom songs/songs/oldac2dx2newac2dx.exe new file mode 100644 index 0000000..795240c Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/oldac2dx2newac2dx.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/output.1 b/iidx/bme2ac workspace djt custom songs/songs/output.1 new file mode 100644 index 0000000..f9a3228 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/output.1 differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/output.2dx b/iidx/bme2ac workspace djt custom songs/songs/output.2dx new file mode 100644 index 0000000..89840d2 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/output.2dx differ diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/1.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/1.h new file mode 100644 index 0000000..9873be1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/1.h @@ -0,0 +1,921 @@ +//1.h +//deals with parsing the bms files for events and converting them into a chain of .1 file events and other .1 related stuff +//largely based on DXAC1.pas (QQQ) + +//2dx ac framerate +#define FPS_GOLD 60.05 //According to Tau GOLD uses this framerate instead of the standard 60.04 for internal computations +#define FPS_DD 59.95 //framerate for DistorteD and up +#define PRELOAD_DELAY 200 //specifies the maximum keysound preload delay before the actual key in ms +#define ENDSONG_DELAY 3000 //end a song 3 seconds after the last measure + +//BMS event/channel list + +#define BMS_BPM_CUST 8 +#define BMS_BPM 3 +#define BMS_STOP 9 + +#define BMS_AUTOPLAY 1 + +#define BMS_P1_1 11 +#define BMS_P1_2 12 +#define BMS_P1_3 13 +#define BMS_P1_4 14 +#define BMS_P1_5 15 +#define BMS_P1_6 18 +#define BMS_P1_7 19 +#define BMS_P1_S 16 + +#define BMS_P2_1 21 +#define BMS_P2_2 22 +#define BMS_P2_3 23 +#define BMS_P2_4 24 +#define BMS_P2_5 25 +#define BMS_P2_6 28 +#define BMS_P2_7 29 +#define BMS_P2_S 26 + +//.1 file event type list + +#define ONE_TYPE_BPM 4 +#define ONE_DUMMY 0xF0 +#define ONE_STOP 0xF1 //this is not the actual event, just a marker for later +#define ONE_LONG_P1 0xF2 //same here +#define ONE_LONG_P2 0xF3 //same here + +#define ONE_AUTOPLAY 7 + +#define ONE_TYPE_P1 0 +#define ONE_TYPE_P2 1 + +#define ONE_MEASURE 0xC + +#define ONE_NOTECOUNT 0x10 +#define ONE_BAD 0x10 +#define ONE_MEASURESIZE 5 + +#define ONE_JUDGEMENT 8 + +#define ONE_ENDSONG 6 +#define ENDSEQ 0x7FFFFFFF + +#define ONE_KEYCHANGE1 2 +#define ONE_KEYCHANGE2 3 + +#define EVENTSIZE 8 + + + +//we build a linked list of events so we can easily append stuff +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; + + void *prev; + void *next; +} event; + +//this will hold pointers to the first node for each chart +event *onecharts[CHARTCOUNT]; + +//These are from D.C.Fish (Gold AC) +//note to self: look up other charts +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +//offsets inside the .1 header for chart i +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; + +//the write order inside the official .1 charts is h7, h14, n7, n14, a7, a14, b, maybe this matters +//anyway, it's not much hassle, so let's write them in "official" order +int worder[7] = {0, 4, 1, 5, 2, 6, 3}; +int onesize; //size of the whole .1 file +byte *onefile; + + + +//inserts an event into the chain for chart i while keeping the timestamps in ascending order +//this might seem overly complicated, but for several reasons we need to know where exactly + //events with equal timestamps are positioned +void add_event(int i, event ev) +{ + event *temp, *ev_n; + + if(!onecharts[i]) + { + onecharts[i] = malloc(sizeof(event)); + memcpy(onecharts[i], &ev, sizeof(event)); + onecharts[i]->prev = onecharts[i]->next = NULL; + return; + } + + temp = onecharts[i]; + + while(temp->next != NULL && temp->time < ev.time) + { + temp = temp->next; + } + + ev_n = malloc(sizeof(event)); //create the new event to insert + memcpy(ev_n, &ev, sizeof(event)); //and copy what we need + + if(temp->time < ev.time) //this is an append or insert after the current note + { + if(temp->next) + ((event*)temp->next)->prev = ev_n; + + ev_n->next = temp->next; + temp->next = ev_n; + + ev_n->prev = temp; + + } + else //this is an insert before the current node + { + if(temp->prev) + ((event*)temp->prev)->next = ev_n; + else //this is to become the first element + onecharts[i] = ev_n; + + ev_n->next = temp; + ev_n->prev = temp->prev; + + temp->prev = ev_n; + } +} + +//deletes an event from the chain +void delete_event(event *ev) +{ + event *pr, *nx; + pr = ev->prev; + nx = ev->next; + + if(pr) + pr->next = nx; + if(nx) + nx->prev = pr; + + free(ev); +} + +//converts the bms events to .1 events +//this does _not_ add the standard events yet +void convert_to_1_events() +{ + int i,j,k; + char measure_c[4]; //use this to store the first 3 bytes after '#'. I hate writing parsers + int measure,channel; + float mtime; + int denom, nume; //denominator and nominator of a note inside a measure + + byte ev_type; + float ev_time; + byte ev_data1; + int bms_ev; + event temp; + + int ln; + + unsigned short int ev_data2; + + char *data; + + measure_c[3] = '\0'; + + temp.next = temp.prev = NULL; + + printf("converting bms charts to .1 charts\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].length) continue; + + printf("chart %s: ", CHARTNAMES[i]); + + data = bms[i].data; + + for(j = 1; j < bms[i].length-6; j++) + { + //find a candidate (parse for "#XXXYY:") + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf(data+j+4, "%d", &channel); + + //check the channel and if we support it, if so set the event type and data type + //don't be scared by the fancy switch magic, we just evaluate bms events to .1 events in a tricky way to save typing work :P + ev_data1 = 0; + ev_data2 = 0; + ev_time = 0; + ev_type = 0; + + if(channel >= 50) //longnotes + { + channel -= 40; + ln = 1; + //printf("!"); + } + else + ln = 0; + + switch(channel) + { + case BMS_P1_S: + ev_data1 += 4; + case BMS_P1_6: + case BMS_P1_7: + ev_data1 -= 2; + case BMS_P1_1: + case BMS_P1_2: + case BMS_P1_3: + case BMS_P1_4: + case BMS_P1_5: + ev_data1 += channel - 11; + ev_type = ONE_TYPE_P1; + break; + + case BMS_P2_S: + ev_data1 += 4; + case BMS_P2_6: + case BMS_P2_7: + ev_data1 -= 2; + case BMS_P2_1: + case BMS_P2_2: + case BMS_P2_3: + case BMS_P2_4: + case BMS_P2_5: + ev_data1 += channel - 21; + ev_type = ONE_TYPE_P2; + break; + + case BMS_BPM: + case BMS_BPM_CUST: + ev_type = ONE_TYPE_BPM; + break; + + case BMS_AUTOPLAY: + ev_type = ONE_AUTOPLAY; + break; + + case BMS_STOP: + ev_type = ONE_STOP; + break; + + default: + //printf("%d ", channel); + continue; //unsupported event type, we skip this + } + + //calculate the start of the measure + mtime = 0; + for(k = 0; k < measure; k++) + mtime += bms[i].msize[k]; + + //now that we've got the measure and the channel, count the number of events for this measure to get the denominator + denom = 0; + for(k = j+7/*after the ':'*/; (k<=bms[i].length) && (data[k] != '\n') && (data[k] != '\r') && (data[k] != '#'); k+=2) //just to be sure... + denom++; + + k = j + 7; + nume = 0; + + //now for the interesting part + for(k = j+7; nume < denom; k+=2) + { + ev_time = mtime + ((float)nume/(float)denom)*bms[i].msize[measure]; + ev_time *= 4. * 60. * 1000./ bms[i].bpm; //timestamp in milliseconds + nume++; + + bms_ev = strtoi(data+k); + + if(!bms_ev) + continue; //'00', skip this + + if(channel == BMS_AUTOPLAY) + { + ev_data2 = bms[i].ref[bms_ev-1]; //remember that we always count from 0 while bms indices start from 1 + } + else if(channel == BMS_BPM_CUST) + { + //printf("BPM change!\n"); + if(((bms[i].bpmchange[bms_ev-1] - (int)bms[i].bpmchange[bms_ev-1]) < 0.01) || (bms[i].bpmchange[bms_ev-1] > 655.35)) + { + //an interesting way to work around the short int limit + ev_data1 = 1; + ev_data2 = (unsigned short int)(bms[i].bpmchange[bms_ev-1]); + } + else + { + ev_data1 = 100; + ev_data2 = (unsigned short int)bms[i].bpmchange[bms_ev-1]*100; + } + } + else if(channel == BMS_BPM) + { + //printf("BPM change!\n"); + ev_data1 = 1; + ev_data2 = (unsigned short)strtoi_h(data+k); //in this case we have to use hex, meh + } + else if(channel == BMS_STOP) + { + //printf("STOP!\n"); + ev_data2 = (unsigned short)strtoi(data+k) - 1; //BMS starts indexing at 1 blablabla + //continue; + } + else if(channel >= 11 && channel <= 29) + { + //for now we store the keysound number in the key event; we create the actual keysound event later + ev_data2 = bms[i].ref[bms_ev-1]; //data2 is the keysound index inside the .2dx file + + if(bms_ev == bms[i].lnobj) + { + //longnote end marker; skip this to prevent useless notes + //printf("!"); + continue; + } + + if(channel <= 19) //1player side + { + bms[i].numkeys[0]++; + + if(ln) //longnote handling + ev_type = ONE_LONG_P1; //we will have to decrease the notecount later because the longnote's endnote doesn't count + } + else //2player side + { + bms[i].numkeys[1]++; + + if(ln) + ev_type = ONE_LONG_P2; + } + } + + //now add the actual event to the list; + + temp.time = ev_time; + temp.type = ev_type; + temp.data1 = ev_data1; + temp.data2 = ev_data2; + //printf("time:%d channel:%d type:%d(bms:%d), data1:%d, data2:%d\n", (int)ev_time, channel, ev_type, bms_ev, ev_data1, bms[i].ref[bms_ev-1]); + add_event(i, temp); + if(i >= 4 && temp.type == ONE_TYPE_BPM) add_event(i, temp); //for some reason these are added twice for double charts + } + + } + } + printf("keypresses: %d(P1) %d(P2)\n", bms[i].numkeys[0], bms[i].numkeys[1]); + //printf("adding measure lines...\n"); + //now that we're done with the normal events, add the measure lines + ev_time = 0; + temp.time = 0; + temp.type = ONE_MEASURE; + temp.data1 = 0; + temp.data2 = 0; + for(j = 0; j <= bms[i].mcount; j++) + { + temp.time = ev_time * 4. * 60. * 1000. / bms[i].bpm; + if(i >= 4) //for double charts, add a measure line for the 2p side, too + { + temp.data1 = 1; + add_event(i, temp); + } + temp.data1 = 0; + add_event(i, temp); + ev_time += bms[i].msize[j]; + } + + //we add this dummy event as the marker for the end of the last measure + //note that this is not really optimal for calculating the end of the song (will fix later) + temp.type = ONE_DUMMY; + temp.time = ev_time * 4. * 60. * 1000. / bms[i].bpm; + add_event(i, temp); + } + +} + +void add_standard_events() +{ + int i,j,k; + + event total_notes_p1, total_notes_p2; + event bpm; //starting bpm + event msize; //measure size + event timings; //timing windows + event endmark; //marks the end of the song + event endseq; //end sequence + event *temp; + int twop = 0; //double chart indicator + + printf("adding standard events..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + if(i >= 4) twop = 1; + else twop = 0; + + printf("%s...", CHARTNAMES[i]); + + for(k = twop; k >= 0; k--) //double charts have two entries for everything, so add them in, too + { + + memset(&total_notes_p1, 0, sizeof(event)); + memset(&total_notes_p2, 0, sizeof(event)); + memset(&bpm, 0, sizeof(event)); + memset(&msize, 0, sizeof(event)); + memset(&timings, 0, sizeof(event)); + memset(&endmark, 0, sizeof(event)); + memset(&endseq, 0, sizeof(event)); + + + total_notes_p1.type = ONE_NOTECOUNT; + total_notes_p1.data2 = bms[i].numkeys[0]; + + total_notes_p2.type = ONE_NOTECOUNT; + total_notes_p2.data1 = 1; + total_notes_p2.data2 = bms[i].numkeys[1]; + + bpm.type = ONE_TYPE_BPM; + if((bms[i].bpm-(int)bms[i].bpm < 0.01) || (bms[i].bpm > 655.35)) //ass-check for fractional bpm, probably doesn't even matter + { + bpm.data1 = 1; + bpm.data2 = (unsigned short int)(bms[i].bpm); + } + else + { + bpm.data1 = 100; + bpm.data2 = (unsigned short int)bms[i].bpm*100; + } + + msize.type = ONE_MEASURESIZE; + msize.data1 = 4; + msize.data2 = 4; + + //add judgement events + timings.type = ONE_JUDGEMENT; + for(j = 5; j >= 0; j--) + { + timings.data1 = (byte)j; + timings.data2 = judgements[j]; + add_event(i, timings); + } + + add_event(i, msize); + add_event(i, bpm); + if(k != 1) + { + add_event(i, total_notes_p2); + add_event(i, total_notes_p1); + } + + + temp = onecharts[i]; + while(temp->next) temp = temp->next; //temp->type == ONE_DUMMY + + endmark.type = ONE_ENDSONG; + endmark.time = temp->time + ENDSONG_DELAY*(1-twop*(1-k)); //evil hack :D; ensures we add both the p1 and the p2 event at the same time + endmark.data1 = k; + + add_event(i, endmark); + + } + + endseq.time = ENDSEQ; + add_event(i, endseq); + + //kill the dummy event + temp = onecharts[i]; + while(temp = temp->next) + { + if(temp->type == ONE_DUMMY) + { + delete_event(temp); + break; //only one dummy event per chart + } + } + } + PNEWLINE; +} + +void handle_longnotes() +{ + int i, player, time, count; + + event *temp; + event *temp2; + + printf("processing longnotes (if neccesary).."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + printf("%s..", CHARTNAMES[i]); + + temp = onecharts[i]; + count = 0; + + //find longnote events + do + { + if(temp->type == ONE_LONG_P1 || temp->type == ONE_LONG_P2) //longnote + { + count++; + if(temp->type == ONE_LONG_P1) + player = ONE_TYPE_P1; + else + player = ONE_TYPE_P2; + + //find the exact time the longnote ends + temp2 = temp; + while(temp2 = temp2->next) + { + if(temp2->type == temp->type && temp2->data1 == temp->data1) //end the longnote + { + time = temp2->time; + + delete_event(temp2); //kill the endnote + bms[i].numkeys[player]--; + break; + } + } + + //start again; this time delete all keypresses on the same lane during and _at the end_ of the longnote + temp2 = temp; + while(temp2 = temp2->next) + { + if(temp2->time > time) + break; + + if(temp2->type == player && temp2->data1 == temp->data1) //same player, same lane + { + temp2 = temp2->prev; + delete_event(temp->next); //kill additional keypresses during a longnote + bms[i].numkeys[player]--; + } + } + } + } while(temp = temp->next); + printf("(%d)...", count); + } + PNEWLINE; +} + +//remove multiple keysound loads +void cleanup_1() +{ + int i,j,k; + + event *temp; + event *temp2; + event ref; + + printf("cleaning up charts.."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + printf("%s..", CHARTNAMES[i]); + memset(&ref, 0, sizeof(event)); + + //delete useless keysound loads; walk the chain once for the p1 side, once for the p2 side + for(k = 0; k <= 1; k++) + { + for(j = 0; j <= 7; j++) + { + ref.data2 = 0xFFFF; //just to be sure we don't accidently kill the first sample load + temp = onecharts[i]; + + do + { + if(temp->type == k+2 && temp->data1 == j) //soundchange for player k and key j + { + if(temp->data2 == ref.data2) + { + //printf("deleted a keysound event in %s: player:%d time:%d key:%d sound:%d\n", \ + CHARTNAMES[i], k+1, temp->time, temp->data1, temp->data2); + temp2 = temp->next; + delete_event(temp); + temp = temp2; + + if(!temp) break; + } + else + { + ref.data2 = temp->data2; + } + } + } while(temp = temp->next); + } + } + } + PNEWLINE; +} + +void create_1() +{ + int i; + int pos; //position + int size[CHARTCOUNT]; //size of the chains inside the .1 file + + event *temp; + + pos = 0x60; //start writing after the .1 header which is 96 bytes + memset(size, 0, sizeof(int)*CHARTCOUNT); + + onesize = 96; //header is always the same size + + printf("creating .1 file\n"); + //first calculate the size for each event chain and the resulting size of the .1 file + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) + continue; + + temp = onecharts[i]; + + do + { + //printf("(%d %d) ", temp->time, temp->type); + size[i] += EVENTSIZE; + } + while(temp = temp->next); + + onesize += size[i]; + //printf("size for %s is %d\n", CHARTNAMES[i], size[i]); + } + + + onefile = malloc(onesize); + memset(onefile, 0, onesize); + + //printf("onesize is %d\n", onesize); + + //write the header and the chains to the buffer + for(i = 0; i < CHARTCOUNT; i++) + { + //printf("size[worder[i]]: %d\n", size[worder[i]]); + if(!onecharts[worder[i]]) + continue; + + + memcpy(onefile+offsets[worder[i]], &pos, 4); //write the position of the chart + memcpy(onefile+offsets[worder[i]]+4, &size[worder[i]], 4); //write the size of the chart + + //write out the events + temp = onecharts[worder[i]]; + do + { + memcpy(onefile+pos, &temp->time, 4); + memcpy(onefile+pos+4, &temp->type, 1); + memcpy(onefile+pos+5, &temp->data1, 1); + memcpy(onefile+pos+6, &temp->data2, 2); + + pos += 8; + } + while(temp = temp->next); + + } + PNEWLINE; +} + +void adjust_bpm() +{ + int i; + + float oldbpm = 0; + float newbpm = 0; + int stime = 0; + int tdiff = 0; + event *temp; + + event *tadjust; + + printf("adjusting for (possible) BPM changes..."); + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + temp = onecharts[i]; + + oldbpm = bms[i].bpm; + + //search for bpm change events and adjust all timestamps after those events accordingly + do + { + if(temp->type == ONE_TYPE_BPM) + { + newbpm = temp->data2 / temp->data1; + stime = temp->time; + + if(oldbpm == newbpm) //no need to do anything + continue; + + tadjust = temp; + + //events are sorted by time so this works just peachy + while(tadjust = tadjust->next) + { + tdiff = tadjust->time - stime; + tdiff = (int)((float)tdiff * oldbpm / newbpm); //adjust the timestamp accordingly + tadjust->time = stime + tdiff; + } + + oldbpm = newbpm; + } + } + while(temp = temp->next); + } + PNEWLINE; +} + +void writeout_1() +{ + FILE *f; + + printf("writing .1 file to disk\n"); + f = fopen("output.1", "wb"); + fwrite(onefile, onesize, 1, f); + fclose(f); +} + + +void add_keysounds() +{ + event *key; + event *p; + event temp; + int i; + int tdiff; + + printf("adding keysound events..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + printf("%s...", CHARTNAMES[i]); + + //search the chain for key events + key = onecharts[i]; + do + { + if(key->type == ONE_TYPE_P1 || key->type == ONE_TYPE_P2) + { + //found a key event, let's add the keysound change for it + tdiff = 0; + + //walk the timeline backwards and try to find the previous key event for the same key + p = key; + while(p = p->prev) + { + if(p->type == key->type && p->data1 == key->data1) + { + tdiff = p->time; + break; + } + } + + //calculate the time difference between the two key events and place the keysound event right between them + + tdiff = key->time - tdiff; + + if(tdiff == key->time && key->time < PRELOAD_DELAY) //we found no key event before this one and the current key event is really close to time 0 + ; //do nothing as tdiff == key->time + else if(tdiff >= PRELOAD_DELAY*2) //the keys are far enough apart to use the standard preload delay + tdiff = PRELOAD_DELAY; + else //the keys are quite close together so place the keysound load event right between them + { + tdiff /= 2; + //printf("TDIFF: %d\n", tdiff); + } + + memcpy(&temp, key, sizeof(event)); + temp.time -= tdiff; + temp.type += 2; //preload event = playerside + 2 + + //printf("key: time:%d player:%d key:%d index:%d TDIFF:%d\n", key->time, key->type-2, key->data1+1, key->data2, tdiff); + //printf("keysoundevent: time:%d player:%d key:%d index:%d TDIFF:%d\n", temp.time, temp.type-2, temp.data1+1, temp.data2, tdiff); + add_event(i, temp); + + key->data2 = 0; + } + } + while(key = key->next); + } + PNEWLINE; +} + +void add_stop_events() +{ + int i; + + float bpm = 0; + + float tdiff = 0; + int d1, d2; + event *temp; + event *helper; + event bpm_help; + + printf("adjusting for (possible) stops..."); + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + if(!bms[i].stopcount) continue; + + printf("%s...", CHARTNAMES[i]); + + temp = onecharts[i]; + + //search for stop events and adjust all timestamps after those events accordingly + do + { + if(temp->type == ONE_STOP) + { + //find the bpm for the current stop event + helper = onecharts[i]; + do + { + if(helper->type == ONE_TYPE_BPM) + { + d1 = helper->data1; + d2 = helper->data2; + bpm = (float)helper->data2 / (float)helper->data1; + } + } while((helper = helper->next) && (helper->time <= temp->time)); + + //calculate the stop time + tdiff = bms[i].stops[temp->data2] / 192.; + tdiff = tdiff * 4. * 60. * 1000. / bpm; + + //adjust all event times after the stop event + helper = temp->next; + do + { + if(helper->time > temp->time && helper->time != ENDSEQ) //in case there's another event at the same time as the stop + helper->time += tdiff; + } + while(helper = helper->next); + + //add two bpm changes to simulate the stop + bpm_help.time = temp->time; + bpm_help.type = ONE_TYPE_BPM; + bpm_help.data1 = 100; + bpm_help.data2 = 100; //1 bpm (stop); iidx doesn't seem to support any lower + + add_event(i, bpm_help); + if(i >= 4) //as always, add another event for double charts + add_event(i, bpm_help); + + bpm_help.time += tdiff; + bpm_help.data1 = d1; + bpm_help.data2 = d2; //restore old bpm + + add_event(i, bpm_help); + if(i >= 4) + add_event(i, bpm_help); + } + } + while(temp = temp->next); + + //delete all stop events + + temp = onecharts[i]; + + do + { + helper = temp->next; + if(helper && helper->type == ONE_STOP) + delete_event(helper); + } + while(temp = temp->next); + } + PNEWLINE; +} + +void stretch_times(double factor) +{ + int i; + event *temp; + + for(i = 0; i < CHARTCOUNT; i++) + { + if(!onecharts[i]) continue; + + temp = onecharts[i]; + //walk the chain and multiply timestamps with factor + do + if(temp->time != ENDSEQ) + temp->time = (int)((float)temp->time * factor); + while(temp = temp->next); + } +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/2dx.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/2dx.h new file mode 100644 index 0000000..c97af08 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/2dx.h @@ -0,0 +1,94 @@ +//2dx.h +//deals with compiling the .2dx file + +#define TWODXHSIZE 72 //size of the .2dx header +#define WAVHSIZE 24 //size of the wav header + +int twodxsize; + +byte *tdx; //this will hold the decrypted .2dx file +byte *tdx_enc; //this will hold the encrypted .2dx file + +const byte wavheader[24] = { + '2', 'D', 'X', '9', //const string + 0x18, 0x00, 0x00, 0x00, //headersize (== 24) + 0x00, 0x00, 0x00, 0x00, //size of wave file (written at runtime) + 0x30, 0x32, 0xFF, 0xFF, //panning/initial volume? + 0x40, 0x00, 0x01, 0x00, //??? (64, 0, sample format, 0) + 0x00, 0x00, 0x00, 0x00 //??? (0, 0, 0, 0) +}; +//sample format notes: +//1: 44.1khz, 16bit MS ADPCM stereo +//0: 44.1khz, 16bit MS ADPCM mono +//8: almost but not the same as 1? +//7: ??? + +//construct the .2dx file +//specs were taken from Kitaru's create2dx.c (QQQ) +void create_2dx() +{ + int i, j, firstwav; + + printf("authoring .2dx file\n"); + //calculate the size of the final .2dx file + twodxsize = TWODXHSIZE + wavcount * WAVHSIZE + wavcount*4; //header + ToC + headers for wav files + for(i = 0; i < wavcount; i++) + twodxsize+=waves[i].length; + + twodxsize = CIELMOD8(twodxsize); //just make sure we don't run into unallocated memory while encrypting + + tdx = malloc(twodxsize); + memset(tdx, 0, twodxsize); + + //twodxsize = oldsize; + firstwav = TWODXHSIZE + wavcount*4; + + memcpy(tdx + 16, &firstwav, 4); //first wave position = 2dx header + size of TOC (= 72 + wavcount * sizeof(int)) + memcpy(tdx + 20, &wavcount, 4); //the total numbers of waves + + //write the ToC + printf("writing sample TOC...", firstwav); + j = firstwav; + for(i = 0; i < wavcount; i++) + { + //printf("%d...", j); + memcpy(tdx+TWODXHSIZE+i*4, &j, 4); + j += waves[i].length + WAVHSIZE; + } + + //write the waves + printf("writing keysounds (%d in all)...\n", wavcount); + j = firstwav; + for(i = 0; i < wavcount; i++) + { + //printf("%d...", waves[i].length); + memcpy(tdx+j, wavheader, 24); //write the header + memcpy(tdx+j+8, &waves[i].length, 4); //write the length + memcpy(tdx+j+24, waves[i].data, waves[i].length); + j += WAVHSIZE + waves[i].length; + } + //printf("twodxsize: %d\n", twodxsize); + //PNEWLINE; +} + + +//actually write the stuff to disk +void writeout_2dx() +{ + FILE *out; + + printf("writing output.2dx to disk\n"); + + /*out = fopen("decrypted.2dx", "wb"); + + //fflush(out); + + fwrite(tdx, twodxsize, 1, out); + + fclose(out);*/ + + out = fopen("output.2dx", "wb"); + fwrite(tdx_enc, twodxsize+8, 1, out); + fclose(out); + +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bme2ac.c b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bme2ac.c new file mode 100644 index 0000000..c706b1c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bme2ac.c @@ -0,0 +1,125 @@ +//bme2ac by ryuuou +//takes a bunch of bms/bme files and produces .2dx and .1 files (hopefully) usable with beatmania iidx ac +//!!!WARNING!!! THIS WILL PROBABLY FAIL HORRIBLY ON 64BIT PLATFORMS!!! Then again it might just work + +//still unsupported: +// - songs with missing wav files? + +//Changelog: +// v0.6 +// - greater accuracy in case of many bpm changes +// - proper longnote handling support +// v0.5 +// - partial support for freezenotes +// v0.4 +// - speedups +// - implemented #STOP events (_NOT_ #STP events!) +// - fixed a potential problem with fractional bpm +// - fixed a bug with file names that have '#' in them +// - the measure line of the last measure wasn't written out correctly +// - nixed decrypted.2dx; encrypted.2dx -> output.2dx +// - songs now end 3 seconds after the end of the last measure +// - added several tools: +// create2dx_new, crack2dx_new, timebase_single, encrypt2dx, merge1, parse1; with sources +// v0.3 +// - killed debug output +// - standard events are now written after bpm corrections to avoid screwing with the end-song event +// - keysound preload events are now dynamic and always placed between keys; this should fix wrong keysounds on fast repeats once and for all +// v0.2 +// - implemented bpm changes +// - implemented changing measure sizes, this should fix a lot of offsync songs +// v0.1 +// - initial release + + +#include "common.h" + +#include "bms.h" +#include "wav.h" +#include "2dx.h" +#include "crypt.h" +#include "1.h" +#include + +//initialize stuff, set things to zero etc. +void init() +{ + memset(bms, 0, sizeof(bmsfile)*CHARTCOUNT); + memset(waves, 0, sizeof(WAVE)*MAXWAVS*CHARTCOUNT); + + memset(onecharts, 0, sizeof(event*)*CHARTCOUNT); + + wavcount = 0; + wavlen = 0; + onesize = 0; + onefile = NULL; + + twodxsize = 0; + + style = 0; //standard = troopers + return; +} + +int main() +{ + init(); + + printf("bme2ac v0.6 by ryuuou\n \ + Converts BME/BMS style files and WAVs into .1 and .2dx files\n\ + Suitable for use with beatmania IIDX TROOPERS AC and up _only_\n\n\n"); + + if(!readbmsfiles()) + { + printf("found no charts, aborting\n"); + getchar(); + return 1; + } + + parsebms_wav(); + + parsebms_bpm(); + parsebms_measures(); + parsebms_stops(); + create_wavtable(); + if(load_waves()) + { + printf("!!!Several wave files failed to load, IIDX might crash!!!\npress enter to continue\n"); + getchar(); + //return 1; + } + + convert_to_1_events(); + + handle_longnotes(); + + stretch_times(100.); //for greater accuracy in case of many bpm changes + adjust_bpm(); + stretch_times(1./100.); + //note: we still have inaccuracy of 1ms while converting from bms, but there's nothing we can do about that + + add_keysounds(); + cleanup_1(); + + add_standard_events(); + + add_stop_events(); //we need at least one bpm event for calculations + + //stretch_times(FPS_DD/1000.); //for DistorteD to Happy Sky + //stretch_times(FPS_GOLD/1000.); //for GOLD + + create_1(); + + create_2dx(); + encrypt_2dx(tdx, twodxsize, &tdx_enc); + + writeout_1(); + writeout_2dx(); + + if(twodxsize > 25000000) + printf("!!!.2dx file is larger than 25,000,000 bytes, IIDX will crash trying to load it!!!\n"); + + printf("\nDone. Press enter to exit.\n"); + //getchar(); + return 0; +} + diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bms.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bms.h new file mode 100644 index 0000000..369ed4c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/bms.h @@ -0,0 +1,237 @@ +//bms.h +//stuff for .bms/.bme processing + +//searches *bms for stuff +//WARNING: this is very intolerant concerning capitalization and trailing whitespaces! + +#define BMS_MSIZE 2 + +typedef struct +{ + int length; + byte* data; + unsigned char wavnames[MAXWAVS][64]; + int ref[MAXWAVS]; + float bpmchange[MAXWAVS]; + int bpmchangecount; + float* msize; + int mcount; + float bpm; + int stopcount; + float stops[MAXWAVS]; + int lnobj; + int numwaves; + int numkeys[2]; +} bmsfile; + +bmsfile bms[CHARTCOUNT]; //one bme for each chart + +//attempt to read in the charts; returns the number of loaded charts +int readbmsfiles() +{ + int ret = 0; + int i; + FILE *f; + + printf("trying to open charts\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + printf("%s...", BMENAMES[i]); + f = fopen(BMENAMES[i], "rb"); + + if(f == NULL) + { + printf("not found\n"); + continue; + } + + ret++; //we got a chart, yay + + fseek(f, 0, SEEK_END); + bms[i].length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + bms[i].data = malloc(bms[i].length); + + fread(bms[i].data, bms[i].length, 1, f); + + fclose(f); + printf("OK\n"); + } + PNEWLINE; +} + +//parse the bms files for WAVxy entries and build a list of wav files to load +//THIS BREAKS WITH FILENAMES LONGER THAN 63 BYTES!! But who would do that -.- +void parsebms_wav() +{ + int i,j,k,l; + char *data; + + printf("parsing bms for wav references..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 6; k++) + { + l = 0; + if(data[k] == '#' && data[k+1] == 'W' && data[k+2] == 'A' && data[k+3] == 'V') + { + j = strtoi(data+k+4) - 1; + k += 7; //skip to the filename (after "#WAVxy ") + while((data[k+l] != '\n') && (data[k+l] != '\r') && k+l < bms[i].length) //CR or LF + l++; //count the length of the filename + + //bms[i].wavnames[j] = malloc((l+1)*sizeof(unsigned char)); + memcpy(bms[i].wavnames[j], data+k, l); //copy the wavename + + //bms[i].wavnames[j][l] = '\0'; //terminate the string //everything is zero anyway + bms[i].numwaves++; + //break; //we found what we wanted + } + } + printf("%s: %d...", CHARTNAMES[i], bms[i].numwaves); + } + PNEWLINE; +} + +//parse the bms files for BPMxy entries, essentially works the same as parsebpm_wav() +void parsebms_bpm() +{ + int i,j,k; + char *data; + + printf("parsing bms for BPM data..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 5; k++) + { + if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] == ' ') + { + k += 5; + sscanf((const char*)(data+k), "%f", &bms[i].bpm); + printf("%s: %.2fbpm...", CHARTNAMES[i], bms[i].bpm); + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] != ' ') + { + j = strtoi(data+k+4) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &bms[i].bpmchange[j]); + + //printf("found a bpm change (index %d) in chart %s: %f\n", j, CHARTNAMES[i], bms[i].bpmchange[j]); + bms[i].bpmchangecount++; + } + } + } + PNEWLINE; +} + +void parsebms_measures() +{ + int i, j; + int measure, channel; + byte *data; + byte measure_c[4]; + + measure_c[3] = '\n'; + + printf("parsing bms charts for measure data..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].length) continue; + + printf("%s...", CHARTNAMES[i]); + + data = bms[i].data; + + //we now look for '#X' where X is a number + for(j = 0; j < bms[i].length-6; j++) + { + //find a candidate + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + + if(measure > bms[i].mcount) bms[i].mcount = measure; //keep track of the highest measure count for later + } + } + + bms[i].msize = malloc(sizeof(float)*(bms[i].mcount+1)); + + for(j = 0; j <= bms[i].mcount; j++) + bms[i].msize[j] = 1.; //default measure size is 1 (4/4 measure) + + //now that we know the measure count, parse for measure length events + for(j = 0; j < bms[i].length-6; j++) + { + //find a candidate + if(data[j] == '#' && data[j+6] == ':') + { + sscanf(data+j+4, "%d", &channel); + + if(channel == BMS_MSIZE) + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf((const char*)(data+j+7), "%f", &bms[i].msize[measure]); //read in the new measure size + //printf("Measure size change in %s (m:%d, v:%f)\n", CHARTNAMES[i], measure, bms[i].msize[measure]); + } + } + } + //TODO: Do we need measure size events for the .1 file? + } + PNEWLINE; +} + +void parsebms_stops() +{ + int i,j,k; + char *data; + + printf("parsing bms for stops..."); + for(i = 0; i < CHARTCOUNT; i++) + { + if(bms[i].length == 0) + continue; + + data = bms[i].data; + + for(k = 0; k < bms[i].length - 6; k++) + { + if(data[k] == '#' && data[k+1] == 'S' && data[k+2] == 'T' && data[k+3] == 'O' && data[k+4] == 'P') + { + j = strtoi(data+k+5) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &bms[i].stops[j]); + + //printf("found a stop (index %d) in chart %s: %f\n", j, CHARTNAMES[i], bms[i].stops[j]); + bms[i].stopcount++; + } + + if(data[k] == '#' && data[k+1] == 'L' && data[k+2] == 'N' && data[k+3] == 'O' && data[k+4] == 'B' && data[k+5] == 'J') + { + k += 7; + bms[i].lnobj = strtoi(data+k); + //sscanf((const char*)(data+k), "%d", &bms[i].lnobj); + + //printf("found a lnobj in chart %s: %d\n", CHARTNAMES[i], bms[i].lnobj); + } + } + } + PNEWLINE; +} + diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/common.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/common.h new file mode 100644 index 0000000..0f87b20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/common.h @@ -0,0 +1,77 @@ +//common.h + + +#include +#include +#include +#include + + +#define MAXWAVS (36*36-1) //wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define CHARTCOUNT 7 //beginner + (normal,hyper,another times two), what about kaiden in gold cs? + +#define PNEWLINE printf("\n") //used too often + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) //rounds (a) up to the next mod 8 int + +typedef unsigned char byte; + +//chartorder inside .1 file: h7, n7, a7, b, h14, n14, a14 +const char *BMENAMES[] = { "h7.bme", "n7.bme", "a7.bme", "b.bme", "h14.bme", "n14.bme", "a14.bme" }; //we use constant filenames here for ease of coding/use +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int style; //produce files for this iidx version; 0 == Troopers, 1 == GOLD, 2 == DistorteD and Happy Sky +float factor; //us this factor to strech .1 event time indices (based on version); 1 for Troopers, FPS/1000 for everything else + + +//helper functions for BME numbering weirdness; +//converts a number to a 01-ZZ style string and places that in the first two bytes of str +void itostr(char *str, int i) +{ + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; +} + +//the above in inverse; convert a BME-style numbering to int. +//stupidly tries to convert the first two bytes of *str +int strtoi(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 36*a + b; + + return i; +} + + +//does the same as the above but converts from hex instead +int strtoi_h(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 16*a + b; + + return i; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/crypt.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/crypt.h new file mode 100644 index 0000000..a310e3b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/crypt.h @@ -0,0 +1,207 @@ + +//crypt.h +//code for encrypting .2dx files with DistorteD's algorithm/key + +//apparently konami's internal implementation of this doesn't do proper boundchecking and also doesn't zero its buffers, so there is some garbage left behind in the original files + +//format of encrypted .2dx file: +//header: +//4 bytes: identifier ("%e12" in case of distorted) +//4 bytes: length of the decrypted .2dx file +//after this follows the encrypted data + + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +byte cryptkey[8] = { 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03 }; //DistorteD'S encryption key + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//encrypts the .2dx file; this simply takes the reverse way from crack2dx.c by an unknown author (QQQ again, but HOLY SHIT that code is a mess (and buggy)) +int encrypt_2dx(byte *dec, int len, byte **enc) +{ + byte *cur; //current block of 8 bytes + int enclen; + + int i; + + //ciel to mod 8; + + enclen = len + 8; //length of the encoded 2dx = length of unencoded 2dx + headersize (8 bytes) + + if(enclen%8) + enclen += 8-enclen%8; + + *enc = malloc(enclen); + memset(*enc, 0, enclen); + memcpy(*enc+8, dec, len); //fill up the encoded array with unencoded stuff + + printf("encrypting .2dx file...\n"); + for(i = 8; i <= enclen - 8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = *enc+i; + + //Step 1: XOR the current block with the encrypted previous block + block_xor(cur, cur-8); + + //Step 2: Swap the lower and upper 4 bytes of the block + block_swap(cur); + + //Step 3: Further obfuscation with XOR; the lower 4 bytes are untouched, so encrypting works the same as decrypting + block_obfus(cur); + + //Step 4: XOR the block (yet again) with DistorteD's key + block_xor(cur, keys_11); + } + + memcpy(*enc, "%hid", 4); //encryption identifier (Troopers) + + memcpy(*enc+4, &len, 4); //write the length of the decoded 2dx file + + return enclen; +} + +int decrypt_2dx(byte *enc, byte **dec) +{ + int i; + int mult; + int len; + byte *buf; + byte *cur, *prev; + byte *cryptkey; + + buf = enc; + + //identify iidx version + + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + cryptkey = keys_16; //Empress + } + else + { + return -1; + } + + len = *((int*)(enc + 4)); + + if(len%8) + len += 8-len%8; + + + *dec = malloc(len); + //decrypt + + if(!(mult == 2)) //skip for unencrypted + { + memcpy(*dec, buf+8, len-8); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = *dec + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + + return len; +} \ No newline at end of file diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/wav.h b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/wav.h new file mode 100644 index 0000000..1407904 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/bme2ac new/wav.h @@ -0,0 +1,103 @@ +//wav.h +//deals with stuff like reading wavfiles and stuff and such stuff + +typedef struct +{ + int length; + char *data; + char *name; +} WAVE; + +WAVE waves[MAXWAVS*CHARTCOUNT]; //wasteful but safe, whatever... +int wavcount; //stores the number of wavefiles to be used in the 2dx file +int wavlen; //stores the sum of length all wavefiles we have loaded + +//this fills up "waves" while eliminating duplicates across bme files. while doing so it fills up the bms's structs reference array like this: +//for any bms[i].ref[j], j+1 is the index inside the bme file while ref[j] contains the index which will be used in the .2dx and .1 files +//TODO: What do we do when files are (intentionally?) missing? needs investigation on what 2dx does with 0-byte waves... +void create_wavtable() +{ + int i,j,k; + int dup = 0; + + printf("building wave index\n"); + for(i = 0; i < CHARTCOUNT; i++) + { + if(!bms[i].numwaves) continue; //no waves, no fun + + printf("%s...", CHARTNAMES[i]); + + for(j = 0; j < MAXWAVS; j++) + { + if(bms[i].wavnames[j][0] != 0) //a wave to load + { + //now check if we've found a wavefile with the same name before to avoid duplicates + for(k = 0; k < wavcount; k++) + { + if(!strcmp(waves[k].name, bms[i].wavnames[j])) + { + dup = 1; //this is a duplicate + //printf("dup(%d,%d %s == %s)\n", j, k, waves[k].name, bms[i].wavnames[j]); + break; + } + } + + if(dup) + { + bms[i].ref[j] = k+1; //save the reference for later use + //printf("%s (%d)\n", bms[i].wavnames[j], k); + dup = 0; + } + else //this is a new wavefile + { + wavcount++; //iidx starts counting samples at _1_, not 0 + bms[i].ref[j] = wavcount; //save the reference + waves[wavcount-1].name = bms[i].wavnames[j]; //remember decem^H^H^H^H^H the name of the ga..(ry + //printf("load(%d,%d %s)\n", j, wavcount, waves[wavcount-1].name); + } + } + } + } + printf("added %d wave files to table\n", wavcount); + return; +} + + +//actually load the wave files +int load_waves() +{ + int i, fail=0; + FILE *f; + + printf("loading wave files..."); + for(i = 0; i < wavcount; i++) + { + f = fopen(waves[i].name, "rb"); + if(f == NULL) + { + if(!fail) + printf("failed to load waves:\n"); + //printf("wav referenced but not found: %s\n", waves[i].name); + fail++; + printf("%s ", waves[i].name); + continue; + } + + fseek(f, 0, SEEK_END); + waves[i].length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + waves[i].data = malloc(waves[i].length); + + fread(waves[i].data, waves[i].length, 1, f); + + fclose(f); + //printf("loaded wave %s of length %d\n", waves[i].name, waves[i].length); + } + if(fail) + printf("\nout of %d wave files, %d were not found\n", wavcount, fail); + else + printf("all waves loaded successfully\n"); + PNEWLINE; + return fail; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/create2dx_cs2emp.c b/iidx/bme2ac workspace djt custom songs/songs/source/create2dx_cs2emp.c new file mode 100644 index 0000000..80622f0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/create2dx_cs2emp.c @@ -0,0 +1,254 @@ +//create2dx_dumb.c by ryuuou +//Authoring the 2dx file is based on create2dx.c by Kitaru +//Encrypting is taking the reverse way from crack2dx.c by some unknown author (at least to me) +//Packs BME-style sequenced .wav (01.wav to ZZ.wav, but should work with BMS-style 01 - FF as well) in the current folder +//into an unencrypted unencrypted.2dx and an DistorteD-style encrypted encrypted.2dx +//Takes no arguments and always outputs to the same files; only works with uppercase on unix but should work with lowercase on windows; +//We also assume that the ascending order or the wavefiles equals their order in the corresponding bme/bms file +//...hence "_dumb" + + +#include +#include +#include + +//wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define MAXWAVS (36*36-1) + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) + +typedef unsigned char byte; + +typedef struct{ + int length; + byte *data; + int offset; +} wavefile; + +const byte aftertoc[24] = { + '2', 'D', 'X', '9', //const string + 0x18, 0x00, 0x00, 0x00, //headersize (== 24) + 0x00, 0x00, 0x00, 0x00, //size of wave file (written at runtime) + 0x30, 0x32, 0xFF, 0xFF, //panning/initial volume? + 0x40, 0x00, 0x08, 0x00, //??? (64, 0, 8, 0) + 0x00, 0x00, 0x00, 0x00 //??? (0, 0, 0, 0) +}; + + +//helper function for BME numbering weirdness; +//converts a number to a 01-ZZ style string +char *itostr(int i) +{ + char *str; + + str = malloc(3); + + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; + + str[2] = '\0'; + + return str; +} + +/// +/// encryption related +/// + +byte cryptkey[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + +//Encrypts length bytes of inc and returns a pointer to the encoded array +byte *encrypt(byte *inc, int length) +{ + byte *data; + byte *cur; //current block of 8 bytes + + int i, enclen; + + enclen = 8 + CIELMOD8(length); //let's just make sure we're not running into uninitialized memory while encrypting + data = malloc(enclen); + + memset(data, 0, enclen); + memcpy(data+8, inc, length); //fill up the encoded array with unencoded stuff + + + for(i = 8; i <= enclen-8; i+=8) //encode in blocks of 8 bytes, start at byte 8 of data + { + cur = data+i; + + block_xor(cur, cur-8); + block_xor(cur, cryptkey+16); + block_obfus(cur); + block_xor(cur, cryptkey+8); + block_swap(cur); + block_obfus(cur); + block_xor(cur, cryptkey); + } + + memcpy(data, "%iO0", 4); //encryption identifier + enclen -= 8; + memcpy(data+4, &enclen, 4); //write the length of the decoded 2dx file + return data; +} + +int main(int argc, const char **argv) +{ + wavefile waves[MAXWAVS]; + + FILE *wavfile; + FILE *out; + FILE *bmsfile; + + byte *decrypted, *encrypted, *bms; + + int wav = 0; //wavefile count + int pos = 0, i = 0, ii = 0, j, firstwav = 0, bmslength = 0, len = 0; + int length = 72; //use this to compute the final file length along the way (72 = 2dx headersize) + int prev, maxwav; + + char wavepath[32]; //helperstring; ugly but works + + int bmestyle = 0; + memset(waves, 0, MAXWAVS*sizeof(wavefile)); + + printf("reading samples..."); + for(i = 1; i <= MAXWAVS; i++) //this is really inefficient but works, meh + { + if(bmestyle == 0) + { + sprintf(wavepath, "%s.wav", itostr(i)); + } + else if(bmestyle == 1) + { + sprintf(wavepath, "%d.wav", i); + } + + wavfile = fopen(wavepath, "rb"); + + if (wavfile != NULL) + { + //open the wave file and save its length and contents to the array + printf("%s...",wavepath); + fseek(wavfile, 0, SEEK_END); + waves[i-1].length = (int)ftell(wavfile); + fseek(wavfile, 0, SEEK_SET); + + waves[i-1].data = malloc(waves[i-1].length); + + fread(waves[i-1].data, waves[i-1].length, 1, wavfile); + + fclose(wavfile); + wav++; + length += 4 + 24 + waves[i-1].length; //toc index + header + actual length + maxwav = i; + } + } + + if(wav == 0) //learn2placefilesindirectories + { + printf("no wave files found, go die in a fire\n"); + return 0; + } + printf("OK\n"); + printf("\ntotal samplecount: %d, actual wavcount in .2dx: %d\n\n",wav, maxwav); + + wav = maxwav; + + for(i = maxwav-2; i >= 0; i--) + { + if(waves[i].length == 0) + { + waves[i].data = waves[i+1].data; + waves[i].length = waves[i+1].length; + printf("added wav: %i, len %i\n", i, waves[i].length); + length += waves[i].length; + } + } + + + //start constructing the 2dx file + decrypted = malloc(length); + memset(decrypted, 0, length); + + firstwav = 72+wav*4; //ugly... + memcpy(decrypted + 16, &firstwav, 4); //first wave position = 2dx header + size of TOC (= 72 + wavecount * sizeof(int)) + memcpy(decrypted + 20, &wav, 4); //the total numbers of waves + + printf("writing samples..."); + pos = firstwav; + for(i = 0; i < maxwav; i++) + { + memcpy(decrypted+pos, aftertoc, 8); //"2DX9" + headersize (== 24) + memcpy(decrypted+pos+8, &waves[i].length, 4); //size of the wave + memcpy(decrypted+pos+12, aftertoc+12, 12); //rest of the header + memcpy(decrypted+pos+24, waves[i].data, waves[i].length); //write the actual wav + memcpy(decrypted+0x48+(i*4), &pos, 4); //write toc entry + pos += 24 + waves[i].length; + } + printf("OK\n"); + + printf("encrypting..."); + encrypted = encrypt(decrypted, length); + printf("OK\n"); + + out = fopen("output.2dx", "wb"); //open the 2dx file and write out the array + fwrite(encrypted, 8+CIELMOD8(length), 1, out); + fclose(out); + + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/cs2ac v1.3.c b/iidx/bme2ac workspace djt custom songs/songs/source/cs2ac v1.3.c new file mode 100644 index 0000000..135df7b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/cs2ac v1.3.c @@ -0,0 +1,479 @@ +/* cs2ac by 697—14 */ +/* + 09/05/22 v1.0 CS GOLDê—p”Å + 09/05/24 v1.1 CS DJT‚ɉ¼‘Ήž + 09/05/28 v1.2 ƒŠƒtƒ@ƒNƒ^ƒŠƒ“ƒO + 09/05/30 v1.3 CS DistorteDˆÈ‘O‚ɉ¼‘Ήž +*/ + + +/* ì‹Æ‚È‚ª‚ç‚Ì‚ ‚ꂱ‚ê +/* + 0x07: 3rd style CS BGM autoplay + 0x0A: ??? style CS BGM autoplay + 0x82, 0x82: 3rd style CS ƒL[‰¹•ÏX? + ‹ŒCSƒo[ƒWƒ‡ƒ“DP•ˆ–ÊI—¹éŒ¾ƒCƒxƒ“ƒgƒoƒO‘Ήž + BGMŽ©“®‰‰‘tiindex==1j‚ª•¡””­“®‚³‚¹‚È‚¢ +*/ + +#include +#include +#include + +#define MAGNIA 16.71309 // 3rd style - 8th style +#define MAGNIB 16.68335 // 9th style - DJ TROOPERS + +#define NAMEMAX 32 + +double version = 1.3; + +FILE *in, *out; +int i_timeA; +double i_timeB; +int d_type; +int b_data[3]; +int t_notes[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int f_size[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int head_adrs; +int f_exist[7]; // 0:SPN 1:SPH 2:SPA 3:SPB 4:DPN 5:DPN 6:DPA +int filetype; +int t_base_type; +int maxwav; +char inName[NAMEMAX], + outName[NAMEMAX]; + +/* ƒwƒbƒ_‘‚«Š·‚¦ */ +int headWritingUnit(int dif){ + int adrsA, adrsB; + + switch(dif) { + case 0: adrsA = 0x08; adrsB = 0x0c; break; // SPN + case 1: adrsA = 0x00; adrsB = 0x04; break; // SPH + case 2: adrsA = 0x10; adrsB = 0x14; break; // SPA + case 3: adrsA = 0x18; adrsB = 0x1c; break; // SPB + case 4: adrsA = 0x38; adrsB = 0x3c; break; // DPN + case 5: adrsA = 0x30; adrsB = 0x34; break; // DPH + case 6: adrsA = 0x40; adrsB = 0x44; break; // DPA + } + + fseek(out, adrsA, SEEK_SET); + fwrite(&head_adrs, 1, 4, out); + fseek(out, adrsB, SEEK_SET); + fwrite(&f_size[dif], 1, 4, out); + head_adrs += f_size[dif]; + + return 0; +} + +/* ƒf[ƒ^‘‚«ž‚Ý */ +int dataWritingUnit(int dif){ + i_timeB = i_timeA; + switch(t_base_type){ + case 0: + i_timeB *= MAGNIA; + break; + case 1: + i_timeB *= MAGNIB; + break; + } + i_timeA = i_timeB; + fwrite(&i_timeA, 1, 4, out); + fwrite(&d_type, 1, 1, out); + fwrite(&b_data[0], 1, 1, out); + fwrite(&b_data[1], 1, 1, out); + fwrite(&b_data[2], 1, 1, out); + f_size[dif] += 8; + + return 0; +} + +int cs2ac(int dif){ + /* •ϔݒè */ + int i; + int temp; + int dp_flag; + int rtm_flag = 0; + int start_flag = 0; + int wav01_auto = 0; + + /* ˆ—•”•ª */ + /* •Ï”‰Šú‰» */ + t_base_type = 0; + f_size[dif] = 0; + t_notes[dif] = 0; + + if(dif >= 4){ + dp_flag = 1; + } + else { + dp_flag = 0; + } + + fseek(out, head_adrs, SEEK_SET); + + /* ƒTƒuƒwƒbƒ_‘‚«ž‚Ý */ + /* [00 00 00 00 10 00 00 00][00 00 00 00 10 01 00 00] */ + temp = 0x00; + for(i=0;i<0x04;i++){ + fwrite(&temp, 1, 1, out); + } + temp = 0x10; + fwrite(&temp, 1, 1, out); + temp = 0x00; + for(i=0;i<0x07;i++){ + fwrite(&temp, 1, 1, out); + } + temp = 0x0110; + fwrite(&temp, 1, 2, out); + temp = 0x00; + for(i=0;i<0x02;i++){ + fwrite(&temp, 1, 1, out); + } + f_size[dif] += 16; + + /* •ˆ–ÊI’[‚܂ŌJ‚è•Ô‚µ */ + while((d_type != 0x06)||((dp_flag != 2)&&(dp_flag != 5))) { + /* ƒf[ƒ^‰Šú‰» */ + i_timeA = 0x00; + d_type = 0x00; + b_data[0] = 0x00; + b_data[1] = 0x00; + b_data[2] = 0x00; + + /* ƒf[ƒ^“ǂݞ‚Ý */ + switch(filetype){ + case 1: case 2: // CS3(DJT,GOLD),CS(DistorteD - 7th style) + fread(&i_timeA, 1, 4, in); + fread(&d_type, 1, 1, in); + fread(&b_data[0], 1, 1, in); + fread(&b_data[1], 1, 1, in); + fread(&b_data[2], 1, 1, in); + break; + + case 3: // CS2 (6th style - 3rd style) + fread(&i_timeA, 1, 2, in); + fread(&d_type, 1, 1, in); + fread(&b_data[0], 1, 1, in); + b_data[1] = 0x00; + b_data[2] = 0x00; + break; + } + + //ˆê•”‚Ì‹ŒCSƒo[ƒWƒ‡ƒ“•ˆ–ʃoƒO‘ΉžiDP‚Ȃ̂É2P‚Ì•ˆ–ÊI—¹éŒ¾ƒCƒxƒ“ƒg‚ª‚È‚¢j + if((short int)i_timeA == 0x7FFF && dp_flag == 3) + d_type = 0x06; + + /* ƒf[ƒ^ƒ^ƒCƒv‚ÅU‚蕪‚¯ */ + switch(d_type) { + /* ƒm[ƒgƒCƒxƒ“ƒg */ + case 0x00: case 0x10: case 0x20: case 0x30: case 0x40: case 0x50: case 0x60: case 0x70: + case 0x01: case 0x11: case 0x21: case 0x31: case 0x41: case 0x51: case 0x61: case 0x71: + if (start_flag == 0){ break; } + t_notes[dif]++; + + b_data[0] = d_type / 0x10; + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* ƒL[‰¹•ÏX */ + case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52: case 0x62: case 0x72: + case 0x03: case 0x13: case 0x23: case 0x33: case 0x43: case 0x53: case 0x63: case 0x73: + switch(filetype){ + case 3: b_data[1] = b_data[0]; break; + } + if (maxwav < (b_data[2]*0x100 + b_data[1])){ + maxwav = b_data[2]*0x100 + b_data[1]; + } + if ((b_data[2]*0x100 + b_data[1]) == 0){ + printf("\nFile \"00\" assigned ! : %08x : %02x\n",i_timeA ,d_type); + } + + /* ¬ßü */ + case 0x0C: case 0x1C: + b_data[0] = d_type / 0x10; + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* ”»’è•Ý’è */ + case 0x08: case 0x18: case 0x28: case 0x38: case 0x48: case 0x58: + switch(filetype){ + case 3: // 6th style ‰ð̓oƒO‘Îô + if(d_type == 0x48){ + b_data[1] = 0x08; + b_data[0] = 0x04; + } + else { + b_data[1] = b_data[0]; + b_data[0] = d_type / 0x10; + } + break; + + default: + b_data[1] = b_data[0]; + b_data[0] = d_type / 0x10; + break; + } + d_type %= 0x10; + + dataWritingUnit(dif); + break; + + /* Ž©“®‰‰‘t */ + case 0xF7: + break; + case 0x87: case 0x17: case 0x07: case 0xA7: + switch(filetype){ + case 3: + b_data[1] = b_data[0]; + b_data[0] = 0x00; + } + d_type %= 0x10; + + if (maxwav < (b_data[2]*0x100 + b_data[1])){ + maxwav = b_data[2]*0x100 + b_data[1]; + } + + if((b_data[2]*0x100 + b_data[1]) == 1) + { + if(wav01_auto) + break; + else + wav01_auto++; + } + + dataWritingUnit(dif); + break; + + + /* BPM•ÏX */ + case 0x04: case 0x14: case 0x24: case 0x34: + b_data[2] = d_type / 0x10; + b_data[1] = b_data[0]; + b_data[0] = 0x01; + d_type %= 0x10; + dataWritingUnit(dif); + + start_flag++; + + switch(filetype){ + case 3: + if(rtm_flag == 0){ + d_type = 0x05; + b_data[0] = 0x04; + b_data[1] = 0x04; + b_data[2] = 0x00; + dataWritingUnit(dif); + rtm_flag++; + } + break; + } + break; + + /* ”Žq•ÏX */ + case 0x05: + switch(filetype){ + case 3: + break; + default: + dataWritingUnit(dif); + } + break; + + /* •ˆ–ÊI—¹éŒ¾ */ + case 0x06: + if(dp_flag == 3){ + b_data[0] = 0x01; + } + dataWritingUnit(dif); + + if((dp_flag == 0)||(dp_flag == 3)){ + temp = 0x7FFFFFFF; + fwrite(&temp, 1, 4, out); + temp = 0x00; + for(i=0;i<0x04;i++){ + fwrite(&temp, 1, 1, out); + } + f_size[dif] += 8; + } + dp_flag += 2; + break; + + /* ’PˆÊŽžŠÔ”»’è */ + case 0x2B: + t_base_type = 1; + break; + + case 0x4C: + break; + + default: + printf("Unknown data type! : %06x : %02x (%02x %02x %02x)\n",i_timeA ,d_type, b_data[0], b_data[1], b_data[2]); + break; + } + //printf("DEBUG: %06x : %02x (%02x %02x %02x); %d\n",i_timeA ,d_type, b_data[0], b_data[1], b_data[2], dp_flag); + } + + /* ƒTƒuƒwƒbƒ_‚ÌTotalNotes‘‚«Š·‚¦ */ + fseek(out, head_adrs + 0x06, SEEK_SET); + fwrite(&t_notes[dif], 1, 2, out); + + /* ƒwƒbƒ_‘‚«Š·‚¦ */ + headWritingUnit(dif); + + return 0; +} + +/* .1ƒwƒbƒ_¶¬ */ +int makeHeader(void){ + int i; + int temp; + /* ƒwƒbƒ_‰¼’u‚« */ + temp = 0x00; + for(i=0;i<0x60;i++){ + fwrite(&temp, 1, 1, out); + } + return 0; +} + +/* CS•ˆ–ʃtƒ@ƒCƒ‹Šm”F */ +int checkScoreFile(void){ + int i,j; + int existflag; + int headerflag; + char f_type[NAMEMAX]; + + filetype = 0; + headerflag = 0; + + /* CS3ƒtƒ@ƒCƒ‹ */ + if((in = fopen("cs3.raw", "rb")) == NULL) { + printf("cs3.raw : Not Found.\n\n"); + } + else { + printf("cs3.raw : Read success / "); + filetype = 1; + + /* DJT,GOLD”»•Ê */ + fseek(in, 0, SEEK_END); + if (ftell(in) / 0x10000 == 6){ + f_exist[3] = -1; + printf("CS3 type : GOLD\n\n"); + } + else { + printf("CS3 type : DJ TROOPERS\n\n"); + } + + /* •ˆ–Ê‘¶Ýƒtƒ‰ƒOŒŸo */ + printf("Prosessing "); + for(j=0;j<7;j++){ + /* ƒtƒ‰ƒO“ǂݞ‚Ý */ + existflag = 0; + fseek(in, 0x10000 * j, SEEK_SET); + fread(&existflag, 1, 1, in); + fseek(in, 0x10000 * j, SEEK_SET); + + /* GOLD‚Ìê‡SPB•ª‚ð”ò‚΂· */ + if((j >= 3)&&(f_exist[3] == -1)){ + j++; + } + + /* ƒtƒ‰ƒO”»’è */ + if(existflag == 0x00){ // ‘¶Ý‚µ‚È‚¢ + f_exist[j] = 0; + } + else { // ‘¶Ý‚·‚é + /* ƒwƒbƒ_¶¬ */ + if(headerflag == 0){ + makeHeader(); + headerflag++; + } + /* •ÏŠ·ˆ— */ + printf("-"); + cs2ac(j); + printf("> "); + f_exist[j] = 1; + } + + /* GOLD‚Ìꇃ‹[ƒvƒJƒEƒ“ƒ^‚ð–ß‚· */ + if((j >= 3)&&(j != 6)&&(f_exist[3] == -1)){ j--; } + } + printf("OK\n"); + } + + /* CS,CS2,CS5ƒtƒ@ƒCƒ‹ */ + for(i=2;i<=3;i++){ + if(filetype != 0){ + break; + } + + switch(i){ + case 2: sprintf(f_type, "cs"); break; // 7th style - DistorteD + case 3: sprintf(f_type, "cs2"); break; // 3rd style - 6th style +// case 4: sprintf(f_type, "cs5"); break; // ?? + } + for(j=0;j<7;j++){ + switch(j){ + case 0: sprintf(inName, "n7.%s",f_type); break; + case 1: sprintf(inName, "h7.%s",f_type); break; + case 2: sprintf(inName, "a7.%s",f_type); break; + case 3: sprintf(inName, "b.%s",f_type); break; + case 4: sprintf(inName, "n14.%s",f_type); break; + case 5: sprintf(inName, "h14.%s",f_type); break; + case 6: sprintf(inName, "a14.%s",f_type); break; + } + if((in = fopen(inName, "rb")) == NULL) { + printf("%7s : Not Found.\n",inName); + } + else { + printf("%7s : Prosessing ",inName); + filetype = i; + /* ƒwƒbƒ_¶¬ */ + if(headerflag == 0){ + makeHeader(); + headerflag++; + } + /* •ÏŠ·ˆ— */ + printf("-"); + cs2ac(j); + f_exist[j] = 1; + fclose(in); + printf("> OK\n"); + } + } + printf("\n"); + } + return filetype; +} + +int main(){ + char wait[0xff]; + head_adrs = 0x60; + maxwav = 0; + + printf(" -* beatmaniaIIDX CS to AC Chart Converter v%.2f by 697@14 *-\n\n",version); + + if((out = fopen("output.1", "wb")) == NULL) { + printf("Failed to open \"output.1\".\n"); + return 1; + } + + if(checkScoreFile() == 0) { + printf("Chart File not found...\n"); + return 1; + } + else { + printf("Number of wav : %d\n\n",maxwav); + printf("Writing \"output.1\"\n\nDone.\n"); + } + fclose(out); + + //gets(wait); + return 0; +} + + + diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/fixtimingwindows.c b/iidx/bme2ac workspace djt custom songs/songs/source/fixtimingwindows.c new file mode 100644 index 0000000..1f06649 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/fixtimingwindows.c @@ -0,0 +1,129 @@ +//timebase_single.c by ryuuou +//changes the base fps value of .1 files like timebase.exe, but works on a bunch of single .1 files instead of folders +//this is mainly to assist with custom songs so that you don't have to timebase your whole folder again for single songs and deal with file versions + +#include +#include +#include +#include + +#define byte unsigned char + +#define CHARTCOUNT 7 +#define EVENTSIZE 8 +#define FPS_STANDARD_GOLD 60.05 +#define FPS_STANDARD_DD 59.95 + +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +unsigned short int judgements[6] = {0xF0, 0xFA, 0xFF, 0x3, 0x8, 0x12}; + +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; +} event; + +int main(int argc, const char **argv) +{ + int i,j,k; + FILE *in, *out; + byte *buf; + int *p; + int flength; + int pos, len; + short int np1, np2; + + event *ev; + + printf("fixtimingwindows by ryuuou\n\tfixes timing windows to be consistent\n\n"); + if(argc < 2) + { + printf("usage: fixtimingwindows ...\n\talternatively drop a bunch of .1 files on the executable\n"); + getchar(); + return 0; + } + + for(i = 2; i <= argc; i++) + { + printf("processing %s...", argv[i-1]); + in = fopen(argv[i-1], "rb"); + if(!in) + { + printf("file not found\n"); + continue; + } + + fseek(in, 0, SEEK_END); + flength = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(flength); + + fread(buf, flength, 1, in); + fclose(in); + + for(j = 0; j < CHARTCOUNT; j++) + { + p = (int*)(buf+offsets[j]); + if(!*p) continue; //no chart here + + //printf("%s...\n", CHARTNAMES[j]); + + pos = p[0]; + len = p[1]; + + np1 = 0; + np2 = 0; + + for(k = pos; k < pos+len - EVENTSIZE; k += EVENTSIZE) + { + ev = (event*)(buf+k); + + if(ev->type == 8) //adjust timing + { + //printf("%d (%d->%d)...", ev->data1, ev->data2, judgements[ev->data1]); + ev->data2 = judgements[ev->data1]; + } + if(ev->type == 0)//player 1 keypress + { + np1++; + } + else if(ev->type == 1) //player 2 keypress + { + np2++; + } + } + + for(k = pos; k < pos+len; k += EVENTSIZE) + { + ev = (event*)(buf+k); + + if(ev->type == 0x10)//notecount + { + if(ev->data1 == 0) //player1 + { + printf("%d -> %d | ", ev->data2, np1); + ev->data2 = np1; + } + else if(ev->data1 == 1) //player2 + { + printf("%d -> %d\n", ev->data2, np2); + ev->data2 = np2; + } + } + } + //printf("%s: p1: %d, p2: %d\n", CHARTNAMES[j], np1, np2); + } + + out = fopen(argv[i-1], "wb"); + fwrite(buf, flength, 1, out); + fclose(out); + + free(buf); + + printf("done\n"); + } +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/merge1.c b/iidx/bme2ac workspace djt custom songs/songs/source/merge1.c new file mode 100644 index 0000000..2425e57 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/merge1.c @@ -0,0 +1,157 @@ +//merge1.c by ryuuou +//merges several .1 files into a single one to help with songs that have too many wav references + +#include +#include +#include + +#define CHARTCOUNT 7 +#define byte unsigned char + +const char *ONAMES[] = { "h7.1", "n7.1", "a7.1", "b.1", "h14.1", "n14.1", "a14.1" }; +const char *NAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +int worder[CHARTCOUNT] = {0, 4, 1, 5, 2, 6, 3}; + + +int main() +{ + int i, len; + int *plen, *poff; + byte *onechart[CHARTCOUNT]; + int olen[CHARTCOUNT]; + FILE *in, *out; + int ccount = 0; + + byte *buf; + int blen; + + printf("merge1 by ryuuou\n\tmultiplexes several .1 files into a single one\n\n\n"); + + in = fopen("base.1", "rb"); + + memset(onechart, 0, sizeof(int*)*CHARTCOUNT); + memset(olen, 0, sizeof(int)*CHARTCOUNT); + + printf("trying to open files...\n"); + printf("base.1..."); + if(!in) printf("not found, authoring new .1 file\n"); + else printf("OK\n"); + + if(in) //load base.1 as reference + { + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + printf("loading charts from base.1..."); + //load the charts contained in the base file + for(i = 0; i < CHARTCOUNT; i++) + { + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + if(!*plen) continue; //no chart + + olen[i] = *plen; + + printf("%s...", NAMES[i]); + + onechart[i] = malloc(olen[i]); + + memcpy(onechart[i], buf+*poff, olen[i]); //copy the chart + } + + free(buf); + printf("done\n\n"); + } + + printf("loading and inserting/overwriting charts...\n"); + + for(i = 0; i < CHARTCOUNT; i++) + { + printf("%s...", ONAMES[i]); + in = fopen(ONAMES[i], "rb"); + if(!in) + { + printf("not found\n"); + continue; + } + + ccount++; + + fseek(in, 0, SEEK_END); + blen = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(blen); + fread(buf, blen, 1, in); + fclose(in); + + poff = (int*)(buf+offsets[i]); + plen = (int*)(buf+offsets[i]+4); + + if(!*plen) + { + printf("no %s chart\n", NAMES[i]); + continue; //this file contains no appropriate chart, l2namefiles + } + + if(olen[i]) //we previously loaded a chart from base.1 and we don't want to leak memory + free(onechart[i]); + + olen[i] = *plen; + + onechart[i] = malloc(*plen); + + memcpy(onechart[i], buf+*poff, *plen); + free(buf); + printf("OK\n"); + } + + if(!ccount) + { + printf("no charts found, aborting\npress any key to exit\n"); + getchar(); + return 0; + } + + //create the aggregated .1 file + + len = 96; //.1 headersize + + for(i = 0; i < CHARTCOUNT; i++) + len += olen[i]; + + buf = malloc(len); + + memset(buf, 0, len); + + len = 96; //abuse len as position counter + + printf("\nauthoring .1 file..."); + for(i = 0; i < CHARTCOUNT; i++) + { + memcpy(buf+offsets[worder[i]], &len, 4); + memcpy(buf+offsets[worder[i]]+4, &olen[worder[i]], 4); + + memcpy(buf+len, onechart[worder[i]], olen[worder[i]]); + len += olen[worder[i]]; + } + printf("done\n"); + + printf("writing merged.1..."); + out = fopen("merged.1", "wb"); + + fwrite(buf, len, 1, out); + + fclose(out); + free(buf); + printf("done\npress any key to exit\n"); + + getchar(); + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/oldac2dx2newac2dx.c b/iidx/bme2ac workspace djt custom songs/songs/source/oldac2dx2newac2dx.c new file mode 100644 index 0000000..5a27f3d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/oldac2dx2newac2dx.c @@ -0,0 +1,228 @@ +//crack2dx_new.c +//decrypts .2dx files from every style from 9th to Troopers +//decryption method and keys taken from crack2dx.c, rewritten with added support for Troopers, Empress and usablility +//...and for bugfixing -_- + +#include +#include +#include + +#define byte unsigned char + +byte keys_09[] = { //9th style + 0x97, 0x1E, 0x24, 0xA0, 0x9A, 0x00, 0x10, 0x2B, + 0x91, 0xEF, 0xD7, 0x7A, 0xCD, 0x11, 0xAF, 0xAF, + 0x8D, 0x26, 0x5D, 0xBB, 0xE0, 0xC6, 0x1B, 0x2B }; + +byte keys_10[] = { //10th style + 0x2D, 0x86, 0x56, 0x62, 0xD7, 0xFD, 0xCA, 0xA4, + 0xB3, 0x24, 0x60, 0x26, 0x24, 0x81, 0xDB, 0xC2, + 0x57, 0xB1, 0x74, 0x6F, 0xA7, 0x52, 0x99, 0x21 }; + +byte keys_11[] = { //Happy Sky+ + 0xED, 0xF0, 0x9C, 0x90, 0x44, 0x1A, 0x5A, 0x03, + 0xAB, 0x07, 0xC1, 0x99, 0x23, 0x24, 0x32, 0xC7, + 0x5F, 0x32, 0xA5, 0x97, 0xAD, 0x98, 0x0F, 0x8F }; + +byte keys_16[] = { //empress + 0x28, 0x22, 0x28, 0x54, 0x63, 0x3F, 0x0E, 0x42, + 0x6F, 0x45, 0x4E, 0x50, 0x67, 0x53, 0x61, 0x7C, + 0x04, 0x46, 0x00, 0x3B, 0x13, 0x2B, 0x45, 0x6A }; + +//XORs two 8 byte blocks +void block_xor(byte *data, byte *parm) +{ + int i; + for (i = 0 ; i < 8 ; i++) + data[i] ^= parm[i]; + return; +} + +//Swaps the lower 4 bytes with the upper 4 bytes +void block_swap(byte *data) +{ + int i; + for (i = 0 ; i < 4 ; i++) + { + data[i] ^= data[i+4]; //let's do this without temp variables ;D + data[i+4] ^= data[i]; + data[i] ^= data[i+4]; + } + return; +} + +//I bow to whoever figured this one out +void block_obfus(byte *data) +{ + byte a,b,c,d,e,f,g,h,i; + + a = data[0] * 63; + b = a + data[3]; + c = data[1] * 17; + d = c + data[2]; + e = d + b; + f = e * data[3]; + g = f + b + 51; + h = b ^ d; + i = g ^ e; + + data[4] ^= h; + data[5] ^= d; + data[6] ^= i; + data[7] ^= g; + + return; +} + + +int main(int argc, byte **argv) +{ + int i; + int style=2; + int mult; + byte *buf, *buf_dec, *enc; + byte *cur, *prev; + byte *cryptkey; + int *wavcount; + int *wavpos, *wavlen; + int len; + FILE *in, *out; + unsigned char n_out[10]; //wav name + + printf("oldac2newac_2dx by v0.1 ryuuou\n\treencrypts .2dx files from Troopers AC and before \n\tto .2dx compatible with Empress AC\n\n"); + + if(argc < 2) + { + printf("USAGE: oldac2newac_2dx \n"); + return 0; + } + + printf("\nprocessing %s...\n", argv[1]); + + in = fopen(argv[1], "rb"); + + if(!in) + { + printf("not found: %s\n", argv[1]); + return -1; + } + + fseek(in, 0, SEEK_END); + len = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(len); + + fread(buf, len, 1, in); + fclose(in); + + //identify iidx version + + printf("identifying encryption..."); + mult = 1; + if(!strncmp(buf, "%eNc", 4)) + { + printf("9th style\n"); + cryptkey = keys_09; //9th style + } + else if(!strncmp(buf, "%e10", 4)) + { + printf("10th style\n"); + cryptkey = keys_10; //10th style + } + else if(!strncmp(buf, "%e11", 4)) + { + printf("RED\n"); + cryptkey = keys_11; //RED + } + else if(!strncmp(buf, "%e12", 4)) + { + printf("Happy Sky/DistorteD/GOLD\n"); + cryptkey = keys_11; //HS+ + mult = 0; + } + else if(!strncmp(buf, "%hid", 4)) + { + printf("Troopers\n"); + cryptkey = keys_11; //Troopers + mult = 0; + } + else if(!strncmp(buf, "%iO0", 4)) + { + printf("Empress, nothing to do\n"); + cryptkey = keys_16; //Empress + return 0; + } + else + { + printf("unknown encryption, trying unencrypted...\n"); + mult = 2; + } + + + //decrypt + + + + if(!(mult == 2)) //skip for unencrypted + { + buf_dec = malloc(len); + memcpy(buf_dec, buf, len); //copy the encrypted part + memset(buf, 0, 8); //zero the first block to make the loop easier + + for(i = 0; i <= len-16; i+= 8) + { + cur = buf_dec + 8 + i; //cur points to the current encrypted block to decrypt + prev = buf + i; //prev points to the cur-8 in encrypted form + + block_xor(cur, cryptkey); + block_obfus(cur); + block_swap(cur); + + if(mult) // for versions prior to DistorteD and Empress + { + block_xor(cur, cryptkey+8); + block_obfus(cur); + block_xor(cur, cryptkey+16); + } + + block_xor(cur, prev); + } + } + else + { + buf_dec = malloc(len); + memcpy(buf_dec, buf, len); //copy for splitting + } + + + //reencrypt to empress + + cryptkey = keys_16; + + for(i = 0; i <= len-16; i+= 8) + { + cur = buf_dec + i + 8; //cur points to the current decrypted block to encrypt + + block_xor(cur, cur-8); + block_xor(cur, cryptkey+16); + block_obfus(cur); + block_xor(cur, cryptkey+8); + block_swap(cur); + block_obfus(cur); + block_xor(cur, cryptkey); + } + + memcpy(buf_dec, "%iO0", 4); + + //*((int*)buf_dec+4) = len-8; + + out = fopen(argv[1], "wb"); + fwrite(buf_dec, len, 1, out); + fclose(out); + + printf("done\n"); + free(buf); + free(buf_dec); + return 0; +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/source/timebase_59.c b/iidx/bme2ac workspace djt custom songs/songs/source/timebase_59.c new file mode 100644 index 0000000..28404f8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/songs/source/timebase_59.c @@ -0,0 +1,103 @@ +//timebase_single.c by ryuuou +//changes the base fps value of .1 files like timebase.exe, but works on a bunch of single .1 files instead of folders +//this is mainly to assist with custom songs so that you don't have to timebase your whole folder again for single songs and deal with file versions + +#include +#include +#include +#include + +#define byte unsigned char + +#define CHARTCOUNT 7 +#define EVENTSIZE 8 +#define FPS_STANDARD_GOLD 60.05 +#define FPS_STANDARD_DD 59.95 + +int offsets[CHARTCOUNT] = {0, 8, 16, 24, 48, 56, 64}; +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; + +int main(int argc, const char **argv) +{ + int i,j,k; + float basefps, targetfps; + FILE *in, *out; + byte *buf; + int *p; + int flength; + int pos, len; + + printf("timebase_single by ryuuou\n\tchanges the base fps of .1 files like timebase.exe,\n\tbut works on a batch of files instead of folders\n\n"); + if(argc < 2) + { + printf("usage: timebase_single ...\n\talternatively drop a bunch of .1 files on the executable\n"); + getchar(); + return 0; + } + + basefps = targetfps = 0; + + /*printf("please input the current fps (or 0 for 60.05 or 1 for 59.95): "); + scanf("%f", &basefps); + if(basefps == 0) + basefps = FPS_STANDARD_GOLD; + if(basefps == 1) + basefps = FPS_STANDARD_DD; + printf("please input the target fps: (or 0 for 60.05 or 1 for 59.95)"); + scanf("%f", &targetfps); + if(targetfps == 0) + targetfps = FPS_STANDARD_GOLD; + if(targetfps == 1) + targetfps = FPS_STANDARD_DD; + + + printf("converting from %.3f fps to %.3f fps\npress enter to continue or ctrl-c to cancel\nMAKE SURE YOU HAVE BACKUPS OF YOUR FILES!!\n", basefps, targetfps); + getchar();getchar();*/ + + for(i = 2; i <= argc; i++) + { + printf("processing %s...", argv[i-1]); + in = fopen(argv[i-1], "rb"); + if(!in) + { + printf("file not found\n"); + continue; + } + + fseek(in, 0, SEEK_END); + flength = (int)ftell(in); + fseek(in, 0, SEEK_SET); + + buf = malloc(flength); + + fread(buf, flength, 1, in); + fclose(in); + + for(j = 0; j < CHARTCOUNT; j++) + { + p = (int*)(buf+offsets[j]); + if(!*p) continue; //no chart here + + printf("%s...", CHARTNAMES[j]); + + pos = p[0]; + len = p[1]; + + for(k = pos; k < pos+len; k += EVENTSIZE) + { + p = (int*)(buf+k); + if(*p == 0x7FFFFFFF || *p == 0x7F000000) //end sequence event, we skip these + continue; + *p = (int)roundf((float)*p *1000. / FPS_STANDARD_DD); + } + } + + out = fopen(argv[i-1], "wb"); + fwrite(buf, flength, 1, out); + fclose(out); + + free(buf); + + printf("done\n"); + } +} diff --git a/iidx/bme2ac workspace djt custom songs/songs/timebase_59.exe b/iidx/bme2ac workspace djt custom songs/songs/timebase_59.exe new file mode 100644 index 0000000..47f6d35 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/songs/timebase_59.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/split2dx.c b/iidx/bme2ac workspace djt custom songs/split2dx.c new file mode 100644 index 0000000..88e3730 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/split2dx.c @@ -0,0 +1,78 @@ +/* split2dx.c: Extract all WAVs from a .2DX file (sound archive) */ +#include +#include +#include + +int main(int argc, char **argv) +{ + static const char base36[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + char outname[64]; + FILE *out; + FILE *in; + void *bytes; + int nfiles; + int nbytes; + int *toc; + int i; + + /* Usage */ + if (argc != 3) { + fprintf(stderr, "Usage: %s [infile] [outdir]\n", argv[0]); + return EXIT_FAILURE; + } + + /* Open input */ + in = fopen(argv[1], "rb"); + if (!in) { + fprintf(stderr, "%s: Could not open file for reading\n", argv[1]); + return EXIT_FAILURE; + } + + /* Read TOC length */ + fseek(in, 0x14, SEEK_SET); + fread(&nfiles, 4, 1, in); + + /* Read TOC */ + toc = malloc(4 * nfiles); + fseek(in, 0x48, SEEK_SET); + fread(toc, 4, nfiles, in); + + /* Extract files */ + for (i = 0 ; i < nfiles ; i++) { + /* Name output file */ + sprintf(outname, "%s/%c%c.wav", argv[2], + base36[(i + 1) / 36], base36[(i + 1) % 36]); + + /* Open output file */ + out = fopen(outname, "wb"); + if (!out) { + fprintf(stderr, "%s: Could not open file for writing\n", outname); + free(toc); + + return EXIT_FAILURE; + } + + /* Put RIFF fourcc which we skipped */ + fwrite("RIFF", 4, 1, out); + + /* Get file length */ + fseek(in, toc[i] + 0x1C, SEEK_SET); + fread(&nbytes, 4, 1, in); + fwrite(&nbytes, 4, 1, out); + + /* Copy */ + bytes = malloc(nbytes); + fread(bytes, 1, nbytes, in); + fwrite(bytes, 1, nbytes, out); + + /* Clean up */ + fclose(out); + free(bytes); + } + + fclose(in); + free(toc); + + return EXIT_SUCCESS; +} + diff --git a/iidx/bme2ac workspace djt custom songs/unz.c b/iidx/bme2ac workspace djt custom songs/unz.c new file mode 100644 index 0000000..8f633f3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/unz.c @@ -0,0 +1,84 @@ +/** unz.c: Decompress miscellaneous stuff like .INZ and .XZ files */ +#include +#include + +typedef unsigned char u8_t; +typedef unsigned int u32_t; + +static void expand_lzss(FILE *in, FILE *out) +{ + static u8_t ring[0x1000]; + unsigned int ring_pos = 0x0FEE; + unsigned int chunk_offset; + unsigned int chunk_length; + unsigned int length; + u32_t control_word = 1; + u8_t cmd1; + u8_t cmd2; + u8_t byte; + + /* Read header (i.e. file length, ignore it) */ + fread(&length, 4, 1, in); + + while (!feof(in) && length > 0) { + if (control_word == 1) { + /* Read a control byte */ + control_word = 0x100 | getc(in); + } + + /* Decode a byte according to the current control byte bit */ + if (control_word & 1) { + /* Straight copy, store into history ring */ + byte = getc(in); + + putc(byte, out); + ring[ring_pos] = byte; + + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } else { + /* Reference to data in ring buffer */ + cmd1 = getc(in); + cmd2 = getc(in); + + chunk_length = (cmd2 & 0x0F) + 3; + chunk_offset = ((cmd2 & 0xF0) << 4) | cmd1; + + for ( ; chunk_length > 0 && length > 0 ; chunk_length--) { + /* Copy historical data to output AND current ring pos */ + putc(ring[chunk_offset], out); + ring[ring_pos] = ring[chunk_offset]; + + /* Update counters */ + chunk_offset = (chunk_offset + 1) % 0x1000; + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } + } + + /* Get next control bit */ + control_word >>= 1; + } +} + +int main(int argc, char **argv) +{ + FILE *in; + FILE *out; + + if (argc != 3) { + fprintf(stderr, "Usage: %s [infile] [outfile]\n", argv[0]); + return EXIT_FAILURE; + } + + in = fopen(argv[1], "rb"); + out = fopen(argv[2], "wb"); + + expand_lzss(in, out); + + fclose(in); + fclose(out); + + return EXIT_SUCCESS; +} + diff --git a/iidx/bme2ac workspace djt custom songs/videos/black.mpg b/iidx/bme2ac workspace djt custom songs/videos/black.mpg new file mode 100644 index 0000000..fad0373 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/black.mpg differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/bme2picseq.exe b/iidx/bme2ac workspace djt custom songs/videos/bme2picseq.exe new file mode 100644 index 0000000..15429cc Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/bme2picseq.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/convertall.bat b/iidx/bme2ac workspace djt custom songs/videos/convertall.bat new file mode 100644 index 0000000..7f61eff --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/convertall.bat @@ -0,0 +1,11 @@ +@ECHO OFF +for /R %%a in (".") do ( +cd "%%a" +for /R %%b in (".") do ( +cd "%%b" +@ECHO ON +C:\bms\convertmovie h7.bme +@ECHO OFF +cd ..\.. +) +) diff --git a/iidx/bme2ac workspace djt custom songs/videos/convertmovie.bat b/iidx/bme2ac workspace djt custom songs/videos/convertmovie.bat new file mode 100644 index 0000000..0ac2f74 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/convertmovie.bat @@ -0,0 +1,17 @@ +for %%s in (*.bmp) do convert "%%s" -type TrueColor "%%s" +for %%s in (*.png) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +for %%s in (*.jpg) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +copy C:\mplayer\BLACK.bmp . +C:\mplayer\bme2picseq "%1" +@ECHO OFF +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9000:vbitrate=6000:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=1:aspect=1/1 -o output.mpg +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=3500:vbitrate=2500:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=2:aspect=1/1 -o output.mpg +del BMEIMG* +del BLACK.bmp +@ECHO ON diff --git a/iidx/bme2ac workspace djt custom songs/videos/convertmovie2.bat b/iidx/bme2ac workspace djt custom songs/videos/convertmovie2.bat new file mode 100644 index 0000000..faf640c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/convertmovie2.bat @@ -0,0 +1,17 @@ +for %%s in (*.bmp) do convert "%%s" -resize 256x256! -type TrueColor "%%s" +for %%s in (*.png) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +for %%s in (*.jpg) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +copy C:\mplayer\BLACK.bmp . +C:\mplayer\bme2picseq "%1" +@ECHO OFF +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf crop=256:218:0:38,scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9000:vbitrate=6000:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=1:aspect=1/1 -o output.mpg +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf crop=256:218:0:38,scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=3500:vbitrate=2500:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=2:aspect=1/1 -o output.mpg +del BMEIMG* +del BLACK.bmp +@ECHO ON diff --git a/iidx/bme2ac workspace djt custom songs/videos/convertmovie3.bat b/iidx/bme2ac workspace djt custom songs/videos/convertmovie3.bat new file mode 100644 index 0000000..64514fe --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/convertmovie3.bat @@ -0,0 +1,17 @@ +for %%s in (*.bmp) do convert "%%s" -resize 256x256! -type TrueColor "%%s" +for %%s in (*.png) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +for %%s in (*.jpg) do ( +convert "%%s" -resize 256x256! -type TrueColor "%%~ns.bmp" +move "%%~ns.bmp" "%%s" +) +copy C:\mplayer\BLACK.bmp . +C:\mplayer\bme2picseq "%1" +@ECHO OFF +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf expand=0:-38:0:0,scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9000:vbitrate=6000:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=1:aspect=1/1 -o output.mpg +C:\mplayer\mencoder mf://BMEIMG*.bmp -mf fps=30 -ovc lavc -of mpeg -mpegopts format=mpeg2video:tsaf -vf expand=0:-38:0:0,scale=304:416 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=3500:vbitrate=2500:keyint=15:trell:mbd=2:dc=10:vstrict=0:vpass=2:aspect=1/1 -o output.mpg +del BMEIMG* +del BLACK.bmp +@ECHO ON diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/AUTHORS.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/AUTHORS.txt new file mode 100644 index 0000000..60c2d2d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/AUTHORS.txt @@ -0,0 +1,1089 @@ + ***************************************** + AUTHORS + ***************************************** + +NOTE: NEVER send bug reports, help and feature requests directly to the +authors, but you're free to write mails about donating! + +For donation requests visit http://www.mplayerhq.hu/donations.html. + + +___________________ +The MPlayer project +~~~~~~~~~~~~~~~~~~~ + +MPlayer was originally written by Ãrpád Gereöffy (for a more complete history +see DOCS/HTML/en/history.html) and later extended by a bunch of other people, +some of which are listed here in alphabetical order. If you think you are +missing, feel free to send a patch. + +Ackermann, Andreas (Acki) + * LIRC support + * DGA support in libvo + +adland + * support for various Windows DLL codecs (LCW2, ASLC) + * SMIL playlist parser + * many streaming bug fixes and improvements + * libfaad2 update + +Anholt, Eric + * CPU detection code + +Ashberg, Folke + * native AAlib driver (-vo aa) + +Balatoni, Dénes + * XMMS inputplugin support + * minor features & fixes + * Sun XVR-100 VO driver port from xine + +Barat, Zsolt (joyping) + * ao_alsa9 fixes, AC3 passthrough support + * ao_alsa unified ALSA audio output driver + +Barbato, Luca (lu_zero) + * random AltiVec fixes + * other minor fixes + +Baryshkov, Dmitry (lumag) + * Russian documentation translation + * FLAC decoding support + * XML build system + +Baudet, Bertrand + * network streaming support author + * CDDB support + +Bedel, Alban (albeu) + * MMS network streaming patches + * playtree and per-entry config + * playlist parsers + * new input layer, slave mode improvements + * audio only support + * MP3, WAV and Ogg demuxers, Ogg in AVI fixes + * support for audio from an external file + * DXR2 driver + * vo_aa improvements + * CDDA support + * OSD menu + * new modular config/command line parser code + +Behrisch, Michael + * online audio stream switching for MPEG and Matroska files + +Belev, Luchezar (lucho) + * hw-accelerated video eq support into x11, gl2 (using DirectColor cmap) + +Bérczi, Gábor (Gabucino) + * large parts the original HTML and TXT documentation + * original Hungarian documentation, homepage, console message translation + * second homepage design & gfx + * original homepage content + * testing, codecs quality & speed comparisons + * experimental MINIX port :) (what's funny about it?) + * MPsub subtitle format design + * AlienMind, BlueHeart, CubicPlayer, MidnightLove, netscape4, + WMP6, xanim, xine-lcd skins + +Berecz, Szabolcs (Szabi) + * codecs.conf file parser + * config file and command line parser + * mga_vid fixes, module option, etc + * fbdev video output driver + * type #7 subtitle support + +Beregszászi, Alex (al3x) + * second project maintainer + * alsa5 and alsa9 audio output drivers in libao2 + * ggi video output driver (www.ggi-project.org) + * XAnim codecs support + * VIVO files, codecs support + * TV grabbing support + * QuickTime hackings + * libavcodec support in MEncoder + * RM file format demuxer + * MEncoder framecopy + * yuv4mpeg1 support + * NuppelVideo demuxer changes + * subconfig + * VIDIX and libdha hackings + * Matrox driver port to VIDIX + * XVIDIX video output driver + * many other things (in libvo, libmad syncing, dec_audio/video and loader) + * libmpcodecs / libmpdemux hacking + * patch review + * dynamic a/v plugins (external shared ad/vd/.. objects) + * millions of bug fixes + +Bitterberg, Tilmann + * AVI OpenDML read support + +Biurrun, Diego (DonDiego) + * documentation all over the place + * command line option documentation completed + * README, wishlist, translations.txt + * random trivial fixes + * main tester and small fixes for the Cygwin and MinGW ports + * testing, bug reports + * homepage content improvements, design7, HTML fixed + * Hunglish to English translation everywhere + * head of the Ministry for English Composition + * ultrafina skin + * skin review part I + * patch review + * build system overhaul + +Blomenkamp, Marcus + * VIDIX patches (Rage128, Radeon 7000) + * OSS AC3 passthrough fix + +Buehler, Andrew (The Wanderer) + * various documentation spelling and grammar corrections + * mp_msg transition on main source files + +Bulgroz, Eviv + * presets support for mp3lame encoding + * AVI demuxer time/bitrate calculation fixes + * various bug fixes + +Bünemann, Felix (Atmos) + * additional YUV formats fixes + * new font (mp_font2.zip) + * png video output driver + * flipping support (for Indeo 3/4, etc) + * SDL audio output driver in libao2 + * RAW PCM/WAVE file writer for libao2 + * Ogg Vorbis audio support + * aspect ratio code improvements, prescaling support + * Win32 (Cygwin) port + * DivX5Linux support + * AAC decoding support via libfaad2 + * Darwin (Mac OS X) port + +Bunkus, Moritz (Mosu) + * various OGM hacks/fixes + * OGMtools author + * Matroska demuxer + +Christiansen, Dan Villiom Podlaski (danchr) + * timer-darwin.c + * ao_macosx + * build system cleanups for Darwin + +Clagg, Jeff (snacky) + * minor updates and fixes for x264 support + * x264's encoding guide + * superficial clarity fixes for mpcf.txt + +Comstedt, Marcus + * initial Solaris 8 x86 support + * configure fixes + +Cook, Kees + * dvdnav hacks + * rawdv demuxer fixes + +Curry, Alan (pacman, tcsetattr) + * swscale AltiVec/big-endian fixes + * misc vo_fbdev fixes + +Davies, Stephen + * support for large video files (>2^32 bytes in size) + * surround sound aop plugin + +Di Vita, Piero (Scognito) + * gnome, trium skins + * new GUI icons + * skin review part II + +Diedrich, Tobias (ranma, ranmachan) + * NAS audio output driver + * DXR2 driver + * softpulldown video filter + * ported Donald Graft's kerndeint video filter + * AVI OpenDML write support + +Dietrich, Florian + * MinGW networking support + +Dobbelaere, Jeroen + * original libmad support + +Döffinger, Reimar (reimar) + * GL code fixes + * various fixes all over the place + * reworked live changing playback speed + * made MMS over HTTP stream selection work and modified ASF header parsing + * reimplemented ao_jack without bio2jack dependency + * musepack demuxer and decoder, based on Reza's patch + * speex decoder via libspeex + * MPEG-2 in GXF demuxer + * vo_gl ported to windows + * gl_commmon.[ch] to decrease code duplication + * OpenGL support for OSD, panscan, YUV->RGB conversion, texture buffers, + custom fragment programs and more + +Dolbeau, Romain + * random AltiVec (PowerPC multimedia extensions) stuff + * vo_quartz YUV support & fixes + * endianness fixes + +Dönmez, İsmail (cartman) + * compile fix for mga_vid to compile with Linux 2.5/2.6 kernels + * small fixes all around + +Edele, Robert (yartrebo) + * remove_logo filter + +Egger, Christoph + * vo_ggi updates + +Elsinghorst, Paul Wilhelm + * GUI: remote ESD support including software mixer + +Ernesti, Bernd + * NetBSD support patches + +Falco, Salvatore + * jacosub parsing & dump support + * overlapping subtitles & sub sorting support + * SAMI subtitles dump support + +Feigl, Johannes (jaf) + * original German docs translation (outdated) + * some improvements in configure, small patches + * found somebody (Thilo Wunderlich) who sent a DVB card + +Felker, D Richard III (dalias) + * lots of work on inverse telecine including initial support + * improved MEncoder (getting rid of DivX4 dependency, seeking, ...) + * antialiased DVD subtitles + * misc bug fixes and improvements, esp. in video filter/output system + * tech docs on encoding + * eq, halfpack, dint, detc, field, decimate, dsize, ilpack, ivtc, + tfields, pullup video filters + +Ferguson, Tim + * open source Cinepak decoder + * open source CYUV decoder + +Finlayson, Ross + * LIVE555 Streaming Media library author + * RTP/RTSP streaming support + +Forghieri, Daniele (xdanny) + * TGA output driver + * framestep & tile video filters + * initial Italian man page translation + * fixes and improvements to lavc audio encoding + +Foth, Kilian A. + * slave mode + +Franz, Fabian (Fabianx) + * help with the libmpeg2 0.3.0 update + * playlist improvements + * KDE screensaver support + * mini skin + +Gansser, Martin + * HP-UX port + +Gereöffy, Ãrpád (A'rpi/ESP-team) + * project founder, first project maintainer + * MPlayer, MEncoder core, A-V sync + * libmpdemux, demultiplexer for MPEG, ASF, AVI, various fixes in others + * mp3lib, based on mpglib sources [MP3 audio decoder] + * getch2 [keyboard handler] + * some changes in libmpeg2 code (progressive frames, bitrate & fps support) + * libvo improvements: adding OpenGL support, bug fix in mga driver... + * triple buffering & YUY2 support (for DivX/MPEG-4) into mga_vid driver + * OSD & subtitle display code + * FFmpeg/libavcodec integration + * DivX4Linux (Project Mayo) support (see documentation) + * New DVD support using libdvdread + * MPEG PES output & DVB card support + * libmpcodecs design, porting video decoders, filters + +Giani, Matteo + * PVA demuxer + +Giaquinta, Emanuele (exg) + * Darwin/ppc fixes + * libfaad2 update + +Goethel, Sven + * vo_gl2 video output driver + * PVR Channel Navigation + +Gomez Garcia, German + * SPDIF AC3 output for SBLive! + +Gottwald, Alexander + * various small bug fixes + +Graffam, Michael + * XF86VidMode support to vo_x11 and vo_dga + * video mode switching code to vo_dga + +Gritsenko, Andriy N. (AG_LS) + * drop-deinterlace (dint) video filter + * muxer layer, and new MPEG-PS muxer + +Guyomarch, Rémi (rguyom) + * various fixes + * unsharp video filter + * XviD encoding support + +Hall, Julian + * black frame detection filter (vf_blackframe) + +Hammelmann, Jürgen + * TOOLS/mencvcd author + +Hertel, Christopher R. + * md5sum code used by vo_md5sum. part of uCIFS library. + +Hess, Andreas + * upgrading libdvdcss in libmpdvdkit2 + * various small bug fixes + +Hickey, Corey + * telecine/interlacing HOWTO for the MEncoder documentation + * advanced audio usage guide for the MPlayer documentation + * muxer frame buffer for MEncoder + +Hidvégi, Zoltán (Zoli) + * filmdint video filter + +Hoffmann, Jens + * additional YUV formats support + * found the big BITMAPINFOHEADER problem -> solved ASV2 pixelization + +Hoffman, Marc + * AltiVec, color space converter + * Blackfin, DSP optimizations + +Holm, David (dholm, mswitch) + * DXR3 support + +Horst, Bohdan (Nexus) + * FreeBSD support + +Hoyos, Carl Eugen (cehoyos) + * improvements to LIVE555 demuxer + +Huehner, Stefan (huehner) + * Major code cleanup patches + +Hug, Hampa + * LUT-based soft eq video filter (vf_eq2) + * .ogm demuxer endianness fixes + +Hůrka, Tomáš + * Darwin DVD support (mpdvdkit2) + * various fixes + +Isani, Sidik + * get_delay() smoothing code (-autosync) + * RTC initialization fixes + * various small fixes + +Issaris, Panagiotis (takis) + * -playlist option + * NuppelVideo support + * various fixes + +Jacobs, Aurelien + * standalone C Matroska demuxer + * DTS support + +Jelveh, Reza (timebomb) + * NSV demuxer + * seeking in Real files without index + * savage_vid VIDIX driver + * miscellaneous small fixes and improvements + * first musepack decoding patch + +Jermann, Jonas (g0th) + * manual page rewrite + * documentation + +Johansson, Anders + * old audio plugin system, some effect plugins + * new libaf interface design, implementation, plugins + +Kain, Nicholas + * strl(cpy|cat) detection and conversion + * string handling cleanups + +Kalinski, Filip (filon) + * X11 fulscreen switching fixes/cleanup + +Иван Кълвачев [Ivan Kalvachev] (iive) + * interlaced MPEG-2 support (libmpeg2) + * configfile parser fixes + * SRT subtitle dump support + * vo_svga rewrite + * various fixes and small improvements + * XvMC support (MPlayer & FFmpeg) + +Kaniewski, Wojtek + * mouse wheel support + * made the FreeType + RAW font support work together + +Kaplan, Kim Minh + * DVD and VOBsub subtitles display support + * DVD subtitles rip to VOBsub + +Kärkkäinen, Samuli + * first DVD ripping guide + +Keil, Jürgen + * patched MPlayer to work on Solaris 8 x86 + * various fixes (Win32, configure, etc) + * sun audio output driver in libao2 + * mediaLib support in libavcodec + * esd audio output driver in libao2 + +Kesterson, Robert + * yuv4mpeg video output driver + +Kinali, Attila (KotH) + * various small fixes in the X11 code + * xinerama support + * documentation + * patch application monkey, mailer daemon + +Kovriga, Gregory + * GUI drag & drop support + * GUI DVD fixes + * various small bug fixes in ASX/URL parser + +Kühling, David + * libtheora support, Ogg/Theora demuxing changes + +Küçük, Onur + * GTK2 port of the GUI + * Fix compilation in locales like TR, AZ etc. + +Kuivinen, Fredrik (ksorim) + * OSD/subtitles outside a movie for SDL + * video filter layer draft, first implementation + * VirtualDub filter support (not yet finished/committed) + +Kurshev, Nick + * memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h) + * CD-ROM tune info + * further 3DNow! optimizations into mp3lib and libac3 and FFmpeg + * first Russian documentation translation (outdated) + * radeon_vid, rage128_vid, radeonfb + * vesa video output driver + * VIDIX and libdha design, programming, Rage128/Radeon VIDIX drivers + +Kuschak, Brian + * RTP streaming support (reading) + +Kushnir, Vladimir + * patched MPlayer to work on FreeBSD x86 + +Lambley, Dave + * HTTP cookie support + +László, Gyula (Chass, Tégla) + * first fonts (mp_font1.zip) + * third and fourth homepage design & gfx + +Le Gaillart, Nicolas + * French documentation translation + * documentation updates and fixes + * 2nd half of the documentation HTML --> XML conversion + +Lénárt, Gábor (LGB) + * configure script improvements + * Makefile improvements + * preliminary DVD support (libcss) + * various X11 cleanups and fixes + * HTMLization of the documentation + +Leroy, Colin + * GUI endianness fixes + * volume control with -ao sdl + * -ovc lavc endianness fixes + * -ao pcm endianness fixes + * libdha on PowerPC Linux + * mach64 VIDIX driver endianness fixes + +Lewis, Derek (delewis) + * AIX port + * Solaris-related configure fixes + +Liljeblad, Oskar + * various OSD related patches + +Lin, Sam + * -wid (plugger) patch + +Littler, Ben (compn) + * #mplayer user wrangler (2003+) + * minor samples/bugs/win32 finder/tester + * small docs patches + +Lombard, Pierre (pl) + * new configure script + * general code maintaining, fixes, patch committing + +Madick, Puk + * KDE/GNOME2 fullscreen fix + * configparser fixes + +MakoviÄka, JindÅ™ich (henry, x0rph) + * various bug fixes + * rewrote v4l video capturing, implemented audio capturing layer + * FreeType 2 font rendering support + +Marek, Rudolf + * gtf code for -vo vesa + * NeoMagic TV out support through VESA VBE + +Megyer, László (Lez, Laaz) + * subtitle reader + * screensaver + DPMS disable for libvo + +Melanson, Mike (tmmm) + * MS Video1 codec open source implementation + * FLI demuxer, decoder + * unified ADPCM decoder (supports IMA/DVI, MS ADPCM, several others) + * FILM (.cpk) file demuxer + * RoQ file demuxer, audio/video decoder + * QT SMC decoder + * QT RLE decoder + * MS RLE decoder reimplementation + +von Merkatz, Arwed + * fontconfig font lookup support + +Merritt, Loren (pengvado) + * x264 encoding support + * x264 documentation + * some libavcodec documentation + +Mierzejewski, Dominik (Rathann) + * compiler warning fixes + * official Red Hat RPM packages + * Polish documentation translation + +Milushev, Mihail + * GIMP font generator plugin (TOOLS/subfont-gimp) + +Mistry, Nehal (Nehal) + * various audio driver fixes + +Mohari, András + * skin documentation + * various docs updates and fixes + * 1st half of the documentation HTML --> XML conversion + +Mueller, Steven + * first implementation of live changing playback speed + +Murrell, Brian J. + * black frame detection filter (vf_blackframe) + +Neundorf, Alexander + * raw DV demuxer + * demuxer packet refcounting + +Niedermayer, Michael (michaelni) + * new, GPL postprocessing code (with deinterlacing etc...) + * software scaling with MMX/MMX2/3DNow! support (swscale.c) + * various RGB/YUV bpp converters + * new, better IDCT code for libavcodec, DivX decoder speedup + * runtime CPU detection + * liba52 SSE optimization + * various encoder/decoder fixes, improvements in libavcodec, DR support + * lrintf() bugs + * many bug fixes + * patch review + * boxblur, fil, hue, il, noise, perspective, qp, rgbtest, sab, smartblur, + spp, swapuv, test video filters + +Noring, Fredrik + * -vo DGA fixes + +Ohm, Christian + * various small bug fixes + +Ötvös, Attila + * A huge pile of printf to mp_msg patches + * Various patches for Teletext + +Parrish, Joey + * various fixes + * -vo gif89a author + * GIF demuxer author + * Windows support improvements + * Cygwin installer package + +Pietrzak, Dariusz (Eyck) + * Debian packaging support (see debian/* and the documentation) + * support for vplayer subtitle format + * preliminary support for .RT subtitle format + +Plourde, Nicolas + * quartz video output driver for Mac OS X + * macosx CoreVideo output driver for Mac OS X + * Darwin VCD/SVCD support + +Poettering, Lennart + * audio driver for the Polypaudio sound server + +Poirier, Guillaume (poirierg) + * French documentation translation and synchronization + * XviD documentation + * libavcodec turbo mode + * lots of updates of MEncoder's documentation + * code fixes to support GCC-4.0 + * patch review + +Ponekker, Zoltán (Pontscho/fresh!mindworkz) + * the original configure script and Makefiles for easy compilation + * GUI system + * 3DNow! support into mp3lib and fastmemcpy.h + * various X11 driver changes, fixes (keyboard handling, fullscreen, + bpp detect, etc) + * xmga video output driver + * audio mixer (volume) support + +van Poorten, Ivo (ivop) + * multiple directory support for vo_jpeg + * vo_jpeg suboptions parser + * vo_pnm video output driver + * vo_md5sum video output driver + * af_ladspa LADSPA plugin loader + * vf_blackframe cleanup and simplification + +Ran, Lu + * Chinese documentation translation + * various VOBsub related patches + * improved seeking in RealMedia format + +Reder, Uwe + * various x11/vm/fs fixes + * subtitle/OSD control fixes + +rgselk + * Real RTSP range support + +Rune Petersen + * adapter selection support for vo_directx + +Saari, Ville + * divtc & phase video filters + +Sabbi, Nico + * DVB input support + * MPEG TS support + +Sandell, Björn + * various *BSD fixes + +Sanderson, Mark + * -vo s3fb driver + +Sauerbeck, Tilman + * TGA decoder (RLE/uncomp), -mf tga support + +Scherthan, Frank + * added OSD handling for live changing playback speed + +Schneider, Florian + * RealVideo codec libraries interface, .rm demuxer fixes + +Schoenbrunner, Oliver + * SGI audio driver + * MIPS support + +Shimon, Oded (ods15) + * multiple file support for MEncoder + * small cleanups, mostly to EDL + * -speed for MEncoder + * -edl and -hr-edl-seek for MEncoder + * -delay for MEncoder + * some changes to vf_dsize and vf_expand + +Simon, Peter + * TOOLS/wma2ogg.pl author + +Snel, Rik (rik) + * zr video output driver + * zr2 video output driver + * zrmjpeg video filter + +Sommer, Sascha (Faust3) + * DirectX VO driver + * Windows waveout AO driver + * QuickTime audio+video decoding, video encoding (using Win32 DLLs) support + * MinGW port, Cygwin fixes + * winvidix video output driver + * cvidix video output driver + * nvidia_vid VIDIX driver + * dhahelperwin for direct hardware access under Windows NT/2000/XP + +Stepanov, Evgeniy (eugeni, Azzy) + * SSA/ASS subtitle renderer + * Matroska chapter seeking + +Strasser, Alexander (beastd) + * string handling security audit + * EWMH fullscreen + * suboption parser + +Strzelecki, Kamil < esack at browarek.net > + * first version of ao_jack, using bio2jack + +Svoboda, Jiří (zar) + * AQT type subtitles support + * CRTC2 YUV support in mga_vid + * DirectFB video output driver + +Swain, Robert + * CQM support and turbo multipass mode in x264 interface + * Profile support in XviD interface + +Syrjälä, Ville + * -vo dfbmga driver (G400 DVDMax-like feature using dfb 0.9.14) + +Szecsi, Gabor + * directsound AO driver + +Tackaberry, Jason + * second DVD ripping guide + +Tam, Howell (Pigeon) + * native libcaca driver (-vo caca) + +Tlalka, Adam (atlka) + * OSD/subtitle review, fixes, optimization, UTF-8 support + * various fixes + +Tiesi, Gianluigi (Sherpya) + * AC3 passthrough support for ao_win32 + * avisynth demuxer + +Togni, Roberto (rxt) + * open source QT RPZA decoder + * open source HuffYUV decoder + * open source MSZH/ZLIB decoder + * open source QT 8BPS decoder + * mp_help-it.h updates + * Realaudio (ra) demuxer, 14_4 and 28_8 codec support + * Misc bug fixes and enhancements + * documentation + +Tresoldi, Paolo "PaulTT" (ptt) + * mplayer -endpos option + * Italian man page and console messages translations + * Italian documentation translation + +Tropea, Salvador Eduardo + * subtitle parsing/displaying related patches + +Urpala, Uoti (uau) + * A/V sync fixes + +Vajna, Miklós (VMiklos) + * TOOLS/divx2svcd author + * TOOLS/ directory documentation + +Verdejo Pinochet, Reynaldo H. (reynaldo) + * improved EDL support + * mp_msg transition / translatables to help_mp helper + * .wpl playlist support hack + * karaoke audio filter + * major code cleanups + * TOOLS/qepdvcd.sh + +Voroshilov, Vladimir + * Radio support + * Russian documentation translation + * Russian man page translation + +Wigren, Per + * bmovl - Bitmap Overlay video filter + +Witt, Derek J + * MMS network streaming patches + +Young, Alan + * fixed support of RealMedia & XAnim binary plugins on Alpha + +ZaprzaÅ‚a, Artur (zybi) + * complete font generator prog + OSD font (TOOLS/subfont-c) + +Zealey, Mark + * -vo tdfxfb driver + * -geometry window positioning code + +Ziv-Av, Matan + * vo_svga fixes, improvements + * svgalib kernel helper support for VIDIX/libdha + +Zoltán, Márk Vicián (Se7en) + * SVGAlib support in libvo + +Zores, Benjamin (ben) + * RTSP input layer in stream. + * PVR input layer for IVTV based cards. + * IVTV h/w MPEG decoder ao/vo driver. + * split of stream layer from libmpdemux to stream. + * VIDIX core and drivers. + +________________ +The codecs, libs +~~~~~~~~~~~~~~~~ + +Bellard, Fabrice + * FFmpeg/libavcodec author (open source MPEG, MJPEG, + DivX, WMA, DV etc audio/video en/decoder) + +Chappelier, Vivien and Vincent, Damien + * libFAME authors [fast MPEG-1 encoder, used by -vo mpegpes/-vo dxr3] + +Hipp, Michael + * mpglib author [not used directly but some parts are in mp3lib] + +Holtzman, Aaron + * ac3dec (and libac3) author [old AC3 audio decoder] + * the original mga_vid driver [Matrox G200/G400 YUV backend scaler] + * mpeg2dec [Fast MPEG-1/MPEG-2 video decoder, currently used in player] + +Janovetz, Jake + * remez.c author [Used to calculate audio filter coefficients] + +KabeláÄ, ZdenÄ›k (kabi) + * avifile author + * some technical help about the Win32 stuff, ASF formats and timers + +Kuznetsov, Eugene + * avifile author [AVI player library for Linux, using Win32 VfW/ACM codecs] + * technical help about AVI and ASF formats, and how to get YUV using VfW... + * DivX4Linux technical support + +Lespinasse, Michel + * large libmpeg2 changes for better speed and MPEG conformance + * liba52 author [current AC3 audio decoder] + +Podlipec, Mark + * xa_gsm.c author [MS-GSM audio codec] [from a GSM library by Jutta Degener + and Carsten Bormann] + +Project Mayo + * the OpenDivX codec authors + + +_____________________________________________________ +Their code is not used in the current player version, +but I've got some ideas or other technical help from: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Farin, Dirk + * dvdview author [MPEG-1/MPEG-2 video decoder, used in v0.5-v0.8] + +Lee, Avery + * VirtualDub author, help understanding AVI with VBR audio and + other AVI issues + +McGowan, John F. + * AVI FAQ author/collector. [site with many useful docs on codecs + and AVI format] + +Williams, Adam + * libmpeg3 (and xmovie) author [MPEG-1/MPEG-2 video decoder, used in + v0.1-v0.4] + + +___________ +Translation +~~~~~~~~~~~ + +Fargas, Marc (TeLeNiEkO) + * first Spanish documentation translation (outdated) + +Heryán, Jiří + * Czech man page and documentation translation + * some other Czech translation related work + +Krämer, Sebastian (kraymer) + * German man page translation + * German documentation translation + +Lettmaier, Kurt (k.lettmaier@onlinehome.de + * German documentation translation + +López, Juan Martin (nauj27) + * Spanish man page translation + * Spanish documentation translation + +Mizda, Gábor (Gabrov) + * Hungarian translation + +MPlayerPL - Polish MPlayer Translation Team (http://mplayerpl.emdej.com) + * WacÅ‚aw Schiller (Torinthiel) + * Kuba Misiorny (Qba) + * Åukasz Proszek (Frogu) + * Maciek Paszta (paszczi) + * Piotr Michniewski (Cobra) + * Marcin Biernat (boskicinek) + * Marek Jarycki (Emdej) + * Leszek Kaplita (Flex) + +Savchenko, Andrew + * Russian documentation translation + +Zubimendi, Andoni . + * Spanish documentation translation + + +_________ +GUI skins +~~~~~~~~~ + +unknown author + * iTunes, iTunes-mini + +Azrael + * brushedGnome + +Bekesi, Viktor (FRD) + * standard, plastic, slim + +bleachie + * bluecurve + +Burt.S. + * mplayer_red + +caparuni + * PowerPlayer + +Carpenter, Andrew + * handheld + +DogFaceMonk + * OSX-Mod + +Foucault, Charles + * QuickSilver + +funkydrummer@postmaster.co.uk + * Dushku + +ghostman + * sessene + +Gyimesi, Attila (JiM) + * JiMPlayer + +Hertroys, Alban + * disappearer + +hwsw.hu + * hwswskin + +Javipa + * new-age + +Kiss, Balint (Blint) + * Terminator3 + +krivilli + * Cyrus + +Kuehne, Andre + * tvisor + +Kuhlmann, Rüdiger + * KDE + +LUIGI + * Corelian + +michaell@uni.de + * hayraphon + +Naumov, Dan (Jago) + * moonphase + +Northam, Ryan + * OSX-Brushed + +nostrildamus + * xmmplayer + +Oyarzun Arroyo, Juan Pablo (jpoyarzun) + * changuito + +Park, DongCheon + * CornerMP, CornerMP-aqua + +Pehrson, Jurgen + * phony + +Pizurica, Nikola + * Industrial, XFce4 + +Ptak, Oliwier (aleczapka) + * mentalic, neutron + +Quiana + * QPlayer + +Riccio, Pasquale + * proton + +Schultz, Jesper + * plastik + +siTe + * OpenDoh + +Sudrien + * softgrip + +Sulmicki, Adam + * profiling and menu fixes + +Szumiela, Marcin + * divxplayer + +Tisi, Massimo + * clearplayer + +Týř, Jiří jun. + * DVDPlayer + +Vasilev, Ognian + * Orange + +Veres, Imre + * Canary + +Vesko, Radic + * Linea + +Vigvary, Balasz (Toky) + * avifile + +Weber, Andrew (Webby) + * webby, smoothwebby + +Whitmore, Gary Jr. + * krystal + +Wilamowski, Franciszek (Xenomorph) + * Abyss, Blue, Blue-small + +Zeising, Michael + * productive diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/BLACK.bmp b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/BLACK.bmp new file mode 100644 index 0000000..3cafcdf Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/BLACK.bmp differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Changelog.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Changelog.txt new file mode 100644 index 0000000..5f6ee81 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Changelog.txt @@ -0,0 +1,2848 @@ +MPlayer (1.0) + + rc2: "AreWeThereYet?" October 7, 2007 + (SVN revisions: MPlayer r24722, FFmpeg r10677) + + DOCS: + * console messages and XML documentation converted to UTF-8 + * Russian documentation translation finished + * Russian man page translation finished + * Chinese man page translation finished + * Chinese documentation translation started + * Documented get/set/step properties in DOCS/tech/slave.txt + + Decoders: + * Intel Music Coder audio decoding via lavc + * Monkey Audio audio decoding via lavc + * Fraps v2/v4 video decoding via lavc + * Video game codecs: 4XM audio, Electronic Arts ADPCM audio, Delphine CIN + audio and video, Interplay DPCM audio, Sierra VMD video, Tiertex SEQ + video, Westwood IMA ADPCM audio, XAN wc3 video, Id CIN video, Interplay + video, XAN ADPCM audio, Westwood SND1 audio, Feeble Files DXA video, THP + audio and video, Renderware TeXture Dictionary video, Bethesda Software + VID video via lavc + * video game codecs: XAN wc4 video via binary DLL + * libmpeg2 updated to 0.4.1 + * fixed resolution switching with libmpeg2 + * handle resolution switching for Real codecs + * FFmpeg video decoder can now handle aspect ratio changes + * AMR now handled via libamr wrapper (http://www.penguin.cz/~utx/amr) + * SIMD optimizations for mp3lib under AMD64 + + Demuxers: + * Implemented switch_video and switch_program consistently with switch_audio + (default keys are "_" and TAB, respectively). For the time being program + switching is only available in TS streams handled by demux_ts.c (not + libavformat), while video switching is also handled by demux_lavf.c and + demux_avi.c. + * audio and video switching for the AVI demuxer (video switching untested) + * GIF demuxer improvements, should work with all GIFs now + * support for VC-1 in MPEG-TS and MPEG-PS files (BD,HD)-DVD + * support for EVO demuxing + * support -noidx with libavformat demuxer + * support for channel navigation with PVR input + * text subtitles should now work with libavformat demuxer + * cleaned up TiVo demuxer + + + Streaming: + * authentication for Real RTSP streams + * near-precise seeking in dvd:// and dvdnav:// + (dvdnav:// requires libdvdnav from mphq) + * speed selection when playing dvd:// streams, to make drive quieter + * support SVQ3 and H.264 in X-QT over RTSP, now RTSP Apple keynotes work + (live555) + * SMIL playlist over Real RTSP + * support H.263-2000 over RTSP (live555) + * fix AAC-LATM over RTSP (live555) + * support AMR over RTSP (live555) + * support H.264 over RTSP (live555) + * "device" and "adevice" suboptions now work for the *BSD BT848 TV driver + * dvdnav:// now depends on MPlayer's fork of libdvdnav + * teletext support for tv:// (v4l and v4l2 only) + * radio support for *BSD BT848 + * channel scanner for tv:// + * fine tuning for tv:// + * driver autodetection for tv:// + * libnemesi RTSP/RTP support + * EOF detection for RTSP (live555) + + FFmpeg/libavcodec: + * Intel Music coder audio decoder + * Fraps v2/v4 video decoder + * H.264 decoding speedup + * Slice-based parallel H.264 decoding (-lavdopts fast:threads=N) + * native NUT demuxer updated to spec + * native NUT muxer + * NUT muxing and demuxing support via libnut + * WMA encoder + * fix MJPEG-B on big-endian systems + * lowres support for some H.264 files + * DTS/DCA audio decoder + * Atrac 3 audio decoder + * MPEG-1/2 speedups + * RoQ muxer, video and audio encoder + * QTRLE encoder + * AC-3 decoder + * Matroska muxer + * Monkey's Audio demuxer and decoder + * Flac encoder and decoder speedups + * AMV demuxer and audio/video decoder + + libmpeg2: + * iWMMXt-accelerated DCT and motion compensation for ARM processors + + Filters: + * obsolete fame filter removed + * vf_geq speed-ups + * vf_yadif green frame fixed + * fix af_pan when switching audio streams + * add audio left/right balance feature to af_pan + + MEncoder: + * write to output streams (currently only file:// and smb://) + * support -ffourcc with -of lavf + * removed B-frame warning message + * fixed bugs that would corrupt headers in the video stream when using telecining + and not patch the TFF flag correctly + + Ports: + * Complete Intel Mac support + * Hitachi SuperH (SH3) support + * Blackfin optimizations + + Drivers: + * ALSA audio output now sets the non-audio bit for AC3 passthrough even + if the user-specified default device name tries to clear it + * fixed internal VIDIX in Solaris/x86, also auto-enabled + * rework of internal VIDIX, now a fully static library with builtin drivers + * updated VIDIX ATI drivers + * Sun XVR-100 video output driver + + Others: + * monitorpixelaspect=1 is now default. Set monitoraspect=4/3 to get the old + behavior (if you have non-square pixels). + * libdvdcss updated to Subversion HEAD, now same as upstream version + * libmpdvdkit split into libdvdread and libdvdcss + * obsolete Xvid 3 support removed + * long-deprecated -vop option removed + * video stream switching + * dvdnav:// honor -alang and -slang + * support for doubleclick as input event + * -really-quiet works as expected now + * select libavformat demuxer (-lavfdopts format=) + * internal minilzo removed in favor of FFmpeg implementation, + use liblzo2 for encoding + * change GUI dependency from libpng to libavcodec + * ability to change subtitle size during playback + * ability to turn loop on/off during playback + * Apple Remote support + * libdvdread updated to 0.9.7 + * many compiler warning fixes + + + rc1try3: June 5, 2007 (unreleased) + + Security: + * stack overflow in stream_cddb.c fixed + + + rc1try2: December 31, 2006 (unreleased) + + Security: + * buffer overflow in asmrp.c fixed + + + rc1: "Codename intentionally left blank" October 22, 2006 + (SVN revisions: MPlayer r20372, FFmpeg r6767) + + DOCS: + * German documentation translation finished + * Russian documentation translation synced and almost finished + + Drivers: + * IVTV hardware MPEG audio/video decoder output + * ALSA audio output: AC3 passthrough now works even when the device name + of the digital output port has been set by the user + * bicubic OpenGL scaling works with ATI cards + * md5sum switched to the libavutil MD5 implementation + * support for libcaca 1.0 via compatibility layer + + Decoders: + * liba52 updated to 0.7.4 (slightly faster) + * SSE optimizations for mp3lib + * removed support for obsolete and non-free divx4 libraries + + Demuxers: + * audio stream switching in MPEG-TS/PS, Matroska and + streams supported by libavformat + * audio stream switching between streams with different codecs + * libavformat demuxer now honors -alang + * chapter seeking in Matroska files + * fixed seeking to absolute and percent position for libavformat demuxer + * NUT demuxer using libnut + * Matroska SimpleBlock support + + Inputs: + * split of stream layer from libmpdemux to new stream library + * PVR input for hardware MPEG encoder based cards, such as Hauppauge + WinTV PVR-150/250/350/500 AKA IVTV but also pvrusb2 and cx88 + (requires Linux >= 2.6.18 kernel, featuring native V4L2 MPEG API) + * native RTSP input (handles MPEG-TS over RTP) for generic RTSP servers + * support for seeking to chapters in dvd:// and dvdnav:// streams + * radio support (radio://) + + FFmpeg/libavcodec: + * VC-1/WMV3/WMV9 video decoder + * Vorbis decoding speedup, now default Vorbis decoder + * VMware Video decoder + * On2 VP50 and VP62 decoder + * lossless audio decoders: WavPack, TTA, Shorten + * CAVS decoder + * GXF muxer/demuxer + * MXF demuxer + * much improved FLAC encoder + * more H.264 decoding speed improvements, plus support for -lavdopts fast + * Theora decoder fixes + * preliminary Vorbis encoder + * MTV demuxer + + GUI: + * Windows version added + * drag-and-drop ignored last file + * save and load cache setting correctly + * working audio stream selection for Ogg and Matroska files + * executable names like gmplayer_old etc. will now start GUI as well + * -gui/-nogui options + * xinerama fixes, now behaves similar to MPlayer without GUI + + Filters: + * MMX-optimizations for -vf yadif + * MMX-optimizations for -vf zrmjpeg + + MEncoder: + * support of x264 encoding via libavcodec + * rewrite -x264encopts option parser to use the 264 option parser; + likely breaks 3rd party tools as the syntax of some options has changed + * removed support for obsolete and non-free divx4 libraries + + Ports: + * partial Intel Mac support, --disable-win32 --disable-mp3lib is needed + * OpenGL can now create windows > screen size under Windows + * allow filenames starting with \\ for remote paths on Windows + + Others: + * SSA/ASS subtitle renderer + * -endpos option for MPlayer + * -correct-pts option + * UTF-8 used for OSD and subtitles, some bitmap fonts will no longer work + correctly and -subcp must be set for all non-UTF-8 subtitles + * more audio-truncation fixes + * libavutil mandatory for MPlayer compilation + * more intuitive -edlout behaviour + * -nortc is now default since -rtc has disadvantages with recent kernels + + + pre8: "NeuTeam strikes back" June 11, 2006 + (SVN revisions: MPlayer r18681, FFmpeg r5466) + + Security: + * support for compilation with non-executable stack + * fix the major issues caught by Coverity's static analysis runs + + DOCS: + * environment variables documentation started + * interactive control fully documented + * improved encoding guide + * new technical encoding guide in DOCS/tech/encoding-guide.txt + which is to be merged into the existing guide + * encoding tips for x264 and XviD + * how to set up MEncoder for x264 support + * new advanced audio usage guide with surround sound instructions + * Hungarian XML documentation translation finished + * Czech documentation translation finished + * French MPlayer documentation synced + * German man page synced + * Hungarian man page synced + * Italian man page synced + * Chinese console messages synced + * misc improvements all over the place + * AIX port documentation added + * all XviD options documented + * CONFIGURATION FILES section added to the man page + * Doxygen comments added to configuration parser and OpenGL + video out driver + + Drivers: + * JACK audio output rewritten without bio2jack + * OpenAL audio output - unfinished, can only do mono output + * OpenGL video output modules support -geometry and -wid options + * for -vo gl manyfmts is now default (since it is a lot faster), use + -vo gl:nomanyfmts if it does not work for you + * streaming textures for -vo gl, much faster if supported (use -dr) + * hardware YUV to RGB conversion for -vo gl and -vo gl2, see yuv suboption + * support for custom fragment programs for -vo gl (see TOOLS/*.fp) + * support for bicubic hardware scaling in -vo gl, see lscale suboption + * use libvbe from vesautils as VESA video driver + * several fixes for the GGI video output driver + * fall back on next video output driver if vo_3dfx failed to initialize + * improved XvMC library detection (disabled by default) + * DPI (Print-Resolution) and Pixel-Aspect support in vo_jpeg + * ALSA audio output: several small fixes and improvements + * removed experimental mmap suboption from the ALSA driver + * YUY2 and back end scaling for S3 Virge chips on fbdev (-vo s3fb) + + Decoders: + * Indeo2 (RT21) support via lavc + * Fraps video decoder via binary DLL + * support for 8-bit PNGs with palette + * support for dmb1 MJPEG files with ffmjpeg + * support for musepack audio (WARNING: when seeking you might get + ear- and speaker-breaking noises). If you hear clipping, use -af volume. + * experimental speex support via libspeex + * On2 VP7 video decoder via binary DLL + * Duck/On2 TrueMotion2 (TM20) support via lavc + * support FLX and DTA extensions for flic files + * QDM2 audio decoding via lavc + * cook audio decoding via lavc + * TrueSpeech audio decoding via lavc + * CamStudio video decoder via lavc + * hwmpa pass-through MPEG audio codec + * tremor updated to libogg 1.1.2 + * PNG decoding via libavcodec + * removed native RealAudio codecs (ported to lavc) + * Zip Motion-Block Video (ZMBV) decoder via lavc and binary DLL + * support for QuickTime in24/in32/fl32 PCM audio + * internal libfaad updated to CVS 20040915+MPlayer patches + * RTJpeg decoder from lavc is preferred + * bug fix for lavc WMA v2 decoder, now all files should be playable + * -vc mpeg12 resizes the window when aspect ratio changes + * Smacker audio and video decoding via lavc + * Windows Media VC1 video decoder via binary DLL + * Flash Screen video decoder via lavc + + Demuxers: + * simultaneous audio capture/playback (-tv immediatemode=0) fixed in v4l2 + * PVR support + * AAC ADTS demuxer + * libdvdread updated to v0.9.4 + * support for some more MythTV NUV files + * modularization of demuxer code + * MPEG in GXF container support with extension-based detection + * faster MPEG and much faster GXF demuxing + * more user-friendly demuxer forcing + * MPEG Layer 1 and 2 demuxing fixed + * properly pass Vorbis extradata from Matroska container + * DVR format support + * H.264 ES high profile support + * TV channel cycling + * DVD subtitle and audio stream mappings fixed + * fixed RealAudio demuxing, now all files should have correct A/V sync + * partial support for QuickTime sound atom version 2 + * improved handling of text subs in Matroska files + * DVD subtitles disabled by default + * support sipr codec in old RealAudio files + * fixed framerate detection of interlaced H.264 in raw/PS/TS streams + * support for variable framerate Ogg/OGM files + * made demux_ogg.c work with ffvorbis decoder + * fixed playback of RealVideo in Matroska files on ppc + * added support for Vorbis in MOV/MP4 + + Streaming: + * fix streaming of RealAudio files over HTTP + * show SHOUT/Icecast metadata while playing + * ultravox (unsv://) streaming support + * stream code ported to new modular API, massive code cleanup + * bandwidth selection for Real RTSP streams (for faster stream dumps) + + FFmpeg/libavcodec: + * Snow bug fixes and speedup on x86, x86-64 and AltiVec + * MPEG-1/2/4 and H.264 decoder speedup + * Indeo2 (RT21) video decoder + * Fraps video decoder (v0 & v1, v2 not yet supported) + * Vorbis audio decoder + * RV20 fixes + * VP3 decoder fixes and speedup + * countless bug fixes all over the place + * vstrict=-1 is default, Snow, ffv1 etc. need vstrict=-2 + * skiploopfilter/skipidct/skipframe decoder options for very fast H.264 + decoding + * D-Cinema audio demuxer and decoder support + * Duck/On2 TrueMotion2 (TM20) decoder + * FLX and DTA extensions for flic + * QDM2 audio decoder + * cook audio decoder + * TrueSpeech audio decoder + * WMA2 audio decoder fixed, now all files should play correctly + * JPEG-LS decoder (unfinished) + * CamStudio video decoder + * Theora decoder + * improved MOV and QuickTime demuxer + * improved AVI muxer + * multithreaded decoding + * bitexact decoding + * DV50 encoder, decoder, muxer and demuxer + * true audio (TTA) decoder + * AIFF/AIFF-C audio format, encoding and decoding + * Creative VOC demuxing + * Zip Motion-Block Video (ZMBV) decoder + * KMVC decoder + * NuppelVideo/MythTV demuxer and RTJpeg decoder + * MP4 and MOV demuxer greatly improved to support all varieties of + currently available files + * AVS demuxer and video decoder + * American Laser Games multimedia (*.mm) playback system + * Smacker demuxer and decoder + * Flash screen Video decoder + * Trellis-optimized ADPCM audio encoder + * Major improvements to Snow quality and encoding + + GUI: + * skins now reside in a directory named 'skins', not 'Skin' + * ported to GTK2 + * long standing upside down vpotmeter bug fixed + * don't hang on unreadable skin files + * random fixes and improvements + + Filters: + * much faster version of spp filter (-vf fspp), and pp7 ("fast spp=6") + * remove_logo filter + * lavcresample now used by default (-af-adv force=0 gives old behavior) + * vf_expand and vf_dsize now support aspect and round parameters + * screenshot filter + * -af pan command line fix, now outputs the right number of channels + and accepts values < 0 or > 1. Channel order had to be changed. + * -af sinesuppress to remove a sine at a certain frequency + * negative stride support in swscale + * big-endian and AltiVec fixes and performance improvements for swscaler, + color conversions and post-processing + * -srate fixed + * hqdn3d: 2.5x faster temporal-only, 1.6x faster spatial-only + * new proof-of-concept karaoke (voice removal) filter + * motion compensating deinterlacer (-vf mcdeint) + * Yet Another DeInterlacing Filter (-vf yadif) + + MEncoder: + * audio encoding modularized + * AAC (FAAC) audio encoding + * border processing adaptive quantization in libavcodec + * encoding zones, DivX profiles support, luminance masking, + multi-threaded encoding for XviD + * raw audio muxer + * fixed various bugs in the EDL code + * x264 "turbo mode" to speed up first pass of multi-pass encoding + * x264 custom quantization matrices + * -delay allows real audio delay instead of just a delay in the header + * search for (deprecated!) frameno.avi is now disabled by default (use + -frameno-file frameno.avi to enable) + * -o is now mandatory. You can add 'o=test.avi' in ~/.mplayer/mencoder + to get the old behavior back. + * In multiple file encoding, either all or no files must have audio. Use + -nosound to force. + * support for VBR MP2 encoding in toolame + * twolame support + * libavformat muxers support + * VBR audio in MPEG support + * muxer_mpeg: added an experimental film2pal teleciner and fixed previous + bugs that could lead to desync and to wrong TFF/RFF flags being set + * rewritten muxer_mpeg.c: buffering and timing constraints will always + be respected, provided that the muxrate is big enough + + Ports: + * improved timer function on Mac OS X + * New Mac OS X "macosx" video output driver. Supported on OS X 10.4 + and 10.3 with QuickTime 7 (requires QuickTime 7 SDK to build on 10.3) + * Mac OS X 10.4 (Tiger) fixes + * macosx audio output driver fixes + * preliminary support for Intel Macs + * support for playing DVDs copied to harddisk on Cygwin + * DragonFly BSD support + * liba52 ASM optimizations ported to AMD64 + * configure check and compiler optimizations for VIA C3, C3-2 and Pentium-M + * configure check and compiler optimizations for AMD-64 extended + * configure can now run with cross compiling, new configure option + --enable-cross-compile + * -(no)border option to get a bordered/borderless window on Windows + * Experimental AIX support + * AltiVec support fixes + * POWER5 support + * OpenGL output ported to Windows + * FreeBSD default DVD device added + * MIPS64 support + * Darwin portability fixes + * improved Debian packaging + * improved Win32 multi-monitor support + * Sun's mediaLib disabled by default on Solaris (broken and non-optimal) + * VP6 and WMVA binary codecs should now work also under FreeBSD 6 + + Others: + * Audio/Video synchronisation fixes + * enabled hinting for TrueType fonts + * support for file:// syntax + * -fb option removed, use the device suboption of -vo fbdev/fbdev2 instead + * full gcc 4 support + * TOOLS/vobshift.py: vobsub time-adjust tool + * TOOLS/psnr-video.sh: computes PSNR between two existing video files + * fixed auto-insertion of lavc encoder (for DXR2/3 and DVB) + * new option: -idle, to make MPlayer wait for input commands when + done playing all files + * lots of new slave commands (check DOCS/tech/slave.txt) + * lots of new information provided by the -identify option + * fixed ugly looking OSD with -vo gl2 and MMX + * support for OSD localization + * -rawaudio/-rawvideo requires -demuxer rawaudio/-demuxer rawvideo + * libdvdcss updated to 1.2.9 + * ~/.dvdcss is used instead of ~/.mplayer/DVDKeys for cached CSS keys + * libcdio support for CD playback + * new option -msglevel to directly control the verbosity of MPlayer modules + * -verbose option removed, use -v or "-msglevel all" instead + * -edl is now per-file in MPlayer + * new input command prefixes, "pausing_keep" and "pausing_toggle" which + alter pausing state immediately after command + * environment variable MPLAYER_VERBOSE controls verbosity before the + command line is parsed + * environment variable MPLAYER_HOME controls location where + configuration files are searched for + * memleak fixes all over the code + * TOOLS/aconvert: allows MEncoder to encode from an audio-only file + * TOOLS/3*m_convert: D-Cinema audio and video conversion program + * TOOLS/qepdvcd.sh: anything supported to VCD/SVCD PAL/NTSC + * TOOLS/encode2mpeglight: MPEG format encoding tool using only MEncoder + * allow multiple -help clauses on the command line + * console "OSD" for audio-only files + * show total time when playing audio-only files + * support for .wpl playlists + * support for ncurses as termcap library provider + * parallel make fixed + * (improved) support for shared libav* libraries + * playback/encoding profiles support + * new property API + * new -monitorpixelaspect option to determine monitor aspect from + screen resolution + + + pre7try3: February 15, 2006 (unreleased) + + Security: + * heap overflow in demuxer.h fixed + + + pre7try2: August 26, 2005 + + Security: + * heap overflow in PCM audio decoder fixed + + + pre7: "PatentCounter" April 16, 2005 + + Security: + * heap overflow in Real RTSP streaming code fixed + * buffer overflow in MMST streaming code fixed + + + DOCS: + * Czech documentation translation in progress + * German man page almost synced + * slave mode command documentation finished + * TOOLS documented in TOOLS/README + * audio filter documentation moved to the man page and updated + * all audio filters documented + * improved encoding guide + * preliminary documentation for Snow codec in DOCS/tech/snow.txt + * misc updates and fixes all over the place + + Ports: + * DirectX video output fixed on Windows95 + * DirectX video output now supports 256 color mode + * audio device selection support for dsound audio output driver + * --enable-macosx-bundle, use config directory in the appwrapper on OS X + * Sun audio output cleanup + * x86_64 support fixes + * OpenBSD support in libdha + * VIDIX support for more Radeon 9200 models + + Drivers: + * fixed ontop event for some window managers + * audio output layer cleanup + * unified colorkey handling code + * vo_xvmc panscan fix + * fixed some X11 crashes + * OSD fixes in various video output drivers + + Decoders: + * TWinVQ decoder via binary DLL + * integrated Tremor decoder for Ogg/Vorbis + * fixed decoding of stereo alaw files + * preload QT DLLs to work around problems with their hardcoded paths + * support for Real 10 RV30/40 Linux binary codec (fixes some RV40 files) + * expose support for 422P and 444P raw formats + * 32 bit RGB support in binary TSCC decoder + * dropped support of old FAAD2 versions (<= 1.1) + * support for Real 10 cook Linux binary codec (decodes cook5.1) + * improved NV12/NV21 support + * support for 32 bit float and extended WAV files + * prefer native RealAudio 1.0 / 2.0 decoder over binary decoders + * support for multichannel WAV files + * ALAC (QuickTime lossless audio) support via lavc + * WNV1 support via lavc + * AASC (Autoderk RLE video) support via lavc + * LOCO video support via lavc + * fixed Layer 1 stereo playback via mp3lib + * VMnc (VMware video) decoder via binary DLL + * AMR NB/WB support via libavcodec and external reference decoders + * ADTS AAC support + + Demuxers: + * vqf demuxer + * seeking in MPEG-ES fixed + * support for Real multirate files + * framerate autodetection for MPEG-4 and H.264 video in ES and TS streams + * MP3 in Real files + * more user-friendly info about audio and subtitle tracks in Ogg files + * avisynth demuxer + * Multichannel MP3 in MP4 files support (MP3on4) + * some classes of nonworking 14.4/28.8 RealAudio files fixed + * added code to autodetect and demux MPEG audio layers 1 and 2 + * demux AC3 audio files using libavformat by default + * online audio stream switching in the MPEG and Matroska demuxers + * 3GP demuxing support + * DVB updates and ATSC tuner support + * AVC in Matroska support + * SWF and FLV support via libavformat + * use proper Vorbis fourcc + + Streaming: + * stream selection and bandwidth support for MMS over HTTP + * fall back on HTTP if connection refused on pnm:// + * support for UDP streaming (udp://) + * support for vstream TiVo streams (tivo://) + * EOF detect and bugfixes in pnm:// streams + + FFmpeg/libavcodec: + * RV20 fixes + * many H.264 fixes + * B-frames in H.264, H.264 weighted prediction support + * a lot of integer overflow and pointer fixes + * 32 bit RGB support in TSCC + * multichannel MP3 decoder (MP3on4) + * 3g2 support + * ALAC audio decoder + * LOCO video decoder + * WNV1 video decoder + * shorten audio decoder and demuxer + * AASC video decoder + * AMR NB/WB support via external reference decoders + * significantly faster Snow decoding + * experimental ratecontrol for Snow + * countless bug fixes all over the place + + GUI: + * half size event implemented and added to the menu + * ESD configuration dialog and software volume control option + * memleaks fixed + + Filters: + * big cleanup of audio filter layer + * faster af_format for most common cases + * float handling in the audio filter layer finally fixed + * obsolete audio plugins finally removed + * updated HRTF filter + * center channel adding filter + * soft-telecined input support in pullup improved + + MEncoder: + * new experimental MPEG muxer, compatible with DVD and (S)VCD + * multiple file support + * -speed support (framerate conversion with speedup/slowdown) + * EDL support + * low bitrate mp3lame encoding fix + * MJPEG encoding fix + * NUV endianness fix (makes old NUV files unplayable) + * experimental libavformat muxer + * mp3lame CBR encoding fix + * 35% faster turbo mode for 1st pass + + Others: + * -z option replaced by -vo png suboption + * icc fix in the Win32 loader + * crash with Turkish locale fixed + * several memleak fixes + * -aa* options are replaced by -vo aa suboptions + * excessive verbosity reduced + * RTC support for *BSD + * non-UTF-8 external subtitles with Matroska fixed + * gcc 4 fixes + * partial NX (noexec bit) support + * support libsmbclient with SSL + * put changed notices into all imported files for GPL 2a compliance + + + pre6: "X-mas present" December 23, 2004 + + DOCS: + * finally all options are documented + * man page completely reviewed for spelling, wording and clarity + * all audio output driver suboptions documented + * all video output driver suboptions documented + * audio filters section added to the man page + * XviD documentation completed + * French man page in sync again + * German man page updated + * new Czech (complete) and Swedish man page translations + * fixes and updates in various places + + Ports: + * full x86_64 support + * -rootwin, -panscan support in the quartz video output driver + * key repetition and aspect fixed in the quartz video output driver + * "Movie" menu for quartz video output driver with zoom options & preset + * fs_res quartz video output driver suboption chooses fullscreen resolution + * VCD support for Darwin (Mac OS X) + * Mac OS X Finder startup argument support + * support for Real (Helix) codecs on Mac OS X (working this time) + * fix for stdin input and slave mode on MinGW + * support for -rootwin, -colorkey, -wid in the DirectX video output driver + * improved monitor selection in the DirectX video output driver + * new DirectSound audio output driver + * mouse support in Windows + * support for ZetaOS (mostly working) + + Drivers: + * fixes in the VESA and GGI video output drivers + * -jpeg removed in favor of -vo jpeg suboptions + * jpeg video output driver now supports output to multiple directories + * improvements for the Blinkenlights video output driver ;-) + * OpenGL video output driver colorformat fixes (with manyfmts suboption) + * aspect, panscan, hardware OSD support in the OpenGL video output driver + * new pnm and md5sum video output drivers, replacing pgm and md5 + * yuv4mpeg video output now has a file= suboption, can be used with + -fixed-vo to concatenate files having same width, height and fps + * JACK audio output driver updated to bio2jack API changes + * alsa9 and alsa1x replaced by alsa audio output driver + * ALSA audio output driver always uses specified device, even for hwac3 + * support for mixer channel selection in the ALSA audio output driver + * audio output driver for the polypaudio sound server + * VIDIX Cyberblade TV-out fixed + * VIDIX I420 support for Cyberblade and mga + * VIDIX Radeon support on big-endian systems, other Radeon fixes + * VIDIX Radeon R200 QM (Radeon 9100) support + * CLE266 VIDIX driver + * experimental SAVAGE VIDIX driver + + Decoders: + * "experimental" support for 20 and 24 bit LPCM (DVD-Audio) + * libmpeg2 updated to 0.4.0b + * libfaad2 updated to 2.1beta CVS snapshot + * DTS decoding via libavcodec + * Windows Media Audio 9 Voice support via binary DLL + * Windows Media Video 9 Advanced support via binary DLL + * Windows Media Screen Codec 2 support via binary DLL + * Windows Media Image Codec support via binary DLL + * Windows Media Image 2 Codec support via binary DLL + * VDOWave video support via binary DLL + * Miro VideoXL video support via libavcodec + * Creative ADPCM audio support via libavcodec or binary DLL + * IBM Ultimotion video support via libavcodec + * Micronas Speech codec support via binary DLL + * H.261 video codec support via libavcodec + * TechSmith Camtasia video codec support via libavcodec + * sonic audio codec support via libavcodec + * Snow video codec support via libavcodec + * QuickDraw video support via libavcodec + * Cinepak, CYUV and RoQ audio/video moved to FFmpeg + * Vianet Lsvx video support via binary DLL + + Demuxers: + * fix -nosound and -novideo for NSV + * subtitle switching and language code displaying for Matroska + * support for the .vp5 file format (AVI variant) + * seeking in audio-only ASF files fixed + * improved MP3 detection + * support for AVC in .mp4 files + * support for raw H.261 files via libavformat + * improved seeking precision in MPEG files + * better subtitle language code handling for MKV files + * support DVHS files and H.264 over MPEG-TS + * display length and position (in the seekbar) for MOV files + * raw video in MOV files playback improved + + Streaming: + * -cache-min and -cache-prefill options added + * compilation fix for newer LIVE.COM versions + * make ASF without ECC work + * support for MMS on non-standard port + * EOF detected in Real RTSP streams + + FFmpeg/libavcodec: + * reduced resolution decoding with the lowres option + * new experimental wavelet-based Snow video codec + * new sonic audio codec + * TechSmith Camtasia video decoder + * IBM Ultimotion video decoder + * QuickDraw video decoder + * Creative ADPCM decoder + * Miro VideoXL decoder + * Sierra online audio files demuxer and decoder + * QPEG video decoder + * Electronic Arts Game Multimedia format demuxer + * H.261 fixes, H.261 encoder + * fix VIS accelerated code + * DTS support via libdts + * many DV fixes, seek in raw DV files + * support AAC in MOV files + * RV10, RV20 fixes + * RV20 encoding + * AVI demuxer cleanup, palette change support + * iTunes metadata support + * HuffYUV fixes (endianness, RGB32 predictor, median encoding, interlacing) + * ffvhuff (enhanced HuffYUV codec) + * SSE optimizations for 4x4 compare function + * epzs motion search enhancements + * quad tree based motion compensation + * MPEG-4 qpel MMX2/3DNow! optimizations + * H.264: lot of fixes and MMX2/3DNow! optimizations + * AVC1 (H.264 without sync word in .mp4 files) support + * H.264 qpel motion compensation + * Indeo3 grayscale decoding + * preliminary Truemotion 24 bit decoder + * avizlib encoder fixed + * trellis quantization support in H.263 + * DCT optimizations + * AltiVec support on AmigaOS4 + * adapt MMX/MMX2/SSE/3DNow! optimizations to work on x86_64 + * seeking fixes + * better and faster audio resampler + * New dc1394 grabbing interface + * preliminary decoding support for H.264 with CABAC and B-frames + * dvr-ms support in ASF demuxer + * NSV demuxer + * DVD compatible MPEG muxer + * MJPEG-B fixes + * range coder (arithmetic entropy coder) used by Snow and ffv1 + * ffv1 enhancements: signed golomb, range codes + * multi slice support for main profile H.264 streams + * as usual, lots of bug fixes and optimizations + + Filters: + * software volume control when no hardware support available, can be + controlled with the -softvol and -softvol-max parameters + * high-quality audio resampling with -af lavcresample + * cropdetect rounding parameter + * MPlayer -af help + * missing audio plugins (extrastereo, volnorm) converted to audio filters + * sine sweep generator audio filter + * hrtf audio filter to convert multichannel audio to 2 channel output + for headphones, preserving the spatiality of the sound + * big-endian fixes in rgb2rgb converter + * yuv2rgb AltiVec optimization fixes + * support for LADSPA plugins + + GUI: + * unified audio options dialog, also for ALSA + * redrawing limited, decreases CPU usage in audio-only case + * icons for the context menu + * doublesize bug fixed + * slowdown after opening the preferences panel bug fixed + * remaining messages moved to help file for translation + * slowdown after using the preferences panel fixed + + Encoding: + * x264 encoder support + * support for MP2 encoding with libtoolame + * libavcodec "turbo mode" to speed up 2-pass encoding + * support for 3-pass encode for libavcodec and x264 + * XviD encoder and decoder modules updated to API-4.1 (XviD-1.1.x) + * flush remaining frames at end of encoding process + + Others: + * -loop and -shuffle now work together + * better EDL support + * some --disable configure options finally work (mp3lib, liba52, libmpeg2) + * framestepping + * change playback speed during playback + * some crashes with binary codecs fixed + * subtitle alignment support for SAMI files + * also support Windows path separator '\' + * FriBiDi fixes for comma handling in Hebrew subtitles + * -crash-debug option to attach gdb automatically after crashes + * gcc 4 compilation fixes + * compilation fixes for many files in the TOOLS directory + * infamous "stuck mouse button" bug fixed, new -key-fifo-size option + * reduced verbosity of MPlayer's output somewhat + * -identify now prints some information about available languages + * double buffering (-double) is now default + * many memleaks fixed + + + pre5try2: December 15, 2004 + + Security: + * buffer overflow in mp3lib fixed + * heap overflow in Real RTSP streaming code fixed + * stack overflow in MMST streaming code fixed + * unnecessary BMP demuxer removed because of buffer overflows + * heap overflow in pnm streaming code fixed + + + pre5: "LinuxTag release" July 15, 2004 + + Name: + * It's "MPlayer - The Movie Player" instead of + "MPlayer - The Movie Player for Linux" now. + + Security: + * complete review of string operations, buffer overflows fixed + + DOCS: + * small additions, corrections, updates all over the place + * audio output driver section added to the man page + * several bug fixes and improvements in the MEncoder documentation + * DVD ripping guide extended and improved + * AUTHORS file massively extended + * German man page partially updated + * Hungarian XML documentation translation started + + Ports: + * encrypted DVD playback on Windows fixed (again) + * Cygwin and MinGW now accept the same -dvd-device syntax + * LIVE.COM now works under MinGW + * foundations for MinGW crosscompilation + * disabled SSE on MinGW as it caused crashes + * AC3 passthrough for ao_win32 + * improved vo_quartz (YUV, multiple screens support) + * vo_quartz made default on Mac OS X + * ao_macosx fixed and made default again on Mac OS X + * RealVideo binary codecs support on Mac OS X (still buggy) + * big-endian fixes in vf.c, vo_tga + * OpenBSD portability fixes + * OpenBSD/VAX support + * AMD64 support + + Drivers: + * support for more Radeons (9800 XT among them) in VIDIX + * Radeon related bug fixes in VIDIX + * vo_gl2 now supports GUI, fix for flickering borders in fullscreen + * support 24 and 32 bit PCM files, big-endian fixes + * ao_sdl now converts unsupported formats instead of quitting + * ENCA support + * merged ao_alsa9 and ao_alsa1x drivers into ao_alsa + * NeoMagic TV-out support through VESA + * JACK audio output driver + * vo_sdl fixes (wrong flags and screensaver disabling) + * vo_directx fixes + + Decoders: + * MSZH/ZLIB, FLI, QTRLE, RoQ video and RoQ audio support moved to FFmpeg + * FFmpeg Cinepak and CYUV decoders preferred + * audio format 0xff support (is AAC) + * "raw" audio in MOV supported + * Indeo audio (iac25) support via binary codec + * upgrade libfaad2 to the FAAD 2.0 release + * MPEG-2 chroma422/444 support + * Winnov WINX and WNV1 support via binary codec + + Demuxers: + * Ogg subtitle handling and other bug fixes + * Matroska improvements + * support seeking in Real files without -idx + * support seeking in Real files without index with -forceidx + + Streaming: + * ASF, MMST streaming fixes + * URL escaping fixed + * NSA (Nullsoft audio) streaming support + * embedded RAM playlist support + * multibyte URL support + * rtp:// now supported even with LIVE.COM compiled in + * miscellaneous bug fixes + + Filters: + * vf_softskip: frame skipping filter for MEncoder + * vf_harddup: frame duplication filter for MEncoder + * vf_pullup minor fixes and improvements + * AltiVec-optimized YUV to RGB converter + * vf_spp memory corruption fix on reallocation + + FFmpeg/libavcodec: + * MPEG-2 encoding with 8, 9, 10, 11 bit intra DC precision + * DC clipping fix, intra_dc_precision > 0 support + * Cinepak fixes and palette support + * support skipping of MB rows during decoding + * Vorbis in NUT fixed + * NUT updated to latest specification + * segfault and artifact fixes in SVQ3 decoder + * motion estimation code: overflow and chroma fixes + * change qscale -> lambda for the motion estimation + * noise preserving sum of squares comparison function in ME code + * fixed memory overwrite in truemotion decoder + * clip input motion vectors, better error tolerance on bad vectors + * FLAC decoder cleanup (partial demuxer/decoder separation) + * memalign hack for SSE/SSE2 on that alternative OS :) + * lots of AltiVec optimizations + * qscale + qprd fix + * QTrle4 support + * H.261 decoder + * coefficient saturation fix in H.263 + * H.263 MCBPC fix + * per line lowpass filter in MMX and faster C lowpass filter + * SVQ1 encoder + * as usual, lots of bug fixes and optimizations + + Others: + * fullscreen fixes for many window managers + * fix crash on original Pentiums and older + * dvd://start-end support + * netstream (mpst://) support fixed + * support comments in plaintext playlists + * loader/ dependency removed + * keepaspect option extended to all video output drivers + * WMA to Ogg conversion and simple subtitle editing script added to TOOLS + * support for more lame options + * new set of GUI icons + * memory conserving implementation of GUI potmeters + * X11 code reindented + * further gcc 3.4 support fixes + * mixer API written for changing volume through libaf + * -rtc-device option for specifying the RTC device + * desktop/menu icon added + * miscellaneous bug fixes and cleanups + * multi-threaded encoding with libavcodec + * fixed a bug with Real files introduced in pre4 + * -use-stdin renamed to -noconsolecontrols + + + pre4: "YAML Counter" Apr 28, 2004 + + Security: + * HTTP parser remote heap overflow vulnerability fixed (from 1.0pre3try2) + * Real RTSP remote buffer overflow vulnerability fixed + * buffer overflow in the Matroska demuxer + * potentially exploitable buffer overflow in CDDB TOC code + + DOCS: + * new Copyright file covers files from other projects and their licenses + * new DOCS/tech/translations.txt explains how to properly translate MPlayer + * new Japanese console message translation + * Polish translation finished + * Italian man page translation + * DVD ripping guide + * telecine/interlacing guide + * video output driver section added to the man page + * XML build system rewritten - now supports building individual languages + * miscellaneous updates all over the place + + Ports: + * better PA-RISC detection + * support for VAX (tested on VAXstation 4000/VLC) -- really, believe me! + * optimizing for specific MIPS CPUs under IRIX + * AMD64 detection under BSDs + * fbdev driver updated for Linux 2.6 + * support for ELF only OpenBSD + * optimizing for PPC 970 (aka G5) + * SDL support fixed on MinGW + * VIDIX working under Windows XP/2000 (native dhahelper) + * builds out of the box under GNU Hurd + * SSE optimizations enabled under MinGW + * SSE support under OpenBSD + * AltiVec support under NetBSD + * GCC 3.4 support (due to changed behaviour in ASM code snippets) + + Demuxers: + * Matroska containing RealVideo works better + * fixed random segfaults in VIVO + * endianness fixes in CDDA + * UYVY support in tvi/v4l2 + * tvi/bsdbt848 now working under FreeBSD 5.2-CURRENT + * tvi/bsdbt848 audio part working under NetBSD + * LIVE.COM demuxer updated to conform with latest libraries + * new, independent, C implementation of the Matroska demuxer + * fix for rare Real files + * more robust Real demuxer (can resync after errors) + * support for AAC inside Real + * MPEG Aspect code 4 fixed + * wrapper demuxer for FFMpeg's libavformat (Nut is playable this way) + * support for selecting subtitle streams with -slang inside Ogg + * much improved seeking in Ogg + * -sid/-aid/-vid start from zero in Ogg demuxer just like other demuxers + * Nullsoft streaming video (NSV) demuxer + * AVI OpenDML read and write support + + Streaming: + * SMIL playlist parser + * support for URL redirection + * support for seeking in HTTP streams + * updated LIVE.COM streaming code + * fall back on live.com RTSP after Real RTSP + * suggests -playlist if normal streaming fails + * many improvements and bug fixes in the streaming code + + Decoders: + * compilation failure without zlib in vd/lcl fixed + * removed obsoleted decoders (which were moved to libavcodec), affected: + vd/8bps, vd/msrle, vd/msvideo1, vd/rpza, vd/smc + * workaround for buggy codecs in ad/acm (support for Sharp G.726) + * fixed chroma-swapping in Hauppauge Macroblock decoder + * AltiVec-optimized resampler in liba52 + * support for VP5 and VP6 DLL decoders + * support for Alparysoft lossless video codec (through DLLs) + * support for Lead MCMW wavelet video codec (through DLLs) + * HE-AAC working through libfaad + * removed libmpflac in favor of FFmpeg's FLAC implementation + * liba52 dynamic range compression support + + Filters: + * vf_bmovl bugfixes + * vf_filmdint now handles 15fps NTSC input + * huge updates and speedup on vf_pullup + * big updates to vf_ilpack (proper interpolation and MMX optimizations) + * vf_zrmjpeg: fast MJPEG encoder using libavcodec for Zoran + * interlaced scaling support in vf_scale + * vf_kerndeint: adaptive deinterlacer + * vf_rgbtest: rgb test pattern generator for developers + * vf_qp: QP change filter + * vf_noformat: the same as vf_format but with reversed meaning + * AltiVec-optimized SWScaler + * vf_phase: phase shift fields + * vf_divtc: duplicate frame removal from deinterlaced telecined video + + Drivers: + * ao/esd behaves better over network now + * support for Radeon 9200/9600/9600 Pro/9700 in VIDIX + * -mixer support for alsa9 + * fixed OSS audio grabber module with hardware not supporting 44khz + * native ALSA 1.x support (not through 0.9 emulation) + * better multibuffer support in VIDIX nVidia driver + * pan & scan support in VIDIX nVidia driver + * support for more cards in VIDIX nVidia driver + * vo_libcaca: color ASCII art output driver + * vo_quartz: native MacOS X/Quartz video output + * support for VIDIX when ATI FireGLX drivers are used + + FFmpeg/libavcodec: + * H.263 AIC and MQ encoding support + * fixed low delay decoding + * fixed H.263+ encoding without UMV + * lots of CBR improvements + * MB type and QP visualization + * lots of code cleanup + * intra & inter dequantization split -> speedup + * fixed stereo IMA ADPCM encoding + * VBV delay setting support (MPEG-2 CBR) + * improved RV20 decoder (most known errors eliminated) + * interlaced DCT + * interlaced motion estimation + * interlaced MPEG-2 encoding + * 4MV encoding fixes + * initial interlaced MPEG-4 encoding + * improved visual quality in SVQ3 decoder + * fixed never-before-tested embedded string decoder in SVQ1 + * optimized quantization (including the trellis way) + * Sierra VMD video decoder + * MMX- and SSE2-optimized H.263 denoiser + * better SVCD compliance (encoder side) + * MMX- and MMX2-optimized interlaced DCT decision + * various cleanup, memleak and segfault fixes + * optimized (2x faster) the MPEG layer 3 decoder + * grayscale coded MJPEG decoding support + * avimszh and avizlib decoders + * "packed" XviD decoding + * fixed some bugs in RV20 B-frames decoding + * closed GOP encoding + * SSE2-optimized FDCT + * support for quantizer noise shaping + * support for EA ADPCM and SMJPEG IMA ADPCM + * QT RLE decoder + * OBMC fixes + * FLAC decoder + * better support for DivX5 + * MMX- and SSE2-optimized VP3/Theora decoding + * support for Theora alpha3 + * many H.264 improvements + * more robust MJPEG startcode search mechanism + * better WMV8 decoding + * native SPARC VIS optimizations + * native G.726 codec + + Others: + * -codecs-file option for specifying alternative codecs.conf file + * fixed some minor bugs in the GUI + * prevent sig11 when $HOME is not set + * fix some command line handling corruptions + * Swedish and Polish yes/no options in config files + * support binding F11 and F12 keys + * TOOLS/divx2svcd updated + * stricter thread code in Win32 loader (works under NetBSD) + * PJS subtitle support (was: dunnowhat) + * TOOLS/avifix: simple tool to fix chunk sizes in AVI files + * proper extraheader handling when libavcodec is used in MEncoder + * AVI OpenDML read and write support + * AVI VPRP (video property) read and write support + * fixed long standing lame quality option off-by-one bug in MEncoder + * MPL2 subtitle support + * less verbosity in Win32 loader and other places + + + pre3try2: security fix release Mar 3, 2004 + + Security: + * HTTP parser remote heap overflow vulnerability fixed + + + pre3: "The Real Counter" Dec 9, 2003 + + DOCS: + * all MPlayer and MEncoder options documented + * all FFmpeg/libavcodec options documented + * Support for building incomplete XML documentation + * Support for building all-in-one HTML docs + * HTML documentation obsoleted + * English, Polish and French HTML documentation removed + * Spanish documentation translation finished + * Macedonian runtime output translation added + * small improvements and bug fixes all over the place + + Ports: + * fixed compilation of Matroska on MinGW/Cygwin + * support for detecting non-Intel CPUs under Cygwin + * sub autoloading under Windows + * removed pthread dependency (out of the box compilation on NetBSD) + * more 64 bit fixes + * a lot of Mac OS X fixes + * prefer TOOLS/cpuinfo over linuxemu's /proc/cpuinfo under FreeBSD/x86 + * Darwin XMMS libs supported + * support newer Darwin versions in AltiVec detection code + * support for newer Apple GCCs + + Codecs and demuxers: + * better support for (buggy) MEncoder created streams in libmpeg2 + * MPEG-TS demuxer updates + * fixed the MPEG muxer + * fixed tons of bugs in MMS streaming + * user settable HTTP user-agent field + * improved (now working) seeking with support for growing RealMedia files + * saveable and loadable index files (workaround for formats not + supporting files over 2GB) + * Ultimotion VfW decoder + * support for MMS streams with UTF urls + * big DVB demuxer update + * fixed MOV demuxer to always read ImageDesc (fixes ffsvq3 bugs) + * fixed an old bug in AVI/Waveformatex size calculation + * XviD API-4 (1.0 beta2) support + * improved FLAC-in-Ogg support + * Matroska: better AC3 detection + * Matroska: VOBsubs, MP2, FLAC, AAC and HE-AAC support + * improved detection of Real RTSP through URL analysis + * fixed stereo 16 bit TWOS + * fixed MPNG when using BGR24 images + * control functions in Ogg demuxer + * HTTP cookies support + * LML-M4 MPEG-4 capture card raw stream format support + + Filters: + * some fixes in the delogo filter + * optimized eq2 filter + * weighted gamma support in the eq2 filter + * new filters: hue, spp, fil, yuvcsp + * alternative postprocessing filter (spp) + * big scale filter updates + * zrmjpeg filter, a kick-ass MJPEG encoder using FFmpeg/libavcodec + * filmdint: new inverse telecine filter, heavily MMX- and 3DNow!-optimized + + FFmpeg/libavcodec: + * Lagrange multipliers instead of qscale, encoding quality much improved + * fixed an old bug in MPlayer's support code + * support wider range of VOLs in H.263 + * direct rendering support in MJPEG + * massive MLib optimizations + * more VQA files supported + * Theora support + * Sunplus JPEG (SP5X) support + * H.263 GOB fixes + * massive cleanups + * reduced memory footprint (!) + * fixed decoding if aspect ratio changes + * MMX2 optimizations in HuffYUV + * lots of bugs squashed in HuffYUV + * long standing decoding errors after 'first frame is not keyframe' fixed + * CRI ADX support + * XA ADPCM support + * fixed files with odd dimensions on PPC + * optimized MPEG-2 bitstream parsing + * better interlacing framework + * support for IBM's XLC compiler + * support for SAR (sample aspect ratio) + * floating point AAN DCT + * dynamically alloc big data fields (lower memory usage in most cases!) + * fixed stereo IMA-ADPCM encoding + * inline vs always_inline - some speedups + * MMX2-optimized FDCT + * accurate 2-4-8 DCT + * much faster DV encoding (beats libdv) + * support Cinepak files with funky (not divisible by 4) resolutions + * AltiVec-optimized FDCT + * XvMC speedups + * initial ZyGoVideo decoding + * RGB support in FFV1 + * new Palette API, all codecs updated + * Noise reduction of DCT coefficients + * "av_log" logging API + * support for buffer hints from codecs + * BGR24, RGB555 and PAL8 image formats + * 8BPS, MS RLE, MS Video1, QT RPZA, QT SMC, FLIC and TrueMotion1 decoders + * 16x8 MV visualisation support + * H.263 overlapped block motion compensation (OBMC), 4MV support + * H.263 alternative inter vlc support + * H.263 deblocking filter (MMX-optimized) + * H.263 modified quantization support + * H.263 slice structured mode support + * Real RV20 decoder (with B-frame support) + + Drivers: + * VIDIX equalizer support in fbdev, svga and vesa + * VIDIX colorkeying support in fbdev, svga and vesa + * obsoleted option: -fb + * new SiS 650/651/740/etc VIDIX driver + * safer vo_directx direct rendering + * massive nvidia_vid updates + * gl2 updates + * ggi now supports non-directbuffer rendering and slices + * tdfxfb fixed on gcc 3.x + * dfbmga updated, G200 support + * colorkeying can be disabled + * Radeon 9800 (R350) support in VIDIX + * proper fix for buffer size workarounds in vo_zr + * new vo_zr2 driver, which uses the advantages of the filter layer + * fixed vo_vesa when used together with pthread + * runtime stay-on-top functionality (in almost all output drivers) + * ALSA 1.x support + + SWScaler: + * updated MLib (Sun VIS) support + * more accurate filters (rounding fixes) + * MMX-optimized UYVY output + * eliminated chroma scaling bugs + + Others: + * fixed aspect and geometry + * fixed compilation when libavcodec is missing (although it's a bad idea) + * MTRR detection added to TOOLS/cpuinfo + * FAAD detection in configure fixed/improved + * improved FLAC configure detection + * GUI file selector updated for newer formats + * Fontconfig support + * proper VOBsub seeking support + * removed oldskool libcss support (nobody uses it, it has drawbacks and + possible security implications) + + MEncoder: + * FFmpeg/libavcodec audio encoding support + * exit if there's no video stream (avoids unexpected segfaults) + * huge bug fixed (missing InitTimer call), screwed up timers in some cases + * rawyuv (i420) 'encoder' + + + pre2: Oct 5, 2003 + + Security: + * remotely exploitable buffer overflow in the ASF streaming code fixed + + DOCS: + * Spanish and Russian translations almost finished + * French, Hungarian, Polish translations updated + * New Romanian translation started + * numerous sections updated + + Ports: + * initial Amiga/MorphOS (through GeekGadgets) support + * FreeBSD 5.x (libkse/libthr) support in Win32 DLL loader + * finally fixed the compilation on non-MVI capable Alpha CPUs + * better AltiVec detection in configure + * OSD menu now works on MinGW + * slave mode, VOBsub and MEncoder support on Windows + * MinGW 3.1.0 supports MPlayer out of the box! + * VIDIX and libdha ported to Windows + * SDL on IRIX support + * vo_gl2 video output ported to Windows + + Codecs and demuxers: + * support for QuickTime version 6.3 DLLs + * fixed some bugs in imported FAAD + * disabled internal FAAD when using buggy GCC + * --enable-externalfaad option to force using external FAAD library + * imaadpcm bug fixed + * ViVD v2 codec support (DLL only) + * QuickTime codecs support inside Matroska + * improved seeking inside Matroska + * some bugs with DMO codecs have been fixed + * fix for MOV files with bogus user data length + * fixed some demuxers which read after EOF + * better RTP synchronisation + * FLAC support through imported libmpflac + + Filters: + * new delogo filter (for removing TV channel logos) + * presets support in swscaler filter + * new audio filter export, for supporting visual effect applications + * correct select handling in bmovl filter + + FFmpeg/libavcodec: + * better DivX/XviD bug detection code + * Id RoQ decoder + * Interplay MVE decoder + * WC3/Xan video decoder + * Xan DPCM, DK3 & DK4 ADPCM audio decoders + * detect old XviD with fourcc=DIVX + * vp3 decoder fixes + * improved the Alpha optimizations + * x86 optimizations are threadsafe now + * settable scene change threshold + * better MPEG-1/MPEG-2 conformance encoder + * quality improvement for high bitrate videos with trellis quantization + * indeo3 decoder fixed + * new options: mv0, cbp + * DV video encoder + * MPEG-1 now works with Trellis quantization + + Faad2: + * synced to latest CVS + * HE_AAC profile added + * SBR QMF improvements + * DRM updates + * Covariance speedup + * reduced memory usage + * overall cleanups and fixes + + Drivers: + * VIDIX driver for nVidia cards + * directfb2 fixed for latest directfb + * smoother audio playback with alsa9 + * fullscreen and geometry support in directx + * fullscreen support with OpenGL drivers + * OSD fixed with svga + * new cvidix and winvidix drivers + * user settable colorkey + + Others: + * several leak fixes + * selecting optimizations for PPC 7455 CPU + * CPU detection code now measures speed on x86 + * unrarlib cleaned up a bit + * updated the list of known x86 CPUs (including Opteron!) + * subtitle alignment and smart line splitting options + + + pre1: "Development" on the beach Sept 1, 2003 + NOTE: the MPlayer 'main' branch was forked at the time of 0.90-rc4, so + 0.90-rc5 (and later 0.90 releases) changes are independent! + (it also means that there are main-only and 0_90-only changes) + + DOCS: + * DOCS/Language/ dirs renamed to DOCS/id, English files moved to DOCS/en + * HTML --> XML format conversion (English, Russian and French for now) + * new Spanish DOCS translation + * man page restructured, options ordered + * Finally merged libavc-option.txt into the man page. + * slave mode commands moved from the man page to DOCS/tech/ + * traditional Chinese help file added + * massive help file updates, most languages are up to date now + * new and improved Windows port section with Cygwin and MinGW subsections + * almost all options documented + * fixes and small updates all over the place + + Big/Structural changes: + * linux/ dir renamed to osdep/ + * postproc/postproc* files moved to libavcodec + * old libmpeg2 replaced with patched version of the 0.3.1 release + * docs priority & installation (--language=ab,cd,ef,all and so on) + * yuv2rgb conversion removed from most vo drivers (like fbdev, gif89, etc) + * reverse-order -vop option obsoleted by -vf, big config layer changes + * stream layer "cleanup", -dvd -> dvd:// etc + * autosub fuzziness, it tries to load all subs with similar filenames + * removed the whole old config reader, leaving only the newer one + (no backward compatibilty!) + + Ports: + * HP-UX fixes + * Ported to Darwin / Mac OS X (with extra accurate Darwin timers) + * Ported to Win32/MinGW (including network, timers, getch, etc) + * Win32 codecs DLL support on Win32 (Cygwin and MinGW) + * fixed mpdvdkit on Cygwin and MinGW + * Lots of PPC (including AltiVec) optimizations + * Some ARM fixes + * Alpha fixes (especially non-gcc3 support) + * Initial Hitachi SuperH support (SH3/SH4) + + Codecs/demuxers support: + * RealAudio Win32 DLLs support + * various RealAudio/RealVideo fixes, including WxH bugs, Sipr, etc + * various RealMedia a-v sync fixes + * RealAudio V4 demuxer + * RealAudio 14_4 and 28_8 codecs support (both binary DLLs and native code) + * RealMedia rtsp:// support (independent from the live.com RTSP stuff!) + * Matroska demuxer (C++ version) + * demuxer: enabling MPEG-4-ES autodetection, H.264-ES support + * WAV extradata parsing (for truespeech, atrac3, etc) + * MPEG-TS (Transport Stream) and TIVO demuxers + * DVB (Digital Video Broadcasting) input driver + * hwac3: DTS passthru support + * new filters: down3dright, detc, telecine, tfields, ilpack, ivtc, dsize, + tinterlace, pullup (MMX-optimized!), framestep, tile + * vf layer: slices support (crop, expand, swscale only) + * vf scale aspect fixes + * swscaler: cleanup & API change, yv12 -> yuy2 in alpha asm, + -fPIC compileable + * swscaler: brightness/cont/sat. and different YUV matrices support + * NUV encoding + * SGI image files decoding (-mf) + * Theora video (using libtheora/libogg) support + * DivX.com 5.0.5 libs support + * support for latest XviD en/decoder features + * decoder for Hauppauge PVR 250/350 MB-YUV format (fourcc HM12) + * support for Vanguard's Win32 H.264 etc codecs + * Video for Linux 1: various bugfixes, video eq support + * Video for Linux 2 support + * TV support: kick-ass image format handling + * mp3lib: moved the assembly sources into gcc inline assembly (c) + * mp3lib: sync with mpg123 0.59s-pre + * mp3lib: final layer-1 support + * mp3lib: skip trashed first MP3 frame, fixes many buggy/misdetected files + * imported a working FAAD version + * 8BPS (Planar RGB) support + * working DVD (libmpdvdkit) support for Cygwin/MinGW + + FFmpeg/libavcodec: + * libavcodec: static,const,compiler warning cleanup, UINTX -> uintx_t + * old HuffYUV v1 support + * PAL 4:1:1 SMPTE 314M DV streams support, NTSC DV last MB column fix + * fixing padding bug autodetection for some rare files + * DspContext.(i)dct_* bitexact cleanup + * user settable quantizer bias + * MPEG-1 slice encoding support + * MSMPEG4 2-pass support + * H.264 video decoding + * Indeo 3 video decoding + * VP3 video decoder (buggy somtimes) + * Sorenson 3 (SVQ3) video decoder (it's actually a H.264 variant) + * 3IV1 (3ivx v1) decoding + * ASV1 (ASUS Video v1) and ASV2 (ASUS Video v2) en/decoding + * Improved SVQ1 decoding (using FFmpeg VLC functions) + * truncated unary binarization, unary k-th order exp golomb binarization :) + * FFV1: lossless YUV codec, compresses a lot better than HuffYUV, but slower + * lossless MJPEG en/decoding, pegasus "pseudo yuv" (=RCT) decoding + * ATI VCR1 and VCR2 decoding + * full featured SH4 optimizations + * ARM-optimized simple_idct + * MPEG-2 encoding + * PSX MDEC decoder + * user settable quantization matrices + + Drivers: + * x11_common: fix detection of metacity + * x11_common: 10l fix in original layer detection code + * x11_common: extended fstype config options + * x11_common: smooth window moving + * tdfx_vid driver (3dfx cards overlay with AGP support) + * vo_xover: general X11 overlay driver, currently only tdfx_vid uses it + * mga_vid: various fixes, 16MB G400 detection, support for multiple cards + * new svgalib vo driver + * vo_directfb2: triple buffering support, configuration sys changed, fixes + * OpenGL driver cleanups/fixes (both vo_gl and vo_gl2) + * vo_fbdev cleanup/partial rewrite, now with real direct rendering + * vo_xvmc: new driver featuring XvMC (HW MC/IDCT) acceleration + * new TGA output driver + * new vo_fbdev2 (written from scratch) + + Others: + * gcc can now detect badly called mp_msg()s + * many config/cmdline parsing fixes (some of them were at least 100000l bugs) + * configure: enable VIDIX for PPC + * configure: full featured PPC optimizations, rewritten architecture handling + * spudec.c: Fix "invalid fragment" handling, Improved subtitle queueing + * network streaming layer: IPv6 support + * FTP support + * playtree parsing speedup :) + * various URL parsing fixes + * Crash on broken config files finally fixed! + * GUI: PPC (reverse byteorder) fixes + * GUI: revert to 'default' skin if configured skin failed + * TOOLS/plotpsnr.pl: PSNR plotting tool using gnuplot + * DOCS/tech/mpcf.txt: MPCF/NUT draft/specification + * TVout/matroxtv: various improvements + * spelling/grammar fixes in numerous files + + +MPlayer (0.90) + + rc4: "FlameCounter" Feb 9, 2003 + + DOCS: + * some clarifications and updates in the English DOCS + * massive translation and help-file updates + + Fixes: + * -ac hwac3 fixed (was broken in rc3) + * vo_svga: 4bp & 8bpp fixes + * various GUI fixes, including some critical bugs + * rage128 VIDIX PPC fixes + * libmenu: one crash fixed, some cleanup + * fixed ./configure --cc="ccache gcc" + * -loop fixes, now -loop 2 plays a file twice :) + * (mirrored) OSD volume symbol fixed (|\ -> /|) + * 32bpp QT-RLE support + * AltiVec on non-Darwin systems support + * QuickTime reference file support fixes + * mp3lib: layer-2 decoding fixes + * updates to extension->demuxer mapping table + * libavcodec: DivX 5.03 decoding fix + * ao_oss: limited channels handling fixed + * fixed OGM subtitles and iconv + * fixed -subcp option with unicode truetype fonts + * -mf: type detection (based on extension), better defaults + * vo_xv: -fixed-vo support fixed (fullscreen switching) + * Ogg-in-AVI (audio format 0xFFFE) demuxing fixed + * vorbis decoding fixed (outer loop cleanup) + * swscaler: 4bpp depth 1 pixel/byte format support for -vo svga + * missing error message in command line parser for missing parameters + * swscaler: YVU9->YV12 fixes + * -ao mpegpes + -ac hwac3 fixed + * -ao pcm bogus WAV header fixed + * -vo x11 + -wid fixed + * auto-insert the 'palette' filter if needed, support fixed in filters + * sig11 when playing second audio-only file fixed + * configure: detection of CDDA, nas, i18n, svgalib, FAAD2, lame fixed + * -af/-af-adv support in MEncoder fixed + * libmpdvdkit2: upgraded to use libdvdcss 1.2.5 + + Features: + * raw video support (-rawvideo, similar to -rawaudio) + * experimental MPEG-4-ES support (enable with -demuxer 27 -fps xxx) + * new video filter: field (cheap deinterlacer) + * DVD/VOBsub improvements: positioning, optional gaussian blur scaler + * vf_bmovl: 400% speedup :) + * libavcodec: native DV audio decoder + * GIF demuxer (for animated GIFs) + * new noise removal filter: -vop denoise3d + * per-channel gamma and MMX-opt'ed bri/cont/saturation support in -vop eq2 + * live.com lib support cleanup, support for more stream types + * playtree imported into the GUI instead of the GUI's own playlist hack + * support for the XviD and DivX4/5Linux libraries at the same time + * -fstype option: override priority/layer of the fullscreen switch methods + * libavcodec: some B-frame related encoding failures/crashes fixed + + + rc3: "BugfixCounter" Jan 19, 2003 + + DOCS: + * English man page & HTML docs updates + * audio filter documentation + * help_diff.sh doesn't depend on bash any more + * Hungarian, French, Italian, German, Polish(?) docs synced + + Important fixes: + * X11 fullscreen switching (yes, again...) rewritten, some X11 code cleanup + * Voxware and QuickTime DLLs finally work (was broken in some contexts) + * VIDIX Radeon support cleanup, should really solve the pink screen bugs + * Cygwin: -vo directx crashes and garbled picture with some files fixed + * OGM/Ogg seeking (broken frames) fixed, subtitle fixes, XCD support + * libaf: big (audio filter layer) updates, floating point support, speedup + * ffwma2 fixed (better error resilience) + * SPU queueing - fixes missing or early disappearing DVD subtitles + * the mysterious DVD audio delay (150-300ms) fixed + * extension-based file format detection fixed the MP3 vs. MPEG-PS conflict + * cache2 keeps buffer for non-seekable media, fixes QuickTime streaming + + Fixes: + * mp3lib CPU detection part cleanup, 'decwin' linker problem fixed + * various cddb:// fixes, support of NetBSD 1.6 + * libmpdvdkit2: Fix DVD authentication on Solaris 9 + * libmpdvdkit2: libdvdcss upgraded to 1.2.4 (keeping the key cache patch) + * libmpdvdkit2: fixed decryption from multiple VOB files (hdd or Darwin) + * -ao arts, -ao oss: Fix 8-bit sound support + * -vop expand + FFmpeg codecs conflicts solved, some other -vop bugs fixed + * -ac ffmp2 with MPEG files (sig11) fixed + * QT Qclp audio codec initialization fixed + * exit codes cleanup (0 for quit/eof, 1 for error) + * -ao win32 sync problems solved, -autosync 100 is still recommended + * -vo gif89a uninit sig11 fixed + * the usual compiler warning fixes :) + * use -pphelp instead of -vop pp=help + * various big-endian fixes + * 16bpp packed YUV fixes in crop, mirror, rotate filters + * some -fixed-vo and vo_preinit fixes, -vo sdl, xmga, mga should work... + * various Solaris compatibility fixes (should work out of the box) + * mms:// port fixes, tries 1755 if 80 failed + * libavcodec: various ME fixes, B-frames fixes, WMV2 slice decoding fixes + * -ao alsa9 audio-file playback high CPU usage fixed + * libaf updates, 2-pass initialization to get better filter path + * better detection of playlists, support for [Reference]-style format + * handle QuickTime reference media files as playlist + * cddb:// & cdda:// CD-ROM device name fixes on Linux and *BSD + + Features: + * -ao esd: new EsounD audio driver + * -vo dxr3: new NORM option + * XAnim & RealPlayer binary Codecs working on PPC + * Radeon 9000 support in VIDIX, colorkey restoring for all Radeons + * initial PPC (big-endian) support in VIDIX Rage128 driver + * pnm:// streaming support (ported from xine) + * muxer layer: MEncoder can now write MPEG-PS format, too (EXPERIMENTAL!) + * libavcodec: WMV2 decoder (buggy/untested) + * DVB "HEAD" (aka. NEWSTRUCT) drivers support + * subtitle background bounding-box support (optional grey-level & opacity) + * libaf: 3 new filters: panning, compressor/limiter and a noise gate + * per-mediafile config file support (for file-specific options) + * iconv (codepage conversion) support for OGM (Ogg) subtitles + * v4l: user friendly channel tuning + * freetype & old-style RAW font support usable (compilable) at the same time + * vo_directfb2, vo_dfbmga: DirectFB 0.9.16 support + * libavcodec: motion estimation pre pass, qpel encoding, trellis quantization + * libavcodec, liba52, mp3lib: AltiVec optimizations + * keep window aspect ratio at resizing (x11, xv), requires WM support + * -geometry option, also accepts X11 syntax + * real .bin+.cue (S)VCD images support (-vcd 2 -cuefile xxx.cue) + * postprocess: YUV 411/422/444 support, stride fixes + * jumping of overlapping subs fixed, sorting is automatic, iconv fixes + * MPEG-2 telecine detection and automatic inverse telecine (MPlayer only) + + GUI: + * correct GTK widget destroy event handler + * fullscreen switching fixed (sync with x11_common) + * fix GTK submenu + * new font render engine + * added persistant history patch + * SDL Audio configure window + * add overlapping to preferences + * add playbar for subwindow + * add vertical potmeter for skin + * fixed 'single pixel bug' + * fixed some possible crashes + + + rc2: Dec 24, 2002 + General: + * DOCS/tech/encoding-tips.txt and tech/directfb.txt + * some DOCS corrections/updates/sync/HTML fixes + * GUI: fixed three submenu bugs and several other problems + * more compiler warning fixes + * NetBSD: CPU SSE/SSE2 detection & VCD reading fixes + * fixed possible v4l capturing crash + * merged the EDL 0.5 patch - using & creating edit-lists (runtime cut&skip) + * subtitle alignment changeable: top/bottom/middle (key 'i') + * -slang support for VOBsub files + + VO: + * X11 fullscreen switching code changed again (esp. for GNOME2/KDE 3.1) + * VIDIX: svgalib kernelhelper support (as libdha alternative) + * VIDIX driver for trident cyberblade card + * VIDIX: 8 pixel shift & pink window bugs fixed in the RADEON driver + * new, rewritten version of vo_svga (VIDIX support etc) and vo_gif89 + * yuv4mpeg vs. framedrop/frameskip fixed + + Codecs: + * libavcodec: fixed possible 20% speedloss bug + * support for the experimental (and buggy) dev-api-3 XviD CVS branch + * fall back on built-in codecs.conf if no compatible external file found + * experimental Sorenson 1/3 encoding (using QuickTime DLLs) + * more accurate video bitrate calculation for AVI files + * presets support for libmp3lame encoding + * CDDA seeking fixed + * Win32/RealPlayer codecs DLL & 64bit Alpha Linux RealPlayer codecs support + * XMMS Input plugins (demuxer & codec) support + * Fixed a bug in MMX-optimized mp3lib (triggered by OpenBSD). + + + rc1: "CodecCounter" Dec 7, 2002 + Docs: + * new French translation + * IRIX section + * various updates (both English & Hungarian) + + Codecs: + * new codec pack download page (there are several packs for various IFs) + * Win32/QuickTime codec plugin DLL support -> SVQ3 + QDMC/QDM2/Qclp !!! + * Win32/DMO codec DLL interface support -> Windows Media Audio/Video 9 !!! + * MJPEG 2000 support (using Morgan & Imagepower VfW DLLs) + * libavcodec: optimized HuffYUV en/decoder, with experimental YV12 support + * libavcodec: MJPEG-B support (need more samples) + * more xvidencopts + * VorbisGain tag support, tremor (fast vorbis decoder lib) support + * BIG libavcodec messups & codmetics & cleanups & API changes & fixes + * dynamic plugin support for libmpcodecs (for future binary codec releases) + + GUI: + * general code cleanup, more robust GTK code + * preferences: screensaver, Autosync settings + * cache=4 fixed (caused jerky/lagging/slow playback with gmplayer) + + Others: + * new config/cmdline parser code (optional) + * OSD menu system (preferences, shell, file selector, etc) + * libaf: runtime cpudetection, volume, equalizer, better format conversion + * subtitle overlapping can be disabled, added subtitle sorting + * subtitle dump to JACOsub and SAMI formats + * displays URLs from 'Reference Media' type MOV files, dump generic data + * find best (longest) streams in MOV files (twotowers...) + * get position/length function in demuxers - for slavemode & -identify + * -ao alsa9 surround fixes, 8-bit PCM fixed + * -vo dfbmga: -dr support, fixed OSD flickering + * -stop-xscreensaver fixed, support for KDE screensaver, too + * More compiler warning fixes + * AltiVec (G4) support + + + pre10: "BirthdayCounter" Nov 11, 2002 + Docs: + * DVD auth, VCD sections extended (DOCS/cd-dvd.html) + * unified *BSD sections, extended Cygwin + + Fixes: + * LIRC error message (Error while reading cmd fd X : Success) fixed + * playback of some (streamed?) DivX files starting with non-I-frames fixed + * -vo png fixed (removed builtin YV12 support, removed OSD) + * some MP3 playback/seek segfaults fixed + * VIDIX Mach64 colorkey on PPC fixed + * -ao sdl now handles "featureless" soundcards + * -vo zr fixes + * fixed sig11 if vo init failed + * various DXR2 and DXR3 fixes + * v4l buffering fixed + * fixed multiple reads caused by byteswapping macro (mjpeg.c, mach64_vid.c) + * cleanup of postprocessing code - now it's threadsafe and can be shared + * ported to GNU/Hurd + * cleanup of AVI pts (timestamp) handling - no more BPS hack in mplayer.c + * small cleanup of A-V sync code - using relative instead of absolute timers + * GUI code cleanup, obsolete files/dirs removed + * various small bug fixes, endianness fixes + * MEncoder: -pass option removed, use -divx4opts pass=N / -lavcopts vpass=N + * MEncoder: "ff_rate_estimate_qscale: Assertion `q>0.0' failed" fixed! + * MEncoder: -ovc xvid fixes, cleanup, enhancements + * screensaver/dpms re-enabling fixed + * RealVideo demuxer fixes - ASF-style stream detection method + + Features: + * -ao win32 (for Windows port) + * libavcodec: native WMA v1/v2 (aka DivX audio) decoder + * hw-accelerated video eq for -vo x11 and gl2, using DirectColor colormap + * overlapping subtitles support, jacosub (*.js) format support + * -vo dxr3 got a new syncengine, ':sync', also added native overlay support, + activate with ':overlay', read the manual for more info on how to set up + * QDMC/QDM2/MACE audio codec support, using QuickTime 5 Win32 DLLs (libwine!) + * libavcodec: various MJPEG decoding fixes - now it decodes all sample files! + * mencvcd updates, sox/toolame support, etc + * -vo dfbmga - play video on Matrox G400's second head using directfb 0.9.14 + * RealAudio ATRC (sony atrac3) audio support (using binary plugin) + + Filters: + * -af/-af-adv options cleanup + * now auto-inserting -vop lavc for MPEG-only vo's + * video filter API documented :) + * better deblocking filter (-vop pp), pp/npp syntax changed! + * -vop 2xsai - 2x scaler for drawn images (low-color cartoon animations) + * -vop unsharp - a sharp/blur filter, nice, but very slow + * -vop il - (de)interleave fields + * -vop swapuv - guess what :) + * -vop boxblur - box blur... + * -vop perpective + * -vop sab + * -vop smartblur + + + pre9: Oct 24, 2002 + Docs: + * man page rewritten again :))) + * man page updated to latest options, including lavc options + * Chinese docs translation added + * Hungarian translation is (was? :)) up-to-date again + + Cleanup: + * divx4_vbr.c is now really GPL - with the permission of the DivX.com guys! + * cyuv decoder restructuring, now supports planar YUV formats, too + * removed obsolete variables, like has_audio, has_video, allow_dshow, fifo + * help_mp-XX.h files moved to help/ subdirectory, removed obsolete entries + * the obsolete 0x1ff eof hack removed from MPEG-ES demuxer and decoders + * stheaders.h cleanup, removed unneeded wine includes from MPlayer core + * tons of compiler warning fixes, including some 10l ones + * mga/xmga vo shared code, vesa and svga drivers cleanup + * major vo drivers are now -fixed-vo compliant: x11, xv, xvidix, xmga, gl2 + * libmpdemux option handling cleanup - now it's MPlayer-independent again + * removed fork() from LIRC input module + * libfame removed from main tree/release - libavcodec is faster, better etc. + + Fixes: + * Some fullscreen switching fixes, including Metacity vs KDE 3.1 + * Many GUI bug fixes + * -vo DGA fixes, cleanup + * -dvdkey sig11 fixed + * K6-III's 3dnowex vs mmxext sigill fixed in mp3lib + * -vo gif89, jpeg U-V swapping fixed + * RTC setup fixes, more verbose messages, hints + * MEncoder: demuxer/codec uninit order fixed (solves some sig11) + * various v4l and ALSA capturing fixes + * demux_mov: fixed crash with MPEG-4 on SPARC, decoding on big-endian + * various NAS ao fixes + * libvo: optional stride support for packed YUV / RGB formats + * MEncoder: set keyframe flag on audio packets, fixes Windows seeking + * loader: fixed 2 10l bugs, ATI VCR2 DLL now works. using new style CS code. + * demux_avi: always use block counter even if dwSampleSize!=0, fixes samples + * SPU decoder (DVD/VOBsubs): fixed 2 major bugs causing lost subtitles + * various memory leak fixes (valgrind rulez :) + * fixed RealAudio SIPR(O) codec (the wrapper didn't find the dspr.so.6) + * mms:// audio (radio) streaming fixed + * DVB: -vop lavc=bitrate is working again + * various big-endian fixes + + Features: + * new audio filter layer (libaf) - automatic samplerate conversion + * experimental -vo directx driver for Cygwin build + * unrarlib included for rar'ed VOBsubs + * native XviD encoding (-ovc xvid) interface for MEncoder + * new softeq filter with gamma support: -vop eq2 + * -ao/-vo accepts list of drivers and can fall back on one, like -ac/-vc + * audio/video codec selection (-ac/-afm) rewritten, now uses codec/fm list + * get_delay() smoothing (-autosync) - should help buggy sound drivers + * smb:// URL support (disabled by default, ./configure part not yet done!) + * support for 1/4/8bpp raw video (requires -vop palette / -vop 1bpp) + * support for QuickTime alaw/agsm audio codecs, 3IV2, 3VID video codecs + * swscale can now output YUY2 format, upscaled (default), unscaled (-sws 0) + * VIDIX with LinuxPPC support (Mach64 is confirmed to work) + * GUI: cache, autoq settings, start in fullscreen, toggle button in menu + * New video filter to overlay images over video: -vop bmovl + + Libavcodec: + * RV10 codec cleanup (2nd level demuxer moved to demuxer layer) + * MPEG-4 interlaced DCT _en_coding support + * luma masking support (encoding) + * runtime selectable IDCT algo + * faster MPEG-1/2 decoder + * DV decoding (both PAL and NTSC) + * MPEG-1 2-pass encoding support + * better/cleaner error resilience (done in a 2nd pass after decoding) + * H.263/MPEG-4 out of order slice decoding + * -lavdopts bug= reworked, now uses flags, autodetects most of them + * complete MPEG-4 GMC decoding support + + + pre8: Sep 18, 2002 + Docs: + * man page rewritten, now has better indenting, and can be converted to HTML + * AUTHORS, MAINTAINERS converted back to separate text files, and updated. + * ChangeLog file is included again (was removed after 0.18) + * some new tech docs on libmpcodecs, updates/fixes in others, manpage.txt + * more updates in translation files (help_mp-XX.h) + * removed obsolete/unused entries from help_mp-en.h + + Cleanup: + * XAnim interface merged & fixed, now uses mpi and supports direct rendering + * cleanup of libmpdemux stream layer, especially of TV and MF parts + * more unused files removed: vo_fsdga, vo_odivx, vd_rle, timer.c, ttf_load + + Fixes: + * the http:// infinite memleak bug has been fixed, some WMS9 mms:// fixes + * various SPARC/Sun, HP-UX and NetBSD/OpenBSD portability fixes + * -vop palette fixes, CRAM and QPEG colors are OK now + * demuxer fixed for >2GB nuppelvideo files + * MEncoder: -ss fixed for 3-pass encoding + * gui.conf locale bug fixed (again... hope this time it's OK) + * X11 fullscreen switching fixed, when d_width == screenwidth + * MOV files edit-list handling fixed - solved 'short read' issue + + Features: + * new demuxer for .PVA files (file format of TV/DVB apps on Win32) + * -mf now supports TGA (24/32bpp uncompressed/rle) images + * libavcodec: support for interlaced MPEG-4 _de_coding + * libavcodec: aspect ratio encoding support (MPEG-4, MJPEG, H.263?) + * Win32 DLL loader merged/synced with avifile CVS + + + pre7: Sep 5, 2002 + Cleanup: + * libvo2, old input code & sis_vid removed, other code cleanups + * tons of compiler warning fixes, some configure/Makefile improvements + * more messages are translated, many translations updated + * docs review continued, HTML cleanups + * option -vfm/-afm now uses names instead of numbers, driver IDs removed + + Code: + * vfw/vfwex cleanup, support for runtime csp queries, 8bpp support + * new native mszh/zlib codec + * libavcodec: 2-pass control code rewritten, now everything is customizable + * libavcodec: MPEG-4/XviD en/decoding support improved, rv10 decoding fixes + * various RealVideo demuxer and video codec fixes, sipr audio support + * new video filters: soft eq (brightness), halfpack (deinterlacer), film noise + * OGM subtitles support + * optional freetype 2.1+ support for runtime-scalable .ttf font rendering + * various networking and mms:// fixes, live.com support improved + * various v4l video capturing and audio capturing fixes, audio input layer + * libmpdvdkit2 - based on libdvdcss 1.2.2 + libdvdread 0.9.3 + key cache + * alsa: iec958-init completely rewritten - better SP/DIF AC3 support + + GUI: + * gui.conf locale bug fixed (hopefully) + * preferences menu extended, runtime subtitle loading support + * drag'n'drop support + + + pre6: Aug 6, 2002 + * WMV1, Sorenson v1 (SVQ1) and RealPlayer 8.0 (RV20/30, Cook) codecs support + * libavcodec M1 direct rendering + * IPB support with Xv + * libavcodec improvements, bugfixes (encoder and decoder side) + * Raw DV demuxer + * libdv-based DV audio/video decoder + * Various MOV/MP4, RM and ASF/WMV demuxer bugfixes, improvements + * Detection of AVI files which needs -ni + * workaround for some Nandub bugs + * Support for live.com RTP/RTSP streaming libraries + * Support to rip DVD subs in VOBsub format + * bug fixes of mpsub/srt converter + * Closed Captioning (ASCII subs on RC1 DVDs) support + * Massive directfb updates + * VIDIX fixes/updates, including fixes of all known Radeon bugs + * dithered 1/4/8 bpp support with -vo svga (EGA rulez:)) + * alsa9 fixes/improvements + * native ARTS driver + * various endianness and 64-bit fixes (including MEncoder and -ao pcm) + * many small compatibility/portability fixes (better Cygwin, Darwin support) + * GUI fixes (playlist, audio/video equalizer, preferences) + * Skins (fixed many small glitches, a few new skins) + * 'mencvcd' script (creating VCD/SVCD with MEncoder) + * HTML DOCS updates + * man page & README restructured (again :)) + + + pre5: Jun 8, 2002 + Documentation: + * a lot of fixes, updates, cleanups + * new README containing quick install guide + * tech level docs on libavcodec encoding options + * HTML doc is now IE 6.0.2600 compatible! :))) + + Code changes: + * subreader (ASCII subtitle file parser) fixes + * spudec (VOBsub) cleanup/fixes + * new (faster, better) scaler + * bbox support + * mmst:// streaming support + * OGM (Ogg) audio/video stream selection + * native Micro$oft MPEG4v1 (MPG4) codec, error concealement for all MPEG-4s + * various libavcodec encoding improvements + * MPEG-1 && -vo x11 crash fixed when movie's height%16!=0 + * raw (uncompressed) video fixed (AVI & MOV) + * flickering/blocking fixed for old VfW codecs (indeo3, cinepak etc) + * introduced codecs.conf versioning to avoid problems caused by too old conf + + Display: + * some more X11 cleanup, icewm fullscreen fixes, -vo gl/gl2 fixed + * xscreensaver disabling support (optional, disabled by default) + * pan&scan support in xv, xmga, xvidix + * Xv YV12 stride problems fixed when width%8!=0 + * VIDIX Rage128/Radeon driver synced with MPlayerXP, various xvidix fixes + * DVB A/V sync fixes, libfame updated to 0.9.0 + * native -ao arts driver + * AC3 passthrough support for -ao alsa9 + * -ao nas fixed + + Miscellaneous fixes: + * GUI: VCD and URL support, some bugs fixed + * some cleanup of messages (less debug stuff) printed by MPlayer + * gcc 3.1 support + * various portability fixes (Cygwin, Darwin, 64bit SPARC/Alpha) + + + pre4: May 13, 2002 + * X11 fullscreen toggle fixes with many window managers, multifile playback + * DXR2 support + * Output into animated GIF + * "cropdetect" video filter to autodetect necessary cropsize + * libavcodec marked as default encoder for MEncoder + * man page rewrite + * a lot of other fixes + + + pre3: May 3, 2002 + * 3DNow! optimization of AC3 4ch downmix fixed, optimizations re-enabled + * DGA error/fail after 1 second of playing fixed + * big A-V desync for some AVI files fixed + * image distortions when seeking in some MPEG files fixed + * libmpdvdkit + gcc 3.x issue solved (our CFLAGS triggered a gcc3 bug...) + * GUI aspect ratio and fullscreen switch fixes, cleanups + * low-PS WMV playback fixed + * Mac OS X (Darwin) port? + * buggy v4l audio grabbing disabled, we cannot fix, but patches are welcomed! + * various MJPEG improvements in libavcodec + + + pre2: Apr 30, 2002 + * hwac3 fixes (try AFMT_AC3 first), big-endian fixes for PCM audio + * 2-pass encoding with libavcodec (-lavcopts vpass=x), B-frames support + * faster Ogg seeking (use -forceidx for slow but accurate one) + * audio-only with GUI fixed + * -rootwin fixed for x11, xv, xmga, xvidix + * aspect ratio fix for ffmpeg12 + * MPEG-ES detection fixed + * runtime cpudetect disabled by default + * support for many new Win32 codecs, including mss1, tm20, ucod, truespeech + * DivX audio dll sig11 with glibc 2.1.(2|3) fixed + * libmpdvdkit - patched kit of DVD libraries (enabled for Linux+FreeBSD) + * man pages updated + * 'f' (fullscreen switch) fixed for some WMs, still has problems + * various FreeBSD and OpenBSD portability patches + * options -xy,-zoom,-flip usable with MEncoder, too, -xy keeps aspect + * -vop lavc, using new fast best libavcodec for realtime MPEG-1 transcoding + * fixed GTK GUI crash with --disable-mencoder + * no more black VOBsub subtitles :) + + + pre1: Apr 21, 2002 + * 100% GPL - yeah, so what? + * runtime CPU detection - x86 MPlayer binary can run on "any" other x86 CPU + * video filter layer - with numerous plugins (crop, expand, etc) + * view or encode DVD/VOBsub and/or text subtitles into the output AVI + * preliminary dvdnav support (experimental) + * direct rendering - can't be used with libavcodec yet, sorry + * display subtitles under the image, on black bands + * FFmpeg (included) now supports decoding MPEG4v2 (MP42) and DivX 5.0 files + * greatly enhanced MPEG-4 encoder (libavcodec) + * audio-only (WAV/MP3/WMA/Ogg) file playback (console only) + * playing/encoding audio from separate WAV/MP3 file + * support for more file formats, including the new and very popular Ogg + * multiple file playback from console, including various playlist formats + * and of course, faster than ever... :) + + +MPlayer (0.60) "The RTFMCounter": Jan 2, 2002 + + release: + * minor bug fixes for RealMedia/nuppelvideo demuxers + * docs updates + * help file translation updates + + + pre2: Dec 29, 2002 + * build fixes (install codecs.conf) + * DVD subtitles improved (stability and pts fixes) + * new options: -alang, -vlang, -rootwin, -npp ... (rtfm) + * DXR3 fixes + * AC3 passthrough fix + * docs updates + * make install + + + pre1: Dec 25, 2002 + * new file formats (MOV, FLI/FLC, VIVO, RealMedia, NuppelVideo, yuv4mpeg, + yuv4mpeg2) + * more native codecs (CRAM, CVID, FLI, generic ADPCM (and IMA) decoder, + g723, XAnim) + * MEncoder (a tool for encoding video to DivX4+MP3) + * rewritten configure script (better autodetection, cleaner messages) + * MMX/SSE optimizations + * faster postprocessing filter, syntax change (deinterlacing support) + * DirectShow code in C + * software YV12 scaling + * aspect ratio fixes + * input cache for smoother network/DVD playback + * GUI fixes and new skins + * DVD subtitles + * playing in root window (-rootwin) + * liba52 + * audio filters (surround, 5.1, up/downsample, etc) + * new homepage design + * grabbing from TV through v4l + * hardware MPEG decoder support (DXR3, Siemens DVB) + + + +MPlayer (0.50) "The Faszom(C)ounter": Oct 8, 2001 + + release: + * documentation updates + * non-Linux build fixes + + + prex 1-3: Sep 28 2001 - Oct 5 2001 + * some pre-beta nationalization support + * HTMLized documentation, split in sections + * a lot of bug fixing + * new AAlib driver (independent of SDL, SUB/OSD support) + * DivX DirectShow equalizer over keyboard + * dynamic setting of DivX postprocessing quality (-autoq) + * updated FAQ section on the homepage + + + +MPlayer (0.18) "The BugCounter": (0.18 only consisted of prereleases) + + pre 1-5: Jun 26 2001 - Jul 9 2001 + * mp3lib even more optimized for 3DNow!/MMX + * GGI driver + * ICCCM patch + + * skin support + * GUI support + + * libao2 (null, oss, alsa, sdl) introduced + * ASF seeking fixed + * option to force audio playback samplerate (-srate) + * framedropping for MPEG files as well + * X11 driver works on remote display (without SHM) + * A-V sync for AVI files fixed (both -bps and -nobps) + + + +MPlayer v0.17a "IdegCounter++": Apr 27 2001 + - first 0.17 release failed - buggy files outdated docs etc :( + it's (hopefully) fixed now. + + + +MPlayer v0.17 "IdegCounter": Apr 27, 2001 + * DVD playing (libcss) + * OSD and subtitles with antialiased fonts + * new Win32 codecs (WMV1,AP42,ASV2 etc) + * new VO drivers (SVGAlib,fbdev,DGA,SDL etc) + * source cleanup, most part of the code rewritten + +* jumped to 0.17 * (why 17? oh. chass just got a new 17" monitor :)) + + - faster memcpy() routine (MMX/3DNow!/SSE-optimized) + - new stream selection code (autodetected) + - pre-devel-alpha DVD code (libcss) + - subtitle code 100% (perfected timing code) + - new output drivers (SVGAlib, FBdev) + + + +MPlayer v0.11-pre27-CVS: + - updated libmpeg2 source to libmpeg2-0.2.1-CVS version + - updated OpenDivX encore/decore to 4.0 alpha48 + - cmdline/configfile handler by szabi + - added DirectShow support (now DivX-only) + - bugfix: stream.c/stream_new() uninitialized variables + + + +MPlayer v0.11-pre26-CVS: + - updated libmpeg2 source to libmpeg2-0.2.0 version + - small fixes + + + +MPlayer v0.11-pre25-CVS: yeah, we moved to SourceForge CVS! + - DOCS updated (email address changed from arpi@* -> maillist) + - LIRC fix, mplayer_lirc changed back to mplayer [Andreas Ackermann] + - stream.c: unsigned int fixes, required for some strange ASF files + - asfheader.c: using w=h=b=1 for audio_concealment_none + - VCD-related stuff moved from stream.c to vcd_read.c + - added DGA driver by Andreas Ackermann + - added debian/ subdir for the Debian package makers... see DOCS/DEBIAN + - new Makefile/dependency system + - added check_events() to libvo, X11 stuff moved to x11_common.c + + + +MPlayer v0.11-pre24: Feb 19, 2001 + small fixes again :( + - DOCS/LIRC changed: users *must* enable lirc support manually, it is + not autodetected yet. (./configure --enable-lirc) + - the {prefix} bug fixed by Gabucino + - added man page by Gabucino + - man page -vo fixes by A'rpi + + + +MPlayer v0.11-pre23: Feb 18, 2001 + lirc support, text updates, mailinglists + - added "-ni" option to force usage of the non-interleaved AVI parser + - DOCS/* updated by Gabucino + - new homepage by Gabucino + - MPlayer-users & announce mailing lists by Dariusz Pietrzak (see README) + - LIRC support by Andreas Ackermann (see DOCS/LIRC) + enable with ./configure --enable-lirc + TODO: ./configure should detect LIRC installed and better Makefile handling + - added AVI_NINI parser for broken (no index) non-interleaved files + + + +MPlayer v0.11-pre22: Feb 16, 2001 + last fixes, release is coming soon! + - non-interleaved AVI EOF bug fixed [thanks to DC-1 for help] + - "You" strings in Makefile after make dep bug fixed... [thx to DC-1] + - SDL disabled by default. You have to ./configure --enable-sdl to enable. + - homepage updated by Gabucino + - homepage updated by A'rpi + - FAQ updated by A'rpi + +fork() -> 0.12pre1 + + + +MPlayer v0.11-pre21: Feb 12, 2001 + MPEG-1 pp, stereo fix + - "Skip chunk xxxx" messages moved from -v to -v -v -v debug level... + [thanks to Christoph H. Lampert] + - DivX postprocess filter works for MPEG-1 files, too! (-divxq 1/3/7/31) + - MPEG layer-2 audio fixed - it's stereo again!!! + - audio select() detection: if detected audio buffer size == 0, then + exit with message "Recompile mplayer with #undef HAVE_AUDIO_SELECT !"... + - syncfb driver added to the source tree, under drivers/ + (it's very similar to mga_vid, but has syncronization to screen and + de-interlace features) + - draw_slice in syncfb finished for G400 cards (plays MPEG-1/2, OpenDivX) + (de-interlacing has been disabled, because it's buggy now) + + +MPlayer v0.11-pre20: Feb 11, 2001 + NI-AVI support, small fixes & patches... + - ASF parser: flag 0x40 (explicit packet size) implemented [Marvin] + - new option to select DSP device: -dsp (default: /dev/dsp) [Pontscho] + - option -o changed to -vo + - ./configure: applied patches [LGB,Ian Kumlien,Magnus Pfeffer] + - AVI chunk_id->ds mapper moved to demux_avi_select_stream() + - added non-interleaved AVI parser + - added non-interleaved AVI detection (if a_pos-v_pos distance > 1MB) + + + +MPlayer v0.11-pre19: Feb 9, 2001 + small fixes... + - vo_xmga.c: G200 draw_slice fixed + xmga + mga: common part (draw_frame & draw_slice) moved to mga_common.c + - some independent code (asfinfo.c and GL-test) moved to the new TOOLS subdir + - movinfo.c added to TOOLS (small util to dump MOV file structure) + - AVI & ASF stream id detection changed: now using IDs from the header + (but still can be overriden by -aid or -vid) [Christoph H. Lampert] + - native MS-GSM audio codec ported from avifile source (-afm 6) + [thanks for the testfile to Christoph H. Lampert] + - README updated (input & codec lists) + - implemented ASF audio descrambling [Dirk Vornheder & Einon] + -> that weird_al_yankovic ASF is not so weird now :) + - AUTHORS file changed + + + +MPlayer v0.11-pre18: Feb 7, 2001 + patch release :) + - skip broken ASF fragments (for better seeking) + - seeking code cleanup in sources (now it's in a switch(){}) + - opendivx encoding bitrate option changed from -divxq to -br + (for the DivX -> DivX re-encoding) + - TO DO section moved to file TODO + - applied ./configure and Makefile changes patch from LGB + - libvo function changes by Pontscho: x11 (with -fs), xmga (bugfixed!) + - libvo: driver sources renamed from video_out_*.c -> vo_*.c + - libvo: added uninit() function to drivers + - libvo: fork()'ed X11 eventhandler for x11 and xmga drivers [me & Pontscho] + (gl and xv version is coming soon!) + - libvo: sdl driver now closes SDL at QUIT... + - small English fixes (docs & messages) [Balazs Tibor] + + + +MPlayer v0.11-pre17: Feb 4, 2001 + fixes + - ASF "missing video stream" fixed (stream id & 0x7F) [Christoph H. Lampert] + - added GL-test directory, it contains source and compiler script of a + very simple open-gl texture updating (glTexSubImage) test program. + if it runs well, then mplayer -o gl should work, too. + it works on G400+Utah-GLX, but segfaults in the G400 driver of X 4.0.2/DRI. + try it with different cards/drivers, and please report me the results. + - benchmarking in gltest.c: calculate fps and process times + - ASF seeking v0.01-pre0.1 :) + + + +MPlayer v0.11-pre16: Feb 4, 2001 + ACM fixed + - Win32/ACM audio codec fixed (most important for ASF with DivX audio): + There was an output buffer size problem with the Win32/ACM audio codec + at low bitrates (usually used for ASF files with DivX audio) + Input and output buffer sizes are now queryed, problem solved :) + - SDL support compiling hint by Michael Durller added to the FAQ + - opendivx support in ASF files [Gérard Lantau] + - ./configure & Makefiles patch by Aaron Hope applied. + (adds --with-win32libdir and fixes --with-x11libdir) + - ./configure fixed, now it defaults to /usr/lib/win32 if detection failed + + + +MPlayer v0.11-pre15: Feb 2, 2001 + ASF sync fixed + - ASF parser: now supports other than 0x5D segments [Dirk Vornheder] + - new ASF PTS reading: sync works now, including fps... + (-fps no longer required!) [thanks again to Eugene Kuznetsov for docs!] + + + +MPlayer v0.11-pre14: Feb 1, 2001 + small fixes, ASF sync v0.1 :) + - version number incremented :))) + - libvo / Xv driver swapped red-blue fixed + - ASF timestamps implemented - now ASF A-V should be in sync if you + specify the correct fps at commandline (-fps), +-1 fps allowed... + [i haven't yet found method to get fps out from ASF headers :(((] + - some error and consistency checking into demux_asf + if you see many warning! messages playing an ASF file, then contact + me and upload the file (first 1MB is enough if it represents the problem) + Don't forget: there is no public doc about the ASF file format, so + everything we know is suspected and can be wrong... without your help + we will never have a working ASF player... + - ASF fragment offset checks disabled for grouping... + + + +MPlayer v0.11-pre13: Jan 31, 2001 + libvo changes, MPEG bitrate, VCD fix, ASF grouping + - libvo: draw_slice() interface changed, now it has src stride[3] and + destination rect dimension (w,h,x,y) + It's able to blit whole frames, not only 16-pixel slices... + - libmpeg2 and opendivx codec changed to use new draw_slice() + -> opendivx extra 64-pixel width band at right disappeared! + - MPEG bitrate fix: if picture->bitrate==0x3FFFF (means "unspecified" ?) + then using standard VCD bitrate (75*2324 bytes/sec) + -> fixed seeking for those MPEGs with "16MBit/s" bitrate... + - drivers/sis_vid: video4linux interface disabled + - broken VCD playing fixed: stream_reset shouldn't seek to 0x0... + [bugreport: Kang Sun] + - asf_parser: grouping implemented! [test file provided by Gabucino :))] + + + +MPlayer v0.11-pre12: Jan 30, 2001 + ./configure fixes, improved odivx-encoding, streaming fixes + - ./configure: use /tmp/main$$.c instead of /tmp.main.c, and + remove file after tests [SaPe] + - ./configure: trying the gcc optimize options and fall back on 'pentium' + if it fails (useful for people with old gcc and new CPU :)) + - removed -fomit-frame-pointer from OPTFLAGS at config.mak + - version number incremented [Gabucino] + - odivx encoder fix: allow long (longer than xxxx.avi) destination filenames + (sizeof() changed to strlen()...) [Gabucino] + - AVI writer - overwrite disabled (exits with error message if destination + file already exists...) [Gabucino] + - use -divxq to set encoding bitrate (in bits (not kbits!) default: 780000) + - no audio decoding if -encode option is used + - audio streaming disabled if -nosound specified (setting audio_id to -2) + - fast MPEG-ES detection (doesn't read the whole MPEG-PS file) + - compile-time option to disable using soundcard driver's select() + (required for some people with buggy/pre-alpha/etc sound driver...) + + + +MPlayer v0.11-pre11: Jan 29, 2001 + streaming fixes, ASF support pre, indeo5 fix + - asf/asfinfo.c improved: now dumps streams to files - needs testing! + (it's ready to be converted to ASF demuxer and integrated into MPlayer) + - stream.c / stream_reset() fix: now really seeks back to position 0! + - ASF file format detection added (no ASF reading yet!!!) + - ASF demultiplexer added, changes in demuxer.c to handle fragmented packets + > it plays ASF video well, but still has problems with DivX/WMA audio. :((( + - indeo 5 playing fixed (removed ICDECOMPRESS_UPDATE from flags) + - xmga resizing problems with some window managers, so default order is + changed xmga,xma... to mga,xmga,... + - found gcc bug: compiling MPlayer with flags + OPTFLAGS=-O -g -march=i686 -mcpu=i686 -pipe -fomit-frame-pointer -ffast-math + causes image sizes negating -> mga_vid kernel driver Oops... :((( + - runaway.bride.sample.avi seeking segfault discovered: AC3 resync fails :( + - improved signal handling: module name is now printed. audio_resync added. + - RGB opendivx encoding implemented, now AVI->opendivx is possible. + + +MPlayer v0.11-pre10: Jan 22, 2001 + OpenDivX encoding, streaming fixes, AVI seek fixes + - new libvo driver: odivx (OpenDivX File Writer) + - AVI file writing support, new option: -encode filename + to encode an MPEG/VOB/VCD to opendivx: + mplayer file1.mpg -encode file2.avi -o odivx -nosound + (sound encoding/copying is not yet supported) + - libvo: default driver priority changed to: xmga,mga,syncfb,3dfx,xv,x11,gl + - AVI writer: index support + - small fixes in AVI writer to be compliant (adjusted chunk/list lengths) + - demuxer.c: stream buffering fixes: + - missing {} in mplayer.c occurring audio reads when has_audio=0 + - reordered packet reader and pack count checks -> no more unwanted EOF + - added 4MB buffer memory usage limit to demuxed streams + - CPU flags in ./configure changed: + k7 -> k6 (current stable gcc doesn't support k7) + 386,486 -> i386,i486 [Balazs Tibor] + - demux_avi: index check now accepts (raw.len+1)==idx.len [Balazs Tibor] + - FAQ added + + ** Now we are done with planned features & urgent fixes, ** + ** it's time for final testing and then the 0.11 release!! ** + + + +MPlayer v0.11-pre9: Jan 18, 2001 + OpenDivX fixes,speedup + - solved OpenDivX width problem (stride=width+(Quality?0:64)) + now -divxq 0 works, and 0 is the default + - libvo call moved out from my_convert_yuv() so it can be measured (CPU %) + - IDCT code ported from libmpeg2 -> much faster OpenDivX decoding + + + +MPlayer v0.11-pre8: Jan 18, 2001 + SDL fixes, OpenDivX support + - added -I/usr/X11R6/include to libvo CFLAGS + - (removed later: applied libvo SDL driver fixes by Jeffrey Boser) + - OpenDivX support, initial hack, maybe not working for you... + (I need testfiles, I have only one) + use -divxq option to adjust quality (1..29 works), 1=default + + + +MPlayer v0.11-pre7: Jan 14, 2001 + SDL support + - ported SDL driver from mpeg2dec/libvo (current CVS) + (it's slower than internal X11 driver, but supports software scaling!) + - fixed SDL driver to support -fs and pass keyboard events + - SDL driver changed to support YV12 and YUY2 formats instead of IYUV + (now works with DivX files, too) + - 'q' (Quit) disabled in SDL fullscreen mode (because it's impossible + to restore screen before exiting so it gets into an unusable state now) + + + +MPlayer v0.11-pre6: Jan 14, 2001 + audio fix + - fixed video_out_xv.c compilation problems [bugreport: Kalle Mellerup] + - modified audio playing: always keep buffer (both internal and card's) + filled using select() -> -alsa audio delays should be fixed. + - updated DOCS/AUTHORS and DOCS/README + + + +MPlayer v0.11-pre5: Jan 12, 2001 + xmmp audio support, applied Pontscho's libvo patch + - xmmp audio driver support by Arthur Kleer + - new video_out driver by Pontscho: xmga (Matrox G200/G400 only!) + It does same under X 3.3.x what Xv extension does under X 4.0.x! + (you will have a moveable/resizeable window but see a YUV video + overlay in it using color keying) + - added keyboard event support in X11 windows [Pontscho] + (using mplayer_[put|get]_key() in codecctrl.c) + + + +MPlayer v0.11-pre4: Jan 6, 2001 + x11 driver fixes, 15/16bpp support + - version in version.h fixed :))) [Pontscho] + - inttypes.h moved to DOCS/ (copy back to the root if you need it) + - depth calculation in vo_init() changed (Pontscho's version couldn't + differenciate between 15 and 16bpp) + - x11 driver now uses vo_init() instead of get_depth() + - yuv2mmx: 15bpp not really supported -> removed from list, now + conversion is done (well) by the C code -> MPEG play in 15bpp works! + - AVI playing support added in 15bpp (memcpy) + - AVI playing support added in 16bpp (C 15->16 converter by me) + - AVI playing support added in 16bpp (MMX 15->16 converter by Strepto) + - libvo/x11: yuv2rgb used MMX code on non-MMX CPUs, too!!! fixed... + - all x11 modes tested (and MPEG/24bpp byteorder fixed): + MPEG: AVI/VfW: + 15bpp C convert memcpy + 16bpp MMX/C convert MMX/C convert + 24bpp C convert memcpy + 32bpp MMX/C convert memcpy / C conv. + => now all the movie types are viewable using the -o x11 driver! + + + +MPlayer v0.11-pre3: Jan 5, 2001 + MPEG fixes, fullscreen support + - vertical.mpg serious libvo (x11,gl) segfaults fixed: + yuv2rgb_mmx requires one more lines that vertical image size... + fixed (allocating memory for width*(height+1)). [bug report: Gabucino] + - Pontscho's fullscreen patch applied! + Using option -fs will maximize window size (for all resizeable drivers + including mga!) and disable window decorations (x11,Xv,gl only) + - simple inttypes.h included for libc5 (and glibc2.0, too?) users + - homepage updates (links changed ftp->http) + + + +MPlayer v0.11-pre2: Jan 4, 2001 + better user messages, MP3 codec selection, demuxer changes + - w32codec.zip restored at the FTP site (somehow it got damaged...) + - added version.h, and used its content everywhere + - 'premature end-of-file' problem fixed: freeing audio buffers and + setting d_audio->id=-2 if has_audio==0 [bugreport by Dmitri Pogosyan] + - some more messages added if verbose>=1 + - demuxer.c: error message printed if A or V chunk buffer is full + 'mplayer test.avi -aid -2' still not works without option '-nosound' + - adding new config.h option to set default MP3 audio codec (mpg123/l3codeca) + ./configure selects mp3lib only if you have 3DNow! [idea: Gabucino] + - automatic fall back on mp3lib/mpg123 if l3codeca.acm can't be loaded/inited + + + +MPlayer v0.11-pre1: + AVI sync fixes + - AVI audio seeking improvements: now using nBlockAlign value to seek + inside the chunk, so DivX audio works without big delays!!! + - AVI PTS calculation modified: counting video PTS when skip_video_frames>0 + so new audio PTS values will be correct. Solved many sync probs! + - A-V sync with AVI files fixed! + Now only the Desperado-trailer has 1.0 sec delay after seeking. + - fixed AVI sync in -bps mode, too! :) (perfect except that Desperado AVI) + + + +MPlayer v0.10: Jan 1, 2001 "The new year" release! + - testing + - docs changed + - it's time to release and remove the old buggy 0.09 version... + - release!!! + + + +MPlayer v0.10-pre8: libvo/x11 changes + - libvo: x11/xv driver split into x11 and xv drivers + - libvo: DUMMY_VO_FUNC removed from driver sources + - libvo: default driver order changed, because some users with software-only + OpenGL thought that this 'slow' player can only play at 1-3fps :) + + + +MPlayer v0.10-pre7: Dec 31, 2000 + libmpeg2 interface changes, display size/area changes, AVI fixes + - libmpeg2/decode.c modified: + - removed unused OMS and mpeg2dec stuff + - decode_data rewritten, now works like parse_es.c + => doesn't copy any data -> faster and less memory usage + - mplayer.c sends code 0x1FF after every frame, so libmpeg2 knows + when to display it + - mplayer.c: in_frame flag fixes, didn't work well with MPEG-2 streams + (because there is a 0x1B2 chunk between 0x100 and 0x101) + - 'picture' changed from static to shmem-allocated + -> better picture after codec restart (tested with JapAd.mpg) + -> keep information of the header changes (after init) + - MPEG image size changed, now only the real part of frame is displayed + (no more green stripe at the bottom) + - picture struct: new fields: display_picture_width/height + - image buffer allocation (shmem) is done by decode.c instead of libvo + - new option: -xy (resize both x/y direction) + if value<=8 -> x_scale = y_scale = value + else -> x_size=value y_size=aspectratio*x_size + - mplayer.c: video output moved out from AVI/MPG init sections and + now it's common code (added movie_size_x/y variables and out_fmt global) + - new keys: + ESC => quit + + and - => adjust audio delay +- 0.1 second + k => kill/restart the MPEG codec process (for testing) + - codec control interface changed: wait for syncword after (re)start + to avoid receiving old frames => it's stable again! + - removed (now unused) allocate/free image buffer code from libvo + - mplayer: new internal variable for video format: has_video + 0 = none (unused yet) + 1 = MPEG-1/2 video + 2 = Win32/VfW video codec + - config.h has defaults for bps-based AVI sync and ALSA timer code options: + #undef AVI_SYNC_BPS => now it's disabled by default!!! use -bps to enable + #define ALSA_TIMER => now it's enabled by default!!! use -noalsa to dis. + - help updated + - prints max compressed framesize at exit (both AVI & MPEG) + - AVI audio seeking fixed: some ACM codecs (DivX audio and ms-adpcm) + can't seek inside a chunk, they are only able to play whole chunks. + Current audio seeking has changed to seek inside the chunk only if the + codec supports it (only internal codecs and ACM/MP3 allows it). + - AVI: audio delay correction if seeking inside the chunk is not possible + + + +MPlayer v0.10-pre6: Dec 24, 2000 "Xmas edition" + MPEG signal & EOF fixes + - ./configure: k6_mtrr (2.4.test11+) added [Pontscho] + - `term destroys if mplayer (MPG) called from mc.ext` bug fixed: + added sighandler to the 3rd process (MPEG codec) to avoid sig. recursion + - better output at exit (handled now by exit_player()) + - MPEG EOF problem (codec restart) fixed: added EOF detection to parse_es.c + - internal flag 'current_module' added to get more info at segfaults + (contains module number where the segfault occurred) + - audio detection changed: using afm=4 (Win32/ACM) for MP3 audio (AVI files) + (you MUST have l3codeca.acm at /usr/lib/win32, or you have to use '-afm 1') + + + +MPlayer v0.10-pre5: Dec 22, 2000 + flipping fixed + - AVI image flipping reworked: + - new flag: avi_header.flipped, TRUE if upside-down + - image flipping code removed/disabled from libvo modules + - duplicate flip_page() calls removed (overload with x11 and mga) + - aLaw audio codec (AVI id 0x06) added (uses code from XAnim source) + + + +MPlayer v0.10-pre4: + test release, small fixes + - video_out driver <-> codec incompatibility message changed + - fixed the config.format bug in drivers/mga_vid_test, so it works again! + [thanks to David Whysong] + - libmpeg2 upgraded + + + +MPlayer v0.10-pre3: Dec 10, 2000 + test release, verbose mode, new docs + - new option: -v = increment verbosity level + (debug printf's changed to verbose level-dependent) + - default level: 0, only some informal output + - init debug: 1, some basic debug infos, AVI header, function values + - player debug: 2, print AVI indexes, chunk inputs, more debug infos + - parser debug: 3, prints everything related to input parsers + to increment verbose level, use multiple -v options (-v -v -v for level 3) + - bitrate calculation for AVI files + - README rewritten, added Troubleshooting and Bugreports sections + - TVout directory added (only the scripts) + + + +MPlayer v0.10-pre2: Dec 8, 2000 + bugfix test release, bps-sync enabled + - AVI: supporting both 0-based and movi-based index types (autodetect) + - AVI: tested with VBR audio: plays well with -mc 0 option, seek doesn't + work yet [thanks to Alan Chen for testfile] + - AVI: A-V sync to avg. byte/sec implemented (again) and enabled by default + (disable with -nobps if you want) + - ./configire: 3rd name ('kni') of the P3 added. Where is the compatibility? + - useless '\' removed from libac3/Makefile [Otvos Ferenc] + + + +MPlayer v0.10-pre1: Dec 5, 2000 + test release, players merged!!! + - avip and mpegp have been merged to a single binary called 'mplayer' + - file type detection (AVI/MPEG-PS/MPEG-ES/Other) + - no redundant code (common code for common jobs) + - big format-dependent codes moved to functions (separated files) + - better error messages, removed some debug stuff, code cleanups + - old libmpeg2 version removed from source tree + - help texts merged (help_avi+help_mpg -> help_mp) + - new options: -x -y = scale image (if selected driver supports) + if value<=8 then image size will be multiplied by value, otherwise + image size will be scaled to pixels. + For example: + 2x ZOOM: mplayer -x 2 -y 2 test.mpg + 800x600: mplayer -x 800 -y 600 test.mpg + [default values are still configurable at compile-time, see config.h] + - TV project (not finished) codebase added (see tvision.c, or: make tvision) + + + +MPlayer v0.09: Dec 5, 2000 + Beta release [same as 0.09-pre3] + - version changed in the files + - docs updated + + + +MPlayer v0.09-pre3: Dec 3, 2000 + bugfix test-release, X11 support testing + - fixed the if [ -z $pparam ] bug in ./configure [Christian Birchinger] + - many changes in AVI seek code, resulting in near-perfect seeking now! + current method calculates absolute audio position, so with VBR audio it + doesn't work yet... + - avip: Xv support (YUY2 image format) + - avip: X11 support (24 & 32 bpp only, BGR format) + I need a very fast 15->16bpp converter for 16bpp support... anyone helps? + + + +MPlayer v0.09-pre2: + bugfix test-release + - removed unnecessary code from libmpeg2/header.c + Walken told me that standard MPG/VOB streams must NOT use framerate + and bitrate extension... and the ext. id check is done by the caller. + - CRC support to mp3lib's MPEG audio layer-2 decoder + thanks for bug report & test file to Samson + + + +MPlayer v0.09-pre1: Dec 1, 2000 + bugfix test-release + - imported new libmpeg2 files (under testing...) + - GL renderer flickering bug fixed (MMX missing emms() between yuv2rgb and + glTexSubImage(), bug triggered by new Utah-GLX code) + [thanks to Christian Birchinger] + + + +MPlayer v0.08: Nov 27, 2000 + Index support, AVI seeking, DLL loader fix, compilation fixes + - Added support for chunk index usage (disable with -noidx option) + - Removed code optimization flags from loader/Makefile because + it segfaults if compiled optimized (it does some hacks with + pointers, maybe the reordered code confuses it) + - added new tool called aviparse (read and check AVI file structure) + - indexed and raw chunk info comparing, bad chunks dropped + - termcap usage is optional (for those Debian users without termcap) + - #if HAVE_* fixed (to #ifdef HAVE_*) + - ./configure supports new /proc/cpuinfo (2.4.0-test11) + - sse is called 'sse' again + - 'flags' field renamed to 'features' + - Xv benchmark results added to DOCS/SPEED + - AVI seeking (and other goodies, pause etc) implemented + no PTS resync after seek yet. + - default video_out driver changed from 'mga' to the first available driver + new driver priority: mga_vid, opengl, x11 + + + +MPlayer v0.07: Nov 21, 2000 + Easier compile + - Added Pontscho's ./configure script (it's modified a lot) + - Updated makefiles, and tested a lot :) + - Updated DOCS/INSTALL + + + +MPlayer v0.06: Nov 20, 2000 + Better codec selection + - AVI audio&video codec selection moved to new codecs.c file, + loader/driver.c and loader/afl.c modified for this + - YUV support fixed, codecs.c setup flags to handle YUV properly + YUV works fine with DivX, MPEG-4, cvid, and upside-down iv50 + - DOCS/INSTALL updated + - DOCS/SPEED updated, DivX benchmarks added + + + +MPlayer v0.05: Nov 18, 2000 + Merged with MPEGplayer 0.90pre6, first public release of AVI player + - code merged with mpegplayer, new Makefile, some small modifications + - docs updated and moved to DOCS + + + +MPlayer v0.04: Nov 17, 2000 + YUV (YUY2) support with DivX 3.11 DLL, some code cleanup, preview-release + + + +MPlayer v0.03: Nov 14, 2000 + + + +MPlayer v0.01: Nov 11, 2000 + first preview version based on new MPEGplayer's codebase. + it contains the Win32 loader from avifile, and can decode DivX 3.11 video. + + + +mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000 + MPEG codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel + Lespinasse. It's great, optimized very fast C code with perfect + image quality and 100% MPEG standard conformance. + + + +mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000 + MPEG codec replaced with DVDview by Dirk Farin, it was great + stuff, but it was slow and was written in C++ (I hate C++!!!) + + + +mpg12play v0.1-v0.3: Sep 22-25, 2000 + The first try, hacked together in half an hour! I've used libmpeg3 + from www.heroinewarrior.com up to the version 0.3, but there were + image quality and speed problems with it. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Copyright.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Copyright.txt new file mode 100644 index 0000000..64b8a0a --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/Copyright.txt @@ -0,0 +1,152 @@ +MPlayer was originally written by Ãrpád Gereöffy and has been extended and +worked on by many more since then, see the AUTHORS file for an (incomplete) +list. You are free to use it under the terms of the GNU General Public License, +as described in the LICENSE file. + +MPlayer as a whole is copyrighted by the MPlayer team. Individual copyright +notices can be found in the file headers. Furthermore, MPlayer includes code +from several external sources: + +Name: FFmpeg +Version: Subversion HEAD +Homepage: http://www.ffmpeg.org +Directory: libavcodec, libavformat, libavutil, libpostproc +Copyright: Many, see individual files for copyright notices. +License: GNU Lesser General Public License, some parts GNU General Public + License, GNU General Public License when combined + +Name: FAAD2 +Version: 2.1 beta (20040915 CVS snapshot) + fixes and portability patches +Homepage: http://www.audiocoding.com +Directory: libfaad2 +Copyright: 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com +License: GNU General Public License + +Name: GSM 06.10 library +Version: patchlevel 10 +Homepage: http://kbs.cs.tu-berlin.de/~jutta/toast.html +Directory: libmpcodecs/native/ +Copyright: 1992 by Jutta Degener and Carsten Bormann, TU Berlin +License: permissive, see libmpcodecs/native/xa_gsm.c + + +Name: liba52 +Version: 0.7.4 + patches +Homepage: http://liba52.sourceforge.net/ +Directory: liba52 +Copyright: 1999-2000 Aaron Holtzman + 2000-2001 Michel Lespinasse + 2000 Yuqing Deng + 2002 Nick Kurshev + 2004 Romain Dolbeau +License: GNU General Public License + +Name: libdvdcss +Version: Subversion r207 (post 1.2.9 release) +Homepage: http://developers.videolan.org/libdvdcss/ +Directory: libdvdcss +Copyright: 1998-2006 VideoLAN +License: GNU General Public License + +Name: libdvdread +Version: 0.9.7 + patches +Homepage: http://www.dtek.chalmers.se/groups/dvd/development.shtml +Directory: dvdread +Copyright: 1998, 1999 Eric Smith + 1999 Christian Wolff for convergence integrated media + 2000-2001 Billy Biggs , + 2001-2002 Samuel Hocevar , + 2000-2003 Björn Englund , + 2000-2003 HÃ¥kan Hjort +License: GNU General Public License + +Name: libmpeg2 +Version: 0.4.1 + patches +Homepage: http://libmpeg2.sourceforge.net/ +Directory: libmpeg2 +Copyright: 1999-2000 Aaron Holtzman + 2000-2003 Michel Lespinasse + 2002-2003 Falk Hueffner + 2003 David S. Miller + 2003 Regis Duchesne + 2003 Peter Gubanov +License: GNU General Public License + +Name: mpg123 +Version: 0.59s + significant changes +Homepage: http://www.mpg123.de/ +Directory: mp3lib +Copyright: 1995-1999 by Michael Hipp + 2004 Romain Dolbeau + 2006 Zuxy Meng +License: GNU General Public License + +Name: librtsp +Version: xine CVS 2003/04/10 + patches +Homepage: http://www.xinehq.de +Directory: stream/librtsp/ +Copyright: 2000-2002 the xine project +License: GNU General Public License + +Name: realrtsp +Version: xine CVS 2003/04/17 + patches +Homepage: http://www.xinehq.de +Directory: stream/realrtsp/ +Copyright: 2002 the xine project +License: GNU General Public License + +Name: pnm protocol implementation +Version: xine CVS 2002/12/26 + patches +Homepage: http://www.xinehq.de +Directory: stream/pnm.[ch] +Copyright: 2000-2002 the xine project +License: GNU General Public License + +Name: id3edit +Version: 1.9 + patches +Homepage: http://id3edit.sourceforge.net/ +Directory: libmpdemux/genres.h +Copyright: 2001 Jason Carter +License: GNU General Public License + +Name: unrarlib +Version: 0.4.0 + patches +Homepage: http://www.unrarlib.org/ +Directory: unrarlib.[ch] +Copyright: 2000-2002 Christian Scheurer (www.ChristianScheurer.ch) + 2000-2002 by Johannes Winkelmann (jw@tks6.net) +License: GNU General Public License / UniquE RAR File Library License + +Name: FreeSDP +Version: 0.4.1 +Homepage: https://savannah.nongnu.org/projects/freesdp/ +Directory: stream/freesdp/ +Copyright: 2001-2003 Federico Montesino Pouzols +License: GNU General Public License diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/LICENSE.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/LICENSE.txt new file mode 100644 index 0000000..1d1d526 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/LICENSE.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/README.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/README.txt new file mode 100644 index 0000000..5ba1120 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/README.txt @@ -0,0 +1,119 @@ +Welcome to the Windows version of MPlayer - the movie player +(http://www.mplayerhq.hu/). + +The bottom of this file has a list of keyboard shortcuts to control MPlayer. +A complete list of command line parameters is in man_page.html. More +documentation is in the docs/ directory. Start reading at index.html or +skip right to windows.html for Windows-specific information. Note that +while most of the documentation is written with the Unix version in mind +most things are valid for Windows as well. + + +The files in this package: +mplayer.exe - the main executable +mencoder.exe - a full-featured video encoder +vfw2menc.exe - a tool used to configure VfW codecs, please look at + docs/menc-feat-video-for-windows.html +man_page.html - usage and command line options +AUTHORS.txt - (incomplete) authors list +Changelog.txt - a list of the most important changes between versions +Copyright.txt - copyright information for imported libraries +LICENSE.txt - a copy of the GNU General Public License (GNU GPL) +README.txt - this document +codecs/ - binary codecs (Real, QuickTime etc.) directory; + You can download some codecs from our downlad page: + http://www.mplayerhq.hu/design7/dload.html + +mplayer/config - configuration file with adjustable options +mplayer/input.conf - keybinding configuration file + +This package comes with a trimmed-down (latin characters only) version of +the Bandal font in the file mplayer/subfont.txt. The font is copyright +2006 by Ho-Seok Ee and available und under the terms +of the Artistic license. The Artistic license can be found at +http://www.opensource.org/licenses/artistic-license.php. + + +A list of Windows frontends for MPlayer can be found at +http://www.mplayerhq.hu/homepage/design7/projects.html#windows + +A mailing list for Windows-related questions is at +http://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin + + +KEYBOARD CONTROL + +general control + <- and -> + Seek backward/forward 10 seconds. + up and down + Seek backward/forward 1 minute. + pgup and pgdown + Seek backward/forward 10 minutes. + [ and ] + Decreases/increases current playback speed by 10%. + { and } + Halves/doubles current playback speed. + Backspace + Reset playback speed to normal. + < and > + backward/forward in playlist + HOME and END + next/previous playtree entry in the parent list + INS and DEL + next/previous alternative source (ASX playlist only) + p / SPACE + Pause movie (pressing again unpauses). + . + Step forward. Pressing once will pause movie, every + consecutive press will play one frame and then go into + pause mode again (any other key unpauses). + q / ESC + Stop playing and quit. + + and - + Adjust audio delay by +/- 0.1 seconds. + / and * + Decrease/increase volume. + 9 and 0 + Decrease/increase volume. + m + Mute sound. + f + Toggle fullscreen (also see -fs). + T + Toggle stay-on-top (also see -ontop). + w and e + Decrease/increase pan-and-scan range. + o + Toggle OSD states: none / seek / seek + timer / seek + + timer + total time. + d + Toggle frame dropping states: none / skip display / skip + decoding (see -framedrop and -hardframedrop). + v + Toggle subtitle visibility. + b / j + Cycle through the available subtitles. + F + Toggle displaying "forced subtitles". + a + Toggle subtitle aligment: top/middle/bottom. + z and x + Adjust subtitle delay by +/- 0.1 seconds. + r and t + Move subtitles up/down. + i + Set EDL mark. + +(The following keys are valid only when using a hardware accelerated +video output (xv, (x)vidix, (x)mga, etc), or the software equalizer +filter (-vf eq or -vf eq2). + + 1 and 2 + Adjust contrast. + 3 and 4 + Adjust brightness. + 5 and 6 + Adjust hue. + 7 and 8 + Adjust saturation. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.c b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.c new file mode 100644 index 0000000..0f7b76c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.c @@ -0,0 +1,644 @@ +//bme2picseq by ryuuou +//looks up the picture references in .bme files and outputa a sequence of pictures +//those pictures can be used as a base for a 30.00fps movie for IIDX AC + +//LOTS of code reuse from bme2ac + +#include "common.h" + +#define BMS_BPM_CUST 8 +#define BMS_BPM 3 +#define BMS_STOP 9 +#define BMS_MSIZE 2 +#define BMS_BGA 4 +#define BMS_LAYER 7 + +#define ONE_TYPE_BPM 4 +#define ONE_STOP 0xF +#define ONE_BGA 0x11 +#define ONE_LAYER 0x12 + +typedef struct +{ + int length; + byte* data; + float bpmchange[MAXWAVS]; + int bpmchangecount; + float* msize; + int mcount; + float bpm; + int stopcount; + float stops[MAXWAVS]; + + unsigned char picnames[MAXWAVS+1][64]; + int numpics; + byte *picdata[MAXWAVS+1]; + int piclen[MAXWAVS+1]; + int layer; +} bmsfile; + +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; + + void *prev; + void *next; +} event; + + +event *onechart; +bmsfile *bms; + +void add_event(event ev) +{ + event *temp, *ev_n; + + if(!onechart) + { + onechart = malloc(sizeof(event)); + memcpy(onechart, &ev, sizeof(event)); + onechart->prev = onechart->next = NULL; + return; + } + + temp = onechart; + + while(temp->next != NULL && temp->time <= ev.time) + { + temp = temp->next; + } + + ev_n = malloc(sizeof(event)); + memcpy(ev_n, &ev, sizeof(event)); + + if(temp->time <= ev.time) + { + if(temp->next) + ((event*)temp->next)->prev = ev_n; + + ev_n->next = temp->next; + temp->next = ev_n; + + ev_n->prev = temp; + + } + else + { + if(temp->prev) + ((event*)temp->prev)->next = ev_n; + else + onechart = ev_n; + + ev_n->next = temp; + ev_n->prev = temp->prev; + + temp->prev = ev_n; + } +} + + +void parsebms() +{ + int i,j,k,l; + char *data; + event bpmev; + int measure, channel; + byte measure_c[4]; + + measure_c[3] = '\n'; + + printf("parsing bms..."); + + data = bms->data; + + for(k = 0; k < bms->length - 5; k++) + { + if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] == ' ') + { + k += 5; + sscanf((const char*)(data+k), "%f", &(bms->bpm)); + printf("%.2fbpm...", bms->bpm); + + if(bms->bpm-(int)bms->bpm < 0.01 && !(bms->bpm > 655.35)) + { + bpmev.data1 = 1; + bpmev.data2 = (unsigned short int)(bms->bpm); + } + else + { + bpmev.data1 = 100; + bpmev.data2 = (unsigned short int)bms->bpm*100; + } + bpmev.time = 0; + bpmev.type = ONE_TYPE_BPM; + add_event(bpmev); + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] != ' ') + { + j = strtoi(data+k+4) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->bpmchange[j])); + bms->bpmchangecount++; + } + else if(data[k] == '#' && data[k+1] == 'S' && data[k+2] == 'T' && data[k+3] == 'O' && data[k+4] == 'P') + { + j = strtoi(data+k+5) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->stops[j])); + bms->stopcount++; + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'M' && data[k+3] == 'P') + { + l = 0; + j = strtoi(data+k+4); + k += 7; + while((data[k+l] != '\n') && (data[k+l] != '\r') && k+l < bms->length) + l++; + + memcpy(bms->picnames[j], data+k, l); + + bms->numpics++; + } + if(data[k] == '#' && data[k+6] == ':') + { + measure_c[0] = data[k+1]; + measure_c[1] = data[k+2]; + measure_c[2] = data[k+3]; + sscanf(measure_c, "%d", &measure); + + if(measure > bms->mcount) bms->mcount = measure; + } + } + + bms->msize = malloc(sizeof(float)*(bms->mcount+1)); + + for(j = 0; j <= bms->mcount; j++) + bms->msize[j] = 1.; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + sscanf(data+j+4, "%d", &channel); + if(channel == BMS_MSIZE) + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf((const char*)(data+j+7), "%f", &(bms->msize[measure])); + } + } + } +} + + +int convert_to_1_events() +{ + int i,j,k; + char measure_c[4]; + int measure,channel; + float mtime; + int notecount; + int denom, nume; + + byte ev_type; + float ev_time; + byte ev_data1; + int bms_ev; + int count; + event temp; + + unsigned short int ev_data2; + + char *data; + + measure_c[3] = '\0'; + + temp.next = temp.prev = NULL; + + printf("building image chain...\n"); + + data = bms->data; + count = 0; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf(data+j+4, "%d", &channel); + + ev_data1 = 0; + ev_data2 = 0; + ev_time = 0; + ev_type = 0; + switch(channel) + { + case BMS_BPM: + case BMS_BPM_CUST: + ev_type = ONE_TYPE_BPM; + break; + + case BMS_STOP: + ev_type = ONE_STOP; + break; + + case BMS_BGA: + ev_type = ONE_BGA; + break; + + case BMS_LAYER: + ev_type = ONE_LAYER; + break; + + default: + continue; + } + + mtime = 0; + for(k = 0; k < measure; k++) + mtime += bms->msize[k]; + + denom = 0; + for(k = j+7; (data[k] != '\n') && (data[k] != '\r') && (data[k] != '#') && (k<=bms->length); k+=2) + denom++; + + k = j + 7; + nume = 0; + + for(k = j+7; nume < denom; k+=2) + { + ev_time = mtime + ((float)nume/(float)denom)*bms->msize[measure]; + ev_time *= 4. * 60. * 1000./ bms->bpm; + nume++; + + bms_ev = strtoi(data+k); + + if(!bms_ev) + continue; + + if(channel == BMS_BPM_CUST) + { + if(bms->bpmchange[bms_ev-1] - (int)bms->bpmchange[bms_ev-1] < 0.01 && !(bms->bpmchange[bms_ev-1] > 655.35)) + { + ev_data1 = 1; + ev_data2 = (unsigned short int)(bms->bpmchange[bms_ev-1]); + } + else + { + ev_data1 = 100; + ev_data2 = (unsigned short int)bms->bpmchange[bms_ev-1]*100; + } + } + else if(channel == BMS_BPM) + { + ev_data1 = 1; + ev_data2 = (unsigned short)strtoi_h(data+k); + } + else if(channel == BMS_STOP) + { + ev_data2 = (unsigned short)strtoi(data+k) - 1; + } + else if(channel == BMS_BGA) + { + count++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + else if(channel == BMS_LAYER) + { + count++; + bms->layer++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + + temp.time = ev_time; + temp.type = ev_type; + temp.data1 = ev_data1; + temp.data2 = ev_data2; + + add_event(temp); + } + } + } + return count; +} + +void adjust_bpm() +{ + int i; + + float oldbpm = 0; + float newbpm = 0; + int stime = 0; + int tdiff = 0; + event *temp; + event help; + event *tadjust; + + temp = onechart; + + oldbpm = bms->bpm; + + do + { + if(temp->type == ONE_TYPE_BPM) + { + newbpm = temp->data2 / temp->data1; + stime = temp->time; + + if(oldbpm == newbpm) + continue; + + tadjust = temp; + + while(tadjust = tadjust->next) + { + tdiff = tadjust->time - stime; + tdiff = (int)roundf((float)tdiff * oldbpm / newbpm); + tadjust->time = stime + tdiff; + } + + oldbpm = newbpm; + } + } + while(temp = temp->next); +} + +void add_stop_events() +{ + int i; + + float bpm; + + float tdiff = 0; + event *temp; + event *helper; + event bpm_help; + + temp = onechart; + + bpm = bms->bpm; + + do + { + if(temp->type == ONE_STOP) + { + helper = onechart; + do + { + if(helper->type == ONE_TYPE_BPM) + { + bpm = (float)helper->data2 / (float)helper->data1; + } + } while((helper = helper->next) && (helper->time <= temp->time)); + + tdiff = bms->stops[temp->data2] / 192.; + tdiff = tdiff * 4. * 60. * 1000. / bpm; + + helper = temp->next; + + do + { + if(helper->time > temp->time) + helper->time += tdiff; + } + while(helper = helper->next); + } + } + while(temp = temp->next); +} + + + +int load_pics() +{ + int i, fail=0; + FILE *f; + + printf("loading picture files..."); + + strcpy(bms->picnames[MAXWAVS], "BLACK.bmp"); + bms->numpics++; + + for(i = 0; i <= MAXWAVS; i++) + { + if(!(bms->picnames[i][0])) continue; + f = fopen(bms->picnames[i], "rb"); + if(f == NULL) + { + if(!fail) + printf("failed to load pictures:\n"); + fail++; + printf("%s ", bms->picnames[i]); + continue; + } + + fseek(f, 0, SEEK_END); + bms->piclen[i] = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + bms->picdata[i] = malloc(bms->piclen[i]); + + fread(bms->picdata[i],bms->piclen[i], 1, f); + fclose(f); + bms->piclen[MAXWAVS] = bms->piclen[i]; + } + if(fail) + printf("\nout of %d pictures, %d were not found\n", bms->numpics, fail); + else + printf("all pictures loaded successfully\n"); + + return fail; +} + +void blitbmp(byte* dest, int index, int layer) +{ + int h,w; + int i, k; + int rsize; + byte rs,gs,bs; + byte *sline, *dline; + byte *rd,*gd,*bd; + int offsetw, offseth; + + byte *data; + + if(!bms->piclen[index]) + return; + + data = bms->picdata[index]; + h = *((int*)(data+22)); + w = *((int*)(data+18)); + rsize = w*3; + if(rsize%4) + rsize += 4-(rsize%4); + + data += *((int*)(data+10)); + + dest += *((int*)(dest+10)); + + offsetw = (256 - w) / 2; + offseth = 256 - h; + + for(i = 0; i < h; i++) + { + sline = data + i*rsize; + dline = dest + ((offseth+i)*256 + offsetw)*3; + + if(!layer) + { + memcpy(dline, sline, w*3); + } + else + { + for(k = 0; k < 3*w; k+=3) + { + rs = *(sline+k); + gs = *(sline+k+1); + bs = *(sline+k+2); + + rd = dline+k; + gd = dline+k+1; + bd = dline+k+2; + + if(rs != 0 && gs != 0 && bs != 0) + { + *rd = rs; + *gd = gs; + *bd = bs; + } + } + } + } + +} + +void write_seq() +{ + unsigned char filename[32]; + FILE *out; + event *temp; + int i,k,off; + float time; + int maxtime; + int index; + byte *buf; + byte *data; + + temp = onechart; + + buf = malloc(bms->piclen[MAXWAVS]); + + do + { + if(temp->type == ONE_BGA) + maxtime = temp->time + 40; + } + while(temp = temp->next); + + time = -6.*1000./30. - 0.005; + + index = MAXWAVS; + for(i = 0; time < maxtime; i++) + { + memcpy(buf, bms->picdata[MAXWAVS], bms->piclen[MAXWAVS]); + + temp = onechart; + do + { + if(temp->type == ONE_BGA) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + blitbmp(buf, index, 0); + + if(bms->layer) + { + temp = onechart; + do + { + if(temp->type == ONE_LAYER) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + if(index != MAXWAVS) + blitbmp(buf, index, 1); + } + + sprintf(filename, "BMEIMGSEQ_%05d.bmp", i); + out = fopen(filename, "wb"); + fwrite(buf, bms->piclen[MAXWAVS], 1, out); + fclose(out); + + time += 1000./30.; + } + +} + +int main(int argc, const char* argv[]) +{ + FILE *f; + + //printf("bme2picseq v0.1 by ryuuou\n\tProduces a 30fps series of pictures from bme files"); + + + if(argc < 2) + { + printf("USAGE: bme2picseq \n"); + + return 0; + } + + f = fopen(argv[1], "rb"); + + if(f == NULL) + { + printf("file not found: %s\n", argv[1]); + + //return 0; + } + + printf("processing %s...", argv[1]); + bms = malloc(sizeof(bmsfile)); + memset(bms, 0, sizeof(bmsfile)); + + fseek(f, 0, SEEK_END); + bms->length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + bms->data = malloc(bms->length); + fread(bms->data, bms->length, 1, f); + fclose(f); + + parsebms(); + + load_pics(); + if(!convert_to_1_events()) + { + printf("no video event, aborting\n"); + return 0; + } + adjust_bpm(); + add_stop_events(); + + write_seq(); + + printf("done.\n"); + //getchar(); + return 0; +} + diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.exe new file mode 100644 index 0000000..15429cc Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/bme2picseq.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/common.h b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/common.h new file mode 100644 index 0000000..0f87b20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/common.h @@ -0,0 +1,77 @@ +//common.h + + +#include +#include +#include +#include + + +#define MAXWAVS (36*36-1) //wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define CHARTCOUNT 7 //beginner + (normal,hyper,another times two), what about kaiden in gold cs? + +#define PNEWLINE printf("\n") //used too often + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) //rounds (a) up to the next mod 8 int + +typedef unsigned char byte; + +//chartorder inside .1 file: h7, n7, a7, b, h14, n14, a14 +const char *BMENAMES[] = { "h7.bme", "n7.bme", "a7.bme", "b.bme", "h14.bme", "n14.bme", "a14.bme" }; //we use constant filenames here for ease of coding/use +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int style; //produce files for this iidx version; 0 == Troopers, 1 == GOLD, 2 == DistorteD and Happy Sky +float factor; //us this factor to strech .1 event time indices (based on version); 1 for Troopers, FPS/1000 for everything else + + +//helper functions for BME numbering weirdness; +//converts a number to a 01-ZZ style string and places that in the first two bytes of str +void itostr(char *str, int i) +{ + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; +} + +//the above in inverse; convert a BME-style numbering to int. +//stupidly tries to convert the first two bytes of *str +int strtoi(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 36*a + b; + + return i; +} + + +//does the same as the above but converts from hex instead +int strtoi_h(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 16*a + b; + + return i; +} diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aalib.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aalib.html new file mode 100644 index 0000000..216168c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aalib.html @@ -0,0 +1,65 @@ +8.11. AAlib – text mode displaying

8.11. AAlib – text mode displaying

+AAlib is a library for displaying graphics in text mode, using powerful +ASCII renderer. There are lots of programs already +supporting it, like Doom, Quake, etc. MPlayer +contains a very usable driver for it. If ./configure +detects aalib installed, the aalib libvo driver will be built. +

+You can use some keys in the AA Window to change rendering options: +

KeyAction
1 + decrease contrast +
2 + increase contrast +
3 + decrease brightness +
4 + increase brightness +
5 + switch fast rendering on/off +
6 + set dithering mode (none, error distribution, Floyd Steinberg) +
7 + invert image +
8 + toggles between aa and MPlayer control +

The following command line options can be used:

-aaosdcolor=V

+ change OSD color +

-aasubcolor=V

+ Change subtitle color +

+ where V can be: + 0 (normal), + 1 (dark), + 2 (bold), + 3 (bold font), + 4 (reverse), + 5 (special). +

AAlib itself provides a large sum of options. Here are some +important:

-aadriver

+ Set recommended aa driver (X11, curses, Linux). +

-aaextended

+ Use all 256 characters. +

-aaeight

+ Use eight bit ASCII. +

-aahelp

+ Prints out all aalib options. +

Note

+The rendering is very CPU intensive, especially when using AA-on-X +(using aalib on X), and it's least CPU intensive on standard, +non-framebuffer console. Use SVGATextMode to set up a big textmode, +then enjoy! (secondary head Hercules cards rock :)) (but IMHO you +can use -vf 1bpp option to get graphics on hgafb:) +

+Use the -framedrop option if your computer isn't fast +enough to render all frames! +

+Playing on terminal you'll get better speed and quality using the Linux +driver, not curses (-aadriver linux). But therefore you +need write access on +/dev/vcsa<terminal>! +That isn't autodetected by aalib, but vo_aa tries to find the best mode. +See http://aa-project.sf.net/tune for further +tuning issues. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/advaudio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/advaudio.html new file mode 100644 index 0000000..1358e09 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/advaudio.html @@ -0,0 +1,390 @@ +3.6. Advanced audio

3.6. Advanced audio

3.6.1. Surround/Multichannel playback

3.6.1.1. DVDs

+Most DVDs and many other files include surround sound. +MPlayer supports surround playback but does not +enable it by default because stereo equipment is by far more common. To play a +file that has more than two channels of audio use -channels. +For example, to play a DVD with 5.1 audio: +

mplayer dvd://1 -channels 6

+Note that despite the name "5.1" there are actually six discrete channels. +If you have surround sound equipment it is safe to put the +channels option in your MPlayer +configuration file ~/.mplayer/config. For example, to make +quadraphonic playback the default, add this line: +

channels=4

+MPlayer will then output audio in four channels when +all four channels are available. +

3.6.1.2. Playing stereo files to four speakers

+MPlayer does not duplicate any channels by default, +and neither do most audio drivers. If you want to do that manually: +

mplayer filename -af channels=2:2:0:1:0:0

+See the section on +channel copying for an +explanation. +

3.6.1.3. AC-3/DTS Passthrough

+DVDs usually have surround audio encoded in AC-3 (Dolby Digital) or DTS +(Digital Theater System) format. Some modern audio equipment is capable of +decoding these formats internally. MPlayer can be +configured to relay the audio data without decoding it. This will only work if +you have a S/PDIF (Sony/Philips Digital Interface) jack in your sound card. +

+If your audio equipment can decode both AC-3 and DTS, you can safely enable +passthrough for both formats. Otherwise, enable passthrough for only the format +your equipment supports. +

To enable passthrough on the command line:

  • + For AC-3 only, use -ac hwac3 +

  • + For DTS only, use -ac hwdts +

  • + For both AC-3 and DTS, use -afm hwac3 +

To enable passthrough in the MPlayer + configuration file:

  • + For AC-3 only, use ac=hwac3, +

  • + For DTS only, use ac=hwdts, +

  • + For both AC-3 and DTS, use afm=hwac3 +

+Note that there is a comma (",") at the end of +ac=hwac3, and ac=hwdts,. This will make +MPlayer fall back on the codecs it normally uses when +playing a file that does not have AC-3 or DTS audio. +afm=hwac3 does not need a comma; +MPlayer will fall back anyway when an audio family +is specified. +

3.6.1.4. MPEG audio Passthrough

+Digital TV transmissions (such as DVB and ATSC) and some DVDs usually have +MPEG audio streams (in particular MP2). +Some MPEG hardware decoders such as full-featured DVB cards and DXR2 +adapters can natively decode this format. +MPlayer can be configured to relay the audio data +without decoding it. +

+To use this codec: +

 mplayer -ac hwmpa 

+

3.6.1.5. Matrix-encoded audio

+***TODO*** +

+This section has yet to be written and cannot be completed until somebody +provides sample files for us to test. If you have any matrix-encoded audio +files, know where to find some, or have any information that could be helpful, +please send a message to the +MPlayer-DOCS +mailing list. Put "[matrix-encoded audio]" in the subject line. +

+If no files or further information are forthcoming this section will be dropped. +

+Good links: +

+

3.6.1.6. Surround emulation in headphones

+MPlayer includes an HRTF (Head Related Transfer +Function) filter based on an +MIT project +wherein measurements were taken from microphones mounted on a dummy human head. +

+Although it is not possible to exactly imitate a surround system, +MPlayer's HRTF filter does provide more spatially +immersive audio in 2-channel headphones. Regular downmixing simply combines all +the channels into two; besides combining the channels, hrtf +generates subtle echoes, increases the stereo separation slightly, and alters +the volume of some frequencies. Whether HRTF sounds better may be dependent on +the source audio and a matter of personal taste, but it is definitely worth +trying out. +

+To play a DVD with HRTF: +

mplayer dvd://1 -channels 6 -af hrtf

+

+hrtf only works well with 5 or 6 channels. Also, +hrtf requires 48 kHz audio. DVD audio is already 48 kHz, but if +you have a file with a different sampling rate that you want to play using +hrtf you must resample it: +

+mplayer filename -channels 6 -af resample=48000,hrtf
+

+

3.6.1.7. Troubleshooting

+If you do not hear any sound out of your surround channels, check your mixer +settings with a mixer program such as alsamixer; +audio outputs are often muted and set to zero volume by default. +

3.6.2. Channel manipulation

3.6.2.1. General information

+Unfortunately, there is no standard for how channels are ordered. The orders +listed below are those of AC-3 and are fairly typical; try them and see if your +source matches. Channels are numbered starting with 0. + +

mono

  1. center

+ +

stereo

  1. left

  2. right

+ +

quadraphonic

  1. left front

  2. right front

  3. left rear

  4. right rear

+ +

surround 4.0

  1. left front

  2. right front

  3. center rear

  4. center front

+ +

surround 5.0

  1. left front

  2. right front

  3. left rear

  4. right rear

  5. center front

+ +

surround 5.1

  1. left front

  2. right front

  3. left rear

  4. right rear

  5. center front

  6. subwoofer

+

+The -channels option is used to request the number of +channels from the audio decoder. Some audio codecs use the number of specified +channels to decide if downmixing the source is necessary. Note that this does +not always affect the number of output channels. For example, using +-channels 4 to play a stereo MP3 file will still result in +2-channel output since the MP3 codec will not produce the extra channels. +

+The channels audio filter can be used to create or remove +channels and is useful for controlling the number of channels sent to the sound +card. See the following sections for more information on channel manipulation. +

3.6.2.2. Playing mono with two speakers

+Mono sounds a lot better when played through two speakers - especially when +using headphones. Audio files that truly have one channel are automatically +played through two speakers; unfortunately, most files with mono sound are +actually encoded as stereo with one channel silent. The easiest and most +foolproof way to make both speakers output the same audio is the +extrastereo filter: +

mplayer filename -af extrastereo=0

+

+This averages both channels, resulting in both channels being half as loud as +the original. The next sections have examples of other ways to do this without a +volume decrease, but they are more complex and require different options +depending on which channel to keep. If you really need to maintain the volume, +it may be easier to experiment with the volume filter and find +the right value. For example: +

+mplayer filename -af extrastereo=0,volume=5
+

+

3.6.2.3. Channel copying/moving

+The channels filter can move any or all channels. +Setting up all the suboptions for the channels +filter can be complicated and takes a little care. + +

  1. + Decide how many output channels you need. This is the first suboption. +

  2. + Count how many channel moves you will do. This is the second suboption. Each + channel can be moved to several different channels at the same time, but keep + in mind that when a channel is moved (even if to only one destination) the + source channel will be empty unless another channel is moved into it. To copy + a channel, keeping the source the same, simply move the channel into both the + destination and the source. For example: +

    +channel 2 --> channel 3
    +channel 2 --> channel 2

    +

  3. + Write out the channel copies as pairs of suboptions. Note that the first + channel is 0, the second is 1, etc. The order of these suboptions does not + matter as long as they are properly grouped into + source:destination pairs. +

+

Example: one channel in two speakers

+Here is an example of another way to play one channel in both speakers. Suppose +for this example that the left channel should be played and the right channel +discarded. Following the steps above: +

  1. + In order to provide an output channel for each of the two speakers, the first + suboption must be "2". +

  2. + The left channel needs to be moved to the right channel, and also must be + moved to itself so it won't be empty. This is a total of two moves, making + the second suboption "2" as well. +

  3. + To move the left channel (channel 0) into the right channel (channel 1), the + suboption pair is "0:1", "0:0" moves the left channel onto itself. +

+Putting that all together gives: +

+mplayer filename -af channels=2:2:0:1:0:0
+

+

+The advantage this example has over extrastereo is that the +volume of each output channel is the same as the input channel. The disadvantage +is that the suboptions must be changed to "2:2:1:0:1:1" when the desired audio +is in the right channel. Also, it is more difficult to remember and type. +

Example: left channel in two speakers shortcut

+There is actually a much easier way to use the channels filter +for playing the left channel in both speakers: +

mplayer filename -af channels=1

+The second channel is discarded and, with no further suboptions, the single +remaining channel is left alone. Sound card drivers automatically play +single-channel audio in both speakers. This only works when the desired channel +is on the left. +

Example: duplicate front channels to the rear

+Another common operation is to duplicate the front channels and play them back +on the rear speakers of a quadraphonic setup. +

  1. + There should be four output channels. The first suboption is "4". +

  2. + Each of the two front channels needs to be moved to the corresponding rear + channel and also to itself. This is four moves, so the second suboption is "4". +

  3. + The left front (channel 0) needs to moved to the left rear (channel 2): + "0:2". The left front also needs to be moved to itself: "0:0". The right + front (channel 1) is moved to the right rear (channel 3): "1:3", and also to + itself: "1:1". +

+Combine all the suboptions to get: +

+mplayer filename -af channels=4:4:0:2:0:0:1:3:1:1
+

+

3.6.2.4. Channel mixing

+The pan filter can mix channels in user-specified proportions. +This allows for everything the channels filter can do and +more. Unfortunately, the suboptions are much more complicated. +

  1. + Decide how many channels to work with. You may need to specify this with + -channels and/or -af channels. + Later examples will show when to use which. +

  2. + Decide how many channels to feed into pan (further decoded + channels are discarded). This is the first suboption, and it also controls how + many channels to employ for output. +

  3. + The remaining suboptions specify how much of each channel gets mixed into each + other channel. This is the complicated part. To break the task down, split the + suboptions into several sets, one set for each output channel. Each suboption + within a set corresponds to an input channel. The number you specify will be + the percentage of the input channel that gets mixed into the output channel. +

    + pan accepts values from 0 to 512, yielding 0% to 51200% of + the original volume. Be careful when using values greater than 1. Not only + can this give you very high volume, but if you exceed the sample range of + your sound card you may hear painful pops and clicks. If you want you can + follow pan with ,volume to enable clipping, + but it is best to keep the values of pan low enough that + clipping is not necessary. +

+

Example: one channel in two speakers

+Here is yet another example for playing the left channel in two speakers. Follow +the steps above: +

  1. + pan should output two channels, so the first + suboption is "2". +

  2. + Since we have two input channels, there will be two sets of suboptions. + Since there are also two output channels, + there will be two suboptions per set. + The left channel from the file should go with full volume to + the new left and the right channels. + Thus the first set of suboptions is "1:1". + The right channel should be discarded, so the second would be "0:0". + Any 0 values at the end can be left out, but for ease of + understanding we will keep them. +

+Putting those options together gives: +

mplayer filename -af pan=2:1:1:0:0

+If the right channel is desired instead of the left, the suboptions to +pan will be "2:0:0:1:1". +

Example: left channel in two speakers shortcut

+As with channels, there is a shortcut that only works with the +left channel: +

mplayer filename -af pan=1:1

+Since pan has only one channel of input (the other channel is +discarded), there is only one set with one suboption, which specifies that the +only channel gets 100% of itself. +

Example: downmixing 6-channel PCM

+MPlayer's decoder for 6-channel PCM is not capable of +downmixing. Here is a way to downmix PCM using pan: +

  1. + The number of output channels is 2, so the first suboption is "2". +

  2. + With six input channels there will be six sets of options. Fortunately, + since we only care about the output of the first two channels, we only need to + make two sets; the remaining four sets can be omitted. Beware that not all + multichannel audio files have the same channel order! This example + demonstrates downmixing a file with the same channels as AC-3 5.1: +

    +0 - front left
    +1 - front right
    +2 - rear left
    +3 - rear right
    +4 - center front
    +5 - subwoofer

    + The first set of suboptions lists the percentages of the original volume, in + order, which each output channel should receive from the + front left channel: "1:0". + The front right channel should go into the right output: "0:1". + The same for the rear channels: "1:0" and "0:1". + The center channel goes into both output channels with half volume: + "0.5:0.5", and the subwoofer goes into both with full volume: "1:1". +

+Put all that together, for: +

+mplayer 6-channel.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
+

+The percentages listed above are only a rough example. Feel free to tweak them. +

Example: Playing 5.1 audio on big speakers without a subwoofer

+If you have a huge pair of front speakers you may not want to waste any money on +buying a subwoofer for a complete 5.1 sound system. If you use +-channels 5 to request that liba52 decode 5.1 audio in 5.0, +the subwoofer channel is simply discarded. If you want to distribute the +subwoofer channel yourself you need to downmix manually with +pan: +

  1. + Since pan needs to examine all six channels, specify + -channels 6 so liba52 decodes them all. +

  2. + pan outputs to only five channels, the first suboption is 5. +

  3. + Six input channels and five output channels means six sets of five suboptions. +

    • + The left front channel only replicates onto itself: + "1:0:0:0:0" +

    • + Same for the right front channel: + "0:1:0:0:0" +

    • + Same for the left rear channel: + "0:0:1:0:0" +

    • + And also the same for the right rear channel: + "0:0:0:1:0" +

    • + Center front, too: + "0:0:0:0:1" +

    • + And now we have to decide what to do with the subwoofer, + e.g. half into front right and front left: + "0.5:0.5:0:0:0" +

    +

+Combine all those options to get: +

+mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
+

+

3.6.3. Software Volume adjustment

+Some audio tracks are too quiet to be heard comfortably without amplification. +This becomes a problem when your audio equipment cannot amplify the signal for +you. The -softvol option directs +MPlayer to use an internal mixer. You can then use +the volume adjustment keys (by default 9 and +0) to reach much higher volume levels. Note that this does not +bypass your sound card's mixer; MPlayer only +amplifies the signal before sending it to your sound card. +The following example is a good start: +

+mplayer quiet-file -softvol -softvol-max 300
+

+The -softvol-max option specifies the maximum allowable output +volume as a percentage of the +original volume. For example, -softvol-max 200 would allow the +volume to be adjusted up to twice its original level. +It is safe to specify a large value with +-softvol-max; the higher volume will not be used until you +use the volume adjustment keys. The only disadvantage of a large value is that, +since MPlayer adjusts volume by a percentage of the +maximum, you will not have as precise control when using the volume adjustment +keys. Use a lower value with -softvol-max and/or specify +-volstep 1 if you need higher precision. +

+The -softvol option works by controlling the +volume audio filter. If you want to play a file at a certain +volume from the beginning you can specify volume manually: +

mplayer quiet-file -af volume=10

+This will play the file with a ten decibel gain. Be careful when using the +volume filter - you could easily hurt your ears if you use +too high a value. Start low and work your way up gradually until you get a feel +for how much adjustment is required. Also, if you specify excessively high +values, volume may need to clip the signal to avoid sending +your sound card data that is outside the allowable range; this will result in +distorted audio. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aspect.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aspect.html new file mode 100644 index 0000000..7b749d3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/aspect.html @@ -0,0 +1,27 @@ +13.10. Preserving aspect ratio

13.10. Preserving aspect ratio

+DVDs and SVCDs (i.e. MPEG-1/2) files contain an aspect ratio value, which +describes how the player should scale the video stream, so humans will not +have egg heads (ex.: 480x480 + 4:3 = 640x480). However when encoding to AVI +(DivX) files, you have to be aware that AVI headers do not store this value. +Rescaling the movie is disgusting and time consuming, there has to be a better +way! +

There is

+MPEG-4 has a unique feature: the video stream can contain its needed aspect +ratio. Yes, just like MPEG-1/2 (DVD, SVCD) and H.263 files. Regretfully, there +are few video players apart from MPlayer that +support this MPEG-4 attribute. +

+This feature can be used only with +libavcodec's +mpeg4 codec. Keep in mind: although +MPlayer will correctly play the created file, +other players may use the wrong aspect ratio. +

+You seriously should crop the black bands over and below the movie image. +See the man page for the usage of the cropdetect and +crop filters. +

+Usage +

mencoder sample-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
+    -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o output.avi

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-codecs.html new file mode 100644 index 0000000..c8783e2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-codecs.html @@ -0,0 +1,120 @@ +7.2. Audio codecs

7.2. Audio codecs

The most important audio codecs above all:

  • + MPEG layer 1/2/3 (MP1/2/3) audio (native + code, with MMX/SSE/3DNow! optimization) +

  • + Windows Media Audio 7 and 8 (AKA WMAv1 and WMAv2) + (native code, with + libavcodec) +

  • + Windows Media Audio 9 (WMAv3) (using DMO DLL) +

  • + AC-3 Dolby audio (native code, with + MMX/SSE/3DNow! optimization) +

  • + AC-3 passing through sound card hardware +

  • + AAC +

  • + Ogg Vorbis audio codec (native library) +

  • + RealAudio: DNET (low bitrate AC-3), Cook, Sipro and ATRAC3 +

  • + QuickTime: Qualcomm and QDesign audio codecs +

  • + VIVO audio (g723, Vivo Siren) +

  • + Voxware audio (using DirectShow DLL) +

  • + alaw and ulaw, various gsm, adpcm and pcm formats and other simple old + audio codecs +

  • + Adaptive Multi-Rate (AMR) speech codecs +

7.2.1. Software AC-3 decoding

+This is the default decoder used for files with AC-3 audio. +

+The AC-3 decoder can create audio output mixes for 2, 4, or 6 speakers. +When configured for 6 speakers, this decoder provides separate output of +all the AC-3 channels to the sound driver, allowing for full "surround +sound" experience without the external AC-3 decoder required to use the +hwac3 codec. +

+Use the -channels option to select the number of output +channels. Use -channels 2 for a stereo downmix. For a 4 +channel downmix (Left Front, Right Front, Left Surround and Right Surround +outputs), use -channels 4. In this case, any center +channel will be mixed equally to the front channels. +-channels 6 will output all the AC-3 channels as they are +encoded - in the order Left, Right, Left Surround, Right Surround, Center and +LFE. +

+The default number of output channels is 2. +

+To use more than 2 output channels, you will need to use OSS, and have a +sound card that supports the appropriate number of output channels via the +SNDCTL_DSP_CHANNELS ioctl. An example of a suitable driver is emu10k1 +(used by Soundblaster Live! cards) from August 2001 or newer (ALSA CVS is +also supposed to work). +

7.2.2. Hardware AC-3 decoding

+You need an AC-3 capable sound card, with digital out (S/PDIF). The card's +driver must properly support the AFMT_AC3 format (C-Media does). Connect +your AC-3 decoder to the S/PDIF output, and use the -ac +hwac3 option. It is experimental but known to work with C-Media +cards and Soundblaster Live! + ALSA (but not OSS) drivers and DXR3/Hollywood+ +MPEG decoder cards. +

7.2.3. libmad support

+libmad +is a multiplatform, integer (internally 24bit PCM) only +MPEG audio decoding library. It does not handle broken files well, and it +sometimes has problems with seeking, but it may perform better on FPU-less +(such as ARM) +platform than mp3lib. +

+If you have a proper installation of +libmad, +./configure will notice and support for MPEG audio +decoding via libmad will be built +automatically. +

7.2.4. Hardware MPEG audio codec

+This codec (selected by -ac hwmpa) passes through MPEG audio +packets to hardware decoders, such as the ones found in full-featured DVB cards +and DXR2 adapters. +Don't use it in combination with any other audio output device +(such as OSS and ALSA) that isn't able to decode it (you will hear +only white noise). +

7.2.5. AAC codec

+AAC (Advanced Audio Coding) is an audio codec sometimes found in MOV and MP4 +files. An open source decoder called FAAD is available from +http://www.audiocoding.com. +MPlayer includes a CVS snapshot of libfaad 2.1 +beta, so you do not need to get it separately. +

+If you use gcc 3.2 which fails to compile our internal FAAD or want to use +the external library for some other reason, download the library from the +download page +and pass --enable-faad-external +to ./configure. +You do not need all of faad2 to decode AAC files, libfaad is enough. Build +it like this: +

+cd faad2/
+sh bootstrap
+./configure
+cd libfaad
+make
+make install
+

+Binaries are not available from audiocoding.com, but you can (apt-)get Debian +packages from +Christian Marillat's homepage, +Mandrake/Mandriva RPMs from the P.L.F +and Fedora RPMs from Livna. +

7.2.6. AMR codecs

+Adaptive Multi-Rate speech codec is used in third generation (3G) mobile +phones. +Reference implementation is available from +The 3rd Generation Partnership Project +(free for private use). +To enable support, download and install support libraries for +AMR-NB and AMR-WB +following the instructions on that page. Recompile MPlayer afterwards. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-formats.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-formats.html new file mode 100644 index 0000000..c66a205 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio-formats.html @@ -0,0 +1,38 @@ +6.2. Audio formats

6.2. Audio formats

+MPlayer is a movie +and not a media player, although it can play +some audio file formats (they are listed in the sections below). This is not +a recommended usage of MPlayer, you better use XMMS. +

6.2.1. MP3 files

+You may have problems playing certain MP3 files that +MPlayer will misdetect as MPEGs and play +incorrectly or not at all. This cannot be fixed without dropping support +for certain broken MPEG files and thus will remain like this for the +foreseeable future. The -demuxer flag described in the +man page may help you in these cases. +

6.2.2. OGG/OGM files (Vorbis)

+Requires properly installed +libogg and +libvorbis. +

6.2.3. CD audio

+MPlayer can use cdparanoia +to play CDDA (Audio CD). The scope of this section does not contain enumerating +cdparanoia's features. +

+See the man page's -cdda option which can be used to pass +options to cdparanoia. +

6.2.4. XMMS

+MPlayer can use XMMS input +plugins to play many file formats. There are plugins for SNES game tunes, SID +tunes (from Commodore 64), many Amiga formats, .xm, .it, VQF, musepack, Bonk, +shorten and many others. You can find them at the +XMMS input plugin page. +

+For this feature you need to have XMMS and compile +MPlayer with +./configure --enable-xmms. +If that does not work, you might need to set the XMMS +plugin and library path explicitly by way of the +--with-xmmsplugindir and --with-xmmslibdir +options. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio.html new file mode 100644 index 0000000..d911d49 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/audio.html @@ -0,0 +1 @@ +Chapter 9. Audio output devices

Chapter 9. Audio output devices

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bsd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bsd.html new file mode 100644 index 0000000..01c51a0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bsd.html @@ -0,0 +1,31 @@ +12.2. *BSD

12.2. *BSD

+MPlayer runs on all known BSD flavors. +There are ports/pkgsrc/fink/etc versions of MPlayer +available that are probably easier to use than our raw sources. +

+To build MPlayer you will need GNU make +(gmake - native BSD make will not work) and a recent version of binutils. +

+If MPlayer complains about not finding +/dev/cdrom or /dev/dvd, +create an appropriate symbolic link: +

ln -s /dev/your_cdrom_device /dev/cdrom

+

+To use Win32 DLLs with MPlayer you will need to +re-compile the kernel with "option USER_LDT" +(unless you run FreeBSD-CURRENT, +where this is the default). +

12.2.1. FreeBSD

+If your CPU has SSE, recompile your kernel with +"options CPU_ENABLE_SSE" (FreeBSD-STABLE or kernel +patches required). +

12.2.2. OpenBSD

+Due to limitations in different versions of gas (relocation vs MMX), you +will need to compile in two steps: First make sure that the non-native as +is first in your $PATH and do a gmake -k, then +make sure that the native version is used and do gmake. +

+As of OpenBSD 3.4 the hack above is no longer needed. +

12.2.3. Darwin

+See the Mac OS section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports.html new file mode 100644 index 0000000..0755ee6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports.html @@ -0,0 +1,10 @@ +Appendix A. How to report bugs

Appendix A. How to report bugs

+Good bug reports are a very valuable contribution to the development of any +software project. But just like writing good software, good problem reports +involve some work. Please realize that most developers are extremely busy and +receive obscene amounts of email. So while your feedback is crucial in improving +MPlayer and very much appreciated, please understand +that you have to provide all of the information +we request and follow the instructions in this document closely. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_advusers.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_advusers.html new file mode 100644 index 0000000..b2911ce --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_advusers.html @@ -0,0 +1,15 @@ +A.7. I know what I am doing...

A.7. I know what I am doing...

+If you created a proper bug report following the steps above and you are +confident it is a bug in MPlayer, not a compiler +problem or broken file, you have already read the documentation and you could +not find a solution, your sound drivers are OK, then you might want to +subscribe to the MPlayer-advusers list and send your bug report there to get +a better and faster answer. +

+Please be advised that if you post newbie questions or questions answered in the +manual there, you will be ignored or flamed instead of getting an appropriate +answer. So do not flame us and subscribe to -advusers only if you really know +what you are doing and feel like being an advanced +MPlayer user or developer. If you meet these +criteria it should not be difficult to find out how to subscribe... +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_fix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_fix.html new file mode 100644 index 0000000..cb098b3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_fix.html @@ -0,0 +1,9 @@ +A.2. How to fix bugs

A.2. How to fix bugs

+If you feel have the necessary skills you are invited to have a go at fixing the +bug yourself. Or maybe you already did that? Please read +this short document to find out how +to get your code included in MPlayer. The people on +the +MPlayer-dev-eng +mailing list will assist you if you have questions. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_regression_test.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_regression_test.html new file mode 100644 index 0000000..414f32f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_regression_test.html @@ -0,0 +1,64 @@ +A.3. How to do regression testing using Subversion

A.3. How to do regression testing using Subversion

+A problem that can happen sometimes is 'it used to work before, now it +doesn't anymore...'. +Here is a step by step procedure to try to pinpoint when the problem +occurred. This is not for casual users. +

+First, you'd need to fetch MPlayer's source tree from Subversion. +Instructions can be found in the +Subversion section of the download page. +

+You will have now in the mplayer/ directory an image of the Subversion tree, on +the client side. +Now update this image to the date you want: +

+cd mplayer/
+svn update -r {"2004-08-23"}
+

+The date format is YYYY-MM-DD HH:MM:SS. +Using this date format ensure that you will be able to extract patches +according to the date at which they were committed, as in the +MPlayer-cvslog archive. +

+Now proceed as for a normal update: +

+./configure
+make
+

+

+If any non-programmer reads this, the fastest method to get at the point +where the problem occurred is to use a binary search — that is, +search the date of the breakage by repeatedly dividing the search +interval in half. +For example, if the problem occurred in 2003, start at mid-year, then ask +"Is the problem already here?". +If yes, go back to the first of April; if not, go to the first of October, +and so on. +

+If you have lot of free hard disk space (a full compile currently takes +100 MB, and around 300-350 MB if debugging symbols are enabled), copy the +oldest known working version before updating it; this will save time if +you need to go back. +(It is usually necessary to run 'make distclean' before recompiling an +earlier version, so if you do not make a backup copy of your original +source tree, you will have to recompile everything in it when you come +back to the present.) +

+When you have found the day where the problem happened, continue the search +using the mplayer-cvslog archive (sorted by date) and a more precise svn +update including hour, minute and second: +

+svn update -r {"2004-08-23 15:17:25"}
+

+This will allow you to easily find the exact patch that did it. +

+If you find the patch that is the cause of the problem, you have almost won; +report about it to the +MPlayer Bugzilla or +subscribe to +MPlayer-users +and post it there. +There is a chance that the author will jump in to suggest a fix. +You may also look hard at the patch until it is coerced to reveal where +the bug is :-). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_report.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_report.html new file mode 100644 index 0000000..f915581 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_report.html @@ -0,0 +1,40 @@ +A.4. How to report bugs

A.4. How to report bugs

+First of all please try the latest Subversion version of +MPlayer +as your bug might already be fixed there. Development moves extremely fast, +most problems in official releases are reported within days or even hours, +so please use only Subversion to report bugs. +This includes binary packages of MPlayer. +Subversion instructions can be found at the bottom of +this page or in +the README. If this did not help please refer to the list of +known bugs and the rest of the documentation. +If your problem is not known or not solvable by our instructions, +then please report the bug. +

+Please do not send bug reports privately to individual developers. This is +community work and thus there might be several people interested in it. +Sometimes other users already experienced your troubles and know how to +circumvent a problem even if it is a bug in MPlayer +code. +

+Please describe your problem in as much detail as possible. Do a little +detective work to narrow down the circumstances under which the problem occurs. +Does the bug only show up in certain situations? Is it specific to certain +files or file types? Does it occur with only one codec or is it codec +independent? Can you reproduce it with all output drivers? The more information +you provide the better are our chances at fixing your problem. Please do not +forget to also include the valuable information requested below, we will be +unable to properly diagnose your problem otherwise. +

+An excellent and well written guide to asking questions in public forums is +How To Ask Questions The Smart Way +by Eric S. Raymond. +There is another called +How to Report Bugs Effectively +by Simon Tatham. +If you follow these guidelines you should be able to get help. But please +understand that we all follow the mailing lists voluntarily in our free time. We +are very busy and cannot guarantee that you will get a solution for your problem +or even an answer. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_security.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_security.html new file mode 100644 index 0000000..b11cd09 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_security.html @@ -0,0 +1,11 @@ +A.1. Report security releated bugs

A.1. Report security releated bugs

+In case you have found an exploitable bug and you would like to do the +right thing and let us fix it before you disclose it, we would be happy +to get your security advisory at +security@mplayerhq.hu. +Please add [SECURITY] or [ADVISORY] in the subject. +Be sure that your report contains complete and detailed analysis of the bug. +Sending a fix is highly appreciated. +Please don't delay your report to write proof-of-concept exploit, you can +send that one with another mail. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_what.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_what.html new file mode 100644 index 0000000..98f5c20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_what.html @@ -0,0 +1,130 @@ +A.6. What to report

A.6. What to report

+You may need to include log, configuration or sample files in your bug report. +If some of them are quite big then it is better to upload them to our +FTP server in a +compressed format (gzip and bzip2 preferred) and include only the path and file +name in your bug report. Our mailing lists have a message size limit of 80k, if +you have something bigger you have to compress or upload it. +

A.6.1. System Information

+

  • + Your Linux distribution or operating system and version e.g.: +

    • Red Hat 7.1

    • Slackware 7.0 + devel packs from 7.1 ...

    +

  • + kernel version: +

    uname -a

    +

  • + libc version: +

    ls -l /lib/libc[.-]*

    +

  • + gcc and ld versions: +

    +gcc -v
    +ld -v

    +

  • + binutils version: +

    as --version

    +

  • + If you have problems with fullscreen mode: +

    • Window manager type and version

    +

  • + If you have problems with XVIDIX: +

    • + X colour depth: +

      xdpyinfo | grep "depth of root"

      +

    +

  • + If only the GUI is buggy: +

    • GTK version

    • GLIB version

    • GUI situation in which the bug occurs

    +

+

A.6.2. Hardware and drivers

+

  • + CPU info (this works on Linux only): +

    cat /proc/cpuinfo

    +

  • + Video card manufacturer and model, e.g.: +

    • ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM

    • Matrox G400 DH 32MB SGRAM

    +

  • + Video driver type & version, e.g.: +

    • X built-in driver

    • nVidia 0.9.623

    • Utah-GLX CVS 2001-02-17

    • DRI from X 4.0.3

    +

  • + Sound card type & driver, e.g.: +

    • Creative SBLive! Gold with OSS driver from oss.creative.com

    • Creative SB16 with kernel OSS drivers

    • GUS PnP with ALSA OSS emulation

    +

  • + If in doubt include lspci -vv output on Linux systems. +

+

A.6.3. Configure problems

+If you get errors while running ./configure, or autodetection +of something fails, read configure.log. You may find the +answer there, for example multiple versions of the same library mixed on your +system, or you forgot to install the development package (those with the -dev +suffix). If you think there is a bug, include configure.log +in your bug report. +

A.6.4. Compilation problems

+Please include these files: +

  • config.h

  • config.mak

+

A.6.5. Playback problems

+Please include the output of MPlayer at verbosity +level 1, but remember to +not truncate the output when +you paste it into your mail. The developers need all of the messages to properly +diagnose a problem. You can direct the output into a file like this: +

+mplayer -v options filename > mplayer.log 2>&1
+

+

+If your problem is specific to one or more files, +then please upload the offender(s) to: +ftp://upload.mplayerhq.hu/MPlayer/incoming/ +

+Also upload a small text file having the same base name as your file with a .txt +extension. Describe the problem you are having with the particular file there +and include your email address as well as the output of +MPlayer at verbosity level 1. +Usually the first 1-5 MB of a file are enough to reproduce +the problem, but to be sure we ask you to: +

+dd if=yourfile of=smallfile bs=1024k count=5
+

+It will take the first five megabytes of +'your-file' and write it to +'small-file'. Then try again on +this small file and if the bug still shows up your sample is sufficient for us. +Please do not ever send such files via mail! +Upload it, and send only the path/filename of the file on the FTP-server. If the +file is accessible on the net, then sending the +exact URL is sufficient. +

A.6.6. Crashes

+You have to run MPlayer inside gdb +and send us the complete output or if you have a core dump +of the crash you can extract useful information from the Core file. Here's how: +

A.6.6.1. How to conserve information about a reproducible crash

+Recompile MPlayer with debugging code enabled: +

+./configure --enable-debug=3
+make
+

+and then run MPlayer within gdb using: +

gdb ./mplayer

+You are now within gdb. Type: +

+run -v options-to-mplayer filename
+

+and reproduce your crash. As soon as you did it, gdb will return you to the +command line prompt where you have to enter +

+bt
+disass $pc-32 $pc+32
+info all-registers
+

+

A.6.6.2. How to extract meaningful information from a core dump

+Create the following command file: +

+bt
+disass $pc-32 $pc+32
+info all-registers
+

+Then simply execute this command: +

+gdb mplayer --core=core -batch --command=command_file > mplayer.bug
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_where.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_where.html new file mode 100644 index 0000000..5a76f28 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugreports_where.html @@ -0,0 +1,20 @@ +A.5. Where to report bugs

A.5. Where to report bugs

+Subscribe to the MPlayer-users mailing list: +http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users +and send your bug report to +mailto:mplayer-users@mplayerhq.hu where you can discuss it. +

+If you prefer, you can use our brand-new +Bugzilla instead. +

+The language of this list is English. +Please follow the standard +Netiquette Guidelines +and do not send HTML mail to any of our +mailing lists. You will only get ignored or +banned. If you do not know what HTML mail is or why it is evil, read this +fine document. +It explains all the details and has instructions for turning HTML off. Also +note that we will not individually CC (carbon-copy) people so it is a good idea +to subscribe to actually receive your answer. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-audio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-audio.html new file mode 100644 index 0000000..40a6d99 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-audio.html @@ -0,0 +1,55 @@ +B.2. Various A-V sync and other audio problems

B.2. Various A-V sync and other audio problems

B.2.1. General audio delay or jerky sound + (exists with all or many files)

  • + most common: buggy audio driver! - try to use different drivers, try ALSA OSS + emulation with -ao oss, also try -ao sdl, + sometimes it helps. If your file plays fine with -nosound, + then you can be sure it's sound card (driver) problem. +

  • audio buffer problems (buffer size badly detected)

    + Workaround: MPlayer's -abs option +

  • + samplerate problems - maybe your card doesn't support the samplerate used in + your files - try the resampling filter (-af resample=...) +

  • slow machine (CPU or VGA)

    + try with -vo null, if it plays well, then you have slow + VGA card/driver +

    + Workaround: buy a faster card or read this documentation about how to speed up +

    Also try -framedrop

B.2.2. Audio delay/de-sync specific to one or a few files

  • bad file

    + Workaround: +

    • + -ni or -nobps option + (for non-interleaved or bad files) +

      and/or

    • + -mc 0 + (required for files with badly interleaved VBR audio) +

      and/or

    • + -delay or +/- + keys at runtime to adjust delay +

    + If none of these help, please upload the file, we'll check (and fix). +

  • your sound card doesn't support 48kHz playback

    + Workaround: buy a better sound card... or try to decrease fps by 10% + (use -fps 27 for a 30fps movie) or use the resample filter +

  • + slow machine (if A-V is not around 0, + and the last number in the status line increasing) +

    Workaround: -framedrop

B.2.3. No sound at all

  • your file uses an unsupported audio codec

    + Solution: read the documentation and help us adding support for it +

B.2.4. No picture at all (just plain grey/green window)

  • your file uses an unsupported video codec

    + Solution: read the documentation and help us adding support for it +

  • + auto-selected codec can't decode the file, try to select another using + -vc or -vfm options +

B.2.5. Video-out problems

+First note that the options -fs, -vm and +-zoom are not supported by all drivers. Plus, not all +drivers support scaling/zooming in hardware. +

OSD/sub flickering.  +

  • x11 driver: sorry, it can't be fixed now

  • xv driver: use -double option

+

Green image using mga_vid + (-vo mga / -vo xmga).  +

  • + mga_vid misdetected your card's RAM amount, reload it using + mga_ram_size option. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-special.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-special.html new file mode 100644 index 0000000..33cbae7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs-special.html @@ -0,0 +1,12 @@ +B.1. Special system/CPU-specific bugs/problems

B.1. Special system/CPU-specific bugs/problems

  • SIGILL (signal 4) on P3 using 2.2.x kernels:

    Problem: kernel 2.2.x doesn't have proper (working) SSE support

    Solution: upgrade kernel to 2.4.x

    Workaround: ./configure --disable-sse

  • General SIGILL (signal 4):

    + Problem: you compiled and run MPlayer on + different machines (for example compiled on P3 and running on Celeron) +

    + Solution: compile MPlayer on the same machine + where you will use it! +

    + Workaround: You can forget all this by configuring with the + --enable-runtime-cpudetection option or you can + disable particular CPU instruction sets with more specific options (like + --disable-mmx, --disable-3dnow, etc). +

  • Crashes when dumping streams:

    Problem: core dump

    Solution: Don't panic. Make sure you know where your towel is.

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs.html new file mode 100644 index 0000000..af23765 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/bugs.html @@ -0,0 +1,2 @@ +Appendix B. Known bugs diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/caca.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/caca.html new file mode 100644 index 0000000..53fb3c0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/caca.html @@ -0,0 +1,47 @@ +8.12.  libcaca – Color ASCII Art library

8.12.  +libcaca – Color ASCII Art library +

+The libcaca +library is a graphics library that outputs text instead of pixels, so that it +can work on older video cards or text terminals. It is not unlike the famous +AAlib library. +libcaca needs a terminal to work, thus +it should work on all Unix systems (including Mac OS X) using either the +slang library or the +ncurses library, on DOS using the +conio.h library, and on Windows systems +using either slang or +ncurses (through Cygwin emulation) or +conio.h. If +./configure +detects libcaca, the caca libvo driver +will be built. +

The differences with AAlib are + the following:

  • + 16 available colors for character output (256 color pairs) +

  • + color image dithering +

But libcaca also has the + following limitations:

  • + no support for brightness, contrast, gamma +

+You can use some keys in the caca window to change rendering options: +

KeyAction
d + Toggle libcaca dithering methods. +
a + Toggle libcaca antialiasing. +
b + Toggle libcaca background. +

libcaca will also look for + certain environment variables:

CACA_DRIVER

+ Set recommended caca driver. e.g. ncurses, slang, x11. +

CACA_GEOMETRY (X11 only)

+ Specifies the number of rows and columns. e.g. 128x50. +

CACA_FONT (X11 only)

+ Specifies the font to use. e.g. fixed, nexus. +

+Use the -framedrop option if your computer is not fast +enough to render all frames. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/cd-dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/cd-dvd.html new file mode 100644 index 0000000..ed87cc9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/cd-dvd.html @@ -0,0 +1 @@ +Chapter 4. CD/DVD usage diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codec-importing.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codec-importing.html new file mode 100644 index 0000000..3d3396d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codec-importing.html @@ -0,0 +1,92 @@ +7.3. Win32 codecs importing HOWTO

7.3. Win32 codecs importing HOWTO

7.3.1. VFW codecs

+VFW (Video for Windows) is the old Video API for Windows. Its codecs have +the .DLL or (rarely) .DRV +extension. If MPlayer fails at playing your AVI +with this kind of message: +

UNKNOWN video codec: HFYU (0x55594648)

+It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = +HuffYUV codec, DIV3 = DivX Low Motion, etc.). Now that you know this, you +have to find out which DLL Windows loads in order to play this file. In our +case, the system.ini contains this information in a +line that reads: +

VIDC.HFYU=huffyuv.dll

+

+So you need the huffyuv.dll file. Note that the audio +codecs are specified by the MSACM prefix: +

msacm.l3acm=L3codeca.acm

+

+This is the MP3 codec. Now that you have all the necessary information +(fourcc, codec file, sample AVI), submit your codec support request by +mail, and upload these files to the FTP site: +ftp://upload.mplayerhq.hu/MPlayer/incoming/<codecname>/ +

Note

+On Windows NT/2000/XP search for this info in the registry, +e.g. search for "VIDC.HFYU". To find out how to do this, look at +the old DirectShow method below. +

7.3.2. DirectShow codecs

+DirectShow is the newer Video API, which is even worse than its predecessor. +Things are harder with DirectShow, since +

  • + system.ini does not contain the needed information, + instead it is stored in the registry and +

  • + we need the GUID of the codec. +

+

New Method:

+Using Microsoft GraphEdit (fast) +

  1. + Get GraphEdit from either DirectX SDK or + doom9. +

  2. + Start graphedit.exe. +

  3. + From the menu select + Graph → Insert Filters. +

  4. + Expand item DirectShow Filters. +

  5. + Select the right codec name and expand item. +

  6. + In the entry DisplayName look at the text in + winged brackets after the backslash and write it down (five dash-delimited + blocks, the GUID). +

  7. + The codec binary is the file specified in the + Filename entry. +

Note

+If there is no Filename and +DisplayName contains something like +device:dmo, then it is a DMO-Codec. +

Old Method:

+Take a deep breath and start searching the registry... +

  1. + Start regedit. +

  2. + Press Ctrl+F, disable + the first two checkboxes, and enable the third. Type in the fourcc of the + codec (e.g. TM20). +

  3. + You should see a field which contains the path and the filename (e.g. + C:\WINDOWS\SYSTEM\TM20DEC.AX). +

  4. + Now that you have the file, we need the GUID. Try searching again, but + now search for the codec's name, not the fourcc. Its name can be acquired + when Media Player is playing the file, by checking + File → Properties → Advanced. + If not, you are out of luck. Try guessing (e.g. search for TrueMotion). +

  5. + If the GUID is found you should see a FriendlyName + and a CLSID field. Write down the 16 byte CLSID, + this is the GUID we need. +

Note

+If searching fails, try enabling all the checkboxes. You may have +false hits, but you may get lucky... +

+Now that you have all the necessary information (fourcc, GUID, codec file, +sample AVI), submit your codec support request by mail, and upload these files +to the FTP site: +ftp://upload.mplayerhq.hu/MPlayer/incoming/<codecname>/ +

+If you want to add a codec yourself, read +DOCS/tech/codecs.conf.txt. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codecs.html new file mode 100644 index 0000000..e289fe9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/codecs.html @@ -0,0 +1,3 @@ +Chapter 7. Codecs diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/commandline.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/commandline.html new file mode 100644 index 0000000..108c884 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/commandline.html @@ -0,0 +1,59 @@ +3.1. Command line

3.1. Command line

+MPlayer utilizes a complex playtree. It consists +of global options written as first, for example +

mplayer -vfm 5

+and options written after filenames, that apply only to the given +filename/URL/whatever, for example: +

+mplayer -vfm 5 movie1.avi movie2.avi -vfm 4
+

+

+You can group filenames/URLs together using { and +}. It is useful with option -loop: +

mplayer { 1.avi -loop 2 2.avi } -loop 3

+The above command will play files in this order: 1, 1, 2, 1, 1, 2, 1, 1, 2. +

+Playing a file: +

+mplayer [options] [path/]filename
+

+

+Another way to play a file: +

+mplayer [options] file:///uri-escaped-path
+

+

+Playing more files: +

+mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...
+

+

+Playing VCD: +

+mplayer [options] vcd://trackno [-cdrom-device /dev/cdrom]
+

+

+Playing DVD: +

+mplayer [options] dvd://titleno [-dvd-device /dev/dvd]
+

+

+Playing from the WWW: +

+mplayer [options] http://site.com/file.asf
+

+(playlists can be used, too) +

+Playing from RTSP: +

+mplayer [options] rtsp://server.example.com/streamName
+

+

+Examples: +

+mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
+mplayer vcd://2 -cdrom-device /dev/hdc
+mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
+mplayer dvd://1 -dvd-device /dev/hdc
+mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/containers.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/containers.html new file mode 100644 index 0000000..257bfc1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/containers.html @@ -0,0 +1,23 @@ +Chapter 6. Containers

Chapter 6. Containers

+It is important to clarify a common mistake. When people see a file with a +.AVI extension, they immediately conclude that it is +not an MPEG file. That is not true. At least not entirely. Contrary to +popular belief such a file can contain MPEG-1 video. +

+You see, a codec is not the same as a +container format. +Examples of video codecs are: MPEG-1, MPEG-2, +MPEG-4 (DivX), Indeo5, 3ivx. +Examples of container formats are: +MPG, AVI, ASF. +

+In theory, you can put an OpenDivX video and MP3 audio +into an MPG container. However, most +players will not play it, since they expect MPEG-1 video and MP2 audio (unlike +AVI, MPG +does not have the necessary fields to describe its video and audio streams). +Or you might put MPEG-1 video into an AVI file. +FFmpeg and +MEncoder +can create these files. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/control.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/control.html new file mode 100644 index 0000000..04ccc44 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/control.html @@ -0,0 +1,85 @@ +3.3. Control

3.3. Control

+MPlayer has a fully configurable, command +driven, control layer which lets you control +MPlayer with keyboard, mouse, joystick or remote +control (using LIRC). See the man page for the complete list of keyboard controls. +

3.3.1. Controls configuration

+MPlayer allows you bind any key/button to any +MPlayer command using a simple config file. +The syntax consist of a key name followed by a command. The default config file location is +$HOME/.mplayer/input.conf but it can be overridden +using the -input conf option +(relative path are relative to $HOME/.mplayer). +

+You can get a full list of supported key names by running +mplayer -input keylist +and a full list of available commands by running +mplayer -input cmdlist. +

Example 3.1. A simple input control file

+##
+## MPlayer input control file
+##
+
+RIGHT seek +10
+LEFT seek -10
+- audio_delay 0.100
++ audio_delay -0.100
+q quit
+> pt_step 1
+< pt_step -1
+ENTER pt_step 1 1

3.3.2. Control from LIRC

+Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver, +an (almost) arbitrary remote control and control your Linux box with it! +More about it on the LIRC homepage. +

+If you have the LIRC package installed, configure will +autodetect it. If everything went fine, MPlayer +will print "Setting up LIRC support..." +on startup. If an error occurs it will tell you. If there is no message about +LIRC there is no support compiled in. That's it :-) +

+The application name for MPlayer is - surprise - +mplayer. You can use any MPlayer +commands and even pass more than one command by separating them with +\n. +Do not forget to enable the repeat flag in .lircrc when +it makes sense (seek, volume, etc). Here is an excerpt from a sample +.lircrc: +

+begin
+     button = VOLUME_PLUS
+     prog = mplayer
+     config = volume 1
+     repeat = 1
+end
+
+begin
+    button = VOLUME_MINUS
+    prog = mplayer
+    config = volume -1
+    repeat = 1
+end
+
+begin
+    button = CD_PLAY
+    prog = mplayer
+    config = pause
+end
+
+begin
+    button = CD_STOP
+    prog = mplayer
+    config = seek 0 1\npause
+end

+If you do not like the standard location for the lirc-config file +(~/.lircrc) use the -lircconf +filename switch to specify another +file. +

3.3.3. Slave mode

+The slave mode allows you to build simple frontends to +MPlayer. When run with the +-slave option MPlayer will +read commands separated by a newline (\n) from stdin. +The commands are documented in the +slave.txt file. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/default.css b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/default.css new file mode 100644 index 0000000..c65838e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/default.css @@ -0,0 +1,83 @@ +body { + color: black; + background: white; + + font-family: Arial, Helvetica, sans-serif; +/* + * It's a Bad Idea(tm) to use fixed font sizes. + * Uncomment it if you _really_ want + */ + font-size: 14px; +} + +div.table table, div.informaltable table { + background: #333366; + border-collapse: separate; + border: solid 1px #333366; + border-spacing: 1px; +} + +div.table th, div.informaltable th { + color: white; + background: #4488cc; + border: 0px; + padding: 2px; +} + +div.table td, div.informaltable td { + background: #fffff8; + border: 0px; + padding: 2px; +} + + +pre.screen { + padding: 4px; + background: #e0e0e0; +} + +pre.programlisting { + padding: 4px; + background: #e0e8f0; +} + +/* +span.application { +} +*/ + +span.keycap { + background: #ddd; + border: solid 1px #aaa; + white-space: nowrap; + font-family: Arial, Helvetica, sans-serif; +} + +span.guimenu, span.guisubmenu, span.guimenuitem { + background: #dddddd; +} + +tt.filename { + color: maroon; + white-space: nowrap; +} + +tt.option { + color: #066; + white-space: nowrap; +} + +div.example { + padding-left: 0.5em; + border-left: solid 2px black; +} + +div.important .title, div.caution .title, div.warning .title { + color: #c00; +} +/* +div.important, div.warning, div.caution { + padding-left: 0.5em; + border-left: solid 2px maroon; +} +*/ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dfbmga.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dfbmga.html new file mode 100644 index 0000000..5cabac0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dfbmga.html @@ -0,0 +1,20 @@ +8.17. DirectFB/Matrox (dfbmga)

8.17. DirectFB/Matrox (dfbmga)

+Please read the main DirectFB section for +general information. +

+This video output driver will enable CRTC2 (on the second head) on Matrox +G400/G450/G550 cards, displaying video +independent of the first head. +

+Ville Syrjala's has a +README +and a +HOWTO +on his homepage that explain how to make DirectFB TV output run on Matrox cards. +

Note

+the first DirectFB version with which we could get this working was +0.9.17 (it's buggy, needs that surfacemanager +patch from the URL above). Porting the CRTC2 code to +mga_vid has been planned for years, +patches are welcome. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dga.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dga.html new file mode 100644 index 0000000..88d7f61 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dga.html @@ -0,0 +1,186 @@ +8.3. DGA

8.3. DGA

PREAMBLE.  +This document tries to explain in some words what DGA is in general and +what the DGA video output driver for MPlayer +can do (and what it can't). +

WHAT IS DGA.  +DGA is short for Direct Graphics +Access and is a means for a program to bypass the X server and +directly modifying the framebuffer memory. Technically spoken this happens +by mapping the framebuffer memory into the memory range of your process. +This is allowed by the kernel only if you have superuser privileges. You +can get these either by logging in as root or by setting the SUID bit on the +MPlayer executable (not +recommended). +

+There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was +introduced with XFree 4.0.1. +

+DGA1 provides only direct framebuffer access as described above. For +switching the resolution of the video signal you have to rely on the +XVidMode extension. +

+DGA2 incorporates the features of XVidMode extension and also allows +switching the depth of the display. So you may, although basically +running a 32 bit depth X server, switch to a depth of 15 bits and vice +versa. +

+However DGA has some drawbacks. It seems it is somewhat dependent on the +graphics chip you use and on the implementation of the X server's video +driver that controls this chip. So it does not work on every system... +

INSTALLING DGA SUPPORT FOR MPLAYER.  +First make sure X loads the DGA extension, see in +/var/log/XFree86.0.log: + +

(II) Loading extension XFree86-DGA

+ +See, XFree86 4.0.x or greater is +highly recommended! +MPlayer's DGA driver is autodetected by +./configure, or you can force it +with --enable-dga. +

+If the driver couldn't switch to a smaller resolution, experiment with +options -vm (only with X 3.3.x), -fs, +-bpp, -zoom to find a video mode that +the movie fits in. There is no converter right now :( +

+Become root. DGA needs root +access to be able to write directly video memory. If you want to run it as +user, then install MPlayer SUID root: + +

+chown root /usr/local/bin/mplayer
+chmod 750 /usr/local/bin/mplayer
+chmod +s /usr/local/bin/mplayer
+

+ +Now it works as a simple user, too. +

Security risk

+This is a big security risk! +Never do this on a server or on a computer +that can be accessed by other people because they can gain root privileges +through SUID root MPlayer. +

+Now use -vo dga option, and there you go! (hope so:) You +should also try if the -vo sdl:driver=dga option works for you! +It's much faster! +

RESOLUTION SWITCHING.  +The DGA driver allows for switching the resolution of the output signal. +This avoids the need for doing (slow) software scaling and at the same time +provides a fullscreen image. Ideally it would switch to the exact +resolution (except for honoring aspect ratio) of the video data, but the X +server only allows switching to resolutions predefined in +/etc/X11/XF86Config +(/etc/X11/XF86Config-4 for XFree 4.X.X respectively). +Those are defined by so-called modelines and depend on +the capabilities of your video hardware. The X server scans this config +file on startup and disables the modelines not suitable for your hardware. +You can find out which modes survive with the X11 log file. It can be found +at: /var/log/XFree86.0.log. +

+These entries are known to work fine with a Riva128 chip, using the nv.o X +server driver module. +

+Section "Modes"
+  Identifier "Modes[0]"
+  Modeline "800x600"  40     800 840 968 1056  600 601 605 628
+  Modeline "712x600"  35.0   712 740 850 900   400 410 412 425
+  Modeline "640x480"  25.175 640 664 760 800   480 491 493 525
+  Modeline "400x300"  20     400 416 480 528   300 301 303 314 Doublescan
+  Modeline "352x288"  25.10  352 368 416 432   288 296 290 310
+  Modeline "352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
+  Modeline "320x240"  12.588 320 336 384 400   240 245 246 262 Doublescan
+EndSection
+

DGA & MPLAYER.  +DGA is used in two places with MPlayer: The SDL +driver can be made to make use of it (-vo sdl:driver=dga) and +within the DGA driver (-vo dga). The above said is true +for both; in the following sections I'll explain how the DGA driver for +MPlayer works. +

FEATURES.  +The DGA driver is invoked by specifying -vo dga at the +command line. The default behavior is to switch to a resolution matching +the original resolution of the video as close as possible. It deliberately +ignores the -vm and -fs options +(enabling of video mode switching and fullscreen) - it always tries to +cover as much area of your screen as possible by switching the video mode, +thus refraining from using additional cycles of your CPU to scale the +image. If you don't like the mode it chooses you may force it to choose +the mode matching closest the resolution you specify by -x +and -y. By providing the -v option, the +DGA driver will print, among a lot of other things, a list of all +resolutions supported by your current XF86Config file. +Having DGA2 you may also force it to use a certain depth by using the +-bpp option. Valid depths are 15, 16, 24 and 32. It +depends on your hardware whether these depths are natively supported or if +a (possibly slow) conversion has to be done. +

+If you should be lucky enough to have enough offscreen memory left to +put a whole image there, the DGA driver will use double buffering, which +results in much smoother movie playback. It will tell you whether +double buffering is enabled or not. +

+Double buffering means that the next frame of your video is being drawn in +some offscreen memory while the current frame is being displayed. When the +next frame is ready, the graphics chip is just told the location in memory +of the new frame and simply fetches the data to be displayed from there. +In the meantime the other buffer in memory will be filled again with new +video data. +

+Double buffering may be switched on by using the option +-double and may be disabled with +-nodouble. Current default option is to disable +double buffering. When using the DGA driver, onscreen display (OSD) only +works with double buffering enabled. However, enabling double buffering may +result in a big speed penalty (on my K6-II+ 525 it used an additional 20% +of CPU time!) depending on the implementation of DGA for your hardware. +

SPEED ISSUES.  +Generally spoken, DGA framebuffer access should be at least as fast as +using the X11 driver with the additional benefit of getting a fullscreen +image. The percentage speed values printed by +MPlayer have to be interpreted with some care, +as for example, with the X11 driver they do not include the time used by +the X server needed for the actual drawing. Hook a terminal to a serial +line of your box and start top to see what is really +going on in your box. +

+Generally spoken, the speedup done by using DGA against 'normal' use of X11 +highly depends on your graphics card and how well the X server module for it +is optimized. +

+If you have a slow system, better use 15 or 16 bit depth since they require +only half the memory bandwidth of a 32 bit display. +

+Using a depth of 24 bit is a good idea even if your card natively just supports +32 bit depth since it transfers 25% less data compared to the 32/32 mode. +

+I've seen some AVI files be played back on a Pentium MMX 266. AMD K6-2 +CPUs might work at 400 MHZ and above. +

KNOWN BUGS.  +Well, according to some developers of XFree, DGA is quite a beast. They +tell you better not to use it. Its implementation is not always flawless +with every chipset driver for XFree out there. +

  • + With XFree 4.0.3 and nv.o there is a bug resulting + in strange colors. +

  • + ATI driver requires to switch mode back more than once after finishing + using of DGA. +

  • + Some drivers simply fail to switch back to normal resolution (use + Ctrl+Alt+Keypad + + and + Ctrl+Alt+Keypad - + to switch back manually). +

  • + Some drivers simply display strange colors. +

  • + Some drivers lie about the amount of memory they map into the process's + address space, thus vo_dga won't use double buffering (SIS?). +

  • + Some drivers seem to fail to report even a single valid mode. In this + case the DGA driver will crash telling you about a nonsense mode of + 100000x100000 or something like that. +

  • + OSD only works with double buffering enabled (else it flickers). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/directfb.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/directfb.html new file mode 100644 index 0000000..0284cbf --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/directfb.html @@ -0,0 +1,16 @@ +8.16. DirectFB

8.16. DirectFB

+"DirectFB is a graphics library which was designed with embedded systems +in mind. It offers maximum hardware accelerated performance at a minimum +of resource usage and overhead." - quoted from +http://www.directfb.org +

I'll exclude DirectFB features from this section.

+Though MPlayer is not supported as a "video +provider" in DirectFB, this output driver will enable video playback +through DirectFB. It will - of course - be accelerated, on my Matrox G400 +DirectFB's speed was the same as XVideo. +

+Always try to use the newest version of DirectFB. You can use DirectFB options +on the command line, using the -dfbopts option. Layer +selection can be done by the subdevice method, e.g.: +-vo directfb:2 (layer -1 is default: autodetect) +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/drives.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/drives.html new file mode 100644 index 0000000..6e69948 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/drives.html @@ -0,0 +1,49 @@ +4.1. CD/DVD drives

4.1. CD/DVD drives

+Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives +are capable of running at reduced speeds. There are several reasons that might +make you consider changing the speed of a CD-ROM drive: +

  • + There have been reports of read errors at high speeds, especially + with badly pressed CD-ROMs. Reducing the speed can prevent data loss under + these circumstances. +

  • + Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise. +

4.1.1. Linux

+You can reduce the speed of IDE CD-ROM drives with hdparm, +setcd or cdctl. It works like this: +

hdparm -E [speed] [cdrom device]

+

setcd -x [speed] [cdrom device]

+

cdctl -bS [speed]

+

+If you are using SCSI emulation, you might have to apply the settings to the +real IDE device, not the emulated SCSI device. +

+If you have root privileges the following command may also help: +

echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings

+

+This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. +If you set it to too high, the drive will continuously spin up and down, and +will dramatically decrease the performance. +It is recommended that you also tune your CD-ROM drive +with hdparm: +

hdparm -d1 -a8 -u1 [cdrom device]

+

+This enables DMA access, read-ahead, and IRQ unmasking (read the +hdparm man page for a detailed explanation). +

+Please refer to +"/proc/ide/[cdrom device]/settings" +for fine-tuning your CD-ROM. +

+SCSI drives do not have a uniform way of setting these parameters (Do you know +one? Tell us!) There is a tool that works for +Plextor SCSI drives. +

4.1.2. FreeBSD

speed: +

+cdcontrol [-f device] speed [speed]
+

+

DMA: +

+sysctl hw.ata.atapi_dma=1
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dvd.html new file mode 100644 index 0000000..f137ba0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/dvd.html @@ -0,0 +1,53 @@ +4.2. DVD playback

4.2. DVD playback

+For the complete list of available options, please read the man page. +The syntax to play a standard DVD is as follows: +

+mplayer dvd://<track> [-dvd-device <device>]
+

+

+Example: +

mplayer dvd://1 -dvd-device /dev/hdc

+

+If you have compiled MPlayer with dvdnav support, the +syntax is the same, except that you need to use dvdnav:// instead of dvd://. +

+The default DVD device is /dev/dvd. If your setup +differs, make a symlink or specify the correct device on the command +line with the -dvd-device option. +

+MPlayer uses libdvdread and +libdvdcss for DVD playback and decryption. These two +libraries are contained in the +MPlayer source tree, you do not have +to install them separately. You can also use system-wide versions of the two +libraries, but this solution is not recommended, as it can result in bugs, +library incompatibilities and slower speed. +

Note

+In case of DVD decoding problems, try disabling supermount, or any other such +facilities. Some RPC-2 drives may also require setting the region code. +

DVD decryption.  +DVD decryption is done by libdvdcss. The method +can be specified through the DVDCSS_METHOD environment +variable, see the manual page for details. +

4.2.1. region code

+DVD drives nowadays come with a nonsensical restriction labeled +region code. +This is a scheme to force DVD drives to only accept DVDs produced for one of +the six different regions into which the world was partitioned. How a group +of people can sit around a table, come up with such an idea and expect the +world of the 21st century to bow to their will is beyond anyone's guess. +

+Drives that enforce region settings through software only are also known as +RPC-1 drives, those that do it in hardware as RPC-2. RPC-2 drives allow +changing the region code five times before it remains fixed. +Under Linux you can use the +regionset tool +to set the region code of your DVD drive. +

+Thankfully, it is possible to convert RPC-2 drives into RPC-1 drives through +a firmware upgrade. Feed the model number of your DVD drive into your favorite +search engine or have a look at the forum and download sections of +"The firmware page". +While the usual caveats for firmware upgrades apply, experience with +getting rid of region code enforcement is generally positive. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/edl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/edl.html new file mode 100644 index 0000000..8676245 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/edl.html @@ -0,0 +1,38 @@ +3.5. Edit Decision Lists (EDL)

3.5. Edit Decision Lists (EDL)

+The edit decision list (EDL) system allows you to automatically skip +or mute sections of videos during playback, based on a movie specific +EDL configuration file. +

+This is useful for those who may want to watch a film in "family-friendly" +mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie +according to your own personal preferences. Aside from this, there are other +uses, like automatically skipping over commercials in video files you watch. +

+The EDL file format is pretty bare-bones. There is one command per line that +indicates what to do (skip/mute) and when to do it (using pts in seconds). +

3.5.1. Using an EDL file

+Include the -edl <filename> flag when you run +MPlayer, with the name of the EDL file you +want applied to the video. +

3.5.2. Making an EDL file

+The current EDL file format is: +

[begin second] [end second] [action]

+Where the seconds are floating-point numbers and the action is either +0 for skip or 1 for mute. Example: +

+5.3   7.1    0
+15    16.7   1
+420   422    0
+

+This will skip from second 5.3 to second 7.1 of the video, then mute at +15 seconds, unmute at 16.7 seconds and skip from second 420 to second 422 +of the video. These actions will be performed when the playback timer +reaches the times given in the file. +

+To create an EDL file to work from, use the -edlout +<filename> flag. During playback, just hit i to +mark the beginning and end of a skip block. +A corresponding entry will be written to the file for that time. +You can then go back and fine-tune the generated EDL file as well as +change the default operation which is to skip the block described by each line. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/encoding-guide.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/encoding-guide.html new file mode 100644 index 0000000..4b5bd34 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/encoding-guide.html @@ -0,0 +1,13 @@ +Chapter 14. Encoding with MEncoder

Chapter 14. Encoding with MEncoder

14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie
14.1.1. Preparing to encode: Identifying source material and framerate
14.1.1.1. Identifying source framerate
14.1.1.2. Identifying source material
14.1.2. Constant quantizer vs. multipass
14.1.3. Constraints for efficient encoding
14.1.4. Cropping and Scaling
14.1.5. Choosing resolution and bitrate
14.1.5.1. Computing the resolution
14.1.6. Filtering
14.1.7. Interlacing and Telecine
14.1.8. Encoding interlaced video
14.1.9. Notes on Audio/Video synchronization
14.1.10. Choosing the video codec
14.1.11. Audio
14.1.12. Muxing
14.1.12.1. Improving muxing and A/V sync reliability
14.1.12.2. Limitations of the AVI container
14.1.12.3. Muxing into the Matroska container
14.2. How to deal with telecine and interlacing within NTSC DVDs
14.2.1. Introduction
14.2.2. How to tell what type of video you have
14.2.2.1. Progressive
14.2.2.2. Telecined
14.2.2.3. Interlaced
14.2.2.4. Mixed progressive and telecine
14.2.2.5. Mixed progressive and interlaced
14.2.3. How to encode each category
14.2.3.1. Progressive
14.2.3.2. Telecined
14.2.3.3. Interlaced
14.2.3.4. Mixed progressive and telecine
14.2.3.5. Mixed progressive and interlaced
14.2.4. Footnotes
14.3. Encoding with the libavcodec + codec family
14.3.1. libavcodec's + video codecs
14.3.2. libavcodec's + audio codecs
14.3.2.1. PCM/ADPCM format supplementary table
14.3.3. Encoding options of libavcodec
14.3.4. Encoding setting examples
14.3.5. Custom inter/intra matrices
14.3.6. Example
14.4. Encoding with the Xvid + codec
14.4.1. What options should I use to get the best results?
14.4.2. Encoding options of Xvid
14.4.3. Encoding profiles
14.4.4. Encoding setting examples
14.5. Encoding with the + x264 codec
14.5.1. Encoding options of x264
14.5.1.1. Introduction
14.5.1.2. Options which primarily affect speed and quality
14.5.1.3. Options pertaining to miscellaneous preferences
14.5.2. Encoding setting examples
14.6. + Encoding with the Video For Windows + codec family +
14.6.1. Video for Windows supported codecs
14.6.2. Using vfw2menc to create a codec settings file.
14.7. Using MEncoder to create +QuickTime-compatible files
14.7.1. Why would one want to produce QuickTime-compatible Files?
14.7.2. QuickTime 7 limitations
14.7.3. Cropping
14.7.4. Scaling
14.7.5. A/V sync
14.7.6. Bitrate
14.7.7. Encoding example
14.7.8. Remuxing as MP4
14.7.9. Adding metadata tags
14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files
14.8.1. Format Constraints
14.8.1.1. Format Constraints
14.8.1.2. GOP Size Constraints
14.8.1.3. Bitrate Constraints
14.8.2. Output Options
14.8.2.1. Aspect Ratio
14.8.2.2. Maintaining A/V sync
14.8.2.3. Sample Rate Conversion
14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding
14.8.3.1. Introduction
14.8.3.2. lavcopts
14.8.3.3. Examples
14.8.3.4. Advanced Options
14.8.4. Encoding Audio
14.8.4.1. toolame
14.8.4.2. twolame
14.8.4.3. libavcodec
14.8.5. Putting it all Together
14.8.5.1. PAL DVD
14.8.5.2. NTSC DVD
14.8.5.3. PAL AVI Containing AC-3 Audio to DVD
14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD
14.8.5.5. PAL SVCD
14.8.5.6. NTSC SVCD
14.8.5.7. PAL VCD
14.8.5.8. NTSC VCD
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/exotic_platforms.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/exotic_platforms.html new file mode 100644 index 0000000..613f275 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/exotic_platforms.html @@ -0,0 +1,33 @@ +12.6. Exotic Platforms

12.6. Exotic Platforms

+MPlayer runs on a number of exotic platforms, +but most of the platform-specific changes from those systems have not been +merged back into the main source tree. +For build instructions you should refer to the system-specific documentation. +

12.6.1. QNX

+You'll need to download and install SDL for QNX. Then run +MPlayer with -vo sdl:driver=photon +and -ao sdl:nto options, it should be fast. +

+The -vo x11 output will be even slower than on Linux, +since QNX has only X emulation which is very slow. +

12.6.2. Amiga/MorphOS (GeekGadgets)

+The people over at +www.amigasoft.net +make current MPlayer and +MEncoder packages. +

+Nicholas Det at Genesi has done a big and powerful port of MPlayer + for MorphOS. Sadly it's based on the 0.90 series. +

+Get if from MorphZone: +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/faq.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/faq.html new file mode 100644 index 0000000..d011921 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/faq.html @@ -0,0 +1,1149 @@ +Chapter 5. Frequently Asked Questions

Chapter 5. Frequently Asked Questions

5.1. Development
Q: +How do I create a proper patch for MPlayer? +
Q: +How do I translate MPlayer to a new language? +
Q: +How can I support MPlayer development? +
Q: +How can I become an MPlayer developer? +
Q: +Why don't you use autoconf/automake? +
5.2. Compilation and installation
Q: +Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +
Q: +Are there binary (RPM/Debian) packages of MPlayer? +
Q: +How can I build a 32 bit MPlayer on a 64 bit Athlon? +
Q: +Configure ends with this text, and MPlayer won't compile! +Your gcc does not support even i386 for '-march' and '-mcpu' +
Q: +I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +
Q: +During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +
Q: +Building on Mac OS 10.3 leads to several link errors. +
5.3. General questions
Q: +Are there any mailing lists on MPlayer? +
Q: +I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +
Q: +I have problems playing files with the ... codec. Can I use them? +
Q: +When I start playing, I get this message but everything seems fine: +Linux RTC init: ioctl (rtc_pie_on): Permission denied +
Q: +How can I make a screenshot? +
Q: +What is the meaning of the numbers on the status line? +
Q: +There are error messages about file not found +/usr/local/lib/codecs/ ... +
Q: +How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +
Q: +Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +
Q: +I can't access the GUI menu. I press right click, but I can't +access any menu items! +
Q: +How can I run MPlayer in the background? +
5.4. Playback problems
Q: +I cannot pinpoint the cause of some strange playback problem. +
Q: +How can I get subtitles to appear on the black margins around a movie? +
Q: +How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +
Q: +I'm trying to play a random stream off the internet but it fails. +
Q: +I downloaded a movie off a P2P network and it doesn't work! +
Q: +I'm having trouble getting my subtitles to display, help!! +
Q: +Why doesn't MPlayer work on Fedora Core? +
Q: +MPlayer dies with +MPlayer interrupted by signal 4 in module: decode_video +
Q: +When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +
Q: +I get very strange percentage values (way too big) +while playing files on my notebook. +
Q: +The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +
Q: +While playing a movie it suddenly gets jerky and I get the following message: +Badly interleaved AVI file detected - switching to -ni mode... +
5.5. Video/audio driver problems (vo/ao)
Q: +When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +
Q: +I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +Error opening/initializing the selected video_out (-vo) device. +How can I solve my problem? +
Q: +I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +
Q: +Audio goes out of sync playing an AVI file. +
Q: +My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +
Q: +How can I use dmix with +MPlayer? +
Q: +I have no sound when playing a video and get error messages similar to this one: + +AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) +audio_setup: Can't open audio device /dev/dsp: Device or resource busy +couldn't open/init audio device -> NOSOUND +Audio: no sound!!! +Start playing... + +
Q: +When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +
Q: +I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +
Q: +When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: + +DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer! + +
Q: +How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +
5.6. DVD playback
Q: +What about DVD navigation/menus? +
Q: +I can't watch any recent DVDs from Sony Pictures/BMG. +
Q: +What about subtitles? Can MPlayer display them? +
Q: +How can I set the region code of my DVD-drive? I don't have Windows! +
Q: +I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +
Q: +Do I need to be (setuid) root to be able to play a DVD? +
Q: +Is it possible to play/encode only selected chapters? +
Q: +My DVD playback is sluggish! +
Q: +I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +
5.7. Feature requests
Q: +If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +
Q: +I'd like to seek +/- 1 frame instead of 10 seconds. +
5.8. Encoding
Q: +How can I encode? +
Q: +How can I dump a full DVD title into a file? +
Q: +How can I create (S)VCDs automatically? +
Q: +How can I create (S)VCDs? +
Q: +How can I join two video files? +
Q: +How can I fix AVI files with a broken index or bad interleaving? +
Q: +How can I fix the aspect ratio of an AVI file? +
Q: +How can I backup and encode a VOB file with a broken beginning? +
Q: +I can't encode DVD subtitles into the AVI! +
Q: +How can I encode only selected chapters from a DVD? +
Q: +I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +
Q: +What is the meaning of the numbers on the status line +during the encoding process? +
Q: +Why is the recommended bitrate printed by MEncoder +negative? +
Q: +I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +
Q: +How can I put subtitles in the output file? +
Q: +How do I encode only sound from a music video? +
Q: +Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +
Q: +How can I encode an audio only file? +
Q: +How can I play subtitles embedded in AVI? +
Q: +MPlayer won't... +

5.1. Development

Q: +How do I create a proper patch for MPlayer? +
Q: +How do I translate MPlayer to a new language? +
Q: +How can I support MPlayer development? +
Q: +How can I become an MPlayer developer? +
Q: +Why don't you use autoconf/automake? +

Q:

+How do I create a proper patch for MPlayer? +

A:

+We made a short document +describing all the necessary details. Please follow the instructions. +

Q:

+How do I translate MPlayer to a new language? +

A:

+Read the translation HOWTO, +it should explain everything. You can get further help on the +MPlayer-translations +mailing list. +

Q:

+How can I support MPlayer development? +

A:

+We are more than happy to accept your hardware and software +donations. +They help us in continuously improving MPlayer. +

Q:

+How can I become an MPlayer developer? +

A:

+We always welcome coders and documenters. Read the +technical documentation +to get a first grasp. Then you should subscribe to the +MPlayer-dev-eng +mailing list and start coding. If you want to help out with the documentation, +join the +MPlayer-docs +mailing list. +

Q:

+Why don't you use autoconf/automake? +

A:

+We have a modular, handwritten build system. It does a reasonably good +job, so why change? Besides, we dislike the auto* tools, just like +other people. +

5.2. Compilation and installation

Q: +Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +
Q: +Are there binary (RPM/Debian) packages of MPlayer? +
Q: +How can I build a 32 bit MPlayer on a 64 bit Athlon? +
Q: +Configure ends with this text, and MPlayer won't compile! +Your gcc does not support even i386 for '-march' and '-mcpu' +
Q: +I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +
Q: +During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +
Q: +Building on Mac OS 10.3 leads to several link errors. +

Q:

+Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +

A:

+You have stumbled over a bug in gcc. Please +report it to the gcc team +but not to us. For some reason MPlayer seems to +trigger compiler bugs frequently. Nevertheless we cannot fix them and do not +add workarounds for compiler bugs to our sources. To avoid this problem, +either stick with a compiler version that is known to be reliable and +stable, or upgrade frequently. +

Q:

+Are there binary (RPM/Debian) packages of MPlayer? +

A:

+See the Debian and RPM +section for details. +

Q:

+How can I build a 32 bit MPlayer on a 64 bit Athlon? +

A:

+Try the following configure options: +

+./configure --target=athlon_xp --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib
+

+

Q:

+Configure ends with this text, and MPlayer won't compile! +

Your gcc does not support even i386 for '-march' and '-mcpu'

+

A:

+Your gcc isn't installed correctly, check the configure.log +file for details. +

Q:

+I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +

A:

+Read the mga_vid section. +

Q:

+During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +

A:

+... but you don't have the X11 development package installed. Or not correctly. +It's called XFree86-devel* under Red Hat, +xlibs-dev under Debian Woody and +libx11-dev under Debian Sarge. Also check if the +/usr/X11 and +/usr/include/X11 symlinks exist. +

Q:

+Building on Mac OS 10.3 leads to several link errors. +

A:

+The link error you're experiencing most likely looks like this: +

+ld: Undefined symbols:
+_LLCStyleInfoCheckForOpenTypeTables referenced from QuartzCore expected to be defined in ApplicationServices
+_LLCStyleInfoGetUserRunFeatures referenced from QuartzCore expected to be defined in ApplicationServices
+

+This problem is the result of Apple developers using 10.4 to compile +their software and distributing the binaries to 10.3 users via +Software Update. +The undefined symbols are present in Mac OS 10.4, +but not 10.3. +One solution can be to downgrade to QuickTime 7.0.1. +Here is a better solution. +

+Get an +older copy of the frameworks. +This will give you a compressed file that contains the QuickTime +7.0.1 Framework and a 10.3.9 QuartzCore Framework. +

+Uncompress the files somewhere that is not in your System folder. +(i.e. do not install these frameworks into your +/System/Library/Frameworks! +Using this older copy is only meant to get around link errors!) +

gunzip < CompatFrameworks.tgz | tar xvf -

+In config.mak, you should append +-F/path/to/where/you/extracted +to the OPTFLAGS variable. +If you use X-Code, you can just select these +frameworks instead of the system ones. +

+The resulting MPlayer binary will actually +use the framework that is installed on your system via dynamic links that +are resolved at run-time. +(You can verify this using otool -l). +

5.3. General questions

Q: +Are there any mailing lists on MPlayer? +
Q: +I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +
Q: +I have problems playing files with the ... codec. Can I use them? +
Q: +When I start playing, I get this message but everything seems fine: +Linux RTC init: ioctl (rtc_pie_on): Permission denied +
Q: +How can I make a screenshot? +
Q: +What is the meaning of the numbers on the status line? +
Q: +There are error messages about file not found +/usr/local/lib/codecs/ ... +
Q: +How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +
Q: +Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +
Q: +I can't access the GUI menu. I press right click, but I can't +access any menu items! +
Q: +How can I run MPlayer in the background? +

Q:

+Are there any mailing lists on MPlayer? +

A:

+Yes. Look at the +mailing lists section +of our homepage. +

Q:

+I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +

A:

+Please read the bug reporting guidelines +and follow the instructions. +

Q:

+I have problems playing files with the ... codec. Can I use them? +

A:

+Check the codec status, +if it doesn't contain your codec, read the +codec documentation, especially the +codec importing HOWTO and contact us. +

Q:

+When I start playing, I get this message but everything seems fine: +

Linux RTC init: ioctl (rtc_pie_on): Permission denied

+

A:

+You need a specially set up kernel to use the RTC timing code. +For details see the RTC section of the documentation. +

Q:

+How can I make a screenshot? +

A:

+You have to use a video output driver that does not employ an overlay to be +able to take a screenshot. Under X11, -vo x11 will do, under +Windows -vo directx:noaccel works. +

+Alternatively you can run MPlayer with the +screenshot video filter +(-vf screenshot), and press the s +key to grab a screenshot. +

Q:

+What is the meaning of the numbers on the status line? +

A:

+Example: +

+A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x
+

+

A: 2.1

audio position in seconds

V: 2.2

video position in seconds

A-V: -0.167

audio-video difference in seconds (delay)

ct: 0.042

total A-V sync correction done

57/57

+ frames played/decoded (counting from last seek) +

41%

+ video codec CPU usage in percent + (for slice rendering and direct rendering this includes video_out) +

0%

video_out CPU usage

2.6%

audio codec CPU usage in percent

0

frames dropped to maintain A-V sync

4

+ current level of image postprocessing (when using -autoq) +

49%

+ current cache size used (around 50% is normal) +

1.00x

playback speed as a factor of original speed

+Most of them are for debug purposes, use the -quiet +option to make them disappear. +You might notice that video_out CPU usage is zero (0%) for some files. +This is because it is called directly from the codec and thus cannot +be measured separately. If you wish to know the video_out speed, compare +the difference when playing the file with -vo null and +your usual video output driver. +

Q:

+There are error messages about file not found +/usr/local/lib/codecs/ ... +

A:

+Download and install the binary codecs from our +download page. +

Q:

+How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +

A:

+Create a file named movie.avi.conf with the file-specific +options in it and put it in ~/.mplayer +or in the same directory as the file. +

Q:

+Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +

A:

+After running ./configure, +edit config.h and replace +#undef FAST_OSD with +#define FAST_OSD. Then recompile. +

Q:

+I can't access the GUI menu. I press right click, but I can't +access any menu items! +

A:

+Are you using FVWM? Try the following: +

  1. + Start → Settings → Configuration → Base Configuration +

  2. + Set Use Applications position hints + to Yes +

+

Q:

+How can I run MPlayer in the background? +

A:

+Use: +

+mplayer options filename < /dev/null &
+

+

5.4. Playback problems

Q: +I cannot pinpoint the cause of some strange playback problem. +
Q: +How can I get subtitles to appear on the black margins around a movie? +
Q: +How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +
Q: +I'm trying to play a random stream off the internet but it fails. +
Q: +I downloaded a movie off a P2P network and it doesn't work! +
Q: +I'm having trouble getting my subtitles to display, help!! +
Q: +Why doesn't MPlayer work on Fedora Core? +
Q: +MPlayer dies with +MPlayer interrupted by signal 4 in module: decode_video +
Q: +When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +
Q: +I get very strange percentage values (way too big) +while playing files on my notebook. +
Q: +The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +
Q: +While playing a movie it suddenly gets jerky and I get the following message: +Badly interleaved AVI file detected - switching to -ni mode... +

Q:

+I cannot pinpoint the cause of some strange playback problem. +

A:

+Do you have a stray codecs.conf file in +~/.mplayer/, /etc/, +/usr/local/etc/ or a similar location? Remove it, +an outdated codecs.conf file can cause obscure +problems and is intended for use only by developers working on codec +support. It overrides MPlayer's internal +codec settings, which will wreak havoc if incompatible changes are +made in newer program versions. Unless used by experts it is a recipe +for disaster in the form of seemingly random and very hard to localize +crashes and playback problems. If you still have it somewhere on your +system, you should remove it now. +

Q:

+How can I get subtitles to appear on the black margins around a movie? +

A:

+Use the expand video filter to increase the +area onto which the movie is rendered vertically and place the movie +at the top border, for example: +

mplayer -vf expand=0:-100:0:0 -slang de dvd://1

+

Q:

+How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +

A:

+You have to use -aid (audio ID) or -alang +(audio language), -sid(subtitle ID) or -slang +(subtitle language), for example: +

+mplayer -alang eng -slang eng example.mkv
+mplayer -aid 1 -sid 1 example.mkv
+

+To see which ones are available: +

+mplayer -vo null -ao null -frames 0 -v filename | grep sid
+mplayer -vo null -ao null -frames 0 -v filename | grep aid
+

+

Q:

+I'm trying to play a random stream off the internet but it fails. +

A:

+Try playing the stream with the -playlist option. +

Q:

+I downloaded a movie off a P2P network and it doesn't work! +

A:

+Your file is most probably broken or a fake file. If you got it from +a friend, and he says it works, try comparing +md5sum hashes. +

Q:

+I'm having trouble getting my subtitles to display, help!! +

A:

+Make sure you have installed fonts properly. Run through the steps in the +Fonts and OSD part of the installation +section again. If you are using TrueType fonts, verify that you have the +FreeType library installed. +Other things include checking your subtitles in a text editor or with other +players. Also try converting them to another format. +

Q:

+Why doesn't MPlayer work on Fedora Core? +

A:

+There is a bad interaction on Fedora between exec-shield, +prelink, and any applications which use Windows DLLs +(such as MPlayer). +

+The problem is that exec-shield randomizes the load addresses of all the +system libraries. This randomization happens at prelink time (once every +two weeks). +

+When MPlayer tries to load a Windows DLL it +wants to put it at a specific address (0x400000). If an important system +library happens to be there already, MPlayer +will crash. +(A typical symptom would be a segmentation fault when trying +to play Windows Media 9 files.) +

+If you run into this problem you have two options: +

  • + Wait two weeks. It might start working again. +

  • + Relink all the binaries on the system with different + prelink options. Here are step by step instructions: +

    1. + Edit /etc/syconfig/prelink and change +

      PRELINK_OPTS=-mR

      to +

      PRELINK_OPTS="-mR --no-exec-shield"

      +

    2. + touch /var/lib/misc/prelink.force +

    3. + /etc/cron.daily/prelink + (This relinks all the applications, and it takes quite a while.) +

    4. + execstack -s /path/to/mplayer + (This turns off exec-shield for the + MPlayer binary.) +

+

Q:

+MPlayer dies with +

MPlayer interrupted by signal 4 in module: decode_video

+

A:

+Don't use MPlayer on a CPU different from the one +it was compiled on or recompile with runtime CPU detection +(./configure --enable-runtime-cpudetection). +

Q:

+When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +

A:

+Your card probably reports some colorspaces as supported when in fact +it does not support them. Try with YUY2 instead of the +default YV12 (see the TV section). +

Q:

+I get very strange percentage values (way too big) +while playing files on my notebook. +

A:

+It's an effect of the power management / power saving system of your notebook +(BIOS, not kernel). Plug the external power connector in +before you power on your notebook. You can +also try whether +cpufreq +(a SpeedStep interface for Linux) helps you. +

Q:

+The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +

A:

+This is again a power management effect (see above). Plug the external power +connector in before you power on your notebook +or use the -nortc option. +

Q:

+While playing a movie it suddenly gets jerky and I get the following message: +

Badly interleaved AVI file detected - switching to -ni mode...

+

A:

+Badly interleaved files and -cache don't work well together. +Try -nocache. +

5.5. Video/audio driver problems (vo/ao)

Q: +When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +
Q: +I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +Error opening/initializing the selected video_out (-vo) device. +How can I solve my problem? +
Q: +I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +
Q: +Audio goes out of sync playing an AVI file. +
Q: +My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +
Q: +How can I use dmix with +MPlayer? +
Q: +I have no sound when playing a video and get error messages similar to this one: + +AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) +audio_setup: Can't open audio device /dev/dsp: Device or resource busy +couldn't open/init audio device -> NOSOUND +Audio: no sound!!! +Start playing... + +
Q: +When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +
Q: +I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +
Q: +When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: + +DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer! + +
Q: +How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +

Q:

+When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +

A:

+Your video output driver does not support scaling in hardware and since +scaling in software can be incredibly slow MPlayer +does not automatically enable it. Most likely you are using the +x11 instead of the xv +video output driver. Try adding -vo xv to the command +line or read the video section to find out +about alternative video output drivers. The -zoom +option explicitly enables software scaling. +

Q:

+I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +

Error opening/initializing the selected video_out (-vo) device.

+How can I solve my problem? +

A:

+Just change your video output device. Issue the following command to get +a list of available video output drivers: +

mplayer -vo help

+After you've chosen the correct video output driver, add it to +your configuration file. Add +

+vo = selected_vo
+

+to ~/.mplayer/config and/or +

+vo_driver = selected_vo
+

+to ~/.mplayer/gui.conf. +

Q:

+I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +

A:

+Read the bug reporting guidelines and send us +a proper bug report. +Also try experimenting with the -fstype option. +

Q:

+Audio goes out of sync playing an AVI file. +

A:

+Try the -bps or -nobps option. If it does not +improve, read the +bug reporting guidelines +and upload the file to FTP. +

Q:

+My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +

A:

+Your machine is too slow or your sound card driver is broken. Consult the +documentation to see if you can improve performance. +

Q:

+How can I use dmix with +MPlayer? +

A:

+After setting up your +asoundrc +you have to use -ao alsa:device=dmix. +

Q:

+I have no sound when playing a video and get error messages similar to this one: +

+AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian)
+audio_setup: Can't open audio device /dev/dsp: Device or resource busy
+couldn't open/init audio device -> NOSOUND
+Audio: no sound!!!
+Start playing...
+

+

A:

+Are you running KDE or GNOME with the aRts or ESD sound daemon? Try disabling +the sound daemon or use the -ao arts or +-ao esd option to make MPlayer use +aRts or ESD. +You might also be running ALSA without OSS emulation, try loading the ALSA OSS +kernel modules or add -ao alsa to your command line to +directly use the ALSA audio output driver. +

Q:

+When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +

A:

+The KDE aRts sound daemon is blocking the sound device. Either wait until the +video starts or disable the aRts daemon in control center. If you want to use +aRts sound, specify audio output via our native aRts audio driver +(-ao arts). If it fails or isn't compiled in, try SDL +(-ao sdl) and make sure your SDL can handle aRts sound. Yet +another option is to start MPlayer with artsdsp. +

Q:

+I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +

A:

+You have a buggy sound card/driver. Most likely it's fixed at 44100Hz, and you +try to play a file which has 22050Hz audio. Try the +resample audio filter. +

Q:

+When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: +

+DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
+

+

A:

+This can have multiple reasons. +

  • + Your CPU and/or video card and/or + bus is too slow. MPlayer displays a message if + this is the case (and the dropped frames counter goes up fast). +

  • + If it is an AVI, maybe it has bad interleaving, try the + -ni option to work around this. + Or it may have a bad header, in this case -nobps + and/or -mc 0 can help. +

  • + Many FLV files will only play correctly with -correct-pts. + Unfortunately MEncoder does not have this option, + but you can try setting -fps to the correct value manually + if you know it. +

  • + Your sound driver is buggy. + See the audio section. +

+

Q:

+How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +

A:

+-mc 0.1 can help. +

5.6. DVD playback

Q: +What about DVD navigation/menus? +
Q: +I can't watch any recent DVDs from Sony Pictures/BMG. +
Q: +What about subtitles? Can MPlayer display them? +
Q: +How can I set the region code of my DVD-drive? I don't have Windows! +
Q: +I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +
Q: +Do I need to be (setuid) root to be able to play a DVD? +
Q: +Is it possible to play/encode only selected chapters? +
Q: +My DVD playback is sluggish! +
Q: +I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +

Q:

+What about DVD navigation/menus? +

A:

+MPlayer does not support DVD menus due to serious +architectural limitations that prevent proper handling of still images and +interactive content. If you want to have fancy menus, you will have to use +another player like xine, +vlc or Ogle. +If you want to see DVD navigation in MPlayer you +will have to implement it yourself, but be aware that it is a major +undertaking. +

Q:

+I can't watch any recent DVDs from Sony Pictures/BMG. +

A:

+This is normal; you've been ripped off and sold an intentionally defective disk. +The only way to play these DVDs is to circumvent the bad blocks of the disk +by using DVDnav instead of mpdvdkit2. +You can do so by compiling MPlayer with DVDnav +support and then replacing dvd:// by dvdnav:// on the command line. +DVDnav is so far mutually exclusive with mpdvdkit2, so make sure you pass +--disable-mpdvdkit to the configure script. +

Q:

+What about subtitles? Can MPlayer display them? +

A:

+Yes. See the DVD chapter. +

Q:

+How can I set the region code of my DVD-drive? I don't have Windows! +

A:

+Use the +regionset tool. +

Q:

+I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +

A:

+CSS decryption code does not work with some DVD drives unless you set +the region code appropriately. See the answer to the previous question. +

Q:

+Do I need to be (setuid) root to be able to play a DVD? +

A:

+No. However you must have the proper rights +on the DVD device entry (in /dev/). +

Q:

+Is it possible to play/encode only selected chapters? +

A:

+Yes, try the -chapter option. +

Q:

+My DVD playback is sluggish! +

A:

+Use the -cache option (described in the man page) and try +enabling DMA for the DVD drive with the hdparm tool +(described in the CD chapter). +

Q:

+I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +

A:

+Use the -dvd-device option to refer to the directory +that contains the files: +

+mplayer dvd://1 -dvd-device /path/to/directory
+

+

5.7. Feature requests

Q: +If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +
Q: +I'd like to seek +/- 1 frame instead of 10 seconds. +

Q:

+If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +

A:

+This is very tricky to implement without losing A/V synchronization. +All attempts have failed so far, but patches are welcome. +

Q:

+I'd like to seek +/- 1 frame instead of 10 seconds. +

A:

+You can step forward one frame by pressing .. +If the movie was not paused it will be paused afterwards +(see the man page for details). +Stepping backwards is unlikely to be implemented anytime soon. +

5.8. Encoding

Q: +How can I encode? +
Q: +How can I dump a full DVD title into a file? +
Q: +How can I create (S)VCDs automatically? +
Q: +How can I create (S)VCDs? +
Q: +How can I join two video files? +
Q: +How can I fix AVI files with a broken index or bad interleaving? +
Q: +How can I fix the aspect ratio of an AVI file? +
Q: +How can I backup and encode a VOB file with a broken beginning? +
Q: +I can't encode DVD subtitles into the AVI! +
Q: +How can I encode only selected chapters from a DVD? +
Q: +I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +
Q: +What is the meaning of the numbers on the status line +during the encoding process? +
Q: +Why is the recommended bitrate printed by MEncoder +negative? +
Q: +I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +
Q: +How can I put subtitles in the output file? +
Q: +How do I encode only sound from a music video? +
Q: +Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +
Q: +How can I encode an audio only file? +
Q: +How can I play subtitles embedded in AVI? +
Q: +MPlayer won't... +

Q:

+How can I encode? +

A:

+Read the MEncoder +section. +

Q:

+How can I dump a full DVD title into a file? +

A:

+Once you have selected your title, and made sure it plays fine with +MPlayer, use the option -dumpstream. +For example: +

+mplayer dvd://5 -dumpstream -dumpfile dvd_dump.vob
+

+will dump the 5th title of the DVD into the file +dvd_dump.vob +

Q:

+How can I create (S)VCDs automatically? +

A:

+Try the mencvcd script from the +TOOLS subdirectory. +With it you can encode DVDs or other movies to VCD or SVCD format +and even burn them directly to CD. +

Q:

+How can I create (S)VCDs? +

A:

+Newer versions of MEncoder can directly +generate MPEG-2 files that can be used as a base to create a VCD or SVCD and +are likely to be playable out of the box on all platforms (for example, +to share a video from a digital camcorder with your computer-illiterate +friends). +Please read +Using MEncoder to create VCD/SVCD/DVD-compliant files +for more details. +

Q:

+How can I join two video files? +

A:

+MPEG files can be concatenated into a single file with luck. +For AVI files, you can use MEncoder's +multiple file support like this: +

+mencoder -ovc copy -oac copy -o out.avi file1.avi file2.avi
+

+This will only work if the files are of the same resolution +and use the same codec. +You can also try +avidemux and +avimerge (part of the +transcode +tool set). +

Q:

+How can I fix AVI files with a broken index or bad interleaving? +

A:

+To avoid having to use -idx to be able to seek in +AVI files with a broken index or -ni to play AVI +files with bad interleaving, use the command +

+mencoder input.avi -idx -ovc copy -oac copy -o output.avi
+

+to copy the video and audio streams into a new AVI file while +regenerating the index and correctly interleaving the data. +Of course this cannot fix possible bugs in the video and/or audio streams. +

Q:

+How can I fix the aspect ratio of an AVI file? +

A:

+You can do such a thing thanks to MEncoder's +-force-avi-aspect option, which overrides the aspect +stored in the AVI OpenDML vprp header option. For example: +

+mencoder input.avi -ovc copy -oac copy -o output.avi -force-avi-aspect 4/3
+

+

Q:

+How can I backup and encode a VOB file with a broken beginning? +

A:

+The main problem when you want to encode a VOB file which is corrupted +[1] +is that it will be hard to get an encode with perfect A/V sync. +One workaround is to just shave off the corrupted part and encode just the +clean part. +First you need to find where the clean part starts: +

+mplayer input.vob -sb nb_of_bytes_to_skip
+

+Then you can create a new file which contains just the clean part: +

+dd if=input.vob of=output_cut.vob skip=1 ibs=nb_of_bytes_to_skip
+

+

Q:

+I can't encode DVD subtitles into the AVI! +

A:

+You have to properly specify the -sid option. +

Q:

+How can I encode only selected chapters from a DVD? +

A:

+Use the -chapter option correctly, +like: -chapter 5-7. +

Q:

+I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +

A:

+No, VFAT doesn't support 2GB+ files. +

Q:

+What is the meaning of the numbers on the status line +during the encoding process? +

A:

+Example: +

+Pos: 264.5s   6612f ( 2%)  7.12fps Trem: 576min 2856mb  A-V:0.065 [2126:192]
+

+

Pos: 264.5s

time position in the encoded stream

6612f

number of video frames encoded

( 2%)

portion of the input stream encoded

7.12fps

encoding speed

Trem: 576min

estimated remaining encoding time

2856mb

estimated size of the final encode

A-V:0.065

current delay between audio and video streams

[2126:192]

+ average video bitrate (in kb/s) and average audio bitrate (in kb/s) +

+

Q:

+Why is the recommended bitrate printed by MEncoder +negative? +

A:

+Because the bitrate you encoded the audio with is too large to fit the +movie on any CD. Check if you have libmp3lame installed properly. +

Q:

+I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +

A:

+Since ASF uses variable framerate but AVI uses a fixed one, you +have to set it by hand with the -ofps option. +

Q:

+How can I put subtitles in the output file? +

A:

+Just pass the -sub <filename> (or -sid, +respectively) option to MEncoder. +

Q:

+How do I encode only sound from a music video? +

A:

+It's not possible directly, but you can try this (note the +& at the end of +mplayer command): +

+mkfifo encode
+mplayer -ao pcm -aofile encode dvd://1 &
+lame your_opts encode music.mp3
+rm encode
+

+This allows you to use any encoder, not only LAME, +just replace lame with your favorite audio encoder in the +above command. +

Q:

+Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +

A:

+libavcodec, the native MPEG-4 +encoding library usually shipped with MEncoder, +used to set the FourCC to 'DIVX' when encoding MPEG-4 videos +(the FourCC is an AVI tag to identify the software used to encode and +the intended software to use for decoding the video). +This led many people to think that +libavcodec +was a DivX encoding library, when in fact it is a completely different +MPEG-4 encoding library which implements the MPEG-4 standard much +better than DivX does. +Therefore, the new default FourCC used by +libavcodec is 'FMP4', but you +may override this behavior using MEncoder's +-ffourcc option. +You may also change the FourCC of existing files in the same way: +

+mencoder input.avi -o output.avi -ffourcc XVID
+

+Note that this will set the FourCC to XVID rather than DIVX. +This is recommended as DIVX FourCC means DivX4, which is a very basic +MPEG-4 codec, whereas DX50 and XVID both mean full MPEG-4 (ASP). +Therefore, if you change the FourCC to DIVX, some bad software or +hardware players may choke on some advanced features that +libavcodec supports, but DivX +doesn't; on the other hand Xvid +is closer to libavcodec in +terms of functionality, and is supported by all decent players. +

Q:

+How can I encode an audio only file? +

A:

+Use aconvert from the +TOOLS +subdirectory in the MPlayer source tree. +

Q:

+How can I play subtitles embedded in AVI? +

A:

+Use avisubdump.c from the +TOOLS subdirectory or read +this document about extracting/demultiplexing subtitles embedded in OpenDML AVI files. +

Q:

+MPlayer won't... +

A:

+Have a look at the TOOLS +subdirectory for a collection of random scripts and hacks. +TOOLS/README contains documentation. +



[1] +To some extent, some forms of copy protection used in DVDs can be +assumed to be content corruption. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fbdev.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fbdev.html new file mode 100644 index 0000000..a8ca45e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fbdev.html @@ -0,0 +1,54 @@ +8.6. Framebuffer output (FBdev)

8.6. Framebuffer output (FBdev)

+Whether to build the FBdev target is autodetected during +./configure. Read the framebuffer documentation in +the kernel sources (Documentation/fb/*) for more +information. +

+If your card doesn't support VBE 2.0 standard (older ISA/PCI cards, such as +S3 Trio64), only VBE 1.2 (or older?): Well, VESAfb is still available, but +you'll have to load SciTech Display Doctor (formerly UniVBE) before booting +Linux. Use a DOS boot disk or whatever. And don't forget to register your +UniVBE ;)) +

+The FBdev output takes some additional parameters above the others: +

-fb

+ specify the framebuffer device to use (default: /dev/fb0) +

-fbmode

+ mode name to use (according to /etc/fb.modes) +

-fbmodeconfig

+ config file of modes (default: /etc/fb.modes) +

-monitor-hfreq, -monitor-vfreq, -monitor-dotclock

+ important values, see + example.conf +

+If you want to change to a specific mode, then use +

+mplayer -vm -fbmode name_of_mode filename
+

+

  • + -vm alone will choose the most suitable mode from + /etc/fb.modes. Can be used together with + -x and -y options too. The + -flip option is supported only if the movie's pixel + format matches the video mode's pixel format. Pay attention to the bpp + value, fbdev driver tries to use the current, or if you specify the + -bpp option, then that. +

  • + -zoom option isn't supported + (use -vf scale). You can't use 8bpp (or less) modes. +

  • + You possibly want to turn the cursor off: +

    echo -e '\033[?25l'

    + or +

    setterm -cursor off

    + and the screen saver: +

    setterm -blank 0

    + To turn the cursor back on: +

    echo -e '\033[?25h'

    + or +

    setterm -cursor on

    +

Note

+FBdev video mode changing does not work with the VESA +framebuffer, and don't ask for it, since it's not an +MPlayer limitation. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/features.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/features.html new file mode 100644 index 0000000..ac38920 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/features.html @@ -0,0 +1,54 @@ +2.2. Features

2.2. Features

  • + Decide if you need GUI. If you do, see the GUI + section before compiling. +

  • + If you want to install MEncoder (our great + all-purpose encoder), see the + MEncoder section. +

  • + If you have a V4L compatible TV tuner card, + and wish to watch/grab and encode movies with + MPlayer, + read the TV input section. +

  • + If you have a V4L compatible radio tuner + card, and wish to listen and capture sound with + MPlayer, + read the radio section. +

  • + There is a neat OSD Menu support ready to be + used. Check the OSD menu section. +

+Then build MPlayer: +

+./configure
+make
+make install
+

+

+At this point, MPlayer is ready to use. +Check if you have a codecs.conf file in your home +directory at (~/.mplayer/codecs.conf) left from old +MPlayer versions. If you find one, remove it. +

+Debian users can build a .deb package for themselves, it's very simple. +Just exec +

fakeroot debian/rules binary

+in MPlayer's root directory. See +Debian packaging for detailed instructions. +

+Always browse the output of +./configure, and the +configure.log file, they contain information about +what will be built, and what will not. You may also want to view +config.h and config.mak files. +If you have some libraries installed, but not detected by +./configure, then check if you also have the proper +header files (usually the -dev packages) and their version matches. The +configure.log file usually tells you what is missing. +

+Though not mandatory, the fonts should be installed in order to gain OSD, +and subtitle functionality. The recommended method is installing a TTF +font file and telling MPlayer to use it. +See the Subtitles and OSD section for details. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fonts-osd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fonts-osd.html new file mode 100644 index 0000000..9d3ea25 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/fonts-osd.html @@ -0,0 +1,86 @@ +2.4. Fonts and OSD

2.4. Fonts and OSD

+You need to tell MPlayer which font to use to +enjoy OSD and subtitles. Any TrueType font or special bitmap fonts will +work. However, TrueType fonts are recommended as they look far better, +can be properly scaled to the movie size and cope better with different +encodings. +

2.4.1. TrueType fonts

+There are two ways to get TrueType fonts to work. The first is to pass +the -font option to specify a TrueType font file on +the command line. This option will be a good candidate to put in your +configuration file (see the manual page for details). +The second is to create a symlink called subfont.ttf +to the font file of your choice. Either +

+ln -s /path/to/sample_font.ttf ~/.mplayer/subfont.ttf
+

+for each user individually or a system-wide one: +

+ln -s /path/to/sample_font.ttf $PREFIX/share/mplayer/subfont.ttf
+

+

+If MPlayer was compiled with +fontconfig support, the above methods +won't work, instead -font expects a +fontconfig font name +and defaults to the sans-serif font. Example: +

+mplayer -font 'Bitstream Vera Sans' anime.mkv
+

+

+To get a list of fonts known to +fontconfig, +use fc-list. +

2.4.2. bitmap fonts

+If for some reason you wish or need to employ bitmap fonts, download a set +from our homepage. You can choose between various +ISO fonts +and some sets of fonts +contributed by users +in various encodings. +

+Uncompress the file you downloaded to +~/.mplayer or +$PREFIX/share/mplayer. +Then rename or symlink one of the extracted directories to +font, for example: +

+ln -s ~/.mplayer/arial-24 ~/.mplayer/font
+

+

+ln -s $PREFIX/share/mplayer/arial-24 $PREFIX/share/mplayer/font
+

+

+Fonts should have an appropriate font.desc file +which maps unicode font positions to the actual code page of the +subtitle text. Another solution is to have UTF-8-encoded subtitles +and use the -utf8 option or give the subtitles +file the same name as your video file with a .utf +extension and have it in the same directory as the video file. +

2.4.3. OSD menu

+MPlayer has a completely user definiable +OSD Menu interface. +

Note

+the Preferences menu is currently UNIMPLEMENTED! +

Installation

  1. + compile MPlayer by passing the + --enable-menu to ./configure +

  2. + make sure you have an OSD font installed +

  3. + copy etc/menu.conf to your + .mplayer directory +

  4. + copy etc/input.conf to your + .mplayer directory, or to the + system-wide MPlayer config dir (default: + /usr/local/etc/mplayer) +

  5. + check and edit input.conf to enable menu movement keys + (it is described there). +

  6. + start MPlayer by the following example: +

    mplayer -menu file.avi

    +

  7. + push any menu key you defined +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/gui.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/gui.html new file mode 100644 index 0000000..07558c9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/gui.html @@ -0,0 +1,20 @@ +2.3. What about the GUI?

2.3. What about the GUI?

+The GUI needs GTK 1.2.x or GTK 2.0 (it isn't fully GTK, but the panels are). +The skins are stored in PNG format, so GTK, +libpng (and their devel stuff, usually +called gtk-dev +and libpng-dev) has to be installed. +You can build it by specifying --enable-gui during +./configure. Then, to turn on GUI mode, you have to +execute the gmplayer binary. +

+As MPlayer doesn't have a skin included, you +have to download them if you want to use the GUI. See the download page. +They should be extracted to the usual system-wide directory ($PREFIX/share/mplayer/skins), or to $HOME/.mplayer/skins. +MPlayer by default looks in these directories +for a directory named default, but +you can use the -skin newskin +option, or the skin=newskin config file directive to use +the skin in */skins/newskin +directory. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/history.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/history.html new file mode 100644 index 0000000..83ff207 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/history.html @@ -0,0 +1,100 @@ +Appendix D. History

Appendix D. History

+This began a year ago... I have tried lots of players under Linux +(mtv, xmps, +dvdview, livid/oms, +videolan, xine, +xanim, avifile, +xmmp) but they all have some problem. Mostly with +special files or with audio/video sync. Most of them are unable to play both +MPEG-1, MPEG-2 and AVI (DivX) files. Many players have image quality or speed +problems too. So I've decided to write/modify one... +

A'rpi, 2001

  • +mpg12play v0.1-v0.3: Sep 22-25, 2000 +

    +The first try, hacked together in a half hour! I've used libmpeg3 +from http://www.heroinewarrior.com up to the version 0.3, but +there were image quality and speed problems with it. +

  • +mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000 +

    +MPEG codec replaced with DVDview by Dirk Farin, it was a +great stuff, but it was slow and was written in C++ (A'rpi hates C++!!!) +

  • +mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000 +

    +MPEG codec was libmpeg2 (mpeg2dec) by Aaron Holtzman and +Michel Lespinasse. It's great, optimized very fast C code with perfect +image quality and 100% MPEG standard conformance. +

  • +MPlayer v0.3-v0.9: Nov 18-Dec 4, 2000 +

    +It was a pack of two programs: mpg12play v0.95pre6 and my +new simple AVI player 'avip' based on avifile's Win32 DLL loader. +

  • +MPlayer v0.10: Jan 1, 2001 +

    The MPEG and AVI player in a single binary! +

  • +MPlayer v0.11pre series: +

    +Some new developers joined and since 0.11 the MPlayer +project is a team-work! Added ASF file support, and OpenDivX +(see http://www.projectmayo.com) en/decoding. +

  • +MPlayer v0.17a "The IdegCounter": Apr 27, 2001 +

    +The release version of the 0.11pre after 4 months of heavy +development! Try it, and be amazed! Thousands of new features added... +and of course old code was improved too, bugs removed etc. +

  • +MPlayer 0.18 "The BugCounter": Jul 9, 2001 +

    +2 months since 0.17 and here's a new release.. Completed ASF +support, more subtitle formats, introduced libao (similar to libvo but to +audio), even more stable than ever, and so on. It's a MUST! +

  • +MPlayer 0.50 "The Faszom(C)ounter": Oct 8, 2001 +

    +Hmm. Release again. Tons of new features, beta GUI version, +bugs fixed, new vo and ao drivers, ported to many systems, including +opensource DivX codecs and much more. Try it! +

  • +MPlayer 0.60 "The RTFMCounter": Jan 3, 2002 +

    +MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak, +ADPCM codecs, and support for XAnim's binary codecs; DVD subtitles support, +first release of MEncoder, TV grabbing, cache, +liba52, countless fixes. +

  • +MPlayer 0.90pre10 "The BirthdayCounter" Nov 11, 2002 +

    +Although this is not a release, I am going to mention it because it +came out 2 years after MPlayer v0.01. +Happy birthday, MPlayer! +

  • +MPlayer 0.90rc1 "The CodecCounter" Dec 7, 2002 +

    +Again not a release, but after adding Sorenson 3 (QuickTime) +and Windows Media 9 support, MPlayer is the +world's first movie player with support for all known video formats! +

  • +MPlayer 0.90 "The CounterCounter" Apr 6, 2003 +

    +After more than 1 year, we finally concluded that the code was indeed +stable again, and ready to be published as a release. Unfortunately we +forgot even to increase the version number, and other annoying bugs went +in, so get ready for... +

  • +MPlayer 0.91 Aug 13, 2003 +

    +The above mentioned and lot of other bugs have been fixed. +This is the latest stable version. +

  • +MPlayer 1.0pre1 "Development on the beach" Sep 1, 2003 +

    +Although this is not a stable release, I am going to mention it because it is +the first pre version of the 1.0 series of MPlayer +and it is intended to help the big bug hunting party. +This is a huge step forward! +

  • +MPlayer 1.0 date yet unknown +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/howtoread.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/howtoread.html new file mode 100644 index 0000000..282963f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/howtoread.html @@ -0,0 +1,10 @@ +How to read this documentation

How to read this documentation

+If you are a first-time installer: be sure to read everything from here to +the end of the Installation section, and follow the links you will find. If +you have any other questions, return to the Table of +Contents and search for the topic, read the FAQ, +or try grepping through the files. Most questions should be answered somewhere +here and the rest has probably already been asked on our +mailing lists. + +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/index.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/index.html new file mode 100644 index 0000000..62b15b6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/index.html @@ -0,0 +1,25 @@ +MPlayer - The Movie Player

MPlayer - The Movie Player

License

MPlayer is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version.

MPlayer is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details.

You should have received a copy of the GNU General Public License + along with MPlayer; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


How to read this documentation
1. Introduction
2. Installation
2.1. Software requirements
2.2. Features
2.3. What about the GUI?
2.4. Fonts and OSD
2.4.1. TrueType fonts
2.4.2. bitmap fonts
2.4.3. OSD menu
2.5. RTC
3. Usage
3.1. Command line
3.2. Subtitles and OSD
3.3. Control
3.3.1. Controls configuration
3.3.2. Control from LIRC
3.3.3. Slave mode
3.4. Streaming from network or pipes
3.4.1. Saving streamed content
3.5. Edit Decision Lists (EDL)
3.5.1. Using an EDL file
3.5.2. Making an EDL file
3.6. Advanced audio
3.6.1. Surround/Multichannel playback
3.6.1.1. DVDs
3.6.1.2. Playing stereo files to four speakers
3.6.1.3. AC-3/DTS Passthrough
3.6.1.4. MPEG audio Passthrough
3.6.1.5. Matrix-encoded audio
3.6.1.6. Surround emulation in headphones
3.6.1.7. Troubleshooting
3.6.2. Channel manipulation
3.6.2.1. General information
3.6.2.2. Playing mono with two speakers
3.6.2.3. Channel copying/moving
3.6.2.4. Channel mixing
3.6.3. Software Volume adjustment
4. CD/DVD usage
4.1. CD/DVD drives
4.1.1. Linux
4.1.2. FreeBSD
4.2. DVD playback
4.2.1. region code
4.3. VCD playback
5. Frequently Asked Questions
6. Containers
6.1. Video formats
6.1.1. MPEG files
6.1.2. AVI files
6.1.3. ASF/WMV files
6.1.4. QuickTime/MOV files
6.1.5. VIVO files
6.1.6. FLI files
6.1.7. RealMedia (RM) files
6.1.8. NuppelVideo files
6.1.9. yuv4mpeg files
6.1.10. FILM files
6.1.11. RoQ files
6.1.12. OGG/OGM files
6.1.13. SDP files
6.1.14. PVA files
6.1.15. NSV files
6.1.16. Matroska files
6.1.17. NUT files
6.1.18. GIF files
6.2. Audio formats
6.2.1. MP3 files
6.2.2. OGG/OGM files (Vorbis)
6.2.3. CD audio
6.2.4. XMMS
7. Codecs
7.1. Video codecs
7.1.1. FFmpeg/libavcodec
7.1.2. Xvid
7.1.3. x264
7.1.3.1. What is x264?
7.1.3.2. What is H.264?
7.1.3.3. How can I play H.264 videos with + MPlayer?
7.1.3.4. How can I encode videos using MEncoder + and x264?
7.2. Audio codecs
7.2.1. Software AC-3 decoding
7.2.2. Hardware AC-3 decoding
7.2.3. libmad support
7.2.4. Hardware MPEG audio codec
7.2.5. AAC codec
7.2.6. AMR codecs
7.3. Win32 codecs importing HOWTO
7.3.1. VFW codecs
7.3.2. DirectShow codecs
8. Video output devices
8.1. Setting up MTRR
8.2. Xv
8.2.1. 3dfx cards
8.2.2. S3 cards
8.2.3. nVidia cards
8.2.4. ATI cards
8.2.5. NeoMagic cards
8.2.6. Trident cards
8.2.7. Kyro/PowerVR cards
8.2.8. Intel cards
8.3. DGA
8.4. SDL
8.5. SVGAlib
8.6. Framebuffer output (FBdev)
8.7. Matrox framebuffer (mga_vid)
8.8. 3Dfx YUV support
8.9. tdfx_vid
8.10. OpenGL output
8.11. AAlib – text mode displaying
8.12. +libcaca – Color ASCII Art library +
8.13. VESA - output to VESA BIOS
8.14. X11
8.15. VIDIX
8.15.1. ATI cards
8.15.2. Matrox cards
8.15.3. Trident cards
8.15.4. 3DLabs cards
8.15.5. nVidia cards
8.15.6. SiS cards
8.16. DirectFB
8.17. DirectFB/Matrox (dfbmga)
8.18. MPEG decoders
8.18.1. DVB output and input
8.18.2. DXR2
8.18.3. DXR3/Hollywood+
8.19. Other visualization hardware
8.19.1. Zr
8.19.2. Blinkenlights
8.20. TV-out support
8.20.1. Matrox G400 cards
8.20.2. Matrox G450/G550 cards
8.20.3. ATI cards
8.20.4. nVidia
8.20.5. NeoMagic
9. Audio output devices
9.1. Audio/Video synchronization
9.2. Troubleshooting
10. TV
10.1. TV input
10.1.1. Compilation
10.1.2. Usage tips
10.1.3. Examples
10.2. Teletext
10.2.1. Implementation notes
10.2.2. Using teletext
10.2.3. Teletext hot keys
11. Radio
11.1. Radio input
11.1.1. Compilation
11.1.2. Usage tips
11.1.3. Examples
12. Ports
12.1. Linux
12.1.1. Debian packaging
12.1.2. RPM packaging
12.1.3. ARM
12.2. *BSD
12.2.1. FreeBSD
12.2.2. OpenBSD
12.2.3. Darwin
12.3. Commercial Unix
12.3.1. Solaris
12.3.2. IRIX
12.3.3. HP-UX
12.3.4. AIX
12.4. Windows
12.4.1. Cygwin
12.4.2. MinGW
12.5. Mac OS
12.5.1. MPlayer OS X GUI
12.6. Exotic Platforms
12.6.1. QNX
12.6.2. Amiga/MorphOS (GeekGadgets)
13. Basic usage of MEncoder
13.1. Selecting codecs and container formats
13.2. Selecting input file or device
13.3. Encoding two pass MPEG-4 ("DivX")
13.4. Encoding to Sony PSP video format
13.5. Encoding to MPEG format
13.6. Rescaling movies
13.7. Stream copying
13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)
13.9. Extracting DVD subtitles to VOBsub file
13.10. Preserving aspect ratio
14. Encoding with MEncoder
14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie
14.1.1. Preparing to encode: Identifying source material and framerate
14.1.1.1. Identifying source framerate
14.1.1.2. Identifying source material
14.1.2. Constant quantizer vs. multipass
14.1.3. Constraints for efficient encoding
14.1.4. Cropping and Scaling
14.1.5. Choosing resolution and bitrate
14.1.5.1. Computing the resolution
14.1.6. Filtering
14.1.7. Interlacing and Telecine
14.1.8. Encoding interlaced video
14.1.9. Notes on Audio/Video synchronization
14.1.10. Choosing the video codec
14.1.11. Audio
14.1.12. Muxing
14.1.12.1. Improving muxing and A/V sync reliability
14.1.12.2. Limitations of the AVI container
14.1.12.3. Muxing into the Matroska container
14.2. How to deal with telecine and interlacing within NTSC DVDs
14.2.1. Introduction
14.2.2. How to tell what type of video you have
14.2.2.1. Progressive
14.2.2.2. Telecined
14.2.2.3. Interlaced
14.2.2.4. Mixed progressive and telecine
14.2.2.5. Mixed progressive and interlaced
14.2.3. How to encode each category
14.2.3.1. Progressive
14.2.3.2. Telecined
14.2.3.3. Interlaced
14.2.3.4. Mixed progressive and telecine
14.2.3.5. Mixed progressive and interlaced
14.2.4. Footnotes
14.3. Encoding with the libavcodec + codec family
14.3.1. libavcodec's + video codecs
14.3.2. libavcodec's + audio codecs
14.3.2.1. PCM/ADPCM format supplementary table
14.3.3. Encoding options of libavcodec
14.3.4. Encoding setting examples
14.3.5. Custom inter/intra matrices
14.3.6. Example
14.4. Encoding with the Xvid + codec
14.4.1. What options should I use to get the best results?
14.4.2. Encoding options of Xvid
14.4.3. Encoding profiles
14.4.4. Encoding setting examples
14.5. Encoding with the + x264 codec
14.5.1. Encoding options of x264
14.5.1.1. Introduction
14.5.1.2. Options which primarily affect speed and quality
14.5.1.3. Options pertaining to miscellaneous preferences
14.5.2. Encoding setting examples
14.6. + Encoding with the Video For Windows + codec family +
14.6.1. Video for Windows supported codecs
14.6.2. Using vfw2menc to create a codec settings file.
14.7. Using MEncoder to create +QuickTime-compatible files
14.7.1. Why would one want to produce QuickTime-compatible Files?
14.7.2. QuickTime 7 limitations
14.7.3. Cropping
14.7.4. Scaling
14.7.5. A/V sync
14.7.6. Bitrate
14.7.7. Encoding example
14.7.8. Remuxing as MP4
14.7.9. Adding metadata tags
14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files
14.8.1. Format Constraints
14.8.1.1. Format Constraints
14.8.1.2. GOP Size Constraints
14.8.1.3. Bitrate Constraints
14.8.2. Output Options
14.8.2.1. Aspect Ratio
14.8.2.2. Maintaining A/V sync
14.8.2.3. Sample Rate Conversion
14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding
14.8.3.1. Introduction
14.8.3.2. lavcopts
14.8.3.3. Examples
14.8.3.4. Advanced Options
14.8.4. Encoding Audio
14.8.4.1. toolame
14.8.4.2. twolame
14.8.4.3. libavcodec
14.8.5. Putting it all Together
14.8.5.1. PAL DVD
14.8.5.2. NTSC DVD
14.8.5.3. PAL AVI Containing AC-3 Audio to DVD
14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD
14.8.5.5. PAL SVCD
14.8.5.6. NTSC SVCD
14.8.5.7. PAL VCD
14.8.5.8. NTSC VCD
A. How to report bugs
A.1. Report security releated bugs
A.2. How to fix bugs
A.3. How to do regression testing using Subversion
A.4. How to report bugs
A.5. Where to report bugs
A.6. What to report
A.6.1. System Information
A.6.2. Hardware and drivers
A.6.3. Configure problems
A.6.4. Compilation problems
A.6.5. Playback problems
A.6.6. Crashes
A.6.6.1. How to conserve information about a reproducible crash
A.6.6.2. How to extract meaningful information from a core dump
A.7. I know what I am doing...
B. Known bugs
B.1. Special system/CPU-specific bugs/problems
B.2. Various A-V sync and other audio problems
B.2.1. General audio delay or jerky sound + (exists with all or many files)
B.2.2. Audio delay/de-sync specific to one or a few files
B.2.3. No sound at all
B.2.4. No picture at all (just plain grey/green window)
B.2.5. Video-out problems
C. MPlayer skin format
C.1. Overview
C.1.1. Directories
C.1.2. Image formats
C.1.3. Skin components
C.1.4. Files
C.2. The skin file
C.2.1. Main window and playbar
C.2.2. Subwindow
C.2.3. Skin menu
C.3. Fonts
C.3.1. Symbols
C.4. GUI messages
C.5. Creating quality skins
D. History
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/install.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/install.html new file mode 100644 index 0000000..9dd1df8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/install.html @@ -0,0 +1,11 @@ +Chapter 2. Installation

Chapter 2. Installation

+A quick installation guide can be found in the README +file. Please read it first and then come back here for the rest of the gory +details. +

+In this section you will be guided through the compilation and configuration +process of MPlayer. It's not easy, but it won't +necessarily be hard. If you experience a behavior different from this +description, please search through this documentation and you'll find your +answers. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/intro.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/intro.html new file mode 100644 index 0000000..a4851d1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/intro.html @@ -0,0 +1,83 @@ +Chapter 1. Introduction

Chapter 1. Introduction

+MPlayer is a movie player for Linux (runs on +many other Unices, and non-x86 CPUs, see +Ports). +It plays most MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, +NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska files, supported by +many native, XAnim, RealPlayer, and Win32 DLL codecs. You can watch +VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora, +and MPEG-4 (DivX) movies too. Another big +feature of MPlayer is the wide range of +supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, +fbdev, AAlib, libcaca, DirectFB, but you can use GGI and SDL (and this way all +their drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and +Radeon, Mach64, Permedia3) too! Most of them support software or hardware +scaling, so you can enjoy movies in fullscreen. +MPlayer supports displaying through some +hardware MPEG decoder boards, such as the DVB and +DXR3/Hollywood+. And what about the nice big +antialiased shaded subtitles +(14 supported types) +with European/ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic, Korean +fonts, and the onscreen display (OSD)? +

+The player is rock solid playing damaged MPEG files (useful for some VCDs), +and it plays bad AVI files which are unplayable with the famous windows +media player. Even AVI files without index chunk are playable, and you can +temporarily rebuild their indexes with the -idx option, or +permanently with MEncoder, thus enabling +seeking! As you see, stability and quality are the most important things, +but the speed is also amazing. There is also a powerful filter system for +video and audio manipulation. +

+MEncoder (MPlayer's Movie +Encoder) is a simple movie encoder, designed to encode +MPlayer-playable movies +(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) +to other MPlayer-playable formats (see below). +It can encode with various codecs, like +MPEG-4 (DivX4) +(one or two passes), libavcodec, +PCM/MP3/VBR MP3 +audio. +

MEncoder features

  • + Encoding from the wide range of fileformats and decoders of + MPlayer +

  • + Encoding to all the codecs of FFmpeg's + libavcodec +

  • + Video encoding from V4L compatible TV tuners +

  • + Encoding/multiplexing to interleaved AVI files with proper index +

  • + Creating files from external audio stream +

  • + 1, 2 or 3 pass encoding +

  • + VBR MP3 audio +

    Important

    + VBR MP3 audio doesn't always play nicely on windows players! +

    +

  • + PCM audio +

  • + Stream copying +

  • + Input A/V synchronizing (PTS-based, can be disabled with + -mc 0 option) +

  • + fps correction with -ofps option (useful when encoding + 30000/1001 fps VOB to 24000/1001 fps AVI) +

  • + Using our very powerful filter system (crop, expand, flip, postprocess, + rotate, scale, rgb/yuv conversion) +

  • + Can encode DVD/VOBsub AND text subtitles + into the output file +

  • + Can rip DVD subtitles to VOBsub format +

+MPlayer and MEncoder +can be distributed under the terms of the GNU General Public License Version 2. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/linux.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/linux.html new file mode 100644 index 0000000..5b91e24 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/linux.html @@ -0,0 +1,60 @@ +12.1. Linux

12.1. Linux

+The main development platform is Linux on x86, although +MPlayer works on many other Linux ports. +Binary packages of MPlayer are available from several +sources. +However, none of these packages are supported. +Report problems to the authors, not to us. +

12.1.1. Debian packaging

+To build a Debian package, run the following command in the +MPlayer source directory: + +

fakeroot debian/rules binary

+ +If you want to pass custom options to configure, you can set up the +DEB_BUILD_OPTIONS environment variable. For instance, +if you want GUI and OSD menu support you would use: + +

DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary

+ +You can also pass some variables to the Makefile. For example, if you want +to compile with gcc 3.4 even if it's not the default compiler: + +

CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary

+ +To clean up the source tree run the following command: + +

fakeroot debian/rules clean

+ +As root you can then install the .deb package as usual: + +

dpkg -i ../mplayer_version.deb

+

+Christian Marillat has been making unofficial Debian packages of +MPlayer, MEncoder and +our binary codec packages for a while, you can (apt-)get them from +his homepage. +

12.1.2. RPM packaging

+Dominik Mierzejewski maintains the official RPM packages of +MPlayer for Fedora Core. They are available +from Livna repository. +

+Mandrake/Mandriva RPM packages are available from the +P.L.F.. +SuSE used to include a crippled version of MPlayer +in their distribution. They have removed it in their latest releases. You can +get working RPMs from +links2linux.de. +

12.1.3. ARM

+MPlayer works on Linux PDAs with ARM CPU e.g. Sharp +Zaurus, Compaq Ipaq. The easiest way to obtain +MPlayer is to get it from one of the +OpenZaurus package feeds. +If you want to compile it yourself, you should look at the +mplayer +and the +libavcodec +directory in the OpenZaurus distribution buildroot. These always have the latest +Makefile and patches used for building a SVN MPlayer. +If you need a GUI frontend, you can use xmms-embedded. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/macos.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/macos.html new file mode 100644 index 0000000..5e55478 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/macos.html @@ -0,0 +1,118 @@ +12.5. Mac OS

12.5. Mac OS

+MPlayer does not work on Mac OS versions before +10, but should compile out-of-the-box on Mac OS X 10.2 and up. +The preferred compiler is the Apple version of +GCC 3.x or later. +You can get the basic compilation environment by installing Apple's +Xcode. +If you have Mac OS X 10.3.9 or later and QuickTime 7 +you can use the macosx video output driver. +

+Unfortunately, this basic environment will not allow you to take advantage +of all the nice features of MPlayer. +For instance, in order to have OSD support compiled in, you will +need to have fontconfig +and freetype libraries +installed on your machine. Contrary to other Unixes such as most +Linux and BSD variants, OS X does not have a package system +that comes with the system. +

+There are at least two to choose from: +Fink and +MacPorts. +Both of them provide about the same service (i.e. a lot of packages to +choose from, dependency resolution, the ability to simply add/update/remove +packages, etc...). +Fink offers both precompiled binary packages or building everything from +source, whereas MacPorts only offers building from source. +The author of this guide chose MacPorts for the simple fact that its basic +setup was more lightweight. +Later examples will be based on MacPorts. +

+For instance, to compile MPlayer with OSD support: +

sudo port install pkgconfig

+This will install pkg-config, which is a system for +managing library compile/link flags. +MPlayer's configure script +uses it to properly detect libraries. +Then you can install fontconfig in a +similar way: +

sudo port install fontconfig

+Then you can proceed with launching MPlayer's +configure script (note the +PKG_CONFIG_PATH and PATH +environment variables so that configure finds the +libraries installed with MacPorts): +

+PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure
+

+

12.5.1. MPlayer OS X GUI

+You can get a native GUI for MPlayer together with +precompiled MPlayer binaries for Mac OS X from the +MPlayerOSX project, but be +warned: that project is not active anymore. +

+Fortunately, MPlayerOSX has been taken over +by a member of the MPlayer team. +Preview releases are available from our +download page +and an official release should arrive soon. +

+In order to build MPlayerOSX from source +yourself, you need the mplayerosx, the +main and a copy of the +main SVN module named +main_noaltivec. +mplayerosx is the GUI frontend, +main is MPlayer and +main_noaltivec is MPlayer built without AltiVec +support. +

+To check out SVN modules use: +

+svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
+svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main
+

+

+In order to build MPlayerOSX you will need to +set up something like this: +

+MPlayer_source_directory
+   |
+   |--->main           (MPlayer Subversion source)
+   |
+   |--->main_noaltivec (MPlayer Subversion source configured with --disable-altivec)
+   |
+   \--->mplayerosx     (MPlayer OS X Subversion source)
+

+You first need to build main and main_noaltivec. +

+To begin with, in order to ensure maximum backwards compatibility, set an +environment variable: +

export MACOSX_DEPLOYMENT_TARGET=10.3

+

+Then, configure: +

+If you configure for a G4 or later CPU with AltiVec support, do as follows: +

+./configure --disable-gl --disable-x11
+

+If you configure for a G3-powered machine without AltiVec, use: +

+./configure --disable-gl --disable-x11 --disable-altivec
+

+You may need to edit config.mak and change +-mcpu and -mtune +from 74XX to G3. +

+Continue with +

make

+then go to the mplayerosx directory and type +

make dist

+This will create a compressed .dmg archive +with the ready to use binary. +

+You can also use the Xcode 2.1 project; +the old project for Xcode 1.x does +not work anymore. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-dvd-mpeg4.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-dvd-mpeg4.html new file mode 100644 index 0000000..3d8f33e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-dvd-mpeg4.html @@ -0,0 +1,1092 @@ +14.1. Making a high quality MPEG-4 ("DivX") rip of a DVD movie

14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie

+One frequently asked question is "How do I make the highest quality rip +for a given size?". Another question is "How do I make the highest +quality DVD rip possible? I do not care about file size, I just want the best +quality." +

+The latter question is perhaps at least somewhat wrongly posed. After all, if +you do not care about file size, why not simply copy the entire MPEG-2 video +stream from the the DVD? Sure, your AVI will end up being 5GB, give +or take, but if you want the best quality and do not care about size, +this is certainly your best option. +

+In fact, the reason you want to transcode a DVD into MPEG-4 is +specifically because you do care about +file size. +

+It is difficult to offer a cookbook recipe on how to create a very high +quality DVD rip. There are several factors to consider, and you should +understand these details or else you are likely to end up disappointed +with your results. Below we will investigate some of these issues, and +then have a look at an example. We assume you are using +libavcodec to encode the video, +although the theory applies to other codecs as well. +

+If this seems to be too much for you, you should probably use one of the +many fine frontends that are listed in the +MEncoder section +of our related projects page. +That way, you should be able to achieve high quality rips without too much +thinking, because most of those tools are designed to take clever decisions +for you. +

14.1.1. Preparing to encode: Identifying source material and framerate

+Before you even think about encoding a movie, you need to take +several preliminary steps. +

+The first and most important step before you encode should be +determining what type of content you are dealing with. +If your source material comes from DVD or broadcast/cable/satellite +TV, it will be stored in one of two formats: NTSC for North +America and Japan, PAL for Europe, etc. +It is important to realize, however, that this is just the formatting for +presentation on a television, and often does +not correspond to the +original format of the movie. +Experience shows that NTSC material is a lot more difficult to encode, +because there more elements to identify in the source. +In order to produce a suitable encode, you need to know the original +format. +Failure to take this into account will result in various flaws in your +encode, including ugly combing (interlacing) artifacts and duplicated +or even lost frames. +Besides being ugly, the artifacts also harm coding efficiency: +You will get worse quality per unit bitrate. +

14.1.1.1. Identifying source framerate

+Here is a list of common types of source material, where you are +likely to find them, and their properties: +

  • + Standard Film: Produced for + theatrical display at 24fps. +

  • + PAL video: Recorded with a PAL + video camera at 50 fields per second. + A field consists of just the odd- or even-numbered lines of a + frame. + Television was designed to refresh these in alternation as a + cheap form of analog compression. + The human eye supposedly compensates for this, but once you + understand interlacing you will learn to see it on TV too and + never enjoy TV again. + Two fields do not make a + complete frame, because they are captured 1/50 of a second apart + in time, and thus they do not line up unless there is no motion. +

  • + NTSC Video: Recorded with an + NTSC video camera at 60000/1001 fields per second, or 60 fields per + second in the pre-color era. + Otherwise similar to PAL. +

  • + Animation: Usually drawn at + 24fps, but also comes in mixed-framerate varieties. +

  • + Computer Graphics (CG): Can be + any framerate, but some are more common than others; 24 and + 30 frames per second are typical for NTSC, and 25fps is typical + for PAL. +

  • + Old Film: Various lower + framerates. +

14.1.1.2. Identifying source material

+Movies consisting of frames are referred to as progressive, +while those consisting of independent fields are called +either interlaced or video - though this latter term is +ambiguous. +

+To further complicate matters, some movies will be a mix of +several of the above. +

+The most important distinction to make between all of these +formats is that some are frame-based, while others are +field-based. +Whenever a movie is prepared +for display on television (including DVD), it is converted to a +field-based format. +The various methods by which this can be done are collectively +referred to as "telecine", of which the infamous NTSC +"3:2 pulldown" is one variety. +Unless the original material was also field-based (and the same +fieldrate), you are getting the movie in a format other than the +original. +

There are several common types of pulldown:

  • + PAL 2:2 pulldown: The nicest of + them all. + Each frame is shown for the duration of two fields, by extracting the + even and odd lines and showing them in alternation. + If the original material is 24fps, this process speeds up the + movie by 4%. +

  • + PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: + Every 12th frame is shown for the duration of three fields, instead of + just two. + This avoids the 4% speedup issue, but makes the process much + more difficult to reverse. + It is usually seen in musical productions where adjusting the + speed by 4% would seriously damage the musical score. +

  • + NTSC 3:2 telecine: Frames are + shown alternately for the duration of 3 fields or 2 fields. + This gives a fieldrate 2.5 times the original framerate. + The result is also slowed down very slightly from 60 fields per + second to 60000/1001 fields per second to maintain NTSC fieldrate. +

  • + NTSC 2:2 pulldown: Used for + showing 30fps material on NTSC. + Nice, just like 2:2 PAL pulldown. +

+There are also methods for converting between NTSC and PAL video, +but such topics are beyond the scope of this guide. +If you encounter such a movie and want to encode it, your best +bet is to find a copy in the original format. +Conversion between these two formats is highly destructive and +cannot be reversed cleanly, so your encode will greatly suffer +if it is made from a converted source. +

+When video is stored on DVD, consecutive pairs of fields are +grouped as a frame, even though they are not intended to be shown +at the same moment in time. +The MPEG-2 standard used on DVD and digital TV provides a +way both to encode the original progressive frames and to store +the number of fields for which a frame should be shown in the +header of that frame. +If this method has been used, the movie will often be described +as "soft-telecined", since the process only directs the +DVD player to apply pulldown to the movie rather than altering +the movie itself. +This case is highly preferable since it can easily be reversed +(actually ignored) by the encoder, and since it preserves maximal +quality. +However, many DVD and broadcast production studios do not use +proper encoding techniques but instead produce movies with +"hard telecine", where fields are actually duplicated in the +encoded MPEG-2. +

+The procedures for dealing with these cases will be covered +later in this guide. +For now, we leave you with some guides to identifying which type +of material you are dealing with: +

NTSC regions:

  • + If MPlayer prints that the framerate + has changed to 24000/1001 when watching your movie, and never changes + back, it is almost certainly progressive content that has been + "soft telecined". +

  • + If MPlayer shows the framerate + switching back and forth between 24000/1001 and 30000/1001, and you see + "combing" at times, then there are several possibilities. + The 24000/1001 fps segments are almost certainly progressive + content, "soft telecined", but the 30000/1001 fps parts could be + either hard-telecined 24000/1001 fps content or 60000/1001 fields per second + NTSC video. + Use the same guidelines as the following two cases to determine which. +

  • + If MPlayer never shows the framerate + changing, and every single frame with motion appears combed, your + movie is NTSC video at 60000/1001 fields per second. +

  • + If MPlayer never shows the framerate + changing, and two frames out of every five appear combed, your + movie is "hard telecined" 24000/1001fps content. +

PAL regions:

  • + If you never see any combing, your movie is 2:2 pulldown. +

  • + If you see combing alternating in and out every half second, + then your movie is 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. +

  • + If you always see combing during motion, then your movie is PAL + video at 50 fields per second. +

Hint:

+ MPlayer can slow down movie playback + with the -speed option or play it frame-by-frame. + Try using -speed 0.2 to watch the movie very + slowly or press the "." key repeatedly to play one frame at + a time and identify the pattern, if you cannot see it at full speed. +

14.1.2. Constant quantizer vs. multipass

+It is possible to encode your movie at a wide range of qualities. +With modern video encoders and a bit of pre-codec compression +(downscaling and denoising), it is possible to achieve very good +quality at 700 MB, for a 90-110 minute widescreen movie. +Furthermore, all but the longest movies can be encoded with near-perfect +quality at 1400 MB. +

+There are three approaches to encoding the video: constant bitrate +(CBR), constant quantizer, and multipass (ABR, or average bitrate). +

+The complexity of the frames of a movie, and thus the number of bits +required to compress them, can vary greatly from one scene to another. +Modern video encoders can adjust to these needs as they go and vary +the bitrate. +In simple modes such as CBR, however, the encoders do not know the +bitrate needs of future scenes and so cannot exceed the requested +average bitrate for long stretches of time. +More advanced modes, such as multipass encode, can take into account +the statistics from previous passes; this fixes the problem mentioned +above. +

Note:

+Most codecs which support ABR encode only support two pass encode +while some others such as x264, +Xvid +and libavcodec support +multipass, which slightly improves quality at each pass, +yet this improvement is no longer measurable nor noticeable after the +4th or so pass. +Therefore, in this section, two pass and multipass will be used +interchangeably. +

+In each of these modes, the video codec (such as +libavcodec) +breaks the video frame into 16x16 pixel macroblocks and then applies a +quantizer to each macroblock. The lower the quantizer, the better the +quality and higher the bitrate. +The method the movie encoder uses to determine +which quantizer to use for a given macroblock varies and is highly +tunable. (This is an extreme over-simplification of the actual +process, but the basic concept is useful to understand.) +

+When you specify a constant bitrate, the video codec will encode the video, +discarding +detail as much as necessary and as little as possible in order to remain +lower than the given bitrate. If you truly do not care about file size, +you could as well use CBR and specify a bitrate of infinity. (In +practice, this means a value high enough so that it poses no limit, like +10000Kbit.) With no real restriction on bitrate, the result is that +the codec will use the lowest +possible quantizer for each macroblock (as specified by +vqmin for +libavcodec, which is 2 by default). +As soon as you specify a +low enough bitrate that the codec +is forced to use a higher quantizer, then you are almost certainly ruining +the quality of your video. +In order to avoid that, you should probably downscale your video, according +to the method described later on in this guide. +In general, you should avoid CBR altogether if you care about quality. +

+With constant quantizer, the codec uses the same quantizer, as +specified by the vqscale option (for +libavcodec), on every macroblock. +If you want the highest quality rip possible, again ignoring bitrate, +you can use vqscale=2. +This will yield the same bitrate and PSNR (peak signal-to-noise ratio) +as CBR with +vbitrate=infinity and the default vqmin +of 2. +

+The problem with constant quantizing is that it uses the given quantizer +whether the macroblock needs it or not. That is, it might be possible +to use a higher quantizer on a macroblock without sacrificing visual +quality. Why waste the bits on an unnecessarily low quantizer? Your +CPU has as many cycles as there is time, but there is only so many bits +on your hard disk. +

+With a two pass encode, the first pass will rip the movie as though it +were CBR, but it will keep a log of properties for each frame. This +data is then used during the second pass in order to make intelligent +decisions about which quantizers to use. During fast action or high +detail scenes, higher quantizers will likely be used, and during +slow moving or low detail scenes, lower quantizers will be used. +Normally, the amount of motion is much more important than the +amount of detail. +

+If you use vqscale=2, then you are wasting bits. If you +use vqscale=3, then you are not getting the highest +quality rip. Suppose you rip a DVD at vqscale=3, and +the result is 1800Kbit. If you do a two pass encode with +vbitrate=1800, the resulting video will have +higher quality for the +same bitrate. +

+Since you are now convinced that two pass is the way to go, the real +question now is what bitrate to use? The answer is that there is no +single answer. Ideally you want to choose a bitrate that yields the +best balance between quality and file size. This is going to vary +depending on the source video. +

+If size does not matter, a good starting point for a very high quality +rip is about 2000Kbit plus or minus 200Kbit. +For fast action or high detail source video, or if you just have a very +critical eye, you might decide on 2400 or 2600. +For some DVDs, you might not notice a difference at 1400Kbit. It is a +good idea to experiment with scenes at different bitrates to get a feel. +

+If you aim at a certain size, you will have to somehow calculate the bitrate. +But before that, you need to know how much space you should reserve for the +audio track(s), so you should +rip those first. +You can compute the bitrate with the following equation: +bitrate = (target_size_in_Mbytes - sound_size_in_Mbytes) * +1024 * 1024 / length_in_secs * 8 / 1000 +For instance, to squeeze a two-hour movie onto a 702MB CD, with 60MB +of audio track, the video bitrate will have to be: +(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 += 740kbps +

14.1.3. Constraints for efficient encoding

+Due to the nature of MPEG-type compression, there are various +constraints you should follow for maximal quality. +MPEG splits the video up into 16x16 squares called macroblocks, +each composed of 4 8x8 blocks of luma (intensity) information and two +half-resolution 8x8 chroma (color) blocks (one for red-cyan axis and +the other for the blue-yellow axis). +Even if your movie width and height are not multiples of 16, the +encoder will use enough 16x16 macroblocks to cover the whole picture +area, and the extra space will go to waste. +So in the interests of maximizing quality at a fixed filesize, it is +a bad idea to use dimensions that are not multiples of 16. +

+Most DVDs also have some degree of black borders at the edges. Leaving +these in place will hurt quality a lot +in several ways. +

  1. + MPEG-type compression is highly dependent on frequency domain + transformations, in particular the Discrete Cosine Transform (DCT), + which is similar to the Fourier transform. This sort of encoding is + efficient for representing patterns and smooth transitions, but it + has a hard time with sharp edges. In order to encode them it must + use many more bits, or else an artifact known as ringing will + appear. +

    + The frequency transform (DCT) takes place separately on each + macroblock (actually each block), so this problem only applies when + the sharp edge is inside a block. If your black borders begin + exactly at multiple-of-16 pixel boundaries, this is not a problem. + However, the black borders on DVDs rarely come nicely aligned, so + in practice you will always need to crop to avoid this penalty. +

+In addition to frequency domain transforms, MPEG-type compression uses +motion vectors to represent the change from one frame to the next. +Motion vectors naturally work much less efficiently for new content +coming in from the edges of the picture, because it is not present in +the previous frame. As long as the picture extends all the way to the +edge of the encoded region, motion vectors have no problem with +content moving out the edges of the picture. However, in the presence +of black borders, there can be trouble: +

  1. + For each macroblock, MPEG-type compression stores a vector + identifying which part of the previous frame should be copied into + this macroblock as a base for predicting the next frame. Only the + remaining differences need to be encoded. If a macroblock spans the + edge of the picture and contains part of the black border, then + motion vectors from other parts of the picture will overwrite the + black border. This means that lots of bits must be spent either + re-blackening the border that was overwritten, or (more likely) a + motion vector will not be used at all and all the changes in this + macroblock will have to be coded explicitly. Either way, encoding + efficiency is greatly reduced. +

    + Again, this problem only applies if black borders do not line up on + multiple-of-16 boundaries. +

  2. + Finally, suppose we have a macroblock in the interior of the + picture, and an object is moving into this block from near the edge + of the image. MPEG-type coding cannot say "copy the part that is + inside the picture but not the black border." So the black border + will get copied inside too, and lots of bits will have to be spent + encoding the part of the picture that is supposed to be there. +

    + If the picture runs all the way to the edge of the encoded area, + MPEG has special optimizations to repeatedly copy the pixels at the + edge of the picture when a motion vector comes from outside the + encoded area. This feature becomes useless when the movie has black + borders. Unlike problems 1 and 2, aligning the borders at multiples + of 16 does not help here. +

  3. + Despite the borders being entirely black and never changing, there + is at least a minimal amount of overhead involved in having more + macroblocks. +

+For all of these reasons, it is recommended to fully crop black +borders. Further, if there is an area of noise/distortion at the edge +of the picture, cropping this will improve encoding efficiency as +well. Videophile purists who want to preserve the original as close as +possible may object to this cropping, but unless you plan to encode at +constant quantizer, the quality you gain from cropping will +considerably exceed the amount of information lost at the edges. +

14.1.4. Cropping and Scaling

+Recall from the previous section that the final picture size you +encode should be a multiple of 16 (in both width and height). +This can be achieved by cropping, scaling, or a combination of both. +

+When cropping, there are a few guidelines that must be followed to +avoid damaging your movie. +The normal YUV format, 4:2:0, stores chroma (color) information +subsampled, i.e. chroma is only sampled half as often in each +direction as luma (intensity) information. +Observe this diagram, where L indicates luma sampling points and C +chroma. +

LLLLLLLL
CCCC
LLLLLLLL
LLLLLLLL
CCCC
LLLLLLLL

+As you can see, rows and columns of the image naturally come in pairs. +Thus your crop offsets and dimensions must be +even numbers. +If they are not, the chroma will no longer line up correctly with the +luma. +In theory, it is possible to crop with odd offsets, but it requires +resampling the chroma which is potentially a lossy operation and not +supported by the crop filter. +

+Further, interlaced video is sampled as follows: +

Top fieldBottom field
LLLLLLLL        
CCCC        
        LLLLLLLL
LLLLLLLL        
        CCCC
        LLLLLLLL
LLLLLLLL        
CCCC        
        LLLLLLLL
LLLLLLLL        
        CCCC
        LLLLLLLL

+As you can see, the pattern does not repeat until after 4 lines. +So for interlaced video, your y-offset and height for cropping must +be multiples of 4. +

+Native DVD resolution is 720x480 for NTSC, and 720x576 for PAL, but +there is an aspect flag that specifies whether it is full-screen (4:3) or +wide-screen (16:9). Many (if not most) widescreen DVDs are not strictly +16:9, and will be either 1.85:1 or 2.35:1 (cinescope). This means that +there will be black bands in the video that will need to be cropped out. +

+MPlayer provides a crop detection filter that +will determine the crop rectangle (-vf cropdetect). +Run MPlayer with +-vf cropdetect and it will print out the crop +settings to remove the borders. +You should let the movie run long enough that the whole picture +area is used, in order to get accurate crop values. +

+Then, test the values you get with MPlayer, +using the command line which was printed by +cropdetect, and adjust the rectangle as needed. +The rectangle filter can help by allowing you to +interactively position the crop rectangle over your movie. +Remember to follow the above divisibility guidelines so that you +do not misalign the chroma planes. +

+In certain cases, scaling may be undesirable. +Scaling in the vertical direction is difficult with interlaced +video, and if you wish to preserve the interlacing, you should +usually refrain from scaling. +If you will not be scaling but you still want to use multiple-of-16 +dimensions, you will have to overcrop. +Do not undercrop, since black borders are very bad for encoding! +

+Because MPEG-4 uses 16x16 macroblocks, you will want to make sure that each +dimension of the video you are encoding is a multiple of 16 or else you +will be degrading quality, especially at lower bitrates. You can do this +by rounding the width and height of the crop rectangle down to the nearest +multiple of 16. +As stated earlier, when cropping, you will want to increase the Y offset by +half the difference of the old and the new height so that the resulting +video is taken from the center of the frame. And because of the way DVD +video is sampled, make sure the offset is an even number. (In fact, as a +rule, never use odd values for any parameter when you are cropping and +scaling video.) If you are not comfortable throwing a few extra pixels +away, you might prefer instead to scale the video instead. We will look +at this in our example below. +You can actually let the cropdetect filter do all of the +above for you, as it has an optional round parameter that +is equal to 16 by default. +

+Also, be careful about "half black" pixels at the edges. Make sure you +crop these out too, or else you will be wasting bits there that +are better spent elsewhere. +

+After all is said and done, you will probably end up with video whose pixels +are not quite 1.85:1 or 2.35:1, but rather something close to that. You +could calculate the new aspect ratio manually, but +MEncoder offers an option for libavcodec called autoaspect +that will do this for you. Absolutely do not scale this video up in order to +square the pixels unless you like to waste your hard disk space. Scaling +should be done on playback, and the player will use the aspect stored in +the AVI to determine the correct resolution. +Unfortunately, not all players enforce this auto-scaling information, +therefore you may still want to rescale. +

14.1.5. Choosing resolution and bitrate

+If you will not be encoding in constant quantizer mode, you need to +select a bitrate. +The concept of bitrate is quite simple. +It is the (average) number of bits that will be consumed to store your +movie, per second. +Normally bitrate is measured in kilobits (1000 bits) per second. +The size of your movie on disk is the bitrate times the length of the +movie in time, plus a small amount of "overhead" (see the section on +the AVI container +for instance). +Other parameters such as scaling, cropping, etc. will +not alter the file size unless you +change the bitrate as well!. +

+Bitrate does not scale proportionally +to resolution. +That is to say, a 320x240 file at 200 kbit/sec will not be the same +quality as the same movie at 640x480 and 800 kbit/sec! +There are two reasons for this: +

  1. + Perceptual: You notice MPEG + artifacts more if they are scaled up bigger! + Artifacts appear on the scale of blocks (8x8). + Your eye will not see errors in 4800 small blocks as easily as it + sees errors in 1200 large blocks (assuming you will be scaling both + to fullscreen). +

  2. + Theoretical: When you scale down + an image but still use the same size (8x8) blocks for the frequency + space transform, you move more data to the high frequency bands. + Roughly speaking, each pixel contains more of the detail than it + did before. + So even though your scaled-down picture contains 1/4 the information + in the spacial directions, it could still contain a large portion + of the information in the frequency domain (assuming that the high + frequencies were underutilized in the original 640x480 image). +

+

+Past guides have recommended choosing a bitrate and resolution based +on a "bits per pixel" approach, but this is usually not valid due to +the above reasons. +A better estimate seems to be that bitrates scale proportional to the +square root of resolution, so that 320x240 and 400 kbit/sec would be +comparable to 640x480 at 800 kbit/sec. +However this has not been verified with theoretical or empirical +rigor. +Further, given that movies vary greatly with regard to noise, detail, +degree of motion, etc., it is futile to make general recommendations +for bits per length-of-diagonal (the analog of bits per pixel, +using the square root). +

+So far we have discussed the difficulty of choosing a bitrate and +resolution. +

14.1.5.1. Computing the resolution

+The following steps will guide you in computing the resolution of your +encode without distorting the video too much, by taking into account several +types of information about the source video. +First, you should compute the encoded aspect ratio: +ARc = (Wc x (ARa / PRdvd )) / Hc + +

where:

  • + Wc and Hc are the width and height of the cropped video, +

  • + ARa is the displayed aspect ratio, which usually is 4/3 or 16/9, +

  • + PRdvd is the pixel ratio of the DVD which is equal to 1.25=(720/576) for PAL + DVDs and 1.5=(720/480) for NTSC DVDs, +

+

+Then, you can compute the X and Y resolution, according to a certain +Compression Quality (CQ) factor: +ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16 +and +ResX = INT( ResY * ARc / 16) * 16 +

+Okay, but what is the CQ? +The CQ represents the number of bits per pixel and per frame of the encode. +Roughly speaking, the greater the CQ, the less the likelihood to see +encoding artifacts. +However, if you have a target size for your movie (1 or 2 CDs for instance), +there is a limited total number of bits that you can spend; therefore it is +necessary to find a good tradeoff between compressibility and quality. +

+The CQ depends on the bitrate, the video codec efficiency and the +movie resolution. +In order to raise the CQ, typically you would downscale the movie given that the +bitrate is computed in function of the target size and the length of the +movie, which are constant. +With MPEG-4 ASP codecs such as Xvid +and libavcodec, a CQ below 0.18 +usually results in a pretty blocky picture, because there +are not enough bits to code the information of each macroblock. (MPEG4, like +many other codecs, groups pixels by blocks of several pixels to compress the +image; if there are not enough bits, the edges of those blocks are +visible.) +It is therefore wise to take a CQ ranging from 0.20 to 0.22 for a 1 CD rip, +and 0.26-0.28 for 2 CDs rip with standard encoding options. +More advanced encoding options such as those listed here for +libavcodec +and +Xvid +should make it possible to get the same quality with CQ ranging from +0.18 to 0.20 for a 1 CD rip, and 0.24 to 0.26 for a 2 CD rip. +With MPEG-4 AVC codecs such as x264, +you can use a CQ ranging from 0.14 to 0.16 with standard encoding options, +and should be able to go as low as 0.10 to 0.12 with +x264's advanced encoding settings. +

+Please take note that the CQ is just an indicative figure, as depending on +the encoded content, a CQ of 0.18 may look just fine for a Bergman, contrary +to a movie such as The Matrix, which contains many high-motion scenes. +On the other hand, it is worthless to raise CQ higher than 0.30 as you would +be wasting bits without any noticeable quality gain. +Also note that as mentioned earlier in this guide, low resolution videos +need a bigger CQ (compared to, for instance, DVD resolution) to look good. +

14.1.6. Filtering

+Learning how to use MEncoder's video filters +is essential to producing good encodes. +All video processing is performed through the filters -- cropping, +scaling, color adjustment, noise removal, sharpening, deinterlacing, +telecine, inverse telecine, and deblocking, just to name a few. +Along with the vast number of supported input formats, the variety of +filters available in MEncoder is one of its +main advantages over other similar programs. +

+Filters are loaded in a chain using the -vf option: + +

-vf filter1=options,filter2=options,...

+ +Most filters take several numeric options separated by colons, but +the syntax for options varies from filter to filter, so read the man +page for details on the filters you wish to use. +

+Filters operate on the video in the order they are loaded. +For example, the following chain: + +

-vf crop=688:464:12:4,scale=640:464

+ +will first crop the 688x464 region of the picture with upper-left +corner at (12,4), and then scale the result down to 640x464. +

+Certain filters need to be loaded at or near the beginning of the +filter chain, in order to take advantage of information from the +video decoder that will be lost or invalidated by other filters. +The principal examples are pp (postprocessing, only +when it is performing deblock or dering operations), +spp (another postprocessor to remove MPEG artifacts), +pullup (inverse telecine), and +softpulldown (for converting soft telecine to hard telecine). +

+In general, you want to do as little filtering as possible to the movie +in order to remain close to the original DVD source. Cropping is often +necessary (as described above), but avoid to scale the video. Although +scaling down is sometimes preferred to using higher quantizers, we want +to avoid both these things: remember that we decided from the start to +trade bits for quality. +

+Also, do not adjust gamma, contrast, brightness, etc. What looks good +on your display may not look good on others. These adjustments should +be done on playback only. +

+One thing you might want to do, however, is pass the video through a +very light denoise filter, such as -vf hqdn3d=2:1:2. +Again, it is a matter of putting those bits to better use: why waste them +encoding noise when you can just add that noise back in during playback? +Increasing the parameters for hqdn3d will further +improve compressibility, but if you increase the values too much, you +risk degrading the image visibily. The suggested values above +(2:1:2) are quite conservative; you should feel free to +experiment with higher values and observe the results for yourself. +

14.1.7. Interlacing and Telecine

+Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some +processing must be done to this 24 fps video to make it run at the correct +NTSC framerate. The process is called 3:2 pulldown, commonly referred to +as telecine (because pulldown is often applied during the telecine +process), and, naively described, it works by slowing the film down to +24000/1001 fps, and repeating every fourth frame. +

+No special processing, however, is done to the video for PAL DVDs, which +run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown, +but this does not become an issue in practice.) The 24 fps film is simply +played back at 25 fps. The result is that the movie runs slightly faster, +but unless you are an alien, you probably will not notice the difference. +Most PAL DVDs have pitch-corrected audio, so when they are played back at +25 fps things will sound right, even though the audio track (and hence the +whole movie) has a running time that is 4% less than NTSC DVDs. +

+Because the video in a PAL DVD has not been altered, you need not worry +much about framerate. The source is 25 fps, and your rip will be 25 +fps. However, if you are ripping an NTSC DVD movie, you may need to +apply inverse telecine. +

+For movies shot at 24 fps, the video on the NTSC DVD is either telecined +30000/1001, or else it is progressive 24000/1001 fps and intended to be +telecined on-the-fly by a DVD player. On the other hand, TV series are usually +only interlaced, not telecined. This is not a hard rule: some TV series +are interlaced (such as Buffy the Vampire Slayer) whereas some are a +mixture of progressive and interlaced (such as Angel, or 24). +

+It is highly recommended that you read the section on +How to deal with telecine and interlacing in NTSC DVDs +to learn how to handle the different possibilities. +

+However, if you are mostly just ripping movies, likely you are either +dealing with 24 fps progressive or telecined video, in which case you can +use the pullup filter -vf +pullup,softskip. +

14.1.8. Encoding interlaced video

+If the movie you want to encode is interlaced (NTSC video or +PAL video), you will need to choose whether you want to +deinterlace or not. +While deinterlacing will make your movie usable on progressive +scan displays such a computer monitors and projectors, it comes +at a cost: The fieldrate of 50 or 60000/1001 fields per second +is halved to 25 or 30000/1001 frames per second, and roughly half of +the information in your movie will be lost during scenes with +significant motion. +

+Therefore, if you are encoding for high quality archival purposes, +it is recommended not to deinterlace. +You can always deinterlace the movie at playback time when +displaying it on progressive scan devices. +The power of currently available computers forces players to use a +deinterlacing filter, which results in a slight degradation in +image quality. +But future players will be able to mimic the interlaced display of +a TV, deinterlacing to full fieldrate and interpolating 50 or +60000/1001 entire frames per second from the interlaced video. +

+Special care must be taken when working with interlaced video: +

  1. + Crop height and y-offset must be multiples of 4. +

  2. + Any vertical scaling must be performed in interlaced mode. +

  3. + Postprocessing and denoising filters may not work as expected + unless you take special care to operate them a field at a time, + and they may damage the video if used incorrectly. +

+With these things in mind, here is our first example: +

+mencoder capture.avi -mc 0 -oac lavc -ovc lavc -lavcopts \
+    vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
+

+Note the ilme and ildct options. +

14.1.9. Notes on Audio/Video synchronization

+MEncoder's audio/video synchronization +algorithms were designed with the intention of recovering files with +broken sync. +However, in some cases they can cause unnecessary skipping and duplication of +frames, and possibly slight A/V desync, when used with proper input +(of course, A/V sync issues apply only if you process or copy the +audio track while transcoding the video, which is strongly encouraged). +Therefore, you may have to switch to basic A/V sync with +the -mc 0 option, or put this in your +~/.mplayer/mencoder config file, as long as +you are only working with good sources (DVD, TV capture, high quality +MPEG-4 rips, etc) and not broken ASF/RM/MOV files. +

+If you want to further guard against strange frame skips and +duplication, you can use both -mc 0 and +-noskip. +This will prevent all A/V sync, and copy frames +one-to-one, so you cannot use it if you will be using any filters that +unpredictably add or drop frames, or if your input file has variable +framerate! +Therefore, using -noskip is not in general recommended. +

+The so-called "three-pass" audio encoding which +MEncoder supports has been reported to cause A/V +desync. +This will definitely happen if it is used in conjunction with certain +filters, therefore, it is now recommended not to +use three-pass audio mode. +This feature is only left for compatibility purposes and for expert +users who understand when it is safe to use and when it is not. +If you have never heard of three-pass mode before, forget that we +even mentioned it! +

+There have also been reports of A/V desync when encoding from stdin +with MEncoder. +Do not do this! Always use a file or CD/DVD/etc device as input. +

14.1.10. Choosing the video codec

+Which video codec is best to choose depends on several factors, +like size, quality, streamability, usability and popularity, some of +which widely depend on personal taste and technical constraints. +

  • + Compression efficiency: + It is quite easy to understand that most newer-generation codecs are + made to increase quality and compression. + Therefore, the authors of this guide and many other people suggest that + you cannot go wrong + [2] + when choosing MPEG-4 AVC codecs like + x264 instead of MPEG-4 ASP codecs + such as libavcodec MPEG-4 or + Xvid. + (Advanced codec developers may be interested in reading Michael + Niedermayer's opinion on + "why MPEG4-ASP sucks".) + Likewise, you should get better quality using MPEG-4 ASP than you + would with MPEG-2 codecs. +

    + However, newer codecs which are in heavy development can suffer from + bugs which have not yet been noticed and which can ruin an encode. + This is simply the tradeoff for using bleeding-edge technology. +

    + What is more, beginning to use a new codec requires that you spend some + time becoming familiar with its options, so that you know what + to adjust to achieve a desired picture quality. +

  • + Hardware compatibility: + It usually takes a long time for standalone video players to begin to + include support for the latest video codecs. + As a result, most only support MPEG-1 (like VCD, XVCD and KVCD), MPEG-2 + (like DVD, SVCD and KVCD) and MPEG-4 ASP (like DivX, + libavcodec's LMP4 and + Xvid) + (Beware: Usually, not all MPEG-4 ASP features are supported). + Please refer to the technical specs of your player (if they are available), + or google around for more information. +

  • + Best quality per encoding time: + Codecs that have been around for some time (such as + libavcodec MPEG-4 and + Xvid) are usually heavily + optimized with all kinds of smart algorithms and SIMD assembly code. + That is why they tend to yield the best quality per encoding time ratio. + However, they may have some very advanced options that, if enabled, + will make the encode really slow for marginal gains. +

    + If you are after blazing speed you should stick around the default + settings of the video codec (although you should still try the other + options which are mentioned in other sections of this guide). +

    + You may also consider choosing a codec which can do multi-threaded + processing, though this is only useful for users of machines with + several CPUs. + libavcodec MPEG-4 does + allow that, but speed gains are limited, and there is a slight + negative effect on picture quality. + Xvid's multi-threaded encoding, + activated by the threads option, can be used to + boost encoding speed — by about 40-60% in typical cases — + with little if any picture degradation. + x264 also allows multi-threaded + encoding, which currently speeds up encoding by 94% per CPU core while + lowering PSNR between 0.005dB and 0.01dB on a typical setup. +

  • + Personal taste: + This is where it gets almost irrational: For the same reason that some + hung on to DivX 3 for years when newer codecs were already doing wonders, + some folks will prefer Xvid + or libavcodec MPEG-4 over + x264. +

    + You should make your own judgement; do not take advice from people who + swear by one codec. + Take a few sample clips from raw sources and compare different + encoding options and codecs to find one that suits you best. + The best codec is the one you master, and the one that looks + best to your eyes on your display + [3]! +

+Please refer to the section +selecting codecs and container formats +to get a list of supported codecs. +

14.1.11. Audio

+Audio is a much simpler problem to solve: if you care about quality, just +leave it as is. +Even AC-3 5.1 streams are at most 448Kbit/s, and they are worth every bit. +You might be tempted to transcode the audio to high quality Vorbis, but +just because you do not have an A/V receiver for AC-3 pass-through today +does not mean you will not have one tomorrow. Future-proof your DVD rips by +preserving the AC-3 stream. +You can keep the AC-3 stream either by copying it directly into the video +stream during the encoding. +You can also extract the AC-3 stream in order to mux it into containers such +as NUT or Matroska. +

+mplayer source_file.vob -aid 129 -dumpaudio -dumpfile sound.ac3
+

+will dump into the file sound.ac3 the +audio track number 129 from the file +source_file.vob (NB: DVD VOB files +usually use a different audio numbering, +which means that the VOB audio track 129 is the 2nd audio track of the file). +

+But sometimes you truly have no choice but to further compress the +sound so that more bits can be spent on the video. +Most people choose to compress audio with either MP3 or Vorbis audio codecs. +While the latter is a very space-efficient codec, MP3 is better supported +by hardware players, although this trend is changing. +

+Do not use -nosound when encoding +a file with audio, even if you will be encoding and muxing audio +separately later. +Though it may work in ideal cases, using -nosound is +likely to hide some problems in your encoding command line setting. +In other words, having a soundtrack during your encode assures you that, +provided you do not see messages such as +“Too many audio packets in the bufferâ€, you will be able +to get proper sync. +

+You need to have MEncoder process the sound. +You can for example copy the orignal soundtrack during the encode with +-oac copy or convert it to a "light" 4 kHz mono WAV +PCM with -oac pcm -channels 1 -srate 4000. +Otherwise, in some cases, it will generate a video file that will not sync +with the audio. +Such cases are when the number of video frames in the source file does +not match up to the total length of audio frames or whenever there +are discontinuities/splices where there are missing or extra audio frames. +The correct way to handle this kind of problem is to insert silence or +cut audio at these points. +However MPlayer cannot do that, so if you +demux the AC-3 audio and encode it with a separate app (or dump it to PCM with +MPlayer), the splices will be left incorrect +and the only way to correct them is to drop/dup video frames at the +splice. +As long as MEncoder sees the audio when it is +encoding the video, it can do this dropping/duping (which is usually OK +since it takes place at full black/scenechange), but if +MEncoder cannot see the audio, it will just +process all frames as-is and they will not fit the final audio stream when +you for example merge your audio and video track into a Matroska file. +

+First of all, you will have to convert the DVD sound into a WAV file that the +audio codec can use as input. +For example: +

+mplayer source_file.vob -ao pcm:file=destination_sound.wav \
+    -vc dummy -aid 1 -vo null
+

+will dump the second audio track from the file +source_file.vob into the file +destination_sound.wav. +You may want to normalize the sound before encoding, as DVD audio tracks +are commonly recorded at low volumes. +You can use the tool normalize for instance, +which is available in most distributions. +If you are using Windows, a tool such as BeSweet +can do the same job. +You will compress in either Vorbis or MP3. +For example: +

oggenc -q1 destination_sound.wav

+will encode destination_sound.wav with +the encoding quality 1, which is roughly equivalent to 80Kb/s, and +is the minimum quality at which you should encode if you care about +quality. +Please note that MEncoder currently cannot +mux Vorbis audio tracks +into the output file because it only supports AVI and MPEG +containers as an output, each of which may lead to audio/video +playback synchronization problems with some players when the AVI file +contain VBR audio streams such as Vorbis. +Do not worry, this document will show you how you can do that with third +party programs. +

14.1.12. Muxing

+Now that you have encoded your video, you will most likely want +to mux it with one or more audio tracks into a movie container, such +as AVI, MPEG, Matroska or NUT. +MEncoder is currently only able to natively output +audio and video into MPEG and AVI container formats. +for example: +

+mencoder -oac copy -ovc copy  -o output_movie.avi \
+    -audiofile input_audio.mp2 input_video.avi
+

+This would merge the video file input_video.avi +and the audio file input_audio.mp2 +into the AVI file output_movie.avi. +This command works with MPEG-1 layer I, II and III (more commonly known +as MP3) audio, WAV and a few other audio formats too. +

+MEncoder features experimental support for +libavformat, which is a +library from the FFmpeg project that supports muxing and demuxing +a variety of containers. +For example: +

+mencoder -oac copy -ovc copy -o output_movie.asf -audiofile input_audio.mp2 \
+    input_video.avi -of lavf -lavfopts format=asf
+

+This will do the same thing as the previous example, except that +the output container will be ASF. +Please note that this support is highly experimental (but getting +better every day), and will only work if you compiled +MPlayer with the support for +libavformat enabled (which +means that a pre-packaged binary version will not work in most cases). +

14.1.12.1. Improving muxing and A/V sync reliability

+You may experience some serious A/V sync problems while trying to mux +your video and some audio tracks, where no matter how you adjust the +audio delay, you will never get proper sync. +That may happen when you use some video filters that will drop or +duplicate some frames, like the inverse telecine filters. +It is strongly encouraged to append the harddup video +filter at the end of the filter chain to avoid this kind of problem. +

+Without harddup, if MEncoder +wants to duplicate a frame, it relies on the muxer to put a mark on the +container so that the last frame will be displayed again to maintain +sync while writing no actual frame. +With harddup, MEncoder +will instead just push the last frame displayed again into the filter +chain. +This means that the encoder receives the exact +same frame twice, and compresses it. +This will result in a slightly bigger file, but will not cause problems +when demuxing or remuxing into other container formats. +

+You may also have no choice but to use harddup with +container formats that are not too tightly linked with +MEncoder such as the ones supported through +libavformat, which may not +support frame duplication at the container level. +

14.1.12.2. Limitations of the AVI container

+Although it is the most widely-supported container format after MPEG-1, +AVI also has some major drawbacks. +Perhaps the most obvious is the overhead. +For each chunk of the AVI file, 24 bytes are wasted on headers and index. +This translates into a little over 5 MB per hour, or 1-2.5% +overhead for a 700 MB movie. This may not seem like much, but it could +mean the difference between being able to use 700 kbit/sec video or +714 kbit/sec, and every bit of quality counts. +

+In addition this gross inefficiency, AVI also has the following major +limitations: +

  1. + Only fixed-fps content can be stored. This is particularly limiting + if the original material you want to encode is mixed content, for + example a mix of NTSC video and film material. + Actually there are hacks that can be used to store mixed-framerate + content in AVI, but they increase the (already huge) overhead + fivefold or more and so are not practical. +

  2. + Audio in AVI files must be either constant-bitrate (CBR) or + constant-framesize (i.e. all frames decode to the same number of + samples). + Unfortunately, the most efficient codec, Vorbis, does not meet + either of these requirements. + Therefore, if you plan to store your movie in AVI, you will have to + use a less efficient codec such as MP3 or AC-3. +

+Having said all that, MEncoder does not +currently support variable-fps output or Vorbis encoding. +Therefore, you may not see these as limitations if +MEncoder is the +only tool you will be using to produce your encodes. +However, it is possible to use MEncoder +only for video encoding, and then use external tools to encode +audio and mux it into another container format. +

14.1.12.3. Muxing into the Matroska container

+Matroska is a free, open standard container format, aiming +to offer a lot of advanced features, which older containers +like AVI cannot handle. +For example, Matroska supports variable bitrate audio content +(VBR), variable framerates (VFR), chapters, file attachments, +error detection code (EDC) and modern A/V Codecs like "Advanced Audio +Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing +handled by AVI. +

+The tools required to create Matroska files are collectively called +mkvtoolnix, and are available for most +Unix platforms as well as Windows. +Because Matroska is an open standard you may find other +tools that suit you better, but since mkvtoolnix is the most +common, and is supported by the Matroska team itself, we will +only cover its usage. +

+Probably the easiest way to get started with Matroska is to use +MMG, the graphical frontend shipped with +mkvtoolnix, and follow the +guide to mkvmerge GUI (mmg) +

+You may also mux audio and video files using the command line: +

+mkvmerge -o output.mkv input_video.avi input_audio1.mp3 input_audio2.ac3
+

+This would merge the video file input_video.avi +and the two audio files input_audio1.mp3 +and input_audio2.ac3 into the Matroska +file output.mkv. +Matroska, as mentioned earlier, is able to do much more than that, like +multiple audio tracks (including fine-tuning of audio/video +synchronization), chapters, subtitles, splitting, etc... +Please refer to the documentation of those applications for +more details. +



[2] + Be careful, however: Decoding DVD-resolution MPEG-4 AVC videos + requires a fast machine (i.e. a Pentium 4 over 1.5GHz or a Pentium M + over 1GHz). +

[3] + The same encode may not look the same on someone else's monitor or + when played back by a different decoder, so future-proof your encodes by + playing them back on different setups. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-images.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-images.html new file mode 100644 index 0000000..73c6c48 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-images.html @@ -0,0 +1,79 @@ +13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)

13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)

+MEncoder is capable of creating movies from one +or more JPEG, PNG, TGA, or other image files. With simple framecopy it can +create MJPEG (Motion JPEG), MPNG (Motion PNG) or MTGA (Motion TGA) files. +

Explanation of the process:

  1. + MEncoder decodes the input + image(s) with libjpeg (when decoding + PNGs, it will use libpng). +

  2. + MEncoder then feeds the decoded image to the + chosen video compressor (DivX4, Xvid, FFmpeg msmpeg4, etc.). +

Examples.  +The explanation of the -mf option is in the man page. + +

+Creating an MPEG-4 file from all the JPEG files in the current directory: +

+mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \
+    -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +

+Creating an MPEG-4 file from some JPEG files in the current directory: +

+mencoder mf://frame001.jpg,frame002.jpg -mf w=800:h=600:fps=25:type=jpg \
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +

+Creating an MPEG-4 file from explicit list of JPEG files (list.txt in current +directory contains the list of files to use as source, one per line): +

+mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \ 
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +You can mix different types of images, regardless of the method you use +— individual filenames, wildcard or file with list — provided of +course they have the same dimensions. +So you can e.g. take title frame from PNG file, +and then put a slideshow of your JPEG photos. + +

+Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current +directory: +

+mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi
+

+

+ +

+Creating an uncompressed file from all the PNG files in the current directory: +

+mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi
+

+

+ +

Note

+Width must be integer multiple of 4, it is a limitation of the RAW RGB AVI +format. +

+ +

+Creating a Motion PNG (MPNG) file from all the PNG files in the current +directory: +

+mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi

+

+ +

+Creating a Motion TGA (MTGA) file from all the TGA files in the current +directory: +

+mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi

+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-libavcodec.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-libavcodec.html new file mode 100644 index 0000000..7bec257 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-enc-libavcodec.html @@ -0,0 +1,316 @@ +14.3. Encoding with the libavcodec codec family

14.3. Encoding with the libavcodec + codec family

+libavcodec +provides simple encoding to a lot of interesting video and audio formats. +You can encode to the following codecs (more or less up to date): +

14.3.1. libavcodec's + video codecs

+

Video codec nameDescription
mjpegMotion JPEG
ljpeglossless JPEG
jpeglsJPEG LS
targaTarga image
gifGIF image
bmpBMP image
pngPNG image
h261H.261
h263H.263
h263pH.263+
mpeg4ISO standard MPEG-4 (DivX, Xvid compatible)
msmpeg4pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)
msmpeg4v2pre-standard MPEG-4 by MS, v2 (used in old ASF files)
wmv1Windows Media Video, version 1 (AKA WMV7)
wmv2Windows Media Video, version 2 (AKA WMV8)
rv10RealVideo 1.0
rv20RealVideo 2.0
mpeg1videoMPEG-1 video
mpeg2videoMPEG-2 video
huffyuvlossless compression
ffvhuffFFmpeg modified huffyuv lossless
asv1ASUS Video v1
asv2ASUS Video v2
ffv1FFmpeg's lossless video codec
svq1Sorenson video 1
flvSorenson H.263 used in Flash Video
flashsvFlash Screen Video
dvvideoSony Digital Video
snowFFmpeg's experimental wavelet-based codec
zbmvZip Blocks Motion Video

+ +The first column contains the codec names that should be passed after the +vcodec config, +like: -lavcopts vcodec=msmpeg4 +

+An example with MJPEG compression: +

+mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
+

+

14.3.2. libavcodec's + audio codecs

+

Audio codec nameDescription
ac3Dolby Digital (AC-3)
adpcm_*Adaptive PCM formats - see supplementary table
flacFree Lossless Audio Codec (FLAC)
g726G.726 ADPCM
libamr_nb3GPP Adaptive Multi-Rate (AMR) narrow-band
libamr_wb3GPP Adaptive Multi-Rate (AMR) wide-band
libfaacAdvanced Audio Coding (AAC) - using FAAC
libgsmETSI GSM 06.10 full rate
libgsm_msMicrosoft GSM
libmp3lameMPEG-1 audio layer 3 (MP3) - using LAME
mp2MPEG-1 audio layer 2 (MP2)
pcm_*PCM formats - see supplementary table
roq_dpcmId Software RoQ DPCM
sonicexperimental FFmpeg lossy codec
soniclsexperimental FFmpeg lossless codec
vorbisVorbis
wmav1Windows Media Audio v1
wmav2Windows Media Audio v2

+ +The first column contains the codec names that should be passed after the +acodec option, like: -lavcopts acodec=ac3 +

+An example with AC-3 compression: +

+mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
+

+

+Contrary to libavcodec's video +codecs, its audio codecs do not make a wise usage of the bits they are +given as they lack some minimal psychoacoustic model (if at all) +which most other codec implementations feature. +However, note that all these audio codecs are very fast and work +out-of-the-box everywhere MEncoder has been +compiled with libavcodec (which +is the case most of time), and do not depend on external libraries. +

14.3.2.1. PCM/ADPCM format supplementary table

+

PCM/ADPCM codec nameDescription
pcm_s32lesigned 32-bit little-endian
pcm_s32besigned 32-bit big-endian
pcm_u32leunsigned 32-bit little-endian
pcm_u32beunsigned 32-bit big-endian
pcm_s24lesigned 24-bit little-endian
pcm_s24besigned 24-bit big-endian
pcm_u24leunsigned 24-bit little-endian
pcm_u24beunsigned 24-bit big-endian
pcm_s16lesigned 16-bit little-endian
pcm_s16besigned 16-bit big-endian
pcm_u16leunsigned 16-bit little-endian
pcm_u16beunsigned 16-bit big-endian
pcm_s8signed 8-bit
pcm_u8unsigned 8-bit
pcm_alawG.711 A-LAW
pcm_mulawG.711 μ-LAW
pcm_s24daudsigned 24-bit D-Cinema Audio format
pcm_zorkActivision Zork Nemesis
adpcm_ima_qtApple QuickTime
adpcm_ima_wavMicrosoft/IBM WAVE
adpcm_ima_dk3Duck DK3
adpcm_ima_dk4Duck DK4
adpcm_ima_wsWestwood Studios
adpcm_ima_smjpegSDL Motion JPEG
adpcm_msMicrosoft
adpcm_4xm4X Technologies
adpcm_xaPhillips Yellow Book CD-ROM eXtended Architecture
adpcm_eaElectronic Arts
adpcm_ctCreative 16->4-bit
adpcm_swfAdobe Shockwave Flash
adpcm_yamahaYamaha
adpcm_sbpro_4Creative VOC SoundBlaster Pro 8->4-bit
adpcm_sbpro_3Creative VOC SoundBlaster Pro 8->2.6-bit
adpcm_sbpro_2Creative VOC SoundBlaster Pro 8->2-bit
adpcm_thpNintendo GameCube FMV THP
adpcm_adxSega/CRI ADX

+

14.3.3. Encoding options of libavcodec

+Ideally, you would probably want to be able to just tell the encoder to switch +into "high quality" mode and move on. +That would probably be nice, but unfortunately hard to implement as different +encoding options yield different quality results depending on the source +material. That is because compression depends on the visual properties of the +video in question. +For example, anime and live action have very different properties and +thus require different options to obtain optimum encoding. +The good news is that some options should never be left out, like +mbd=2, trell, and v4mv. +See below for a detailed description of common encoding options. +

Options to adjust:

  • + vmax_b_frames: 1 or 2 is good, depending on + the movie. + Note that if you need to have your encode be decodable by DivX5, you + need to activate closed GOP support, using + libavcodec's cgop + option, but you need to deactivate scene detection, which + is not a good idea as it will hurt encode efficiency a bit. +

  • + vb_strategy=1: helps in high-motion scenes. + On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along + with vb_strategy=1 helps. +

  • + dia: motion search range. Bigger is better + and slower. + Negative values are a completely different scale. + Good values are -1 for a fast encode, or 2-4 for slower. +

  • + predia: motion search pre-pass. + Not as important as dia. Good values are 1 (default) to 4. Requires preme=2 + to really be useful. +

  • + cmp, subcmp, precmp: Comparison function for + motion estimation. + Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate + distortion). + 0 is fastest, and sufficient for precmp. + For cmp and subcmp, 2 is good for anime, and 3 is good for live action. + 6 may or may not be slightly better, but is slow. +

  • + last_pred: Number of motion predictors to + take from the previous frame. + 1-3 or so help at little speed cost. + Higher values are slow for no extra gain. +

  • + cbp, mv0: Controls the selection of + macroblocks. Small speed cost for small quality gain. +

  • + qprd: adaptive quantization based on the + macroblock's complexity. + May help or hurt depending on the video and other options. + This can cause artifacts unless you set vqmax to some reasonably small value + (6 is good, maybe as low as 4); vqmin=1 should also help. +

  • + qns: very slow, especially when combined + with qprd. + This option will make the encoder minimize noise due to compression + artifacts instead of making the encoded video strictly match the source. + Do not use this unless you have already tweaked everything else as far as it + will go and the results still are not good enough. +

  • + vqcomp: Tweak ratecontrol. + What values are good depends on the movie. + You can safely leave this alone if you want. + Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts + them on high-complexity scenes (default: 0.5, range: 0-1. recommended range: + 0.5-0.7). +

  • + vlelim, vcelim: Sets the single coefficient + elimination threshold for luminance and chroma planes. + These are encoded separately in all MPEG-like algorithms. + The idea behind these options is to use some good heuristics to determine + when the change in a block is less than the threshold you specify, and in + such a case, to just encode the block as "no change". + This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9 + seem to be good for live movies, but seem not to help with anime; + when encoding animation, you should probably leave them unchanged. +

  • + qpel: Quarter pixel motion estimation. + MPEG-4 uses half pixel precision for its motion search by default, + therefore this option comes with an overhead as more information will be + stored in the encoded file. + The compression gain/loss depends on the movie, but it is usually not very + effective on anime. + qpel always incurs a significant cost in CPU decode time (+25% in + practice). +

  • + psnr: does not affect the actual encoding, + but writes a log file giving the type/size/quality of each frame, and + prints a summary of PSNR (Peak Signal to Noise Ratio) at the end. +

Options not recommended to play with:

  • + vme: The default is best. +

  • + lumi_mask, dark_mask: Psychovisual adaptive + quantization. + You do not want to play with those options if you care about quality. + Reasonable values may be effective in your case, but be warned this is very + subjective. +

  • + scplx_mask: Tries to prevent blocky + artifacts, but postprocessing is better. +

14.3.4. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

+

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualityvcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=26fps0dB
High qualityvcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo15fps-0.5dB
Fastvcodec=mpeg4:mbd=2:trell:v4mv:turbo42fps-0.74dB
Realtimevcodec=mpeg4:mbd=2:turbo54fps-1.21dB

+

14.3.5. Custom inter/intra matrices

+With this feature of +libavcodec +you are able to set custom inter (I-frames/keyframes) and intra +(P-frames/predicted frames) matrices. It is supported by many of the codecs: +mpeg1video and mpeg2video +are reported as working. +

+A typical usage of this feature is to set the matrices preferred by the +KVCD specifications. +

+The KVCD "Notch" Quantization Matrix: +

+Intra: +

+ 8  9 12 22 26 27 29 34
+ 9 10 14 26 27 29 34 37
+12 14 18 27 29 34 37 38
+22 26 27 31 36 37 38 40
+26 27 29 36 39 38 40 48
+27 29 34 37 38 40 48 58
+29 34 37 38 40 48 58 69
+34 37 38 40 48 58 69 79
+

+ +Inter: +

+16 18 20 22 24 26 28 30
+18 20 22 24 26 28 30 32
+20 22 24 26 28 30 32 34
+22 24 26 30 32 32 34 36
+24 26 28 32 34 34 36 38
+26 28 30 32 34 36 38 40
+28 30 32 34 36 38 42 42
+30 32 34 36 38 40 42 44
+

+

+Usage: +

+mencoder input.avi -o output.avi -oac copy -ovc lavc \
+    -lavcopts inter_matrix=...:intra_matrix=...
+

+

+

+mencoder input.avi -ovc lavc -lavcopts \
+vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
+12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,\
+29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
+:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
+28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,\
+36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
+

+

14.3.6. Example

+So, you have just bought your shiny new copy of Harry Potter and the Chamber +of Secrets (widescreen edition, of course), and you want to rip this DVD +so that you can add it to your Home Theatre PC. This is a region 1 DVD, +so it is NTSC. The example below will still apply to PAL, except you will +omit -ofps 24000/1001 (because the output framerate is the +same as the input framerate), and of course the crop dimensions will be +different. +

+After running mplayer dvd://1, we follow the process +detailed in the section How to deal +with telecine and interlacing in NTSC DVDs and discover that it is +24000/1001 fps progressive video, which means that we need not use an inverse +telecine filter, such as pullup or +filmdint. +

+Next, we want to determine the appropriate crop rectangle, so we use the +cropdetect filter: +

mplayer dvd://1 -vf cropdetect

+Make sure you seek to a fully filled frame (such as a bright scene, +past the opening credits and logos), and +you will see in MPlayer's console output: +

crop area: X: 0..719  Y: 57..419  (-vf crop=720:362:0:58)

+We then play the movie back with this filter to test its correctness: +

mplayer dvd://1 -vf crop=720:362:0:58

+And we see that it looks perfectly fine. Next, we ensure the width and +height are a multiple of 16. The width is fine, however the height is +not. Since we did not fail 7th grade math, we know that the nearest +multiple of 16 lower than 362 is 352. +

+We could just use crop=720:352:0:58, but it would be nice +to take a little off the top and a little off the bottom so that we +retain the center. We have shrunk the height by 10 pixels, but we do not +want to increase the y-offset by 5-pixels since that is an odd number and +will adversely affect quality. Instead, we will increase the y-offset by +4 pixels: +

mplayer dvd://1 -vf crop=720:352:0:62

+Another reason to shave pixels from both the top and the bottom is that we +ensure we have eliminated any half-black pixels if they exist. Note that if +your video is telecined, make sure the pullup filter (or +whichever inverse telecine filter you decide to use) appears in the filter +chain before you crop. If it is interlaced, deinterlace before cropping. +(If you choose to preserve the interlaced video, then make sure your +vertical crop offset is a multiple of 4.) +

+If you are really concerned about losing those 10 pixels, you might +prefer instead to scale the dimensions down to the nearest multiple of 16. +The filter chain would look like: +

-vf crop=720:362:0:58,scale=720:352

+Scaling the video down like this will mean that some small amount of +detail is lost, though it probably will not be perceptible. Scaling up will +result in lower quality (unless you increase the bitrate). Cropping +discards those pixels altogether. It is a tradeoff that you will want to +consider for each circumstance. For example, if the DVD video was made +for television, you might want to avoid vertical scaling, since the line +sampling corresponds to the way the content was originally recorded. +

+On inspection, we see that our movie has a fair bit of action and high +amounts of detail, so we pick 2400Kbit for our bitrate. +

+We are now ready to do the two pass encode. Pass one: +

+mencoder dvd://1 -ofps 24000/1001 -oac copy -o Harry_Potter_2.avi -ovc lavc \
+    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \
+    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+

+And pass two is the same, except that we specify vpass=2: +

+mencoder dvd://1 -ofps 24000/1001 -oac copy -o Harry_Potter_2.avi -ovc lavc \
+    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \
+    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+

+

+The options v4mv:mbd=2:trell will greatly increase the +quality at the expense of encoding time. There is little reason to leave +these options out when the primary goal is quality. The options +cmp=3:subcmp=3 select a comparison function that +yields higher quality than the defaults. You might try experimenting with +this parameter (refer to the man page for the possible values) as +different functions can have a large impact on quality depending on the +source material. For example, if you find +libavcodec produces too much +blocky artifacting, you could try selecting the experimental NSSE as +comparison function via *cmp=10. +

+For this movie, the resulting AVI will be 138 minutes long and nearly +3GB. And because you said that file size does not matter, this is a +perfectly acceptable size. However, if you had wanted it smaller, you +could try a lower bitrate. Increasing bitrates have diminishing +returns, so while we might clearly see an improvement from 1800Kbit to +2000Kbit, it might not be so noticeable above 2000Kbit. Feel +free to experiment until you are happy. +

+Because we passed the source video through a denoise filter, you may want +to add some of it back during playback. This, along with the +spp post-processing filter, drastically improves the +perception of quality and helps eliminate blocky artifacts in the video. +With MPlayer's autoq option, +you can vary the amount of post-processing done by the spp filter +depending on available CPU. Also, at this point, you may want to apply +gamma and/or color correction to best suit your display. For example: +

+mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-extractsub.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-extractsub.html new file mode 100644 index 0000000..522525f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-extractsub.html @@ -0,0 +1,35 @@ +13.9. Extracting DVD subtitles to VOBsub file

13.9. Extracting DVD subtitles to VOBsub file

+MEncoder is capable of extracting subtitles from +a DVD into VOBsub formatted files. They consist of a pair of files ending in +.idx and .sub and are usually +packaged in a single .rar archive. +MPlayer can play these with the +-vobsub and -vobsubid options. +

+You specify the basename (i.e without the .idx or +.sub extension) of the output files with +-vobsubout and the index for this subtitle in the +resulting files with -vobsuboutindex. +

+If the input is not from a DVD you should use -ifo to +indicate the .ifo file needed to construct the +resulting .idx file. +

+If the input is not from a DVD and you do not have the +.ifo file you will need to use the +-vobsubid option to let it know what language id to put in +the .idx file. +

+Each run will append the running subtitle if the .idx +and .sub files already exist. So you should remove any +before starting. +

Example 13.5. Copying two subtitles from a DVD while doing two pass encoding

+rm subtitles.idx subtitles.sub
+mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
+    -vobsubout subtitles -vobsuboutindex 0 -sid 2
+mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -vobsubout subtitles -vobsuboutindex 1 -sid 5

Example 13.6. Copying a French subtitle from an MPEG file

+rm subtitles.idx subtitles.sub
+mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 \
+    -vobsuboutid fr -sid 1 -nosound -ovc copy
+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-handheld-psp.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-handheld-psp.html new file mode 100644 index 0000000..b0133f7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-handheld-psp.html @@ -0,0 +1,29 @@ +13.4. Encoding to Sony PSP video format

13.4. Encoding to Sony PSP video format

+MEncoder supports encoding to Sony PSP's video +format, but, depending on the revision of the PSP software, the constraints +may differ. +You should be safe if you respect the following constraints: +

  • + Bitrate: it should not exceed 1500kbps, + however, past versions supported pretty much any bitrate as long as the + header claimed it was not too high. +

  • + Dimensions: the width and height of the + PSP video should be multiples of 16, and the product width * height must + be <= 64000. + Under some circumstances, it may be possible for the PSP to play higher + resolutions. +

  • + Audio: its samplerate should be 24kHz + for MPEG-4 videos, and 48kHz for H.264. +

+

Example 13.4. encode for PSP

+

+mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf \
+    -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \
+    -lavfopts format=psp \
+    input.video -o output.psp
+

+Note that you can set the title of the video with +-info name=MovieTitle. +


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg.html new file mode 100644 index 0000000..cf8e140 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg.html @@ -0,0 +1,40 @@ +13.5. Encoding to MPEG format

13.5. Encoding to MPEG format

+MEncoder can create MPEG (MPEG-PS) format output +files. +Usually, when you are using MPEG-1 or MPEG-2 video, it is because you are +encoding for a constrained format such as SVCD, VCD, or DVD. +The specific requirements for these formats are explained in the + VCD and DVD creation guide +section. +

+To change MEncoder's output file format, +use the -of mpeg option. +

+Example: +

+mencoder input.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \
+    -oac copy other_options -o output.mpg
+

+Creating an MPEG-1 file suitable to be played on systems with minimal +multimedia support, such as default Windows installs: +

+mencoder input.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
+    -o output.mpg -oac lavc -lavcoptc acodec=mp2:abitrate=224 -ovc lavc \
+    -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
+

+Same, but using libavformat MPEG muxer: +

+mencoder input.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \
+    -lavfopts format=mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
+    -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0
+

+

Hint:

+If for some reason the video quality of the second pass did not +satisfy you, you may re-run your video encode with a different target +bitrate, provided that you saved the statistics file of the previous +pass. +This is possible because the statistics file's primary goal is to +record the complexity of each frame, which doesn't depend heavily on +bitrate. You should note, though, that you'll get the best results if +all passes are run with target bitrates that do not differ very much. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg4.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg4.html new file mode 100644 index 0000000..4a1135d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-mpeg4.html @@ -0,0 +1,31 @@ +13.3. Encoding two pass MPEG-4 ("DivX")

13.3. Encoding two pass MPEG-4 ("DivX")

+The name comes from the fact that this method encodes the file +twice. The first encoding (dubbed pass) creates some +temporary files (*.log) with a size of few megabytes, do +not delete them yet (you can delete the AVI or rather just not create any video +by redirecting it into /dev/null). +In the second pass, the two pass output +file is created, using the bitrate data from the temporary files. The +resulting file will have much better image quality. If this is the first +time you heard about this, you should consult some guides available on the +net. +

Example 13.2. copy audio track

+Two pass encode of the second track a DVD to an MPEG-4 ("DivX") +AVI while copying the audio track. +

+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -oac copy -o output.avi
+

+


Example 13.3. encode audio track

+Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while encoding +the audio track to MP3. +Be careful using this method as it may lead to audio/video desync in +some cases. +

+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
+    -oac mp3lame -lameopts vbr=3 -o /dev/null
+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -oac mp3lame -lameopts vbr=3 -o output.avi
+

+


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-quicktime-7.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-quicktime-7.html new file mode 100644 index 0000000..81436b9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-quicktime-7.html @@ -0,0 +1,223 @@ +14.7. Using MEncoder to create QuickTime-compatible files

14.7. Using MEncoder to create +QuickTime-compatible files

14.7.1. Why would one want to produce QuickTime-compatible Files?

+ There are several reasons why producing + QuickTime-compatible files can be desirable. +

  • + You want any computer illiterate to be able to watch your encode on + any major platform (Windows, Mac OS X, Unices …). +

  • + QuickTime is able to take advantage of more + hardware and software acceleration features of Mac OS X than + platform-independent players like MPlayer + or VLC. + That means that your encodes have a chance to be played smoothly by older + G4-powered machines. +

  • + QuickTime 7 supports the next-generation codec H.264, + which yields significantly better picture quality than previous codec + generations (MPEG-2, MPEG-4 …). +

14.7.2. QuickTime 7 limitations

+ QuickTime 7 supports H.264 video and AAC audio, + but it does not support them muxed in the AVI container format. + However, you can use MEncoder to encode + the video and audio, and then use an external program such as + mp4creator (part of the + MPEG4IP suite) + to remux the video and audio tracks into an MP4 container. +

+ QuickTime's support for H.264 is limited, + so you will need to drop some advanced features. + If you encode your video with features that + QuickTime 7 does not support, + QuickTime-based players will show you a pretty + white screen instead of your expected video. +

  • + B-frames: + QuickTime 7 supports a maximum of 1 B-frame, i.e. + -x264encopts bframes=1. This means that + b_pyramid and weight_b will have no + effect, since they require bframes to be greater than 1. +

  • + Macroblocks: + QuickTime 7 does not support 8x8 DCT macroblocks. + This option (8x8dct) is off by default, so just be sure + not to explicitly enable it. This also means that the i8x8 + option will have no effect, since it requires 8x8dct. +

  • + Aspect ratio: + QuickTime 7 does not support SAR (sample + aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read + the section on scaling + for a workaround. +

14.7.3. Cropping

+ Suppose you want to rip your freshly bought copy of "The Chronicles of + Narnia". Your DVD is region 1, + which means it is NTSC. The example below would still apply to PAL, + except you would omit -ofps 24000/1001 and use slightly + different crop and scale dimensions. +

+ After running mplayer dvd://1, you follow the process + detailed in the section How to deal + with telecine and interlacing in NTSC DVDs and discover that it is + 24000/1001 fps progressive video. This simplifies the process somewhat, + since you do not need to use an inverse telecine filter such as + pullup or a deinterlacing filter such as + yadif. +

+ Next, you need to crop out the black bars from the top and bottom of the + video, as detailed in this + previous section. +

14.7.4. Scaling

+ The next step is truly heartbreaking. + QuickTime 7 does not support MPEG-4 videos + with a sample aspect ratio other than 1, so you will need to upscale + (which wastes a lot of disk space) or downscale (which loses some + details of the source) the video to square pixels. + Either way you do it, this is highly inefficient, but simply cannot + be avoided if you want your video to be playable by + QuickTime 7. + MEncoder can apply the appropriate upscaling + or downscaling by specifying respectively -vf scale=-10:-1 + or -vf scale=-1:-10. + This will scale your video to the correct width for the cropped height, + rounded to the closest multiple of 16 for optimal compression. + Remember that if you are cropping, you should crop first, then scale: + +

-vf crop=720:352:0:62,scale=-10:-1

+

14.7.5. A/V sync

+ Because you will be remuxing into a different container, you should + always use the harddup option to ensure that duplicated + frames are actually duplicated in the video output. Without this option, + MEncoder will simply put a marker in the video + stream that a frame was duplicated, and rely on the client software to + show the same frame twice. Unfortunately, this "soft duplication" does + not survive remuxing, so the audio would slowly lose sync with the video. +

+ The final filter chain looks like this: +

-vf crop=720:352:0:62,scale=-10:-1,harddup

+

14.7.6. Bitrate

+ As always, the selection of bitrate is a matter of the technical properties + of the source, as explained + here, as + well as a matter of taste. + This movie has a fair bit of action and lots of detail, but H.264 video + looks good at much lower bitrates than XviD or other MPEG-4 codecs. + After much experimentation, the author of this guide chose to encode + this movie at 900kbps, and thought that it looked very good. + You may decrease bitrate if you need to save more space, or increase + it if you need to improve quality. +

14.7.7. Encoding example

+ You are now ready to encode the video. Since you care about + quality, of course you will be doing a two-pass encode. To shave off + some encoding time, you can specify the turbo option + on the first pass; this reduces subq and + frameref to 1. To save some disk space, you can + use the ss option to strip off the first few seconds + of the video. (I found that this particular movie has 32 seconds of + credits and logos.) bframes can be 0 or 1. + The other options are documented in Encoding with + the x264 codec and + the man page. + +

mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
+-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001

+ + If you have a multi-processor machine, don't miss the opportunity to + dramatically speed-up encoding by enabling + + x264's multi-threading mode + by adding threads=auto to your x264encopts + command-line. +

+ The second pass is the same, except that you specify the output file + and set pass=2. + +

mencoder dvd://1 -o narnia.avi -ss 32 -ovc x264 \
+-x264encopts pass=2:turbo:bitrate=900:frameref=5:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001

+

+ The resulting AVI should play perfectly in + MPlayer, but of course + QuickTime can not play it because it does + not support H.264 muxed in AVI. + So the next step is to remux the video into an MP4 container. +

14.7.8. Remuxing as MP4

+ There are several ways to remux AVI files to MP4. You can use + mp4creator, which is part of the + MPEG4IP suite. +

+ First, demux the AVI into separate audio and video streams using + MPlayer. + +

mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
+mplayer narnia.avi -dumpvideo -dumpfile narnia.h264

+ + The filenames are important; mp4creator + requires that AAC audio streams be named .aac + and H.264 video streams be named .h264. +

+ Now use mp4creator to create a new + MP4 file out of the audio and video streams. + +

mp4creator -create=narnia.aac narnia.mp4
+mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4

+ + Unlike the encoding step, you must specify the framerate as a + decimal (such as 23.976), not a fraction (such as 24000/1001). +

+ This narnia.mp4 file should now be playable + with any QuickTime 7 application, such as + QuickTime Player or + iTunes. If you are planning to view the + video in a web browser with the QuickTime + plugin, you should also hint the movie so that the + QuickTime plugin can start playing it + while it is still downloading. mp4creator + can create these hint tracks: + +

mp4creator -hint=1 narnia.mp4
+mp4creator -hint=2 narnia.mp4
+mp4creator -optimize narnia.mp4

+ + You can check the final result to ensure that the hint tracks were + created successfully: + +

mp4creator -list narnia.mp4

+ + You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks. + +

Track   Type    Info
+1       audio   MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
+2       video   H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
+3       hint    Payload mpeg4-generic for track 1
+4       hint    Payload H264 for track 2
+

+

14.7.9. Adding metadata tags

+ If you want to add tags to your video that show up in iTunes, you can use + AtomicParsley. + +

AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite

+ + The --metaEnema option removes any existing metadata + (mp4creator inserts its name in the + "encoding tool" tag), and --freefree reclaims the + space from the deleted metadata. + The --stik option sets the type of video (such as Movie + or TV Show), which iTunes uses to group related video files. + The --overWrite option overwrites the original file; + without it, AtomicParsley creates a new + auto-named file in the same directory and leaves the original file + untouched. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-rescale.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-rescale.html new file mode 100644 index 0000000..fa5ca0e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-rescale.html @@ -0,0 +1,17 @@ +13.6. Rescaling movies

13.6. Rescaling movies

+Often the need to resize movie images' size emerges. Its reasons can be +many: decreasing file size, network bandwidth, etc. Most people even do +rescaling when converting DVDs or SVCDs to DivX AVI. If you wish to rescale, +read the Preserving aspect ratio section. +

+The scaling process is handled by the scale video filter: +-vf scale=width:height. +Its quality can be set with the -sws option. +If it is not specified, MEncoder will use 2: bicubic. +

+Usage: +

+mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
+    -vf scale=640:480 -o output.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-codec.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-codec.html new file mode 100644 index 0000000..9016fc6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-codec.html @@ -0,0 +1,62 @@ +13.1. Selecting codecs and container formats

13.1. Selecting codecs and container formats

+Audio and video codecs for encoding are selected with the +-oac and -ovc options, respectively. +Type for instance: +

mencoder -ovc help

+to list all video codecs supported by the version of +MEncoder on your machine. +The following choices are available: +

+Audio Codecs: +

Audio codec nameDescription
mp3lameencode to VBR, ABR or CBR MP3 with LAME
lavcuse one of libavcodec's audio codecs
faacFAAC AAC audio encoder
toolameMPEG Audio Layer 2 encoder
twolameMPEG Audio Layer 2 encoder based on tooLAME
pcmuncompressed PCM audio
copydo not reencode, just copy compressed frames

+

+Video codecs: +

Video codec nameDescription
lavcuse one of libavcodec's video codecs
xvidXvid, MPEG-4 Advanced Simple Profile (ASP) codec
x264x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec
nuvnuppel video, used by some realtime applications
rawuncompressed video frames
copydo not reencode, just copy compressed frames
framenoused for 3-pass encoding (not recommended)

+

+Output container formats are selected with the -of +option. +Type: +

mencoder -of help

+to list all containers supported by the version of +MEncoder on your machine. +The following choices are available: +

+Container formats: +

Container format nameDescription
lavfone of the containers supported by + libavformat
aviAudio-Video Interleaved
mpegMPEG-1 and MPEG-2 PS
rawvideoraw video stream (no muxing - one video stream only)
rawaudioraw audio stream (no muxing - one audio stream only)

+The AVI container is the native container format for +MEncoder, which means that it's the one that +is best handled, and the one for which MEncoder +was designed. +As noted above, other container formats are usable, but you may +experience problems when using them. +

+libavformat containers: +

+If you selected libavformat +to do the muxing of the output file (by using the -of lavf), +the appropriate container format will be determined by the file extension +of the output file. +You may force a particular container format with +libavformat's +format option. + +

libavformat container nameDescription
mpgMPEG-1 and MPEG-2 PS
asfAdvanced Streaming Format
aviAudio-Video Interleaved
wavWaveform Audio
swfMacromedia Flash
flvMacromedia Flash video
rmRealMedia
auSUN AU
nutNUT open container (experimental and not yet spec-compliant)
movQuickTime
mp4MPEG-4 format
dvSony Digital Video container
mkvMatroska open audio/video container

+As you can see, libavformat +allows MEncoder to mux into a considerable +variety of containers. +Unfortunately, as MEncoder was not designed +from the beginning to support container formats other than AVI, +your should really be paranoid about the resulting file. +Please check to be sure that the audio/video synchronization is OK +and that the file can be played correctly by players other than +MPlayer. +

Example 13.1. encode to Macromedia Flash format

+Creating a Macromedia Flash video suitable for playback in a web browser +with the Macromedia Flash plugin: +

+mencoder input.avi -o output.flv -of lavf \
+    -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
+    -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
+

+


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-input.html new file mode 100644 index 0000000..5af8159 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-selecting-input.html @@ -0,0 +1,35 @@ +13.2. Selecting input file or device

13.2. Selecting input file or device

+MEncoder can encode from files or directly +from a DVD or VCD disc. +Simply include the filename on the command line to encode from a file, +or dvd://titlenumber or +vcd://tracknumber to encode +from a DVD title or VCD track. +If you have already copied a DVD to your hard drive (you can use a tool +such as dvdbackup, available on most systems), +and wish to encode from the copy, you should still use the +dvd:// syntax, along with -dvd-device +followed by the path to the copied DVD root. + +The -dvd-device and -cdrom-device +options can also be used to override the paths to the device nodes +for reading directly from disc, if the defaults of +/dev/dvd and /dev/cdrom do +not work on your system. +

+When encoding from DVD, it is often desirable to select a chapter or +range of chapters to encode. +You can use the -chapter option for this purpose. +For example, -chapter 1-4 +will only encode chapters 1 through 4 from the DVD. +This is especially useful if you will be making a 1400 MB encode +targetted for two CDs, since you can ensure the split occurs exactly +at a chapter boundary rather than in the middle of a scene. +

+If you have a supported TV capture card, you can also encode from the +TV-in device. +Use tv://channelnumber as +the filename, and -tv to configure various capture +settings. +DVB input works similarly. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-streamcopy.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-streamcopy.html new file mode 100644 index 0000000..504a397 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-streamcopy.html @@ -0,0 +1,33 @@ +13.7. Stream copying

13.7. Stream copying

+MEncoder can handle input streams in two ways: +encode or copy +them. This section is about copying. +

  • + Video stream (option -ovc copy): + nice stuff can be done :) Like, putting (not converting!) FLI or VIVO or + MPEG-1 video into an AVI file! Of course only + MPlayer can play such files :) And it probably + has no real life value at all. Rationally: video stream copying can be + useful for example when only the audio stream has to be encoded (like, + uncompressed PCM to MP3). +

  • + Audio stream (option -oac copy): + straightforward. It is possible to take an external audio file (MP3, + WAV) and mux it into the output stream. Use the + -audiofile filename option + for this. +

+Using -oac copy to copy from one container format to +another may require the use of -fafmttag to keep the +audio format tag of the original file. +For example, if you are converting an NSV file with AAC audio to an AVI +container, the audio format tag will be incorrect and it will have to +be changed. For a list of audio format tags, check +codecs.conf. +

+Example: +

+mencoder input.nsv -oac copy -fafmttag 0x706D \
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o output.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-telecine.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-telecine.html new file mode 100644 index 0000000..4bee1b8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-telecine.html @@ -0,0 +1,404 @@ +14.2. How to deal with telecine and interlacing within NTSC DVDs

14.2. How to deal with telecine and interlacing within NTSC DVDs

14.2.1. Introduction

What is telecine?  +If you do not understand much of what is written in this document, read the +Wikipedia entry on telecine. +It is an understandable and reasonably comprehensive +description of what telecine is. +

A note about the numbers.  +Many documents, including the guide linked above, refer to the fields +per second value of NTSC video as 59.94 and the corresponding frames +per second values as 29.97 (for telecined and interlaced) and 23.976 +(for progressive). For simplicity, some documents even round these +numbers to 60, 30, and 24. +

+Strictly speaking, all those numbers are approximations. Black and +white NTSC video was exactly 60 fields per second, but 60000/1001 +was later chosen to accomodate color data while remaining compatible +with contemporary black and white televisions. Digital NTSC video +(such as on a DVD) is also 60000/1001 fields per second. From this, +interlaced and telecined video are derived to be 30000/1001 frames +per second; progressive video is 24000/1001 frames per second. +

+Older versions of the MEncoder documentation +and many archived mailing list posts refer to 59.94, 29.97, and 23.976. +All MEncoder documentation has been updated +to use the fractional values, and you should use them too. +

+-ofps 23.976 is incorrect. +-ofps 24000/1001 should be used instead. +

How telecine is used.  +All video intended to be displayed on an NTSC +television set must be 60000/1001 fields per second. Made-for-TV movies +and shows are often filmed directly at 60000/1001 fields per second, but +the majority of cinema is filmed at 24 or 24000/1001 frames per +second. When cinematic movie DVDs are mastered, the video is then +converted for television using a process called telecine. +

+On a DVD, the video is never actually stored as 60000/1001 fields per +second. For video that was originally 60000/1001, each pair of fields is +combined to form a frame, resulting in 30000/1001 frames per +second. Hardware DVD players then read a flag embedded in the video +stream to determine whether the odd- or even-numbered lines should +form the first field. +

+Usually, 24000/1001 frames per second content stays as it is when +encoded for a DVD, and the DVD player must perform telecining +on-the-fly. Sometimes, however, the video is telecined +before being stored on the DVD; even though it +was originally 24000/1001 frames per second, it becomes 60000/1001 fields per +second. When it is stored on the DVD, pairs of fields are combined to form +30000/1001 frames per second. +

+When looking at individual frames formed from 60000/1001 fields per +second video, telecined or otherwise, interlacing is clearly visible +wherever there is any motion, because one field (say, the +even-numbered lines) represents a moment in time 1/(60000/1001) +seconds later than the other. Playing interlaced video on a computer +looks ugly both because the monitor is higher resolution and because +the video is shown frame-after-frame instead of field-after-field. +

Notes:

  • + This section only applies to NTSC DVDs, and not PAL. +

  • + The example MEncoder lines throughout the + document are not intended for + actual use. They are simply the bare minimum required to encode the + pertaining video category. How to make good DVD rips or fine-tune + libavcodec for maximal + quality is not within the scope of this document. +

  • + There are a couple footnotes specific to this guide, linked like this: + [1] +

14.2.2. How to tell what type of video you have

14.2.2.1. Progressive

+Progressive video was originally filmed at 24000/1001 fps, and stored +on the DVD without alteration. +

+When you play a progressive DVD in MPlayer, +MPlayer will print the following line as +soon as the movie begins to play: +

+demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
+

+From this point forward, demux_mpg should never say it finds +"30000/1001 fps NTSC content." +

+When you watch progressive video, you should never see any +interlacing. Beware, however, because sometimes there is a tiny bit +of telecine mixed in where you would not expect. I have encountered TV +show DVDs that have one second of telecine at every scene change, or +at seemingly random places. I once watched a DVD that had a +progressive first half, and the second half was telecined. If you +want to be really thorough, you can scan the +entire movie: +

mplayer dvd://1 -nosound -vo null -benchmark

+Using -benchmark makes +MPlayer play the movie as quickly as it +possibly can; still, depending on your hardware, it can take a +while. Every time demux_mpg reports a framerate change, the line +immediately above will show you the time at which the change +occurred. +

+Sometimes progressive video on DVDs is referred to as +"soft-telecine" because it is intended to +be telecined by the DVD player. +

14.2.2.2. Telecined

+Telecined video was originally filmed at 24000/1001, but was telecined +before it was written to the DVD. +

+MPlayer does not (ever) report any +framerate changes when it plays telecined video. +

+Watching a telecined video, you will see interlacing artifacts that +seem to "blink": they repeatedly appear and disappear. +You can look closely at this by +

  1. mplayer dvd://1
  2. + Seek to a part with motion. +

  3. + Use the . key to step forward one frame at a time. +

  4. + Look at the pattern of interlaced-looking and progressive-looking + frames. If the pattern you see is PPPII,PPPII,PPPII,... then the + video is telecined. If you see some other pattern, then the video + may have been telecined using some non-standard method; + MEncoder cannot losslessly convert + non-standard telecine to progressive. If you do not see any + pattern at all, then it is most likely interlaced. +

+

+Sometimes telecined video on DVDs is referred to as +"hard-telecine". Since hard-telecine is already 60000/1001 fields +per second, the DVD player plays the video without any manipulation. +

+Another way to tell if your source is telecined or not is to play +the source with the -vf pullup and -v +command line options to see how pullup matches frames. +If the source is telecined, you should see on the console a 3:2 pattern +with 0+.1.+2 and 0++1 +alternating. +This technique has the advantage that you do not need to watch the +source to identify it, which could be useful if you wish to automate +the encoding procedure, or to carry out said procedure remotely via +a slow connection. +

14.2.2.3. Interlaced

+Interlaced video was originally filmed at 60000/1001 fields per second, +and stored on the DVD as 30000/1001 frames per second. The interlacing effect +(often called "combing") is a result of combining pairs of +fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart, +and when they are displayed simultaneously the difference is apparent. +

+As with telecined video, MPlayer should +not ever report any framerate changes when playing interlaced content. +

+When you view an interlaced video closely by frame-stepping with the +. key, you will see that every single frame is interlaced. +

14.2.2.4. Mixed progressive and telecine

+All of a "mixed progressive and telecine" video was originally +24000/1001 frames per second, but some parts of it ended up being telecined. +

+When MPlayer plays this category, it will +(often repeatedly) switch back and forth between "30000/1001 fps NTSC" +and "24000/1001 fps progressive NTSC". Watch the bottom of +MPlayer's output to see these messages. +

+You should check the "30000/1001 fps NTSC" sections to make sure +they are actually telecine, and not just interlaced. +

14.2.2.5. Mixed progressive and interlaced

+In "mixed progressive and interlaced" content, progressive +and interlaced video have been spliced together. +

+This category looks just like "mixed progressive and telecine", +until you examine the 30000/1001 fps sections and see that they do not have the +telecine pattern. +

14.2.3. How to encode each category

+As I mentioned in the beginning, example MEncoder +lines below are not meant to actually be used; +they only demonstrate the minimum parameters to properly encode each category. +

14.2.3.1. Progressive

+Progressive video requires no special filtering to encode. The only +parameter you need to be sure to use is -ofps 24000/1001. +Otherwise, MEncoder +will try to encode at 30000/1001 fps and will duplicate frames. +

+

mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001

+

+It is often the case, however, that a video that looks progressive +actually has very short parts of telecine mixed in. Unless you are +sure, it is safest to treat the video as +mixed progressive and telecine. +The performance loss is small +[3]. +

14.2.3.2. Telecined

+Telecine can be reversed to retrieve the original 24000/1001 content, +using a process called inverse-telecine. +MPlayer contains several filters to +accomplish this; the best filter, pullup, is described +in the mixed +progressive and telecine section. +

14.2.3.3. Interlaced

+For most practical cases it is not possible to retrieve a complete +progressive video from interlaced content. The only way to do so +without losing half of the vertical resolution is to double the +framerate and try to "guess" what ought to make up the +corresponding lines for each field (this has drawbacks - see method 3). +

  1. + Encode the video in interlaced form. Normally, interlacing wreaks + havoc with the encoder's ability to compress well, but + libavcodec has two + parameters specifically for dealing with storing interlaced video a + bit better: ildct and ilme. Also, + using mbd=2 is strongly recommended + [2] because it + will encode macroblocks as non-interlaced in places where there is + no motion. Note that -ofps is NOT needed here. +

    mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2

    +

  2. + Use a deinterlacing filter before encoding. There are several of + these filters available to choose from, each with its own advantages + and disadvantages. Consult mplayer -pphelp and + mplayer -vf help to see what is available + (grep for "deint"), read Michael's Niedermayer + Deinterlacing filters comparison, + and search the + + MPlayer mailing lists to find many discussions about the + various filters. + Again, the framerate is not changing, so no + -ofps. Also, deinterlacing should be done after + cropping [1] and + before scaling. +

    mencoder dvd://1 -oac copy -vf yadif -ovc lavc

    +

  3. + Unfortunately, this option is buggy with + MEncoder; it ought to work well with + MEncoder G2, but that is not here yet. You + might experience crahes. Anyway, the purpose of -vf + tfields is to create a full frame out of each field, which + makes the framerate 60000/1001. The advantage of this approach is that no + data is ever lost; however, since each frame comes from only one + field, the missing lines have to be interpolated somehow. There are + no very good methods of generating the missing data, and so the + result will look a bit similar to when using some deinterlacing + filters. Generating the missing lines creates other issues, as well, + simply because the amount of data doubles. So, higher encoding + bitrates are required to maintain quality, and more CPU power is + used for both encoding and decoding. tfields has several different + options for how to create the missing lines of each frame. If you + use this method, then Reference the manual, and chose whichever + option looks best for your material. Note that when using + tfields you + have to specify both + -fps and -ofps to be twice the + framerate of your original source. +

    +mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
    +    -fps 60000/1001 -ofps 60000/1001

    +

  4. + If you plan on downscaling dramatically, you can extract and encode + only one of the two fields. Of course, you will lose half the vertical + resolution, but if you plan on downscaling to at most 1/2 of the + original, the loss will not matter much. The result will be a + progressive 30000/1001 frames per second file. The procedure is to use + -vf field, then crop + [1] and scale + appropriately. Remember that you will have to adjust the scale to + compensate for the vertical resolution being halved. +

    mencoder dvd://1 -oac copy -vf field=0 -ovc lavc

    +

14.2.3.4. Mixed progressive and telecine

+In order to turn mixed progressive and telecine video into entirely +progressive video, the telecined parts have to be +inverse-telecined. There are three ways to accomplish this, +described below. Note that you should +always inverse-telecine before any +rescaling; unless you really know what you are doing, +inverse-telecine before cropping, too +[1]. +-ofps 24000/1001 is needed here because the output video +will be 24000/1001 frames per second. +

  • + -vf pullup is designed to inverse-telecine + telecined material while leaving progressive data alone. In order to + work properly, pullup must + be followed by the softskip filter or + else MEncoder will crash. + pullup is, however, the cleanest and most + accurate method available for encoding both telecine and + "mixed progressive and telecine". +

    +mencoder dvd://1 -oac copy -vf pullup,softskip 
    +    -ovc lavc -ofps 24000/1001

    +

  • + An older method + is to, rather than inverse-telecine the telecined parts, telecine + the non-telecined parts and then inverse-telecine the whole + video. Sound confusing? softpulldown is a filter that goes through + a video and makes the entire file telecined. If we follow + softpulldown with either detc or + ivtc, the final result will be entirely + progressive. -ofps 24000/1001 is needed. +

    +mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
    +  

    +

  • + I have not used -vf filmdint myself, but here is what + D Richard Felker III has to say: + +

    It is OK, but IMO it tries to deinterlace rather + than doing inverse telecine too often (much like settop DVD + players & progressive TVs) which gives ugly flickering and + other artifacts. If you are going to use it, you at least need to + spend some time tuning the options and watching the output first + to make sure it is not messing up. +

    +

14.2.3.5. Mixed progressive and interlaced

+There are two options for dealing with this category, each of +which is a compromise. You should decide based on the +duration/location of each type. +

  • + Treat it as progressive. The interlaced parts will look interlaced, + and some of the interlaced fields will have to be dropped, resulting + in a bit of uneven jumpiness. You can use a postprocessing filter if + you want to, but it may slightly degrade the progressive parts. +

    + This option should definitely not be used if you want to eventually + display the video on an interlaced device (with a TV card, for + example). If you have interlaced frames in a 24000/1001 frames per + second video, they will be telecined along with the progressive + frames. Half of the interlaced "frames" will be displayed for three + fields' duration (3/(60000/1001) seconds), resulting in a flicking + "jump back in time" effect that looks quite bad. If you + even attempt this, you must use a + deinterlacing filter like lb or + l5. +

    + It may also be a bad idea for progressive display, too. It will drop + pairs of consecutive interlaced fields, resulting in a discontinuity + that can be more visible than with the second method, which shows + some progressive frames twice. 30000/1001 frames per second interlaced + video is already a bit choppy because it really should be shown at + 60000/1001 fields per second, so the duplicate frames do not stand out as + much. +

    + Either way, it is best to consider your content and how you intend to + display it. If your video is 90% progressive and you never intend to + show it on a TV, you should favor a progressive approach. If it is + only half progressive, you probably want to encode it as if it is all + interlaced. +

  • + Treat it as interlaced. Some frames of the progressive parts will + need to be duplicated, resulting in uneven jumpiness. Again, + deinterlacing filters may slightly degrade the progressive parts. +

14.2.4. Footnotes

  1. About cropping:  + Video data on DVDs are stored in a format called YUV 4:2:0. In YUV + video, luma ("brightness") and chroma ("color") + are stored separately. Because the human eye is somewhat less + sensitive to color than it is to brightness, in a YUV 4:2:0 picture + there is only one chroma pixel for every four luma pixels. In a + progressive picture, each square of four luma pixels (two on each + side) has one common chroma pixel. You must crop progressive YUV + 4:2:0 to even resolutions, and use even offsets. For example, + crop=716:380:2:26 is OK but + crop=716:380:3:26 is not. +

    + When you are dealing with interlaced YUV 4:2:0, the situation is a + bit more complicated. Instead of every four luma pixels in the + frame sharing a chroma pixel, every four luma + pixels in each field share a chroma + pixel. When fields are interlaced to form a frame, each scanline is + one pixel high. Now, instead of all four luma pixels being in a + square, there are two pixels side-by-side, and the other two pixels + are side-by-side two scanlines down. The two luma pixels in the + intermediate scanline are from the other field, and so share a + different chroma pixel with two luma pixels two scanlines away. All + this confusion makes it necessary to have vertical crop dimensions + and offsets be multiples of four. Horizontal can stay even. +

    + For telecined video, I recommend that cropping take place after + inverse telecining. Once the video is progressive you only need to + crop by even numbers. If you really want to gain the slight speedup + that cropping first may offer, you must crop vertically by multiples + of four or else the inverse-telecine filter will not have proper data. +

    + For interlaced (not telecined) video, you must always crop + vertically by multiples of four unless you use -vf + field before cropping. +

  2. About encoding parameters and quality:  + Just because I recommend mbd=2 here does not mean it + should not be used elsewhere. Along with trell, + mbd=2 is one of the two + libavcodec options that + increases quality the most, and you should always use at least those + two unless the drop in encoding speed is prohibitive (e.g. realtime + encoding). There are many other options to + libavcodec that increase + encoding quality (and decrease encoding speed) but that is beyond + the scope of this document. +

  3. About the performance of pullup:  + It is safe to use pullup (along with softskip + ) on progressive video, and is usually a good idea unless + the source has been definitively verified to be entirely progressive. + The performace loss is small for most cases. On a bare-minimum encode, + pullup causes MEncoder to + be 50% slower. Adding sound processing and advanced lavcopts + overshadows that difference, bringing the performance + decrease of using pullup down to 2%. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-vcd-dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-vcd-dvd.html new file mode 100644 index 0000000..87d3387 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-vcd-dvd.html @@ -0,0 +1,312 @@ +14.8. Using MEncoder to create VCD/SVCD/DVD-compliant files

14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files

14.8.1. Format Constraints

+MEncoder is capable of creating VCD, SCVD +and DVD format MPEG files using the +libavcodec library. +These files can then be used in conjunction with +vcdimager +or +dvdauthor +to create discs that will play on a standard set-top player. +

+The DVD, SVCD, and VCD formats are subject to heavy constraints. +Only a small selection of encoded picture sizes and aspect ratios are +available. +If your movie does not already meet these requirements, you may have +to scale, crop or add black borders to the picture to make it +compliant. +

14.8.1.1. Format Constraints

FormatResolutionV. CodecV. BitrateSample RateA. CodecA. BitrateFPSAspect
NTSC DVD720x480, 704x480, 352x480, 352x240MPEG-29800 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9 (only for 720x480)
NTSC DVD352x240[a]MPEG-11856 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9
NTSC SVCD480x480MPEG-22600 kbps44100 HzMP2384 kbps (max)30000/10014:3
NTSC VCD352x240MPEG-11150 kbps44100 HzMP2224 kbps24000/1001, 30000/10014:3
PAL DVD720x576, 704x576, 352x576, 352x288MPEG-29800 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9 (only for 720x576)
PAL DVD352x288[a]MPEG-11856 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9
PAL SVCD480x576MPEG-22600 kbps44100 HzMP2384 kbps (max)254:3
PAL VCD352x288MPEG-11152 kbps44100 HzMP2224 kbps254:3

[a] + These resolutions are rarely used for DVDs because + they are fairly low quality.

+If your movie has 2.35:1 aspect (most recent action movies), you will +have to add black borders or crop the movie down to 16:9 to make a DVD or VCD. +If you add black borders, try to align them at 16-pixel boundaries in +order to minimize the impact on encoding performance. +Thankfully DVD has sufficiently excessive bitrate that you do not have +to worry too much about encoding efficiency, but SVCD and VCD are +highly bitrate-starved and require effort to obtain acceptable quality. +

14.8.1.2. GOP Size Constraints

+DVD, VCD, and SVCD also constrain you to relatively low +GOP (Group of Pictures) sizes. +For 30 fps material the largest allowed GOP size is 18. +For 25 or 24 fps, the maximum is 15. +The GOP size is set using the keyint option. +

14.8.1.3. Bitrate Constraints

+VCD video is required to be CBR at 1152 kbps. +This highly limiting constraint also comes along with an extremly low vbv +buffer size of 327 kilobits. +SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less +restrictive vbv buffer size of 917 kilobits is allowed. +DVD video bitrates may range anywhere up to 9800 kbps (though typical +bitrates are about half that), and the vbv buffer size is 1835 kilobits. +

14.8.2. Output Options

+MEncoder has options to control the output +format. +Using these options we can instruct it to create the correct type of +file. +

+The options for VCD and SVCD are called xvcd and xsvcd, because they +are extended formats. +They are not strictly compliant, mainly because the output does not +contain scan offsets. +If you need to generate an SVCD image, you should pass the output file to +vcdimager. +

+VCD: +

-of mpeg -mpegopts format=xvcd

+

+SVCD: +

-of mpeg -mpegopts format=xsvcd

+

+DVD (with timestamps on every frame, if possible): +

-of mpeg -mpegopts format=dvd:tsaf

+

+DVD with NTSC Pullup: +

-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001

+This allows 24000/1001 fps progressive content to be encoded at 30000/1001 +fps whilst maintaing DVD-compliance. +

14.8.2.1. Aspect Ratio

+The aspect argument of -lavcopts is used to encode +the aspect ratio of the file. +During playback the aspect ratio is used to restore the video to the +correct size. +

+16:9 or "Widescreen" +

-lavcopts aspect=16/9

+

+4:3 or "Fullscreen" +

-lavcopts aspect=4/3

+

+2.35:1 or "Cinemascope" NTSC +

-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9

+To calculate the correct scaling size, use the expanded NTSC width of +854/2.35 = 368 +

+2.35:1 or "Cinemascope" PAL +

-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9

+To calculate the correct scaling size, use the expanded PAL width of +1024/2.35 = 432 +

14.8.2.2. Maintaining A/V sync

+In order to maintain audio/video synchronization throughout the encode, +MEncoder has to drop or duplicate frames. +This works rather well when muxing into an AVI file, but is almost +guaranteed to fail to maintain A/V sync with other muxers such as MPEG. +This is why it is necessary to append the +harddup video filter at the end of the filter chain +to avoid this kind of problem. +You can find more technical information about harddup +in the section +Improving muxing and A/V sync reliability +or in the manual page. +

14.8.2.3. Sample Rate Conversion

+If the audio sample rate in the original file is not the same as +required by the target format, sample rate conversion is required. +This is achieved using the -srate option and +the -af lavcresample audio filter together. +

+DVD: +

-srate 48000 -af lavcresample=48000

+

+VCD and SVCD: +

-srate 44100 -af lavcresample=44100

+

14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding

14.8.3.1. Introduction

+libavcodec can be used to +create VCD/SVCD/DVD compliant video by using the appropriate options. +

14.8.3.2. lavcopts

+This is a list of fields in -lavcopts that you may +be required to change in order to make a complaint movie for VCD, SVCD, +or DVD: +

  • + acodec: + mp2 for VCD, SVCD, or PAL DVD; + ac3 is most commonly used for DVD. + PCM audio may also be used for DVD, but this is mostly a big waste of + space. + Note that MP3 audio is not compliant for any of these formats, but + players often have no problem playing it anyway. +

  • + abitrate: + 224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly + used values range from 192 kbps for stereo to 384 kbps for 5.1 channel + sound. +

  • + vcodec: + mpeg1video for VCD; + mpeg2video for SVCD; + mpeg2video is usually used for DVD but you may also use + mpeg1video for CIF resolutions. +

  • + keyint: + Used to set the GOP size. + 18 for 30fps material, or 15 for 25/24 fps material. + Commercial producers seem to prefer keyframe intervals of 12. + It is possible to make this much larger and still retain compatibility + with most players. + A keyint of 25 should never cause any problems. +

  • + vrc_buf_size: + 327 for VCD, 917 for SVCD, and 1835 for DVD. +

  • + vrc_minrate: + 1152, for VCD. May be left alone for SVCD and DVD. +

  • + vrc_maxrate: + 1152 for VCD; 2500 for SVCD; 9800 for DVD. + For SVCD and DVD, you might wish to use lower values depending on your + own personal preferences and requirements. +

  • + vbitrate: + 1152 for VCD; + up to 2500 for SVCD; + up to 9800 for DVD. + For the latter two formats, vbitrate should be set based on personal + preference. + For instance, if you insist on fitting 20 or so hours on a DVD, you + could use vbitrate=400. + The resulting video quality would probably be quite bad. + If you are trying to squeeze out the maximum possible quality on a DVD, + use vbitrate=9800, but be warned that this could constrain you to less + than an hour of video on a single-layer DVD. +

  • + vstrict: + vstrict=0 should be used to create DVDs. + Without this option, MEncoder creates a + stream that cannot be correctly decoded by some standalone DVD + players. +

14.8.3.3. Examples

+This is a typical minimum set of -lavcopts for +encoding video: +

+VCD: +

+-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
+vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
+

+

+SVCD: +

+-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
+keyint=15:acodec=mp2
+

+

+DVD: +

+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3
+

+

14.8.3.4. Advanced Options

+For higher quality encoding, you may also wish to add quality-enhancing +options to lavcopts, such as trell, +mbd=2, and others. +Note that qpel and v4mv, while often +useful with MPEG-4, are not usable with MPEG-1 or MPEG-2. +Also, if you are trying to make a very high quality DVD encode, it may +be useful to add dc=10 to lavcopts. +Doing so may help reduce the appearance of blocks in flat-colored areas. +Putting it all together, this is an example of a set of lavcopts for a +higher quality DVD: +

+

+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
+keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
+vqmin=1:lmin=1:dc=10:vstrict=0
+

+

14.8.4. Encoding Audio

+VCD and SVCD support MPEG-1 layer II audio, using one of +toolame, +twolame, +or libavcodec's MP2 encoder. +The libavcodec MP2 is far from being as good as the other two libraries, +however it should always be available to use. +VCD only supports constant bitrate audio (CBR) whereas SVCD supports +variable bitrate (VBR), too. +Be careful when using VBR because some bad standalone players might not +support it too well. +

+For DVD audio, libavcodec's +AC-3 codec is used. +

14.8.4.1. toolame

+For VCD and SVCD: +

-oac toolame -toolameopts br=224

+

14.8.4.2. twolame

+For VCD and SVCD: +

-oac twolame -twolameopts br=224

+

14.8.4.3. libavcodec

+For DVD with 2 channel sound: +

-oac lavc -lavcopts acodec=ac3:abitrate=192

+

+For DVD with 5.1 channel sound: +

-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384

+

+For VCD and SVCD: +

-oac lavc -lavcopts acodec=mp2:abitrate=224

+

14.8.5. Putting it all Together

+This section shows some complete commands for creating VCD/SVCD/DVD +compliant videos. +

14.8.5.1. PAL DVD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
+  -o movie.mpg movie.avi
+

+

14.8.5.2. NTSC DVD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
+  -o movie.mpg movie.avi
+

+

14.8.5.3. PAL AVI Containing AC-3 Audio to DVD

+If the source already has AC-3 audio, use -oac copy instead of re-encoding it. +

+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:576,harddup -ofps 25 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:aspect=16/9 -o movie.mpg movie.avi
+

+

14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD

+If the source already has AC-3 audio, and is NTSC @ 24000/1001 fps: +

+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
+  -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
+  vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
+  -o movie.mpg movie.avi
+

+

14.8.5.5. PAL SVCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+    scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
+    -o movie.mpg movie.avi
+  

+

14.8.5.6. NTSC SVCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd  -vf \
+    scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+    -o movie.mpg movie.avi
+

+

14.8.5.7. PAL VCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+    scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
+    -o movie.mpg movie.avi
+

+

14.8.5.8. NTSC VCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+    scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+    -o movie.mpg movie.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-video-for-windows.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-video-for-windows.html new file mode 100644 index 0000000..f1b506f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-video-for-windows.html @@ -0,0 +1,66 @@ +14.6.  Encoding with the Video For Windows codec family

14.6.  + Encoding with the Video For Windows + codec family +

+Video for Windows provides simple encoding by means of binary video codecs. +You can encode with the following codecs (if you have more, please tell us!) +

+Note that support for this is very experimental and some codecs may not work +correctly. Some codecs will only work in certain colorspaces, try +-vf format=bgr24 and -vf format=yuy2 +if a codec fails or gives wrong output. +

14.6.1. Video for Windows supported codecs

+

Video codec file nameDescription (FourCC)md5sumComment
aslcodec_vfw.dllAlparysoft lossless codec vfw (ASLC)608af234a6ea4d90cdc7246af5f3f29a 
avimszh.dllAVImszh (MSZH)253118fe1eedea04a95ed6e5f4c28878needs -vf format
avizlib.dllAVIzlib (ZLIB)2f1cc76bbcf6d77d40d0e23392fa8eda 
divx.dllDivX4Windows-VFWacf35b2fc004a89c829531555d73f1e6 
huffyuv.dllHuffYUV (lossless) (HFYU)b74695b50230be4a6ef2c4293a58ac3b 
iccvid.dllCinepak Video (cvid)cb3b7ee47ba7dbb3d23d34e274895133 
icmw_32.dllMotion Wavelets (MWV1)c9618a8fc73ce219ba918e3e09e227f2 
jp2avi.dllImagePower MJPEG2000 (IPJ2)d860a11766da0d0ea064672c6833768b-vf flip
m3jp2k32.dllMorgan MJPEG2000 (MJ2C)f3c174edcbaef7cb947d6357cdfde7ff 
m3jpeg32.dllMorgan Motion JPEG Codec (MJPG)1cd13fff5960aa2aae43790242c323b1 
mpg4c32.dllMicrosoft MPEG-4 v1/v2b5791ea23f33010d37ab8314681f1256 
tsccvid.dllTechSmith Camtasia Screen Codec (TSCC)8230d8560c41d444f249802a2700d1d5shareware error on windows
vp31vfw.dllOn2 Open Source VP3 Codec (VP31)845f3590ea489e2e45e876ab107ee7d2 
vp4vfw.dllOn2 VP4 Personal Codec (VP40)fc5480a482ccc594c2898dcc4188b58f 
vp6vfw.dllOn2 VP6 Personal Codec (VP60)04d635a364243013898fd09484f913fb 
vp7vfw.dllOn2 VP7 Personal Codec (VP70)cb4cc3d4ea7c94a35f1d81c3d750bc8dwrong FourCC?
ViVD2.dllSoftMedia ViVD V2 codec VfW (GXVE)a7b4bf5cac630bb9262c3f80d8a773a1 
msulvc06.DLLMSU Lossless codec (MSUD)294bf9288f2f127bb86f00bfcc9ccdda + Decodable by Window Media Player, + not MPlayer (yet). +
camcodec.dllCamStudio lossless video codec (CSCD)0efe97ce08bb0e40162ab15ef3b45615sf.net/projects/camstudio

+ +The first column contains the codec names that should be passed after the +codec parameter, +like: -xvfwopts codec=divx.dll +The FourCC code used by each codec is given in the parentheses. +

+An example to convert an ISO DVD trailer to a VP6 flash video file +using compdata bitrate settings: +

+mencoder -dvd-device zeiram.iso dvd://7 -o trailer.flv \
+-ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
+-lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
+-of lavf
+

+

14.6.2. Using vfw2menc to create a codec settings file.

+To encode with the Video for Windows codecs, you will need to set bitrate +and other options. This is known to work on x86 on both *NIX and Windows. +

+First you must build the vfw2menc program. +It is located in the TOOLS subdirectory +of the MPlayer source tree. +To build on Linux, this can be done using Wine: +

winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32

+ +To build on Windows in MinGW or +Cygwin use: +

gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32

+ +To build on MSVC you will need getopt. +Getopt can be found in the original vfw2menc +archive available at: +The MPlayer on win32 project. +

+Below is an example with the VP6 codec. +

+vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
+

+This will open the VP6 codec dialog window. +Repeat this step for the second pass +and use -s secondpass.mcf. +

+Windows users can use +-xvfwopts codec=vp6vfw.dll:compdata=dialog to have +the codec dialog display before encoding starts. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-x264.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-x264.html new file mode 100644 index 0000000..a2ed41d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-x264.html @@ -0,0 +1,421 @@ +14.5. Encoding with the x264 codec

14.5. Encoding with the + x264 codec

+x264 is a free library for +encoding H.264/AVC video streams. +Before starting to encode, you need to +set up MEncoder to support it. +

14.5.1. Encoding options of x264

+Please begin by reviewing the +x264 section of +MPlayer's man page. +This section is intended to be a supplement to the man page. +Here you will find quick hints about which options are most +likely to interest most people. The man page is more terse, +but also more exhaustive, and it sometimes offers much better +technical detail. +

14.5.1.1. Introduction

+This guide considers two major categories of encoding options: +

  1. + Options which mainly trade off encoding time vs. quality +

  2. + Options which may be useful for fulfilling various personal + preferences and special requirements +

+Ultimately, only you can decide which options are best for your +purposes. The decision for the first class of options is the simplest: +you only have to decide whether you think the quality differences +justify the speed differences. For the second class of options, +preferences may be far more subjective, and more factors may be +involved. Note that some of the "personal preferences and special +requirements" options can still have large impacts on speed or quality, +but that is not what they are primarily useful for. A couple of the +"personal preference" options may even cause changes that look better +to some people, but look worse to others. +

+Before continuing, you need to understand that this guide uses only one +quality metric: global PSNR. +For a brief explanation of what PSNR is, see +the Wikipedia article on PSNR. +Global PSNR is the last PSNR number reported when you include +the psnr option in x264encopts. +Any time you read a claim about PSNR, one of the assumptions +behind the claim is that equal bitrates are used. +

+Nearly all of this guide's comments assume you are using two pass. +When comparing options, there are two major reasons for using +two pass encoding. +First, using two pass often gains around 1dB PSNR, which is a +very big difference. +Secondly, testing options by doing direct quality comparisons +with one pass encodes introduces a major confounding +factor: bitrate often varies significantly with each encode. +It is not always easy to tell whether quality changes are due +mainly to changed options, or if they mostly reflect essentially +random differences in the achieved bitrate. +

14.5.1.2. Options which primarily affect speed and quality

  • + subq: + Of the options which allow you to trade off speed for quality, + subq and frameref (see below) are usually + by far the most important. + If you are interested in tweaking either speed or quality, these + are the first options you should consider. + On the speed dimension, the frameref and + subq options interact with each other fairly + strongly. + Experience shows that, with one reference frame, + subq=5 (the default setting) takes about 35% more time than + subq=1. + With 6 reference frames, the penalty grows to over 60%. + subq's effect on PSNR seems fairly constant + regardless of the number of reference frames. + Typically, subq=5 achieves 0.2-0.5 dB higher global + PSNR in comparison subq=1. + This is usually enough to be visible. +

    + subq=6 is slower and yields better quality at a reasonable + cost. + In comparison to subq=5, it usually gains 0.1-0.4 dB + global PSNR with speed costs varying from 25%-100%. + Unlike other levels of subq, the behavior of + subq=6 does not depend much on frameref + and me. Instead, the effectiveness of subq=6 + depends mostly upon the number of B-frames used. In normal + usage, this means subq=6 has a large impact on both speed + and quality in complex, high motion scenes, but it may not have much effect + in low-motion scenes. Note that it is still recommended to always set + bframes to something other than zero (see below). +

    + subq=7 is the slowest, highest quality mode. + In comparison to subq=6, it usually gains 0.01-0.05 dB + global PSNR with speed costs varying from 15%-33%. + Since the tradeoff encoding time vs. quality is quite low, you should + only use it if you are after every bit saving and if encoding time is + not an issue. +

  • + frameref: + frameref is set to 1 by default, but this + should not be taken to imply that it is reasonable to set it to 1. + Merely raising frameref to 2 gains around + 0.15dB PSNR with a 5-10% speed penalty; this seems like a good tradeoff. + frameref=3 gains around 0.25dB PSNR over + frameref=1, which should be a visible difference. + frameref=3 is around 15% slower than + frameref=1. + Unfortunately, diminishing returns set in rapidly. + frameref=6 can be expected to gain only + 0.05-0.1 dB over frameref=3 at an additional + 15% speed penalty. + Above frameref=6, the quality gains are + usually very small (although you should keep in mind throughout + this whole discussion that it can vary quite a lot depending on your source). + In a fairly typical case, frameref=12 + will improve global PSNR by a tiny 0.02dB over + frameref=6, at a speed cost of 15%-20%. + At such high frameref values, the only really + good thing that can be said is that increasing it even further will + almost certainly never harm + PSNR, but the additional quality benefits are barely even + measurable, let alone perceptible. +

    Note:

    + Raising frameref to unnecessarily high values + can and + usually does + hurt coding efficiency if you turn CABAC off. + With CABAC on (the default behavior), the possibility of setting + frameref "too high" currently seems too remote + to even worry about, and in the future, optimizations may remove + the possibility altogether. +

    + If you care about speed, a reasonable compromise is to use low + subq and frameref values on + the first pass, and then raise them on the second pass. + Typically, this has a negligible negative effect on the final + quality: You will probably lose well under 0.1dB PSNR, which + should be much too small of a difference to see. + However, different values of frameref can + occasionally affect frametype decision. + Most likely, these are rare outlying cases, but if you want to + be pretty sure, consider whether your video has either + fullscreen repetitive flashing patterns or very large temporary + occlusions which might force an I-frame. + Adjust the first-pass frameref so it is large + enough to contain the duration of the flashing cycle (or occlusion). + For example, if the scene flashes back and forth between two images + over a duration of three frames, set the first pass + frameref to 3 or higher. + This issue is probably extremely rare in live action video material, + but it does sometimes come up in video game captures. +

  • + me: + This option is for choosing the motion estimation search method. + Altering this option provides a straightforward quality-vs-speed + tradeoff. me=dia is only a few percent faster than + the default search, at a cost of under 0.1dB global PSNR. The + default setting (me=hex) is a reasonable tradeoff + between speed and quality. me=umh gains a little under + 0.1dB global PSNR, with a speed penalty that varies depending on + frameref. At high values of + frameref (e.g. 12 or so), me=umh + is about 40% slower than the default me=hex. With + frameref=3, the speed penalty incurred drops to + 25%-30%. +

    + me=esa uses an exhaustive search that is too slow for + practical use. +

  • + partitions=all: + This option enables the use of 8x4, 4x8 and 4x4 subpartitions in + predicted macroblocks (in addition to the default partitions). + Enabling it results in a fairly consistent + 10%-15% loss of speed. This option is rather useless in source + containing only low motion, however in some high-motion source, + particularly source with lots of small moving objects, gains of + about 0.1dB can be expected. +

  • + bframes: + If you are used to encoding with other codecs, you may have found + that B-frames are not always useful. + In H.264, this has changed: there are new techniques and block + types that are possible in B-frames. + Usually, even a naive B-frame choice algorithm can have a + significant PSNR benefit. + It is interesting to note that using B-frames usually speeds up + the second pass somewhat, and may also speed up a single + pass encode if adaptive B-frame decision is turned off. +

    + With adaptive B-frame decision turned off + (x264encopts's nob_adapt), + the optimal value for this setting is usually no more than + bframes=1, or else high-motion scenes can suffer. + With adaptive B-frame decision on (the default behavior), it is + safe to use higher values; the encoder will reduce the use of + B-frames in scenes where they would hurt compression. + The encoder rarely chooses to use more than 3 or 4 B-frames; + setting this option any higher will have little effect. +

  • + b_adapt: + Note: This is on by default. +

    + With this option enabled, the encoder will use a reasonably fast + decision process to reduce the number of B-frames used in scenes that + might not benefit from them as much. + You can use b_bias to tweak how B-frame-happy + the encoder is. + The speed penalty of adaptive B-frames is currently rather modest, + but so is the potential quality gain. + It usually does not hurt, however. + Note that this only affects speed and frametype decision on the + first pass. + b_adapt and b_bias have no + effect on subsequent passes. +

  • + b_pyramid: + You might as well enable this option if you are using >=2 B-frames; + as the man page says, you get a little quality improvement at no + speed cost. + Note that these videos cannot be read by libavcodec-based decoders + older than about March 5, 2005. +

  • + weight_b: + In typical cases, there is not much gain with this option. + However, in crossfades or fade-to-black scenes, weighted + prediction gives rather large bitrate savings. + In MPEG-4 ASP, a fade-to-black is usually best coded as a series + of expensive I-frames; using weighted prediction in B-frames + makes it possible to turn at least some of these into much smaller + B-frames. + Encoding time cost is minimal, as no extra decisions need to be made. + Also, contrary to what some people seem to guess, the decoder + CPU requirements are not much affected by weighted prediction, + all else being equal. +

    + Unfortunately, the current adaptive B-frame decision algorithm + has a strong tendency to avoid B-frames during fades. + Until this changes, it may be a good idea to add + nob_adapt to your x264encopts, if you expect + fades to have a large effect in your particular video + clip. +

  • + threads: + This option allows to spawn threads to encode in parallel on multiple CPUs. + You can manually select the number of threads to be created or, better, set + threads=auto and let + x264 detect how many CPUs are + available and pick an appropriate number of threads. + If you have a multi-processor machine, you should really consider using it + as it can to increase encoding speed linearly with the number of CPU cores + (about 94% per CPU core), with very little quality reduction (about 0.005dB + for dual processor, about 0.01dB for a quad processor machine). +

14.5.1.3. Options pertaining to miscellaneous preferences

  • + Two pass encoding: + Above, it was suggested to always use two pass encoding, but there + are still reasons for not using it. For instance, if you are capturing + live TV and encoding in realtime, you are forced to use single-pass. + Also, one pass is obviously faster than two passes; if you use the + exact same set of options on both passes, two pass encoding is almost + twice as slow. +

    + Still, there are very good reasons for using two pass encoding. For + one thing, single pass ratecontrol is not psychic, and it often makes + unreasonable choices because it cannot see the big picture. For example, + suppose you have a two minute long video consisting of two distinct + halves. The first half is a very high-motion scene lasting 60 seconds + which, in isolation, requires about 2500kbps in order to look decent. + Immediately following it is a much less demanding 60-second scene + that looks good at 300kbps. Suppose you ask for 1400kbps on the theory + that this is enough to accomodate both scenes. Single pass ratecontrol + will make a couple of "mistakes" in such a case. First of all, it + will target 1400kbps in both segments. The first segment may end up + heavily overquantized, causing it to look unacceptably and unreasonably + blocky. The second segment will be heavily underquantized; it may look + perfect, but the bitrate cost of that perfection will be completely + unreasonable. What is even harder to avoid is the problem at the + transition between the two scenes. The first seconds of the low motion + half will be hugely over-quantized, because the ratecontrol is still + expecting the kind of bitrate requirements it met in the first half + of the video. This "error period" of heavily over-quantized low motion + will look jarringly bad, and will actually use less than the 300kbps + it would have taken to make it look decent. There are ways to + mitigate the pitfalls of single-pass encoding, but they may tend to + increase bitrate misprediction. +

    + Multipass ratecontrol can offer huge advantages over a single pass. + Using the statistics gathered from the first pass encode, the encoder + can estimate, with reasonable accuracy, the "cost" (in bits) of + encoding any given frame, at any given quantizer. This allows for + a much more rational, better planned allocation of bits between the + expensive (high-motion) and cheap (low-motion) scenes. See + qcomp below for some ideas on how to tweak this + allocation to your liking. +

    + Moreover, two passes need not take twice as long as one pass. You can + tweak the options in the first pass for higher speed and lower quality. + If you choose your options well, you can get a very fast first pass. + The resulting quality in the second pass will be slightly lower because size + prediction is less accurate, but the quality difference is normally much + too small to be visible. Try, for example, adding + subq=1:frameref=1 to the first pass + x264encopts. Then, on the second pass, use slower, + higher-quality options: + subq=6:frameref=15:partitions=all:me=umh +

  • + Three pass encoding? + x264 offers the ability to make an arbitrary number of consecutive + passes. If you specify pass=1 on the first pass, + then use pass=3 on a subsequent pass, the subsequent + pass will both read the statistics from the previous pass, and write + its own statistics. An additional pass following this one will have + a very good base from which to make highly accurate predictions of + framesizes at a chosen quantizer. In practice, the overall quality + gain from this is usually close to zero, and quite possibly a third + pass will result in slightly worse global PSNR than the pass before + it. In typical usage, three passes help if you get either bad bitrate + prediction or bad looking scene transitions when using only two passes. + This is somewhat likely to happen on extremely short clips. There are + also a few special cases in which three (or more) passes are handy + for advanced users, but for brevity, this guide omits discussing those + special cases. +

  • + qcomp: + qcomp trades off the number of bits allocated + to "expensive" high-motion versus "cheap" low-motion frames. At + one extreme, qcomp=0 aims for true constant + bitrate. Typically this would make high-motion scenes look completely + awful, while low-motion scenes would probably look absolutely + perfect, but would also use many times more bitrate than they + would need in order to look merely excellent. At the other extreme, + qcomp=1 achieves nearly constant quantization parameter + (QP). Constant QP does not look bad, but most people think it is more + reasonable to shave some bitrate off of the extremely expensive scenes + (where the loss of quality is not as noticeable) and reallocate it to + the scenes that are easier to encode at excellent quality. + qcomp is set to 0.6 by default, which may be slightly + low for many peoples' taste (0.7-0.8 are also commonly used). +

  • + keyint: + keyint is solely for trading off file seekability against + coding efficiency. By default, keyint is set to 250. In + 25fps material, this guarantees the ability to seek to within 10 seconds + precision. If you think it would be important and useful to be able to + seek within 5 seconds of precision, set keyint=125; + this will hurt quality/bitrate slightly. If you care only about quality + and not about seekability, you can set it to much higher values + (understanding that there are diminishing returns which may become + vanishingly low, or even zero). The video stream will still have seekable + points as long as there are some scene changes. +

  • + deblock: + This topic is going to be a bit controversial. +

    + H.264 defines a simple deblocking procedure on I-blocks that uses + pre-set strengths and thresholds depending on the QP of the block + in question. + By default, high QP blocks are filtered heavily, and low QP blocks + are not deblocked at all. + The pre-set strengths defined by the standard are well-chosen and + the odds are very good that they are PSNR-optimal for whatever + video you are trying to encode. + The deblock allow you to specify offsets to the preset + deblocking thresholds. +

    + Many people seem to think it is a good idea to lower the deblocking + filter strength by large amounts (say, -3). + This is however almost never a good idea, and in most cases, + people who are doing this do not understand very well how + deblocking works by default. +

    + The first and most important thing to know about the in-loop + deblocking filter is that the default thresholds are almost always + PSNR-optimal. + In the rare cases that they are not optimal, the ideal offset is + plus or minus 1. + Adjusting deblocking parameters by a larger amount is almost + guaranteed to hurt PSNR. + Strengthening the filter will smear more details; weakening the + filter will increase the appearance of blockiness. +

    + It is definitely a bad idea to lower the deblocking thresholds if + your source is mainly low in spacial complexity (i.e., not a lot + of detail or noise). + The in-loop filter does a rather excellent job of concealing + the artifacts that occur. + If the source is high in spacial complexity, however, artifacts + are less noticeable. + This is because the ringing tends to look like detail or noise. + Human visual perception easily notices when detail is removed, + but it does not so easily notice when the noise is wrongly + represented. + When it comes to subjective quality, noise and detail are somewhat + interchangeable. + By lowering the deblocking filter strength, you are most likely + increasing error by adding ringing artifacts, but the eye does + not notice because it confuses the artifacts with detail. +

    + This still does not justify + lowering the deblocking filter strength, however. + You can generally get better quality noise from postprocessing. + If your H.264 encodes look too blurry or smeared, try playing with + -vf noise when you play your encoded movie. + -vf noise=8a:4a should conceal most mild + artifacting. + It will almost certainly look better than the results you + would have gotten just by fiddling with the deblocking filter. +

14.5.2. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualitysubq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b6fps0dB
High qualitysubq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b13fps-0.89dB
Fastsubq=4:bframes=2:b_pyramid:weight_b17fps-1.48dB
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-xvid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-xvid.html new file mode 100644 index 0000000..6b088c5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/menc-feat-xvid.html @@ -0,0 +1,179 @@ +14.4. Encoding with the Xvid codec

14.4. Encoding with the Xvid + codec

+Xvid is a free library for +encoding MPEG-4 ASP video streams. +Before starting to encode, you need to +set up MEncoder to support it. +

+This guide mainly aims at featuring the same kind of information +as x264's encoding guide. +Therefore, please begin by reading +the first part +of that guide. +

14.4.1. What options should I use to get the best results?

+Please begin by reviewing the +Xvid section of +MPlayer's man page. +This section is intended to be a supplement to the man page. +

+The Xvid default settings are already a good tradeoff between +speed and quality, therefore you can safely stick to them if +the following section puzzles you. +

14.4.2. Encoding options of Xvid

  • + vhq + This setting affects the macroblock decision algorithm, where the + higher the setting, the wiser the decision. + The default setting may be safely used for every encode, while + higher settings always help PSNR but are significantly slower. + Please note that a better PSNR does not necessarily mean + that the picture will look better, but tells you that it is + closer to the original. + Turning it off will noticeably speed up encoding; if speed is + critical for you, the tradeoff may be worth it. +

  • + bvhq + This does the same job as vhq, but does it on B-frames. + It has a negligible impact on speed, and slightly improves quality + (around +0.1dB PSNR). +

  • + max_bframes + A higher number of consecutive allowed B-frames usually improves + compressibility, although it may also lead to more blocking artifacts. + The default setting is a good tradeoff between compressibility and + quality, but you may increase it up to 3 if you are bitrate-starved. + You may also decrease it to 1 or 0 if you are aiming at perfect + quality, though in that case you should make sure your + target bitrate is high enough to ensure that the encoder does not + have to increase quantizers to reach it. +

  • + bf_threshold + This controls the B-frame sensitivity of the encoder, where a higher + value leads to more B-frames being used (and vice versa). + This setting is to be used together with max_bframes; + if you are bitrate-starved, you should increase both + max_bframes and bf_threshold, + while you may increase max_bframes and reduce + bf_threshold so that the encoder may use more + B-frames in places that only really + need them. + A low number of max_bframes and a high value of + bf_threshold is probably not a wise choice as it + will force the encoder to put B-frames in places that would not + benefit from them, therefore reducing visual quality. + However, if you need to be compatible with standalone players that + only support old DivX profiles (which only supports up to 1 + consecutive B-frame), this would be your only way to + increase compressibility through using B-frames. +

  • + trellis + Optimizes the quantization process to get an optimal tradeoff + between PSNR and bitrate, which allows significant bit saving. + These bits will in return be spent elsewhere on the video, + raising overall visual quality. + You should always leave it on as its impact on quality is huge. + Even if you are looking for speed, do not disable it until you + have turned down vhq and all other more + CPU-hungry options to the minimum. +

  • + hq_ac + Activates a better coefficient cost estimation method, which slightly + reduces filesize by around 0.15 to 0.19% (which corresponds to less + than 0.01dB PSNR increase), while having a negligible impact on speed. + It is therefore recommended to always leave it on. +

  • + cartoon + Designed to better encode cartoon content, and has no impact on + speed as it just tunes the mode decision heuristics for this type + of content. +

  • + me_quality + This setting is to control the precision of the motion estimation. + The higher me_quality, the more + precise the estimation of the original motion will be, and the + better the resulting clip will capture the original motion. +

    + The default setting is best in all cases; + thus it is not recommended to turn it down unless you are + really looking for speed, as all the bits saved by a good motion + estimation would be spent elsewhere, raising overall quality. + Therefore, do not go any lower than 5, and even that only as a last + resort. +

  • + chroma_me + Improves motion estimation by also taking the chroma (color) + information into account, whereas me_quality + alone only uses luma (grayscale). + This slows down encoding by 5-10% but improves visual quality + quite a bit by reducing blocking effects and reduces filesize by + around 1.3%. + If you are looking for speed, you should disable this option before + starting to consider reducing me_quality. +

  • + chroma_opt + Is intended to increase chroma image quality around pure + white/black edges, rather than improving compression. + This can help to reduce the "red stairs" effect. +

  • + lumi_mask + Tries to give less bitrate to part of the picture that the + human eye cannot see very well, which should allow the encoder + to spend the saved bits on more important parts of the picture. + The quality of the encode yielded by this option highly depends + on personal preferences and on the type and monitor settings + used to watch it (typically, it will not look as good if it is + bright or if it is a TFT monitor). +

  • + qpel + Raise the number of candidate motion vectors by increasing + the precision of the motion estimation from halfpel to + quarterpel. + The idea is to find better motion vectors which will in return + reduce bitrate (hence increasing quality). + However, motion vectors with quarterpel precision require a + few extra bits to code, but the candidate vectors do not always + give (much) better results. + Quite often, the codec still spends bits on the extra precision, + but little or no extra quality is gained in return. + Unfortunately, there is no way to foresee the possible gains of + qpel, so you need to actually encode with and + without it to know for sure. +

    + qpel can be almost double encoding time, and + requires as much as 25% more processing power to decode. + It is not supported by all standalone players. +

  • + gmc + Tries to save bits on panning scenes by using a single motion + vector for the whole frame. + This almost always raises PSNR, but significantly slows down + encoding (as well as decoding). + Therefore, you should only use it when you have turned + vhq to the maximum. + Xvid's GMC is more + sophisticated than DivX's, but is only supported by few + standalone players. +

14.4.3. Encoding profiles

+Xvid supports encoding profiles through the profile option, +which are used to impose restrictions on the properties of the Xvid video +stream such that it will be playable on anything which supports the +chosen profile. +The restrictions relate to resolutions, bitrates and certain MPEG-4 +features. +The following table shows what each profile supports. +

 SimpleAdvanced SimpleDivX
Profile name0123012345HandheldPortable NTSCPortable PALHome Theater NTSCHome Theater PALHDTV
Width [pixels]1761763523521761763523523527201763523527207201280
Height [pixels]144144288288144144288288576576144240288480576720
Frame rate [fps]15151515303015303030153025302530
Max average bitrate [kbps]646412838412812838476830008000537.648544854485448549708.4
Peak average bitrate over 3 secs [kbps]          800800080008000800016000
Max. B-frames0000      011112
MPEG quantization    XXXXXX      
Adaptive quantization    XXXXXXXXXXXX
Interlaced encoding    XXXXXX   XXX
Quaterpixel    XXXXXX      
Global motion compensation    XXXXXX      

14.4.4. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualitychroma_opt:vhq=4:bvhq=1:quant_type=mpeg16fps0dB
High qualityvhq=2:bvhq=1:chroma_opt:quant_type=mpeg18fps-0.1dB
Fastturbo:vhq=028fps-0.69dB
Realtimeturbo:nochroma_me:notrellis:max_bframes=0:vhq=038fps-1.48dB
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mencoder.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mencoder.html new file mode 100644 index 0000000..3dae59e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mencoder.html @@ -0,0 +1,12 @@ +Chapter 13. Basic usage of MEncoder

Chapter 13. Basic usage of MEncoder

+For the complete list of available MEncoder options +and examples, please see the man page. For a series of hands-on examples and +detailed guides on using several encoding parameters, read the +encoding-tips that were +collected from several mailing list threads on MPlayer-users. Search the archives +here +and especially for older things also +here +for a wealth of discussions about all aspects of and problems related to +encoding with MEncoder. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mga_vid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mga_vid.html new file mode 100644 index 0000000..8841dc0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mga_vid.html @@ -0,0 +1,53 @@ +8.7. Matrox framebuffer (mga_vid)

8.7. Matrox framebuffer (mga_vid)

+mga_vid is a combination of a video output driver and +a Linux kernel module that utilitizes the Matrox G200/G400/G450/G550 video +scaler/overlay unit to perform YUV->RGB colorspace conversion and arbitrary +video scaling. +mga_vid has hardware VSYNC support with triple +buffering. It works on both a framebuffer console and under X, but only +with Linux 2.4.x. +

+For a Linux 2.6.x version of this driver check out +http://attila.kinali.ch/mga/. +

Installation:

  1. + To use it, you first have to compile mga_vid.o: +

    +cd drivers
    +make

    +

  2. + Then run (as root) +

    make install

    + which should install the module and create the device node for you. + Load the driver with +

    insmod mga_vid.o

    +

  3. + You should verify the memory size detection using the + dmesg command. If it's bad, use the + mga_ram_size option + (rmmod mga_vid first), + specify card's memory size in MB: +

    insmod mga_vid.o mga_ram_size=16

    +

  4. + To make it load/unload automatically when needed, first insert the + following line at the end of /etc/modules.conf: + +

    alias char-major-178 mga_vid

    +

  5. + Now you have to (re)compile MPlayer, + ./configure will detect + /dev/mga_vid and build the 'mga' driver. Using it + from MPlayer goes by -vo mga + if you have matroxfb console, or -vo xmga under XFree86 + 3.x.x or 4.x.x. +

+The mga_vid driver cooperates with Xv. +

+The /dev/mga_vid device file can be read for some +info, for example by +

cat /dev/mga_vid

+and can be written for brightness change: +

echo "brightness=120" > /dev/mga_vid

+

+There is a test application called mga_vid_test in the same +directory. It should draw 256x256 images on the screen if all is working well. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mpeg_decoders.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mpeg_decoders.html new file mode 100644 index 0000000..fbf6507 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mpeg_decoders.html @@ -0,0 +1,269 @@ +8.18. MPEG decoders

8.18. MPEG decoders

8.18.1. DVB output and input

+MPlayer supports cards with the Siemens DVB chipset +from vendors like Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB +drivers are available from the +Linux TV site. +If you want to do software transcoding you should have at least a 1GHz CPU. +

+Configure should detect your DVB card. If it did not, force detection with +

./configure --enable-dvb

+If you have ost headers at a non-standard path, set the path with +

+./configure --with-extraincdir=DVB source directory/ost/include
+

+Then compile and install as usual.

USAGE.  +Hardware decoding of streams containing MPEG-1/2 video and/or MPEG audio can be done with this +command: +

+mplayer -ao mpegpes -vo mpegpes file.mpg|vob
+

+

+Decoding of any other type of video stream requires transcoding to MPEG-1, thus it's slow +and may not be worth the trouble, especially if your computer is slow. +It can be achieved using a command like this: +

+mplayer -ao mpegpes -vo mpegpes yourfile.ext
+mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext
+

+Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 for +NTSC. You must rescale for other heights by +adding scale=width:height with the width and height you want +to the -vf option. DVB cards accept various widths, like 720, +704, 640, 512, 480, 352 etc. and do hardware scaling in horizontal direction, +so you do not need to scale horizontally in most cases. +For a 512x384 (aspect 4:3) MPEG-4 (DivX) try: +

mplayer -ao mpegpes -vo mpegpes -vf scale=512:576

+

+If you have a widescreen movie and you do not want to scale it to full height, +you can use the expand=w:h filter to add black bands. To view a +640x384 MPEG-4 (DivX), try: +

+mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi
+

+

+If your CPU is too slow for a full size 720x576 MPEG-4 (DivX), try downscaling: +

+mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi
+

+

If speed does not improve, try vertical downscaling, too: +

+mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi
+

+

+For OSD and subtitles use the OSD feature of the expand filter. So, instead of +expand=w:h or expand=w:h:x:y, use +expand=w:h:x:y:1 (the 5th parameter :1 +at the end will enable OSD rendering). You may want to move the image up a bit +to get a bigger black zone for subtitles. You may also want to move subtitles +up, if they are outside your TV screen, use the +-subpos <0-100> +option to adjust this (-subpos 80 is a good choice). +

+In order to play non-25fps movies on a PAL TV or with a slow CPU, add the +-framedrop option. +

+To keep the aspect ratio of MPEG-4 (DivX) files and get the optimal scaling +parameters (hardware horizontal scaling and software vertical scaling +while keeping the right aspect ratio), use the new dvbscale filter: +

+for a  4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
+for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
+

+

Digital TV (DVB input module). You can use your DVB card for watching Digital TV.

+You should have the programs scan and +szap/tzap/czap/azap installed; they are all included in +the drivers package. +

+Verify that your drivers are working properly with a program such as +dvbstream +(that is the base of the DVB input module). +

+Now you should compile a ~/.mplayer/channels.conf +file, with the syntax accepted by szap/tzap/czap/azap, or +have scan compile it for you. +

+If you have more than one card type (e.g. Satellitar, Terrestrial, Cable and ATSC) +you can save your channels files as +~/.mplayer/channels.conf.sat, +~/.mplayer/channels.conf.ter, +~/.mplayer/channels.conf.cbl, +and ~/.mplayer/channels.conf.atsc, +respectively, so as to implicitly hint MPlayer +to use these files rather than ~/.mplayer/channels.conf, +and you only need to specify which card to use. +

+Make sure that you have only Free to Air +channels in your channels.conf file, or +MPlayer will wait for an unencrypted transmission. +

+In your audio and video fields you can use an extended syntax: +...:pid[+pid]:... (for a maximum of 6 pids each); +in this case MPlayer will include in the +stream all the indicated pids, plus pid 0 (that contains the PAT). +You are encouraged to include in each row the PMT pid for the +corresponding channel (if you know it). +You can also specify 8192, this will select all pids on this frequency +and you can then switch between the programs with TAB. +This might need more bandwidth, though cheap cards always transfer all +channels at least to the kernel so it does not make much of a difference +for these. +Other possible uses are: televideo pid, second audio track, etc. +

+If MPlayer complains frequently about +

Too many video/audio packets in the buffer

or +if you notice a growing desynchronization between audio and +video try to use the libavformat MPEG-TS demuxer by adding +-demuxer lavf -lavfdopts probesize=128 +to your command line. +

+To show the first of the channels present in your list, run +

mplayer dvb://

+

+If you want to watch a specific channel, such as R1, run +

mplayer dvb://R1

+

+If you have more than one card you also need to specify the number of the card +where the channel is visible (e.g. 2) with the syntax: +

mplayer dvb://2@R1

+

+To change channels press the h (next) and +k (previous) keys, or use the +OSD menu. +

+If your ~/.mplayer/menu.conf contains a +<dvbsel> entry, such as the one in the example +file etc/dvb-menu.conf (that you can use to overwrite +~/.mplayer/menu.conf), the main menu will show a +sub-menu entry that will permit you to choose one of the channels present +in your channels.conf, possibly preceded by a menu +with the list of cards available if more than one is usable by +MPlayer. +

+If you want to save a program to disk you can use +

+mplayer -dumpfile r1.ts -dumpstream dvb://R1
+

+

+If you want to record it in a different format (re-encoding it) instead +you can run a command such as +

+mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 \
+    -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
+

+

+Read the man page for a list of options that you can pass to the +DVB input module. +

FUTURE.  +If you have questions or want to hear feature announcements and take part in +discussions on this subject, join our +MPlayer-DVB +mailing list. Please remember that the list language is English. +

+In the future you may expect the ability to display OSD and subtitles using +the native OSD feature of DVB cards, as well as more fluent playback of +non-25fps movies and realtime transcoding between MPEG-2 and MPEG-4 (partial +decompression). +

8.18.2. DXR2

+MPlayer supports hardware accelerated playback +with the Creative DXR2 card. +

+First of all you will need properly installed DXR2 drivers. You can find +the drivers and installation instructions at the +DXR2 Resource Center site. +

USAGE

-vo dxr2

Enable TV output.

-vo dxr2:x11 or -vo dxr2:xv

Enable Overlay output in X11.

-dxr2 <option1:option2:...>

+ This option is used to control the DXR2 driver. +

+The overlay chipset used on the DXR2 is of pretty bad quality but the +default settings should work for everybody. The OSD may be usable with the +overlay (not on TV) by drawing it in the colorkey. With the default colorkey +settings you may get variable results, usually you will see the colorkey +around the characters or some other funny effect. But if you properly adjust +the colorkey settings you should be able to get acceptable results. +

Please see the man page for available options.

8.18.3. DXR3/Hollywood+

+MPlayer supports hardware accelerated playback +with the Creative DXR3 and Sigma Designs Hollywood Plus cards. These cards +both use the em8300 MPEG decoder chip from Sigma Designs. +

+First of all you will need properly installed DXR3/H+ drivers, version 0.12.0 +or later. You can find the drivers and installation instructions at the +DXR3 & Hollywood Plus for Linux +site. configure should detect your card automatically, +compilation should go without problems. +

USAGE

-vo dxr3:prebuf:sync:norm=x:device

+overlay activates the overlay instead of TVOut. It requires +that you have a properly configured overlay setup to work right. The easiest +way to configure the overlay is to first run autocal. Then run mplayer with +dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can +tweak the overlay settings and see the effects in realtime, perhaps this feature +will be supported by the MPlayer GUI in the future. +When overlay is properly set up you will no longer need to use dxr3view. +prebuf turns on prebuffering. Prebuffering is a feature of the +em8300 chip that enables it to hold more than one frame of video at a time. +This means that when you are running with prebuffering +MPlayer will try to keep the video buffer filled +with data at all times. +If you are on a slow machine MPlayer will probably +use close to, or precisely 100% of CPU. +This is especially common if you play pure MPEG streams +(like DVDs, SVCDs a.s.o.) since MPlayer will not have +to reencode it to MPEG it will fill the buffer very fast. +With prebuffering video playback is much +less sensitive to other programs hogging the CPU, it will not drop frames unless +applications hog the CPU for a long time. +When running without prebuffering the em8300 is much more sensitive to CPU load, +so it is highly suggested that you turn on MPlayer's +-framedrop option to avoid further loss of sync. +sync will turn on the new sync-engine. This is currently an +experimental feature. With the sync feature turned on the em8300's internal +clock will be monitored at all times, if it starts to deviate from +MPlayer's clock it will be reset causing the em8300 +to drop any frames that are lagging behind. +norm=x will set the TV norm of the DXR3 card without the need +for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, +3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 (auto-adjust +using PAL/NTSC) because they decide which norm to use by looking at the frame +rate of the movie. norm = 0 (default) does not change the current norm. +device = device number to use if +you have more than one em8300 card. Any of these options may be left out. +:prebuf:sync seems to work great when playing MPEG-4 (DivX) +movies. People have reported problems using the prebuf option when playing +MPEG-1/2 files. +You might want to try running without any options first, if you have sync +problems, or DVD subtitle problems, give :sync a try. +

-ao oss:/dev/em8300_ma-X

+ For audio output, where X is the device number + (0 if one card). +

-af resample=xxxxx

+ The em8300 cannot play back samplerates lower than 44100Hz. If the sample + rate is below 44100Hz select either 44100Hz or 48000Hz depending on which + one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as + 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 + and so on. + This does not work with digital audio output (-ac hwac3). +

-vf lavc

+ To watch non-MPEG content on the em8300 (i.e. MPEG-4 (DivX) or RealVideo) + you have to specify an MPEG-1 video filter such as + libavcodec (lavc). + See the man page for further info about -vf lavc. + Currently there is no way of setting the fps of the em8300 which means that + it is fixed to 30000/1001 fps. + Because of this it is highly recommended that you use + -vf lavc=quality:25 + especially if you are using prebuffering. Then why 25 and not 30000/1001? + Well, the thing is that when you use 30000/1001 the picture becomes a bit + jumpy. + The reason for this is unknown to us. + If you set it to somewhere between 25 and 27 the picture becomes stable. + For now all we can do is accept this for a fact. +

-vf expand=-1:-1:-1:-1:1

+ Although the DXR3 driver can put some OSD onto the MPEG-1/2/4 video, it has + much lower quality than MPlayer's traditional OSD, + and has several refresh problems as well. The command line above will firstly + convert the input video to MPEG-4 (this is mandatory, sorry), then apply an + expand filter which won't expand anything (-1: default), but apply the normal + OSD onto the picture (that's what the "1" at the end does). +

-ac hwac3

+ The em8300 supports playing back AC-3 audio (surround sound) through the + digital audio output of the card. See the -ao oss option + above, it must be used to specify the DXR3's output instead of a sound card. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mtrr.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mtrr.html new file mode 100644 index 0000000..c108e4c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/mtrr.html @@ -0,0 +1,47 @@ +8.1. Setting up MTRR

8.1. Setting up MTRR

+It is VERY recommended to check if the MTRR registers +are set up properly, because they can give a big performance boost. +

+Do a cat /proc/mtrr: +

+--($:~)-- cat /proc/mtrr
+reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9
+reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

+

+It's right, shows my Matrox G400 with 16MB memory. I did this from +XFree 4.x.x, which sets up MTRR registers automatically. +

+If nothing worked, you have to do it manually. First, you have to find the +base address. You have 3 ways to find it: + +

  1. + from X11 startup messages, for example: +

    +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
    +(--) SVGA: Linear framebuffer at 0xD8000000

    +

  2. + from /proc/pci (use lspci -v + command): +

    +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
    +Memory at d8000000 (32-bit, prefetchable)

    +

  3. + from mga_vid kernel driver messages (use dmesg): +

    mga_mem_base = d8000000

    +

+

+Then let's find the memory size. This is very easy, just convert video RAM +size to hexadecimal, or use this table: +

1 MB0x100000
2 MB0x200000
4 MB0x400000
8 MB0x800000
16 MB0x1000000
32 MB0x2000000

+

+You know base address and memory size, let's setup MTRR registers! +For example, for the Matrox card above (base=0xd8000000) +with 32MB ram (size=0x2000000) just execute: +

+echo "base=0xd8000000 size=0x2000000 type=write-combining" > /proc/mtrr
+

+

+Not all CPUs have MTRRs. For example older K6-2 (around 266MHz, +stepping 0) CPUs don't have MTRRs, but stepping 12 does +(execute cat /proc/cpuinfo to check it). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/opengl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/opengl.html new file mode 100644 index 0000000..88463c1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/opengl.html @@ -0,0 +1,23 @@ +8.10. OpenGL output

8.10. OpenGL output

+MPlayer supports displaying movies using OpenGL, +but if your platform/driver supports xv as should be the case on a PC with +Linux, use xv instead, OpenGL performance is considerably worse. If you +have an X11 implementation without xv support, OpenGL is a viable +alternative. +

+Unfortunately not all drivers support this feature. The Utah-GLX drivers +(for XFree86 3.3.6) support it for all cards. +See http://utah-glx.sf.net for details about how to +install it. +

+XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, +4.2.0 or later supports Rage128. +See http://dri.sf.net for download and installation +instructions. +

+A hint from one of our users: the GL video output can be used to get +vsynced TV output. You'll have to set an environment variable (at +least on nVidia): +

+export __GL_SYNC_TO_VBLANK=1 +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/other.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/other.html new file mode 100644 index 0000000..e1f1c5b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/other.html @@ -0,0 +1,89 @@ +8.19. Other visualization hardware

8.19. Other visualization hardware

8.19.1. Zr

+This is a display-driver (-vo zr) for a number of MJPEG +capture/playback cards (tested for DC10+ and Buz, and it should work for the +LML33, the DC10). The driver works by encoding the frame to JPEG and then +sending it to the card. For the JPEG encoding +libavcodec +is used, and required. With the special cinerama mode, +you can watch movies in true wide screen provided that you have two beamers +and two MJPEG cards. Depending on resolution and quality settings, this driver +may require a lot of CPU power, remember to specify -framedrop +if your machine is too slow. Note: My AMD K6-2 350MHz is (with +-framedrop) quite adequate for watching VCD sized material and +downscaled movies. +

+This driver talks to the kernel driver available at +http://mjpeg.sf.net, so +you must get it working first. The presence of an MJPEG card is autodetected by +the configure script, if autodetection fails, force +detection with +

./configure --enable-zr

+

+The output can be controlled by several options, a long description of the +options can be found in the man page, a short list of options can be viewed +by running +

mplayer -zrhelp

+

+Things like scaling and the OSD (on screen display) are not handled by +this driver but can be done using the video filters. For example, suppose +that you have a movie with a resolution of 512x272 and you want to view it +fullscreen on your DC10+. There are three main possibilities, you may scale +the movie to a width of 768, 384 or 192. For performance and quality reasons, +I would choose to scale the movie to 384x204 using the fast bilinear software +scaler. The command line is +

+mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi
+

+

+Cropping can be done by the crop filter and by this +driver itself. Suppose that a movie is too wide for display on your Buz and +that you want to use -zrcrop to make the movie less wide, +then you would issue the following command +

+mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
+

+

+if you want to use the crop filter, you would do +

+mplayer -vo zr -vf crop=720:320:80:0 benhur.avi
+

+

+Extra occurrences of -zrcrop invoke +cinerama mode, i.e. you can distribute the movie over +several TV's or beamers to create a larger screen. +Suppose you have two beamers. The left one is connected to your +Buz at /dev/video1 and the right one is connected to +your DC10+ at /dev/video0. The movie has a resolution +of 704x288. Suppose also that you want the right beamer in black and white and +that the left beamer should have JPEG frames at quality 10, then you would +issue the following command +

+mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
+    -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \
+	movie.avi
+

+

+You see that the options appearing before the second -zrcrop +only apply to the DC10+ and that the options after the second +-zrcrop apply to the Buz. The maximum number of MJPEG cards +participating in cinerama is four, so you can build a +2x2 vidiwall. +

+Finally an important remark: Do not start or stop XawTV on the playback device +during playback, it will crash your computer. It is, however, fine to +FIRST start XawTV, +THEN start MPlayer, +wait for MPlayer +to finish and THEN stop XawTV. +

8.19.2. Blinkenlights

+This driver is capable of playback using the Blinkenlights UDP protocol. If you +don't know what Blinkenlights +or its successor +Arcade +are, find it out. Although this is most probably the least used video output +driver, without a doubt it is the coolest MPlayer +has to offer. Just watch some of the +Blinkenlights documentation videos. +On the Arcade video you can see the Blinkenlights output driver in +action at 00:07:50. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/ports.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/ports.html new file mode 100644 index 0000000..dd8ffe2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/ports.html @@ -0,0 +1 @@ +Chapter 12. Ports diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio-input.html new file mode 100644 index 0000000..7baa217 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio-input.html @@ -0,0 +1,61 @@ +11.1. Radio input

11.1. Radio input

+This section is about how to enable listening to radio from +a V4L-compatible radio tuner. See the man page for a +description of radio options and keyboard controls. +

11.1.1. Compilation

  1. + First, you have to recompile MPlayer using + ./configure with --enable-radio and + (if you want capture support) --enable-radio-capture. +

  2. + Make sure your tuner works with another radio software in Linux, for + example XawTV. +

11.1.2. Usage tips

+The full listing of the options is available in the manual page. +Here are just a few tips: + +

  • + Use the channels option. An example: +

    -radio channels=104.4-Sibir,103.9-Maximum

    + Explanation: With this option, only the 104.4 and 103.9 radio stations + will be usable. There will be a nice OSD text upon channel switching, + displaying the channel's name. Spaces in the channel name must be + replaced by the "_" character. +

  • + There are several ways of capturing audio. You can grab the sound either using + your sound card via an external cable connection between video card and + line-in, or using the built-in ADC in the saa7134 chip. In the latter case, + you have to load the saa7134-alsa or + saa7134-oss driver. +

  • + MEncoder cannot be used for audio capture, + because it requires a video stream to work. So your can either use + arecord from ALSA project or + use -ao pcm:file=file.wav. In the latter case you + will not hear any sound (unless you are using a line-in cable and + have switched line-in mute off). +

+

11.1.3. Examples

+Input from standard V4L (using line-in cable, capture switched off): +

mplayer radio://104.4

+

+Input from standard V4L (using line-in cable, capture switched off, +V4Lv1 interface): +

mplayer -radio driver=v4l radio://104.4

+

+Playing second channel from channel list: +

mplayer -radio channels=104.4=Sibir,103.9=Maximm radio://2

+

+Passing sound over the PCI bus from the radio card's internal ADC. +In this example the tuner is used as a second sound card +(ALSA device hw:1,0). For saa7134-based cards either the +saa7134-alsa or saa7134-oss +module must be loaded. +

+mplayer -rawaudio rate=32000 radio://2/capture \
+    -radio adevice=hw=1.0:arate=32000:channels=104.4=Sibir,103.9=Maximm
+

+

Note

+When using ALSA device names colons must be replaced +by equal signs, commas by periods. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio.html new file mode 100644 index 0000000..a42aa90 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/radio.html @@ -0,0 +1 @@ +Chapter 11. Radio diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/rtc.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/rtc.html new file mode 100644 index 0000000..16df5a7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/rtc.html @@ -0,0 +1,35 @@ +2.5. RTC

2.5. RTC

+There are three timing methods in MPlayer. + +

  • + To use the old method, you don't have to do + anything. It uses usleep() to tune + A/V sync, with +/- 10ms accuracy. However sometimes the sync has to be + tuned even finer. +

  • + The new timer code uses the RTC (RealTime + Clock) for this task, because it has precise 1ms timers. + The -rtc option enables it, + but a properly set up kernel is required. + If you are running kernel 2.4.19pre8 or later you can adjust the maximum RTC + frequency for normal users through the /proc + filesystem. Use one of the following two commands to + enable RTC for normal users: +

    echo 1024 > /proc/sys/dev/rtc/max-user-freq

    +

    sysctl dev/rtc/max-user-freq=1024

    + You can make this setting permanent by adding the latter to + /etc/sysctl.conf. +

    + You can see the new timer's efficiency in the status line. + The power management functions of some notebook BIOSes with speedstep CPUs + interact badly with RTC. Audio and video may get out of sync. Plugging the + external power connector in before you power up your notebook seems to help. + In some hardware combinations (confirmed during usage of non-DMA DVD drive + on an ALi1541 board) usage of the RTC timer causes skippy playback. It's + recommended to use the third method in these cases. +

  • + The third timer code is turned on with the + -softsleep option. It has the efficiency of the RTC, but it + doesn't use RTC. On the other hand, it requires more CPU. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sdl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sdl.html new file mode 100644 index 0000000..a08b0e5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sdl.html @@ -0,0 +1,20 @@ +8.4. SDL

8.4. SDL

+SDL (Simple Directmedia Layer) is basically a unified +video/audio interface. Programs that use it know only about SDL, and not +about what video or audio driver does SDL actually use. For example a Doom +port using SDL can run on svgalib, aalib, X, fbdev, and others, you only +have to specify the (for example) video driver to use with the +SDL_VIDEODRIVER environment variable. Well, in theory. +

+With MPlayer, we used its X11 driver's software +scaler ability for cards/drivers that doesn't support XVideo, until we made +our own (faster, nicer) software scaler. Also we used its aalib output, but +now we have ours which is more comfortable. Its DGA mode was better than +ours, until recently. Get it now? :) +

+It also helps with some buggy drivers/cards if the video is jerky (not slow +system problem), or audio is lagging. +

+SDL video output supports displaying subtitles under the movie, on the (if +present) black bar. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-file.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-file.html new file mode 100644 index 0000000..ff95f9e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-file.html @@ -0,0 +1,285 @@ +C.2. The skin file

C.2. The skin file

+As mentioned above, this is the skin configuration file. It is line oriented; +comment lines start with a ';' character at the beginning of +the line (only spaces and tabs are allowed before the ';'). +

+The file is made up of sections. Each section describes the skin for an +application and has the following form: +

+section = section name
+.
+.
+.
+end
+

+

+Currently there is only one application, so you need only one section: its name +is movieplayer. +

+Within this section each window is described by a block of the following form: +

+window = window name
+.
+.
+.
+end
+

+

+where window name can be one of these strings: +

  • + main - for the main window +

  • + sub - for the subwindow +

  • + menu - for the skin menu +

  • + playbar - playbar +

+

+(The sub and menu blocks are optional - you do not need to create a menu or +decorate the subwindow.) +

+Within a window block, you can define each item for the window by a line in +this form: +

item = parameter

+Where item is a string that identifies the type of the GUI +item, parameter is a numeric or textual value (or a list of +values separated by commas). +

+Putting the above together, the whole file looks something like this: +

+section = movieplayer
+  window = main
+  ; ... items for main window ...
+  end
+
+  window = sub
+  ; ... items for subwindow ...
+  end
+
+  window = menu
+  ; ... items for menu ...
+  end
+
+  window = playbar
+  ; ... items for playbar ...
+  end
+end
+

+

+The name of an image file must be given without leading directories - images +are searched for in the skins directory. +You may (but you need not) specify the extension of the file. If the file does +not exist, MPlayer tries to load the file +<filename>.<ext>, where png +and PNG are tried for <ext> +(in this order). The first matching file will be used. +

+Here is an example to make this clear. Suppose that you have an image called +main.png that you use for the main window: +

base = main, -1, -1

+MPlayer tries to load main, +main.png, main.PNG files. +

+Finally some words about positioning. The main window and the subwindow can be +placed in the different corners of the screen by giving X +and Y coordinates. 0 is top or left, +-1 is center and -2 is right or bottom, as +shown in this illustration: +

+(0, 0)----(-1, 0)----(-2, 0)
+  |          |          |
+  |          |          |
+(0,-1)----(-1,-1)----(-2,-1)
+  |          |          |
+  |          |          |
+(0,-2)----(-1,-2)----(-2,-2)
+

+

C.2.1. Main window and playbar

+Below is the list of entries that can be used in the +'window = main' ... 'end', +and the 'window = playbar' ... 'end' +blocks. +

+ base = image, X, Y +

+ Lets you specify the background image to be used for the main window. + The window will appear at the given X,Y position on + the screen The window will have the size of the image. +

Note

+ These coordinates do not currently work for the display window. +

Warning

Transparent regions in the image (colored #FF00FF) appear black + on X servers without the XShape extension. The image's width must be dividable + by 8.

+ button = image, X, Y, width, height, message +

+ Place a button of width * height size at + position X,Y. The specified message is + generated when the button is clicked. The image given by + image must have three parts below each other (according to + the possible states of the button), like this: +

++------------+
+|  pressed   |
++------------+
+|  released  |
++------------+
+|  disabled  |
++------------+
+ decoration = enable|disable +

+ Enable or disable window manager decoration of the main window. Default is + disable. +

Note

+ This doesn't work for the display window, there is no need to. +

+ hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message +

+

+ vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message +

+ Place a horizontal (hpotmeter) or vertical (vpotmeter) potmeter of + width * height size at position + X,Y. The image can be divided into different parts for the + different phases of the potmeter (for example, you can have a pot for volume + control that turns from green to red while its value changes from the minimum + to the maximum.). hpotmeter can have a button that can be + dragged horizontally. The parameters are: +

  • + button - the image to be used for the + button (must have three parts below each other, like in case of + button) +

  • + bwidth, bheight - size + of the button +

  • + phases - the image to be used for the + different phases of the hpotmeter. A special value of NULL + can be used if you want no such image. The image must be divided into + numphases parts vertically like this: +

    ++------------+
    +|  phase #1  |
    ++------------+
    +|  phase #2  |
    ++------------+
    +     ...
    ++------------+
    +|  phase #n  |
    ++------------+

    +

  • + numphases - number of phases stored in the + phases image +

  • + default - default value for hpotmeter + (in the range 0 to 100) +

  • + X, Y - position for the hpotmeter +

  • + width, height - width and height + of the hpotmeter +

  • + message - the message to be generated when the + value of hpotmeter is changed +

+

+ potmeter = phases, numphases, default, X, Y, width, height, message +

+ A hpotmeter without a button. (I guess it is meant to be + turned around, but it reacts to horizontal dragging only.) For the description + of the parameters see hpotmeter. + phases can be NULL, but it is quite + useless, since you cannot see where the potmeter is set. +

+ font = fontfile, fontid +

+ Defines a font. fontfile is the name of a font description + file with a .fnt extension (do not specify the extension + here). fontid is used to refer to the font + (see dlabel + and slabel). Up to 25 fonts can be defined. +

+ slabel = X, Y, fontid, "text" +

+ Place a static label at the position X,Y. + text is displayed using the font identified by + fontid. The text is just a raw string + ($x variables do not work) that must be enclosed between + double quotes (but the " character cannot be part of the text). The + label is displayed using the font identified by fontid. +

+ dlabel = X, Y, length, align, fontid, "text" +

+ Place a dynamic label at the position X,Y. The label is + called dynamic because its text is refreshed periodically. The maximum length + of the label is given by length (its height is the height + of a character). If the text to be displayed is wider than that, it will be + scrolled, + otherwise it is aligned within the specified space by the value of the + align parameter: 0 is for right, + 1 is for center, 2 is for left. +

+ The text to be displayed is given by text: It must be + written between double quotes (but the " character cannot be part of the + text). The label is displayed using the font identified by + fontid. You can use the following variables in the text: +

VariableMeaning
$1play time in hh:mm:ss format
$2play time in mmmm:ss format
$3play time in hh format (hours)
$4play time in mm format (minutes)
$5play time in ss format (seconds)
$6movie length in hh:mm:ss format
$7movie length in mmmm:ss format
$8play time in h:mm:ss format
$vvolume in xxx.xx% format
$Vvolume in xxx.xx format
$bbalance in xxx.xx% format
$Bbalance in xxx.xx format
$$the $ character
$aa character according to the audio type (none: n, + mono: m, stereo: t)
$ttrack number (in playlist)
$ofilename
$ffilename in lower case
$Ffilename in upper case
$T + a character according to the stream type (file: f, + Video CD: v, DVD: d, + URL: u) +
$pthe p character (if a movie is playing and the font + has the p character)
$sthe s character (if the movie is stopped and the + font has the s character)
$ethe e character (if playback is paused and the font + has the e character)
$xmovie width
$ymovie height
$Cname of the codec used

Note

+ The $a, $T, $p, $s and $e + variables all return characters that should be displayed as special symbols + (for example, e is for the pause symbol that usually looks + something like ||). You should have a font for normal characters and + a different font for symbols. See the section about + symbols for more information. +

C.2.2. Subwindow

+The following entries can be used in the +'window = sub' . . . 'end' block. +

+ base = image, X, Y, width, height +

+ The image to be displayed in the window. The window will appear at the given + X,Y position on the screen (0,0 is the + top left corner). You can specify -1 for center and + -2 for right (X) and bottom + (Y). The window will be as large as the image. + width and height + denote the size of the window; they are optional (if they are missing, the + window is the same size as the image). +

+ background = R, G, B +

+ Lets you set the background color. It is useful if the image is smaller than + the window. R, G and + B specifies the red, green and blue component of the color + (each of them is a decimal number from 0 to 255). +

C.2.3. Skin menu

+As mentioned earlier, the menu is displayed using two images. Normal menu +entries are taken from the image specified by the base item, +while the currently selected entry is taken from the image specified by the +selected item. You must define the position and size of each +menu entry through the menu item. +

+The following entries can be used in the +'window = menu'. . .'end' block. +

+ base = image +

+ The image for normal menu entries. +

+ selected = image +

+ The image showing the menu with all entries selected. +

+ menu = X, Y, width, height, message +

+ Defines the X,Y position and the size of a menu entry in + the image. message is the message to be generated when the + mouse button is released over the entry. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-fonts.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-fonts.html new file mode 100644 index 0000000..491b066 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-fonts.html @@ -0,0 +1,39 @@ +C.3. Fonts

C.3. Fonts

+As mentioned in the section about the parts of a skin, a font is defined by an +image and a description file. You can place the characters anywhere in the +image, but make sure that their position and size is given in the description +file exactly. +

+The font description file (with .fnt extension) can have +comment lines starting with ';'. The file must have a line +in the form + +

image = image

+Where image is the name of the +image file to be used for the font (you do not have to specify the extension). + +

"char" = X, Y, width, height

+Here X and Y specify the position of the +char character in the image (0,0 is the +upper left corner). width and height are +the dimensions of the character in pixels. +

+This example defines the A, B, C characters using font.png. +

+; Can be "font" instead of "font.png".
+image = font.png
+
+; Three characters are enough for demonstration purposes :-)
+"A" =  0,0, 7,13
+"B" =  7,0, 7,13
+"C" = 14,0, 7,13
+

+

C.3.1. Symbols

+Some characters have special meanings when returned by some of the variables +used in dlabel. These characters are meant +to be shown as symbols so that things like a nice DVD logo can be displayed +instead of the character 'd' for a DVD stream. +

+The following table lists all the characters that can be used to display +symbols (and thus require a different font). +

CharacterSymbol
pplay
sstop
epause
nno sound
mmono sound
tstereo sound
fstream is a file
vstream is a Video CD
dstream is a DVD
ustream is a URL
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-gui.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-gui.html new file mode 100644 index 0000000..1088c4c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-gui.html @@ -0,0 +1,101 @@ +C.4. GUI messages

C.4. GUI messages

+These are the messages that can be generated by buttons, potmeters and +menu entries. +

Playback control:

evNext

+ Jump to next track in the playlist. +

evPause

+ Forms a switch together with evPlaySwitchToPause. They can + be used to have a common play/pause button. Both messages should be assigned + to buttons displayed at the very same position in the window. This message + pauses playing and the image for the evPlaySwitchToPause + button is displayed (to indicate that the button can be pressed to continue + playing). +

evPlay

+ Start playing. +

evPlaySwitchToPause

+ The opposite of evPauseSwitchToPlay. This message starts + playing and the image for the evPauseSwitchToPlay button + is displayed (to indicate that the button can be pressed to pause playing). +

evPrev

+ Jump to previous track in the playlist. +

evStop

+ Stop playing. +

Seeking:

evBackward10sec

+ Seek backward 10 seconds. +

evBackward1min

+ Seek backward 1 minute. +

evBackward10min

+ Seek backward 10 minutes. +

evForward10sec

+ Seek forward 10 seconds. +

evForward1min

+ Seek forward 1 minute. +

evForward10min

+ Seek forward 10 minutes. +

evSetMoviePosition

+ Seek to position (can be used by a potmeter; the + relative value (0-100%) of the potmeter is used). +

Video control:

evHalfSize

+ Set the movie window to half size. +

evDoubleSize

+ Set the movie window to double size. +

evFullScreen

+ Switch fullscreen mode on/off. +

evNormalSize

+ Set the movie window to its normal size. +

Audio control:

evDecAudioBufDelay

+ Decrease audio buffer delay. +

evDecBalance

+ Decrease balance. +

evDecVolume

+ Decrease volume. +

evIncAudioBufDelay

+ Increase audio buffer delay. +

evIncBalance

+ Increase balance. +

evIncVolume

+ Increase volume. +

evMute

+ Mute/unmute the sound. +

evSetBalance

+ Set balance (can be used by a potmeter; the + relative value (0-100%) of the potmeter is used). +

evSetVolume

+ Set volume (can be used by a potmeter; the relative + value (0-100%) of the potmeter is used). +

Miscellaneous:

evAbout

+ Open the about window. +

evDropSubtitle

+ Disables the currently used subtitle. +

evEqualizer

+ Turn the equalizer on/off. +

evExit

+ Quit the program. +

evIconify

+ Iconify the window. +

evLoad

+ Load a file (by opening a file browser window, where you can choose a file). +

evLoadPlay

+ Does the same as evLoad, but it automatically starts + playing after the file is loaded. +

evLoadSubtitle

+ Loads a subtitle file (with the fileselector) +

evLoadAudioFile

+ Loads an audio file (with the fileselector) +

evNone

+ Empty message, it has no effect (except maybe in Subversion versions :-)). +

evPlaylist

+ Open/close the playlist window. +

evPlayDVD

+ Tries to open the disc in the given DVD-ROM drive. +

evPlayVCD

+ Tries to open the disc in the given CD-ROM drive. +

evPreferences

+ Open the preferences window. +

evSetAspect

+ Sets displayed image aspect. +

evSetURL

+ Displays the URL dialog window. +

evSkinBrowser

+ Open the skin browser window. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-overview.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-overview.html new file mode 100644 index 0000000..932d672 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-overview.html @@ -0,0 +1,121 @@ +C.1. Overview

C.1. Overview

+It does not really have anything to do with the skin format, but you should +know that MPlayer has +no builtin skin, so +at least one skin must be installed in order to be able +to use the GUI. +

C.1.1. Directories

+The directories searched for skins are (in order): +

  1. + $(DATADIR)/skins/ +

  2. + $(PREFIX)/share/mplayer/skins/ +

  3. + ~/.mplayer/skins/ +

+

+Note that the first path may vary according to the way +MPlayer was configured (see the +--prefix and --datadir +arguments of the configure script). +

+Every skin is installed into its own directory under one of the directories +listed above, for example: +

$(PREFIX)/share/mplayer/skins/default/

+

C.1.2. Image formats

Images must be truecolor (24 or 32 bpp) PNGs.

+In the main window and in the playbar (see below) you can use images with +`transparency': Regions filled with the color #FF00FF (magenta) are fully +transparent when viewed by MPlayer. This means +that you can even have shaped windows if your X server has the XShape extension. +

C.1.3. Skin components

+Skins are quite free-format (unlike the fixed-format skins of +Winamp/XMMS, +for example), so it is up to you to create something great. +

+Currently there are four windows to be decorated: the +main window, the +subwindow, the +playbar, and the +skin menu (which can be activated +by a right click). + +

  • + The main window and/or the + playbar is where you can control + MPlayer. The background of the window is an image. + Various items can (and must) be placed in the window: + buttons, potmeters (sliders) and + labels. + For every item, you must specify its position and size. +

    + A button has three states (pressed, released, + disabled), thus its image must be divided into three parts vertically. See the + button item for details. +

    + A potmeter (mainly used for the seek bar and + volume/balance control) can have any number of phases by dividing its image + into different parts below each other. See + hpotmeter and + potmeter for details. +

    + Labels are a bit special: The characters + needed to draw them are taken from an image file, and the characters in the + image are described by a + font description file. + The latter is a plain text file which specifies the x,y position and size of + each character in the image (the image file and its font description file + form a font together). + See dlabel + and slabel for details. +

    Note

    + All images can have full transparency as described in the section about + image formats. If the X server + doesn't support the XShape extension, the parts marked transparent will be + black. If you'd like to use this feature, the width of the main window's + background image must be dividable by 8. +

  • + The subwindow is where the movie appears. It + can display a specified image if there is no movie loaded (it is quite boring + to have an empty window :-)) Note: + transparency is not allowed here. +

  • + The skin menu is just a way to control + MPlayer by means of menu entries. Two images + are required for the menu: one of them is the base image that shows the + menu in its normal state, the other one is used to display the selected + entries. When you pop up the menu, the first image is shown. If you move + the mouse over the menu entries, the currently selected entry is copied + from the second image over the menu entry below the mouse pointer + (the second image is never shown as a whole). +

    + A menu entry is defined by its position and size in the image (see the + section about the skin menu for + details). +

+

+There is an important thing not mentioned yet: For buttons, potmeters and +menu entries to work, MPlayer must know what to +do if they are clicked. This is done by messages +(events). For these items you must define the messages to be generated when +they are clicked. +

C.1.4. Files

+You need the following files to build a skin: +

  • + The configuration file named skin tells + MPlayer how to put different parts of the skin + together and what to do if you click somewhere in the window. +

  • + The background image for the main window. +

  • + Images for the items in the main window (including one or more font + description files needed to draw labels). +

  • + The image to be displayed in the subwindow (optional). +

  • + Two images for the skin menu (they are needed only if you want to create + a menu). +

+ With the exception of the skin configuration file, you can name the other + files whatever you want (but note that font description files must have + a .fnt extension). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-quality.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-quality.html new file mode 100644 index 0000000..ea063f5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin-quality.html @@ -0,0 +1,38 @@ +C.5. Creating quality skins

C.5. Creating quality skins

+So you have read up on creating skins for the +MPlayer GUI, done your best with the +Gimp and wish to submit your skin to us? +Read on for some guidelines to avoid common mistakes and produce +a high quality skin. +

+We want skins that we add to our repository to conform to certain +quality standards. There are also a number of things that you can do +to make our lives easier. +

+As an example you can look at the Blue skin, +it satisfies all the criteria listed below since version 1.5. +

  • + Each skin should come with a + README file that contains information about + you, the author, copyright and license notices and anything else + you wish to add. If you wish to have a changelog, this file is a + good place. +

  • + There should be a file VERSION + with nothing more than the version number of the skin on a single + line (e.g. 1.0). +

  • + Horizontal and vertical controls (sliders like volume + or position) should have the center of the knob properly centered on + the middle of the slider. It should be possible to move the knob to + both ends of the slider, but not past it. +

  • + Skin elements should have the right sizes declared + in the skin file. If this is not the case you can click outside of + e.g. a button and still trigger it or click inside its area and not + trigger it. +

  • + The skin file should be + prettyprinted and not contain tabs. Prettyprinted means that the + numbers should line up neatly in columns. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin.html new file mode 100644 index 0000000..bbe7d84 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/skin.html @@ -0,0 +1 @@ +Appendix C. MPlayer skin format diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/softreq.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/softreq.html new file mode 100644 index 0000000..77cc555 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/softreq.html @@ -0,0 +1,48 @@ +2.1. Software requirements

2.1. Software requirements

  • + binutils - recommended version is + 2.11.x. +

  • + gcc - recommended versions are 2.95 + and 3.4+. 2.96 and 3.0.x are known to generate faulty code, 3.1 and + 3.2 also had problems, 3.3 some minor ones. On PowerPC, use 4.x. +

  • + Xorg/XFree86 - recommended version is + 4.3 or later. Make sure the + development packages are installed, + too, otherwise it won't work. + You don't absolutely need X, some video output drivers work without it. +

  • + make - recommended version is + 3.79.x or later. To build the XML documentation you need 3.80. +

  • + FreeType - 2.0.9 or later is required + for the OSD and subtitles +

  • + ALSA - optional, for ALSA audio output + support. At least 0.9.0rc4 is required. +

  • + libjpeg - + required for the optional JPEG video output driver +

  • + libpng - + required for the optional PNG video output driver +

  • + directfb - optional, 0.9.13 or later + required for the directfb video output driver +

  • + lame - 3.90 or later is recommended, + necessary for encoding MP3 audio with MEncoder. +

  • + zlib - recommended, necessary for compressed + MOV header and PNG support +

  • + LIVE555 Streaming Media + - optional, needed for some RTSP/RTP streams +

  • + cdparanoia - optional, for CDDA support +

  • + libxmms - optional, for XMMS input plugin + support. At least 1.2.7 is required. +

  • + libsmb - optional, for SMB networking support +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/streaming.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/streaming.html new file mode 100644 index 0000000..bfb5a02 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/streaming.html @@ -0,0 +1,37 @@ +3.4. Streaming from network or pipes

3.4. Streaming from network or pipes

+MPlayer can play files from the network, using the +HTTP, FTP, MMS or RTSP/RTP protocol. +

+Playing works simply by passing the URL on the command line. +MPlayer honors the http_proxy +environment variable, using a proxy if available. Proxies can also be forced: +

+mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
+

+

+MPlayer can read from stdin +(not named pipes). This can for example be used to +play from FTP: +

+wget ftp://micorsops.com/something.avi -O - | mplayer -
+

+

Note

+It is also recommended to enable -cache when playing +from the network: +

+wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -
+

+

3.4.1. Saving streamed content

+Once you succeed in making MPlayer play +your favorite internet stream, you can use the option +-dumpstream to save the stream into a file. +For example: +

+mplayer http://217.71.208.37:8006 -dumpstream -dumpfile stream.asf
+

+will save the content streamed from +http://217.71.208.37:8006 into +stream.asf. +This works with all protocols supported by +MPlayer, like MMS, RSTP, and so forth. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/subosd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/subosd.html new file mode 100644 index 0000000..5f4ba34 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/subosd.html @@ -0,0 +1,63 @@ +3.2. Subtitles and OSD

3.2. Subtitles and OSD

+MPlayer can display subtitles along with movie files. +Currently the following formats are supported: +

  • VOBsub

  • OGM

  • CC (closed caption)

  • MicroDVD

  • SubRip

  • SubViewer

  • Sami

  • VPlayer

  • RT

  • SSA

  • PJS (Phoenix Japanimation Society)

  • MPsub

  • AQTitle

  • + JACOsub +

+

+MPlayer can dump the previously listed subtitle +formats (except the three first) into the +following destination formats, with the given options: +

  • MPsub: -dumpmpsub

  • SubRip: -dumpsrtsub

  • MicroDVD: -dumpmicrodvdsub

  • JACOsub: -dumpjacosub

  • Sami: -dumpsami

+

+MEncoder can dump DVD subtitles into +VOBsub format. +

+The command line options differ slightly for the different formats: +

VOBsub subtitles.  +VOBsub subtitles consist of a big (some megabytes) .SUB +file, and optional .IDX and/or .IFO +files. If you have files like +sample.sub, +sample.ifo (optional), +sample.idx - you have to pass +MPlayer the -vobsub sample +[-vobsubid id] options +(full path optional). The -vobsubid option is like +-sid for DVDs, you can choose between subtitle tracks +(languages) with it. In case that -vobsubid is omitted, +MPlayer will try to use the languages given by the +-slang option and fall back to the +langidx in the .IDX file to set +the subtitle language. If it fails, there will be no subtitles. +

Other subtitles.  +The other formats consist of a single text file containing timing, +placement and text information. Usage: If you have a file like +sample.txt, +you have to pass the option -sub +sample.txt (full path optional). +

Adjusting subtitle timing and placement:

-subdelay sec

+ Delays subtitles by sec seconds. + Can be negative. The value is added to movie's time position counter. +

-subfps RATE

+ Specify frame/sec rate of subtitle file (float number). +

-subpos 0-100

+ Specify the position of subtitles. +

+If you experience a growing delay between the movie and the subtitles when +using a MicroDVD subtitle file, most likely the framerate of the movie and +the subtitle file are different. Please note that the MicroDVD subtitle +format uses absolute frame numbers for its timing, but there is no fps +information in it, and therefore the -subfps option should +be used with this format. If you like to solve this problem permanently, +you have to manually convert the subtitle file framerate. +MPlayer can do this +conversion for you: + +

+mplayer -dumpmicrodvdsub -fps subtitles_fps -subfps avi_fps \
+    -sub subtitle_filename dummy.avi
+

+

+About DVD subtitles, read the DVD section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/svgalib.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/svgalib.html new file mode 100644 index 0000000..b14f5d2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/svgalib.html @@ -0,0 +1,42 @@ +8.5. SVGAlib

8.5. SVGAlib

INSTALLATION.  +You'll have to install svgalib and its development package in order for +MPlayer build its SVGAlib driver (autodetected, +but can be forced), and don't forget to edit +/etc/vga/libvga.config to suit your card and monitor. +

Note

+Be sure not to use the -fs switch, since it toggles the +usage of the software scaler, and it's slow. If you really need it, use the +-sws 4 option which will produce bad quality, but is +somewhat faster. +

EGA (4BPP) SUPPORT.  +SVGAlib incorporates EGAlib, and MPlayer has the +possibility to display any movie in 16 colors, thus usable in the following +sets: +

  • + EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp +

  • + EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp +

+The bpp (bits per pixel) value must be set to 4 by hand: +-bpp 4 +

+The movie probably must be scaled down to fit in EGA mode: +

-vf scale=640:350

+or +

-vf scale=320:200

+

+For that we need fast but bad quality scaling routine: +

-sws 4

+

+Maybe automatic aspect correction has to be shut off: +

-noaspect

+

Note

+According to my experience the best image quality on +EGA screens can be achieved by decreasing the brightness a bit: +-vf eq=-20:0. I also needed to lower the audio +samplerate on my box, because the sound was broken on 44kHz: +-srate 22050. +

+You can turn on OSD and subtitles only with the expand +filter, see the man page for exact parameters. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sync.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sync.html new file mode 100644 index 0000000..26c8787 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/sync.html @@ -0,0 +1,22 @@ +9.1. Audio/Video synchronization

9.1. Audio/Video synchronization

+Linux sound card drivers have compatibility problems. This is because +MPlayer relies on an in-built feature of +properly coded sound drivers that enable them to +maintain correct audio/video sync. Regrettably, some driver authors +don't take the care to code this feature since it is not needed for +playing MP3s or sound effects. +

+Other media players like aviplay +or xine possibly work +out-of-the-box with these drivers because they use "simple" methods +with internal timing. Measuring showed that their methods are not as +efficient as MPlayer's. +

+Using MPlayer with a properly written audio +driver will never result in A/V desyncs related to the audio, except +only with very badly created files (check the man page for workarounds). +

+If you happen to have a bad audio driver, try the -autosync +option, it should sort out your problems. See the man page for detailed +information. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfx_vid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfx_vid.html new file mode 100644 index 0000000..3b676cb --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfx_vid.html @@ -0,0 +1,28 @@ +8.9. tdfx_vid

8.9. tdfx_vid

+This is a combination of a Linux kernel module and a video output +driver, similar to mga_vid. +You'll need a 2.4.x kernel with the agpgart +driver since tdfx_vid uses AGP. +Pass --enable-tdfxfb to configure +to build the video output driver and build the kernel module with +the following instructions. +

Installing the tdfx_vid.o kernel module:

  1. + Compile tdfx_vid.o: +

    +cd drivers
    +make

    +

  2. + Then run (as root) +

    make install

    + which should install the module and create the device node for you. + Load the driver with +

    insmod tdfx_vid.o

    +

  3. + To make it load/unload automatically when needed, first insert the + following line at the end of /etc/modules.conf: + +

    alias char-major-178 tdfx_vid

    +

+There is a test application called tdfx_vid_test in the same +directory. It should print out some useful information if all is working well. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfxfb.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfxfb.html new file mode 100644 index 0000000..a2c8d40 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tdfxfb.html @@ -0,0 +1,6 @@ +8.8. 3Dfx YUV support

8.8. 3Dfx YUV support

+This driver uses the kernel's tdfx framebuffer driver to play movies with +YUV acceleration. You'll need a kernel with tdfxfb support, and recompile +with +

./configure --enable-tdfxfb

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/troubleshooting.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/troubleshooting.html new file mode 100644 index 0000000..cca5645 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/troubleshooting.html @@ -0,0 +1,12 @@ +9.2. Troubleshooting

9.2. Troubleshooting

Some notes:

+If you have ALSA version 0.5, then you almost always have to use +-ao alsa5, since ALSA 0.5 has buggy OSS emulation code, +and will crash MPlayer +with a message like this: +

+DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
+

+

+If the sound clicks when playing from CD-ROM, turn on IRQ unmasking as +described in the CD-ROM section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-input.html new file mode 100644 index 0000000..044479e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-input.html @@ -0,0 +1,130 @@ +10.1. TV input

10.1. TV input

+This section is about how to enable watching/grabbing +from V4L compatible TV tuner. See the man page for a description +of TV options and keyboard controls. +

10.1.1. Compilation

  1. + First, you have to recompile. ./configure will + autodetect kernel headers of v4l stuff and the existence of + /dev/video* entries. If they exist, TV support will + be built (see the output of ./configure). +

  2. + Make sure your tuner works with another TV software in Linux, for + example XawTV. +

10.1.2. Usage tips

+The full listing of the options is available on the manual page. +Here are just a few tips: + +

  • + Use the channels option. An example: +

    -tv channels=26-MTV1,23-TV2

    + Explanation: Using this option, only the 26 and 23 channels will be usable, + and there will be a nice OSD text upon channel switching, displaying the + channel's name. Spaces in the channel name must be replaced by the + "_" character. +

  • + Choose some sane image dimensions. The dimensions of the resulting image + should be divisible by 16. +

  • + If you capture the video with the vertical resolution higher than half + of the full resolution (i.e. 288 for PAL or 240 for NTSC), then the + 'frames' you get will really be interleaved pairs of fields. + Depending on what you want to do with the video you may leave it in + this form, destructively deinterlace, or break the pairs apart into + individual fields. +

    + Otherwise you'll get a movie which is distorted during + fast-motion scenes and the bitrate controller will be probably even unable + to retain the specified bitrate as the interlacing artifacts produce high + amount of detail and thus consume lot of bandwidth. You can enable + deinterlacing with -vf pp=DEINT_TYPE. + Usually pp=lb does a good job, but it can be matter of + personal preference. + See other deinterlacing algorithms in the manual and give it a try. +

  • + Crop out the dead space. When you capture the video, the areas at the edges + are usually black or contain some noise. These again consume lots of + unnecessary bandwidth. More precisely it's not the black areas themselves + but the sharp transitions between the black and the brighter video image + which do but that's not important for now. Before you start capturing, + adjust the arguments of the crop option so that all the + crap at the margins is cropped out. Again, don't forget to keep the resulting + dimensions sane. +

  • + Watch out for CPU load. It shouldn't cross the 90% boundary for most of the + time. If you have a large capture buffer, MEncoder + can survive an overload for few seconds but nothing more. It's better to + turn off the 3D OpenGL screensavers and similar stuff. +

  • + Don't mess with the system clock. MEncoder uses the + system clock for doing A/V sync. If you adjust the system clock (especially + backwards in time), MEncoder gets confused and you + will lose frames. This is an important issue if you are hooked to a network + and run some time synchronization software like NTP. You have to turn NTP + off during the capture process if you want to capture reliably. +

  • + Don't change the outfmt unless you know what you are doing + or your card/driver really doesn't support the default (YV12 colorspace). + In the older versions of MPlayer/ + MEncoder it was necessary to specify the output + format. This issue should be fixed in the current releases and + outfmt isn't required anymore, and the default suits the + most purposes. For example, if you are capturing into DivX using + libavcodec and specify + outfmt=RGB24 in order to increase the quality of the captured + images, the captured image will be actually later converted back into YV12 so + the only thing you achieve is a massive waste of CPU power. +

  • + To specify the I420 colorspace (outfmt=i420), you have to + add an option -vc rawi420 due to a fourcc conflict with an + Intel Indeo video codec. +

  • + There are several ways of capturing audio. You can grab the sound either using + your sound card via an external cable connection between video card and + line-in, or using the built-in ADC in the bt878 chip. In the latter case, you + have to load the btaudio driver. Read the + linux/Documentation/sound/btaudio file (in the kernel + tree, not MPlayer's) for some instructions on using + this driver. +

  • + If MEncoder cannot open the audio device, make + sure that it is really available. There can be some trouble with the sound + servers like aRts (KDE) or ESD (GNOME). If you have a full duplex sound card + (almost any decent card supports it today), and you are using KDE, try to + check the "full duplex" option in the sound server preference menu. +

+

10.1.3. Examples

+Dummy output, to AAlib :) +

mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://

+

+Input from standard V4L: +

+mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
+

+

+A more sophisticated example. This makes MEncoder +capture the full PAL image, crop the margins, and deinterlace the picture +using a linear blend algorithm. Audio is compressed with a constant bitrate +of 64kbps, using LAME codec. This setup is suitable for capturing movies. +

+mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64\
+    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
+    -vf crop=720:544:24:16,pp=lb -o output.avi tv://
+

+

+This will additionally rescale the image to 384x288 and compresses the +video with the bitrate of 350kbps in high quality mode. The vqmax option +looses the quantizer and allows the video compressor to actually reach so +low bitrate even at the expense of the quality. This can be used for +capturing long TV series, where the video quality isn't so important. +

+mencoder -tv driver=v4l:width=768:height=576 \
+    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
+    -oac mp3lame -lameopts cbr:br=48 -sws 1 -o output.avi\
+    -vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
+

+It's also possible to specify smaller image dimensions in the +-tv option and omit the software scaling but this approach +uses the maximum available information and is a little more resistant to noise. +The bt8x8 chips can do the pixel averaging only in the horizontal direction due +to a hardware limitation. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-teletext.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-teletext.html new file mode 100644 index 0000000..1fc0d2f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv-teletext.html @@ -0,0 +1,25 @@ +10.2. Teletext

10.2. Teletext

+Teletext is currently available only in MPlayer for v4l and v4l2 drivers. +

10.2.1. Implementation notes

+MPlayer supports regular text, graphics and navigation links. +Unfortunately, colored pages are not fully supported yet - all pages are shown as grayscaled. +Subtitle pages (also known as Closed Captions) are supported, too. +

+MPlayer starts caching all teletext pages upon +starting to receive TV input, so you do not need to wait until the requested page is loaded. +

+Note: Using teletext with -vo xv causes strange colors. +

10.2.2. Using teletext

+To enable teletext decoding you must specify the VBI device to get teletext data +from (usually /dev/vbi0 for Linux). This can be done by specifying +tdevice in your configuration file, like shown below: +

tv=tdevice=/dev/vbi0

+

+You might need to specify the teletext language code for your country. +To list all available country codes use +

tv=tdevice=/dev/vbi0:tlang=-1

+Here is an example for Russian: +

tv=tdevice=/dev/vbi0:tlang=33

+

+

10.2.3. Teletext hot keys

KeyDescription
XSwitch teletext display on/off
CCycle through teletext rendering modes (opaque, transparent, inverted opaque, + inverted transparent
Left/RightGo to previous/next teletext page
PageUp/PageDownGo to next/previous teletext subpage
digitsEnter teletext page number to jump to
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv.html new file mode 100644 index 0000000..6d2925d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tv.html @@ -0,0 +1 @@ +Chapter 10. TV diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tvout.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tvout.html new file mode 100644 index 0000000..855c8fc --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/tvout.html @@ -0,0 +1,206 @@ +8.20. TV-out support

8.20. TV-out support

8.20.1. Matrox G400 cards

+Under Linux you have two methods to get G400 TV out working: +

Important

+for Matrox G450/G550 TV-out instructions, please see the next section! +

XFree86

+ Using the driver and the HAL module, available from the Matrox site. This will give you X + on the TV. +

+ This method doesn't give you accelerated playback + as under Windows! The second head has only YUV framebuffer, the + BES (Back End Scaler, the YUV scaler on + G200/G400/G450/G550 cards) doesn't work on it! The windows driver somehow + workarounds this, probably by using the 3D engine to zoom, and the YUV + framebuffer to display the zoomed image. If you really want to use X, use + the -vo x11 -fs -zoom options, but it will be + SLOW, and has + Macrovision copy protection enabled + (you can "workaround" Macrovision using this + perl script). +

Framebuffer

+ Using the matroxfb modules in the 2.4 + kernels. 2.2 kernels don't have the TVout feature in them, thus unusable + for this. You have to enable ALL matroxfb-specific feature during + compilation (except MultiHead), and compile them into + modules! + You'll also need I2C enabled. +

  1. + Enter TVout and type + ./compile.sh. Install + TVout/matroxset/matroxset + somewhere into your PATH. +

  2. + If you don't have fbset installed, put + TVout/fbset/fbset + somewhere into your PATH. +

  3. + If you don't have con2fb installed, put + TVout/con2fb/con2fb + somewhere into your PATH. +

  4. + Then enter into the TVout/ + directory in the MPlayer source, and execute + ./modules as root. Your text-mode console will + enter into framebuffer mode (no way back!). +

  5. + Next, EDIT and run the ./matroxtv script. This will + present you to a very simple menu. Press 2 and + Enter. Now you should have the same picture on your + monitor, and TV. If the TV (PAL by default) + picture has some weird stripes on it, the script wasn't able to set the + resolution correctly (to 640x512 by default). Try other resolutions + from the menu and/or experiment with fbset. +

  6. + Yoh. Next task is to make the cursor on tty1 (or whatever) to + disappear, and turn off screen blanking. Execute the following + commands: + +

    +echo -e '\033[?25l'
    +setterm -blank 0

    + or +

    +setterm -cursor off
    +setterm -blank 0

    + + You possibly want to put the above into a script, and also clear the + screen. To turn the cursor back: +

    echo -e '\033[?25h'

    or +

    setterm -cursor on

    +

  7. + Yeah kewl. Start movie playing with +

    +mplayer -vo mga -fs -screenw 640 -screenh 512 filename

    + + (If you use X, now change to matroxfb with for example + Ctrl+Alt+F1.) + Change 640 and 512 if you set + the resolution to other... +

  8. + Enjoy the ultra-fast ultra-featured Matrox TV + output (better than Xv)! +

Building a Matrox TV-out cable.  +No one takes any responsibility, nor guarantee for any damage caused +by this documentation. +

Cable for G400.  +The CRTC2 connector's fourth pin is the composite video signal. The +ground are the sixth, seventh and eighth pins. (info contributed +from Balázs Rácz) +

Cable for G450.  +The CRTC2 connector's first pin is the composite video signal. The +ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15) +pins. (info contributed from Balázs Kerekes) +

8.20.2. Matrox G450/G550 cards

+TV output support for these cards has only been recently introduced, and is +not yet in the mainstream kernel. +Currently the mga_vid module can't be used +AFAIK, because the G450/G550 driver works only in one configuration: the first +CRTC chip (with much more features) on the first display (on monitor), +and the second CRTC (no BES - for +explanation on BES, please see the G400 section above) on TV. So you can only +use MPlayer's fbdev output +driver at the present. +

+The first CRTC can't be routed to the second head currently. The author of the +kernel matroxfb driver - Petr Vandrovec - will maybe make support for this, by +displaying the first CRTC's output onto both of the heads at once, as currently +recommended for G400, see the section above. +

+The necessary kernel patch and the detailed HOWTO is downloadable from +http://www.bglug.ca/matrox_tvout/ +

8.20.3. ATI cards

PREAMBLE.  +Currently ATI doesn't want to support any of its TV-out chips under Linux, +because of their licensed Macrovision technology. +

ATI CARDS TV-OUT STATUS ON LINUX

  • + ATI Mach64: + supported by GATOS. +

  • + ASIC Radeon VIVO: + supported by GATOS. +

  • + Radeon and Rage128: + supported by MPlayer! + Check VESA driver and + VIDIX sections. +

  • + Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: + supported by + atitvout. +

+On other cards, just use the VESA driver, +without VIDIX. Powerful CPU is needed, though. +

+Only thing you need to do - Have the TV connector +plugged in before booting your PC since video BIOS initializes +itself only once during POST procedure. +

8.20.4. nVidia

+First, you MUST download the closed-source drivers from +http://nvidia.com. +I will not describe the installation and configuration process because it does +not cover the scope of this documentation. +

+After XFree86, XVideo, and 3D acceleration is properly working, edit your +card's Device section in the XF86Config file, according +to the following example (adapt for your card/TV): + +

+Section "Device"
+        Identifier      "GeForce"
+        VendorName      "ASUS"
+        BoardName       "nVidia GeForce2/MX 400"
+        Driver          "nvidia"
+        #Option         "NvAGP" "1"
+        Option          "NoLogo"
+        Option          "CursorShadow"  "on"
+
+        Option          "TwinView"
+        Option          "TwinViewOrientation" "Clone"
+        Option          "MetaModes" "1024x768,640x480"
+        Option          "ConnectedMonitor" "CRT, TV"
+        Option          "TVStandard" "PAL-B"
+        Option          "TVOutFormat" "Composite"
+EndSection
+

+

+Of course the important thing is the TwinView part. +

8.20.5. NeoMagic

+The NeoMagic chip is found in a variety of laptops, some of them are equipped +with a simple analog TV encoder, some have a more advanced one. +

  • + Analog encoder chip: + It has been reported that reliable TV out can be obtained by using + -vo fbdev or -vo fbdev2. + You need to have vesafb compiled in your kernel and pass + the following parameters on the kernel command line: + append="video=vesafb:ywrap,mtrr" vga=791. + You should start X, then switch to console mode + with e.g. + Ctrl+Alt+F1. + If you fail to start X before running + MPlayer from the console, the video + becomes slow and choppy (explanations are welcome). + Login to your console, then initiate the following command: + +

    clear; mplayer -vo fbdev -zoom -cache 8192 dvd://

    + + Now you should see the movie running in console mode filling up about + half your laptop's LCD screen. To switch to TV hit + Fn+F5 three times. + Tested on a Tecra 8000, 2.6.15 kernel with vesafb, ALSA v1.0.10. +

  • + Chrontel 70xx encoder chip: + Found in IBM Thinkpad 390E and possibly other Thinkpads or notebooks. +

    + You must use -vo vesa:neotv_pal for PAL or + -vo vesa:neotv_ntsc for NTSC. + It will provide TV output function in the following 16 bpp and 8 bpp modes: +

    • NTSC 320x240, 640x480 and maybe 800x600 too.

    • PAL 320x240, 400x300, 640x480, 800x600.

    Mode 512x384 is not supported in BIOS. You must scale the image + to a different resolution to activate TV out. If you can see an image on the + screen in 640x480 or in 800x600 but not in 320x240 or other smaller + resolution you need to replace two tables in vbelib.c. + See the vbeSetTV function for details. Please contact the author in this case. +

    + Known issues: VESA-only, no other controls such as brightness, contrast, + blacklevel, flickfilter are implemented. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/unix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/unix.html new file mode 100644 index 0000000..54d4f6c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/unix.html @@ -0,0 +1,251 @@ +12.3. Commercial Unix

12.3. Commercial Unix

+MPlayer has been ported to a number of commercial +Unix variants. Since the development environments on these systems tend to be +different from those found on free Unixes, you may have to make some manual +adjustments to make the build work. +

12.3.1. Solaris

+MPlayer should work on Solaris 2.6 or newer. +Use the SUN audio driver with the -ao sun option for sound. +

+On UltraSPARCs, +MPlayer takes advantage of their +VIS extensions +(equivalent to MMX), currently only in +libmpeg2, +libvo +and libavcodec, but not in +mp3lib. You can watch a VOB file +on a 400MHz CPU. You'll need +mLib +installed. +

Caveat:

  • + mediaLib is + currently disabled by default in + MPlayer because of brokenness. SPARC users + who build MPlayer with mediaLib support have reported a thick, + green-tint on video encoded and decoded with libavcodec. You may enable + it if you wish with: +

    ./configure --enable-mlib

    + You do this at your own risk. x86 users should + never use mediaLib, as this will + result in very poor MPlayer performance. +

+To build the package you will need GNU make +(gmake, /opt/sfw/gmake), native +Solaris make will not work. Typical error you get when building with +Solaris' make instead of GNU make: +

+% /usr/ccs/bin/make
+make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
+

+

+On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if +GNU C/C++ compiler is configured with or without the GNU assembler. +

+On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, +configured to use the GNU assembler! The MPlayer +code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions +that cannot be compiled using Sun's assembler +/usr/ccs/bin/as. +

+The configure script tries to find out, which assembler +program is used by your "gcc" command (in case the autodetection +fails, use the +--as=/wherever/you/have/installed/gnu-as +option to tell the configure script where it can find GNU +"as" on your system). +

Solutions to common problems:

  • + Error message from configure on a Solaris x86 system + using GCC without GNU assembler: +

    +% configure
    +...
    +Checking assembler (/usr/ccs/bin/as) ... , failed
    +Please upgrade(downgrade) binutils to 2.10.1...

    + (Solution: Install and use a gcc configured with + --with-as=gas) +

    +Typical error you get when building with a GNU C compiler that does not +use GNU as: +

    +% gmake
    +...
    +gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
    +     -fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
    +Assembler: mplayer.c
    +"(stdin)", line 3567 : Illegal mnemonic
    +"(stdin)", line 3567 : Syntax error
    +... more "Illegal mnemonic" and "Syntax error" errors ...
    +

    +

  • + MPlayer may segfault when decoding + and encoding video that uses the win32codecs: +

    +...
    +Trying to force audio codec driver family acm...
    +Opening audio decoder: [acm] Win32/ACM decoders
    +sysi86(SI86DSCR): Invalid argument
    +Couldn't install fs segment, expect segfault
    +
    +
    +MPlayer interrupted by signal 11 in module: init_audio_codec
    +...

    + This is because of a change to sysi86() in Solaris 10 and pre-Solaris + Nevada b31 releases. This has been fixed in Solaris Nevada b32; + however, Sun has yet to backport the fix to Solaris 10. The MPlayer + Project has made Sun aware of the problem and a patch is currently in + progress for Solaris 10. More information about this bug can be found + at: + http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413. +

  • +Due to bugs in Solaris 8, +you may not be able to play DVD discs larger than 4 GB: +

    • + The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB + on a device using a logical blocksize != DEV_BSIZE + (i.e. CD-ROM and DVD media). + Due to a 32Bit int overflow, a disk address modulo 4GB is accessed + (http://groups.yahoo.com/group/solarisonintel/message/22516). + This problem does not exist in the SPARC version of Solaris 8. +

    • + A similar bug is present in the hsfs(7FS) filesystem code (AKA ISO9660), + hsfs may not not support partitions/disks larger than 4GB, all data is + accessed modulo 4GB + (http://groups.yahoo.com/group/solarisonintel/message/22592). + The hsfs problem can be fixed by installing + patch 109764-04 (sparc) / 109765-04 (x86). +

12.3.2. IRIX

+You can either try to install the GNU install program, and (if you did +not put it in your global path) then point to the location with: +

+./configure --with-install=/path/and/name/of/install
+

+

+Or you can use the default install delivered with IRIX 6.5 in which case +you will have to edit the Makefile by hand a little bit. +Change the line: +

+$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
+

+to: +

+$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
+

+and then go on with building and installing. +

12.3.3. HP-UX

+Joe Page hosts a detailed HP-UX MPlayer +HOWTO +by Martin Gansser on his homepage. With these instructions the build should +work out of the box. The following information is taken from this HOWTO. +

+You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later. +HP cc will not produce a working program, prior GCC versions are buggy. +For OpenGL functionality you need to install Mesa and the gl and gl2 video +output drivers should work, speed may be very bad, depending on the CPU speed, +though. A good replacement for the rather poor native HP-UX sound system is +GNU esound. +

+Create the DVD device +scan the SCSI bus with: + +

+# ioscan -fn
+
+Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
+...
+ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
+target  3    8/16/5.2    tgt   CLAIMED DEVICE
+disk    4    8/16/5.2.0  sdisk CLAIMED DEVICE     PIONEER DVD-ROM DVD-305
+                         /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0
+target  4    8/16/5.7    tgt   CLAIMED DEVICE
+ctl     1    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
+                         /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
+...
+

+ +The screen output shows a Pioneer DVD-ROM at SCSI address 2. +The card instance for hardware path 8/16 is 1. +

+Create a link from the raw device to the DVD device. +

+ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device>
+

+Example: +

ln -s /dev/rdsk/c1t2d0 /dev/dvd

+

+Below are solutions for some common problems: + +

  • + Crash at Start with the following error message: +

    +/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl

    +

    + This means that the function .finite(). is not + available in the standard HP-UX math library. + Instead there is .isfinite().. + Solution: Use the latest Mesa depot file. +

  • + Crash at playback with the following error message: +

    +/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0

    +

    + Solution: Use the extralibdir option of configure + --with-extralibdir="/usr/lib -lrt" +

  • + MPlayer segfaults with a message like this: +

    +Pid 10166 received a SIGSEGV for stack growth failure.
    +Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
    +Segmentation fault

    +

    + Solution: + The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and + newer 10.20 patches let you increase maxssiz up to + 350MB for 32-bit programs). You need to extend + maxssiz and recompile the kernel (and reboot). + You can use SAM to do this. + (While at it, check out the maxdsiz parameter for + the maximum amount of data a program can use. + It depends on your applications, if the default of 64MB is enough or not.) +

+

12.3.4. AIX

+MPlayer builds successfully on AIX 5.1, +5.2, and 5.3, using GCC 3.3 or greater. Building +MPlayer on AIX 4.3.3 and below is +untested. It is highly recommended that you build +MPlayer using GCC 3.4 or greater, +or if you are building on POWER5, GCC 4.0 is required. +

+Ensure that you are using GNU make +(/opt/freeware/bin/gmake) to build +MPlayer, as you will encounter problems if +you use /usr/ccs/bin/make. +

+CPU detection is still a work in progress. +The following architectures have been tested: +

  • 604e

  • POWER3

  • POWER4

+The following architectures are untested, but should still work: +

  • POWER

  • POWER2

  • POWER5

+

+Sound via the Ultimedia Services is not supported, as Ultimedia was +dropped in AIX 5.1; therefore, the only option is to use the AIX Open +Sound System (OSS) drivers from 4Front Technologies at +http://www.opensound.com/aix.html. +4Front Technologies freely provides OSS drivers for AIX 5.1 for +non-commercial use; however, there are currently no sound output +drivers for AIX 5.2 or 5.3. This means AIX 5.2 +and 5.3 are not capable of MPlayer audio output, presently. +

Solutions to common problems:

  • + If you encounter this error message from ./configure: +

    +$ ./configure
    +...
    +Checking for iconv program ... no
    +No working iconv program found, use
    +--charset=US-ASCII to continue anyway.
    +Messages in the GTK-2 interface will be broken then.

    + This is because AIX uses non-standard character set names; therefore, + converting MPlayer output to another character set is currently not + supported. The solution is to use: +

    $ ./configure --charset=noconv

    +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/usage.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/usage.html new file mode 100644 index 0000000..9456ce1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/usage.html @@ -0,0 +1 @@ +Chapter 3. Usage diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vcd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vcd.html new file mode 100644 index 0000000..2ff51bc --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vcd.html @@ -0,0 +1,72 @@ +4.3. VCD playback

4.3. VCD playback

+For the complete list of available options, please read the man page. The +Syntax for a standard Video CD (VCD) is as follows: +

mplayer vcd://<track> [-cdrom-device <device>]

+Example: +

mplayer vcd://2 -cdrom-device /dev/hdc

+The default VCD device is /dev/cdrom. If your setup +differs, make a symlink or specify the correct device on the command line +with the -cdrom-device option. +

Note

+At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance +reading VCDs. This is because the CDROMREADRAW ioctl +is not fully implemented for these drives. If you have some knowledge of SCSI +programming, please help us +implement generic SCSI support for VCDs. +

+In the meantime you can extract data from VCDs with +readvcd +and play the resulting file with MPlayer. +

VCD structure.  +A Video CD (VCD) is made up of CD-ROM XA sectors, i.e. CD-ROM mode 2 +form 1 and 2 tracks: +

  • + The first track is in mode 2 form 2 format which means it uses L2 + error correction. The track contains an ISO-9660 filesystem with 2048 + bytes/sector. This filesystem contains VCD metadata information, as + well as still frames often used in menus. MPEG segments for menus can + also be stored in this first track, but the MPEGs have to be broken up + into a series of 150-sector chunks. The ISO-9660 filesystem may + contain other files or programs that are not essential for VCD + operation. +

  • + The second and remaining tracks are generally raw 2324 bytes/sector + MPEG (movie) tracks, containing one MPEG PS data packet per + sector. These are in mode 2 form 1 format, so they store more data per + sector at the loss of some error correction. It is also legal to have + CD-DA tracks in a VCD after the first track as well. + On some operating systems there is some trickery that goes on to make + these non-ISO-9660 tracks appear in a filesystem. On other operating + systems like GNU/Linux this is not the case (yet). Here the MPEG data + cannot be mounted. As most movies are + inside this kind of track, you should try vcd://2 + first. +

  • + There exist VCD disks without the first track (single track and no filesystem + at all). They are still playable, but cannot be mounted. +

  • + The definition of the Video CD standard is called the + Philips "White Book" and it is not generally available online as it + must be purchased from Philips. More detailed information about Video + CDs can be found in the + vcdimager documentation. +

+

About .DAT files.  +The ~600 MB file visible on the first track of the mounted VCD is not a real +file! It is a so called ISO gateway, created to allow Windows to handle such +tracks (Windows does not allow raw device access to applications at all). +Under Linux you cannot copy or play such files (they contain garbage). Under +Windows it is possible as its iso9660 driver emulates the raw reading of +tracks in this file. To play a .DAT file you need the kernel driver which can +be found in the Linux version of PowerDVD. It has a modified iso9660 filesystem +(vcdfs/isofs-2.4.X.o) driver, which is able to emulate the +raw tracks through this shadow .DAT file. If you mount the disc using their +driver, you can copy and even play .DAT files with +MPlayer. But it will not +work with the standard iso9660 driver of the Linux kernel! Use +vcd:// instead. Alternatives for VCD copying are the +new cdfs kernel +driver (not part of the official kernel) that shows CD sessions as image files +and cdrdao, a bit-by-bit +CD grabbing/copying application. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vesa.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vesa.html new file mode 100644 index 0000000..d98d58a --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vesa.html @@ -0,0 +1,91 @@ +8.13. VESA - output to VESA BIOS

8.13. VESA - output to VESA BIOS

+This driver was designed and introduced as a generic +driver for any video card which has VESA VBE 2.0 compatible +BIOS. Another advantage of this driver is that it tries to force TV output +on. +VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, +1998 (Page 70) says: +

Dual-Controller Designs.  +VBE 3.0 supports the dual-controller design by assuming that since both +controllers are typically provided by the same OEM, under control of a +single BIOS ROM on the same graphics card, it is possible to hide the fact +that two controllers are indeed present from the application. This has the +limitation of preventing simultaneous use of the independent controllers, +but allows applications released before VBE 3.0 to operate normally. The +VBE Function 00h (Return Controller Information) returns the combined +information of both controllers, including the combined list of available +modes. When the application selects a mode, the appropriate controller is +activated. Each of the remaining VBE functions then operates on the active +controller. +

+So you have chances to get working TV-out by using this driver. +(I guess that TV-out frequently is standalone head or standalone output +at least.) +

ADVANTAGES

  • + You have chances to watch movies if Linux even doesn't + know your video hardware. +

  • + You don't need to have installed any graphics' related things on your + Linux (like X11 (AKA XFree86), fbdev and so on). This driver can be run + from text-mode. +

  • + You have chances to get working TV-out. + (It's known at least for ATI's cards). +

  • + This driver calls int 10h handler thus it's not + an emulator - it calls real things of + real BIOS in real-mode + (actually in vm86 mode). +

  • + You can use VIDIX with it, thus getting accelerated video display + and TV output at the same time! + (Recommended for ATI cards.) +

  • + If you have VESA VBE 3.0+, and you had specified + monitor-hfreq, monitor-vfreq, monitor-dotclock somewhere + (config file, or command line) you will get the highest possible refresh rate. + (Using General Timing Formula). To enable this feature you have to specify + all your monitor options. +

DISADVANTAGES

  • + It works only on x86 systems. +

  • + It can be used only by root. +

  • + Currently it's available only for Linux. +

Important

+Don't use this driver with GCC 2.96! +It won't work! +

COMMAND LINE OPTIONS AVAILABLE FOR VESA

-vo vesa:opts

+ currently recognized: dga to force dga mode and + nodga to disable dga mode. In dga mode you can enable + double buffering via the -double option. Note: you may omit + these parameters to enable autodetection of + dga mode. +

KNOWN PROBLEMS AND WORKAROUNDS

  • + If you have installed NLS font on your + Linux box and run VESA driver from text-mode then after terminating + MPlayer you will have + ROM font loaded instead of national. + You can load national font again by using setsysfont + utility from the Mandrake/Mandriva distribution for example. + (Hint: The same utility is used for + localization of fbdev). +

  • + Some Linux graphics drivers don't update + active BIOS mode in DOS memory. + So if you have such problem - always use VESA driver only from + text-mode. Otherwise text-mode (#03) will + be activated anyway and you will need restart your computer. +

  • + Often after terminating VESA driver you get + black screen. To return your screen to + original state - simply switch to other console (by pressing + Alt+F<x>) + then switch to your previous console by the same way. +

  • + To get working TV-out you need have plugged + TV-connector in before booting your PC since video BIOS initializes + itself only once during POST procedure. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-codecs.html new file mode 100644 index 0000000..3127d6e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-codecs.html @@ -0,0 +1,211 @@ +7.1. Video codecs

7.1. Video codecs

+The codec status table is a +complete list of all supported codecs, regenerated daily. +Some binary codecs for use with MPlayer are available in the +download section +of our homepage. +

+The most important ones above all: +

  • + MPEG-1 (VCD) and + MPEG-2 (DVD) video +

  • + native decoders for all DivX variants, + 3ivX, M$ MPEG-4 v1, v2 and other MPEG-4 variants +

  • + native decoder for Windows Media Video 7/8 + (WMV1/WMV2), and Win32 DLL decoder + for Windows Media Video 9 + (WMV3), + both used in .wmv files +

  • + native Sorenson 1 (SVQ1) decoder +

  • + native Sorenson 3 (SVQ3) decoder +

  • + 3ivx v1, v2 decoder +

  • + Cinepak and Intel Indeo codecs + (3.1,3.2,4.1,5.0) +

  • + MJPEG, AVID, VCR2, ASV2 and other hardware + formats +

  • + VIVO 1.0, 2.0, I263 and other H.263(+) + variants +

  • + FLI/FLC +

  • + RealVideo 1.0 & 2.0 from + libavcodec, and + RealVideo 3.0 & 4.0 codecs using + RealPlayer libraries +

  • + native decoder for HuffYUV +

  • + Various old simple RLE-like formats +

+If you have a Win32 codec not listed here which is not supported yet, +please read the codec importing HOWTO +and help us add support for it. +

7.1.1. FFmpeg/libavcodec

+FFmpeg contains +libavcodec, the leading +open source video and audio codec library. It is capable +of decoding most multimedia formats, usually at higher speeds +than the alternatives, and aims to add support for +the rest of them eventually. It is the default decoder for +the majority of codecs that MPlayer +supports. Encoding is also possible for some formats and +supported in MEncoder. +

+For a complete list of supported +video +and audio +codecs please visit the FFmpeg homepage. +

+MPlayer contains +libavcodec. +Just run ./configure and compile. +

7.1.2. Xvid

+Xvid is a free software MPEG-4 ASP +compliant video codec, which features two pass encoding and full MPEG-4 ASP +support, making it a lot more efficient than the well-known DivX codec. +It yields very good video quality and good performance due to CPU +optimizations for most modern processors. +

+It began as a forked development of the OpenDivX codec. +This happened when ProjectMayo changed OpenDivX to closed source +DivX4, and the non-ProjectMayo people working on OpenDivX got angry, +then started Xvid. So both projects have the same origin. +

+Note that Xvid is not necessary to decode Xvid-encoded video. +libavcodec is used by +default as it offers better speed. +

Installing Xvid

+ Like most open source software, it is available in two flavors: + official releases + and the CVS version. + The CVS version is usually stable enough to use, as most of the time it + features fixes for bugs that exist in releases. + Here is what to do to make Xvid + CVS work with MEncoder (you need at least + autoconf 2.50, + automake and libtool): +

  1. +

    cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

    +

  2. +

    cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

    +

  3. +

    cd xvidcore/build/generic

    +

  4. +

    ./bootstrap.sh

    +

  5. +

    ./configure

    + You may have to add some options (examine the output of + ./configure --help). +

  6. +

    make && make install

    +

  7. + If you specified --enable-divxcompat, + copy ../../src/divx4.h to + /usr/local/include/. +

  8. + Recompile MPlayer with + --with-xvidlibdir=/path/to/libxvidcore.a + --with-xvidincdir=/path/to/xvid.h. +

7.1.3. x264

7.1.3.1. What is x264?

+x264 +is a library for creating H.264 video streams. +It is not 100% complete, but currently it has at least some kind +of support for most of the H.264 features which impact quality. +There are also many advanced features in the H.264 specification +which have nothing to do with video quality per se; many of these +are not yet implemented in x264. +

Encoder features

  • CAVLC/CABAC

  • Multi-references

  • + Intra: all macroblock types (16x16, 8x8, and 4x4 with all predictions) +

  • + Inter P: all partitions (from 16x16 down to 4x4) +

  • + Inter B: partitions from 16x16 down to 8x8 (including SKIP/DIRECT) +

  • + Ratecontrol: constant quantizer, constant bitrate, single or multipass ABR, + optional VBV +

  • Scene cut detection

  • Adaptive B-frame placement

  • + B-frames as references / arbitrary frame order +

  • 8x8 and 4x4 adaptive spatial transform

  • Lossless mode

  • Custom quantization matrices

  • Parallel encoding of multiple slices

  • Interlacing

7.1.3.2. What is H.264?

+H.264 is one name for a new digital video codec jointly developed +by the ITU and MPEG. +It can also be correctly referred to by the cumbersome names of +"ISO/IEC 14496-10" or "MPEG-4 Part 10". +More frequently, it is referred to as "MPEG-4 AVC" or just "AVC". +

+Whatever you call it, H.264 may be worth trying because it can typically match +the quality of MPEG-4 ASP with 5%-30% less bitrate. +Actual results will depend on both the source material and the encoder. +The gains from using H.264 do not come for free: Decoding H.264 +streams seems to have steep CPU and memory requirements. +For instance, on a 1733 MHz Athlon, a DVD-resolution 1500kbps H.264 +video requires around 35% CPU to decode. +By comparison, decoding a DVD-resolution 1500kbps MPEG-4 ASP stream +requires around 10% CPU. +This means that decoding high-definition streams is almost out of +the question for most users. +It also means that even a decent DVD rip may sometimes stutter on +processors slower than 2.0 GHz or so. +

+At least with x264, +encoding requirements are not much worse than what you are used to +with MPEG-4 ASP. +For instance, on a 1733 MHz Athlon a typical DVD encode would run +at 5-15fps. +

+This document is not intended to explain the details of H.264, +but if you are interested in a brief overview, you may want to read +The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions. +

7.1.3.3. How can I play H.264 videos with + MPlayer?

+MPlayer uses +libavcodec's H.264 decoder. +libavcodec has had at +least minimally usable H.264 decoding since around July 2004, +however major changes and improvements have been implemented since +that time, both in terms of more functionalities supported and in +terms of improved CPU usage. +Just to be certain, it is always a good idea to use a recent Subversion +checkout. +

+If you want a quick and easy way to know whether there have been +recent changes to libavcodec's +H.264 decoding, you might keep an eye on +FFmpeg Subversion repository's web interface. +

7.1.3.4. How can I encode videos using MEncoder + and x264?

+If you have the subversion client installed, the latest x264 +sources can be gotten with this command: +

svn co svn://svn.videolan.org/x264/trunk x264

+MPlayer sources are updated whenever +an x264 API change +occurs, so it is always suggested to use +MPlayer from Subversion as well. +Perhaps this situation will change when and if an +x264 "release" occurs. +Meanwhile, x264 should +be considered very unstable, in the sense that its programming +interface is subject to change. +

+x264 is built and +installed in the standard way: +

./configure && make && sudo make install

+This installs libx264.a in /usr/local/lib and x264.h is placed in +/usr/local/include. + +With the x264 library +and header placed in the standard locations, building +MPlayer with +x264 support is easy. +Just run the standard: +

./configure && make && sudo make install

+The ./configure script will autodetect that you have +satisfied the requirements for x264. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-formats.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-formats.html new file mode 100644 index 0000000..68ab10c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video-formats.html @@ -0,0 +1,221 @@ +6.1. Video formats

6.1. Video formats

6.1.1. MPEG files

+MPEG files come in different guises: +

  • + MPG: This is the most basic form of the + MPEG file formats. It contains MPEG-1 video, and MP2 (MPEG-1 layer 2) or + rarely MP1 audio. +

  • + DAT: This is the very same format as MPG with a different extension. It + is used on Video CDs. Due to the way VCDs + are created and Linux is designed, the DAT files cannot be played nor copied + from VCDs as regular files. You have to use vcd:// + to play a Video CD. +

  • + VOB: This is the MPEG file format on DVDs. + It is the same as MPG, plus the capability to contain subtitles or non-MPEG + (AC-3) audio. It contains encoded MPEG-2 video and usually AC-3 audio, but DTS, + MP2 and uncompressed LPCM are allowed, too. Read the + DVD section! +

  • + TY: This is a TiVo MPEG stream. It contains MPEG PES data for audio and + video streams, as well as extra information like closed captions. The + container is not an MPEG program stream, but a closed format created by + TiVo. For more information on TiVo stream format, please refer to + + the TyStudio page. +

+Series of frames form independent groups in MPEG files. This means that you +can cut/join an MPEG file with standard file tools (like +dd, cut), and it remains completely +functional. +

+One important feature of MPGs is that they have a field to describe the +aspect ratio of the video stream within. For example SVCDs have 480x480 +resolution video, and in the header that field is set to 4:3, so that it is +played at 640x480. AVI files often lack this field, so they have to be +rescaled during encoding or played with the -aspect +option. +

6.1.2. AVI files

+Designed by Microsoft, +AVI (Audio Video Interleaved) +is a widespread multipurpose format currently used mostly for MPEG-4 (DivX and +DivX4) video. It has many known drawbacks and shortcomings (for example in +streaming). +It supports one video stream and 0 to 99 audio streams and can be as big as +2GB, but there exists an extension allowing bigger files called +OpenDML. Microsoft currently strongly +discourages its use and encourages ASF/WMV. Not that anybody cares. +

+There is a hack that allows AVI files to contain an Ogg Vorbis audio +stream, but makes them incompatible with standard AVI. +MPlayer supports playing these files. Seeking is +also implemented but severely hampered by badly encoded files with +confusing headers. Unfortunately the only encoder currently capable of +creating these files, NanDub, has this problem. +

Note

+DV cameras create raw DV streams that DV grabbing utilities convert to two +different types of AVI files. The AVI will then contain either separate +audio and video streams that MPlayer can play or +the raw DV stream for which support is under development. +

+There are two kinds of AVI files: +

  • + Interleaved: Audio and video content is + interleaved. This is the standard usage. Recommended and mostly used. Some + tools create interleaved AVIs with bad sync. + MPlayer detects these as interleaved, and this + climaxes in loss of A/V sync, probably at seeking. + These files should be played as non-interleaved + (with the -ni option). +

  • + Non-interleaved: First comes the whole + video stream, then the whole audio stream. It thus needs a lot of seeking, + making playing from network or CD-ROM difficult. +

+

+MPlayer supports two kinds of timings for AVI +files: +

  • + bps-based: It is based on the + bitrate/samplerate of the video/audio stream. This method is used by + most players, including avifile + and Windows Media Player. Files with broken + headers, and files created with VBR audio but not VBR-compliant encoder + will result in A/V desync with this method (mostly at seeking). +

  • + interleaving-based: It does not use the + bitrate value of the header, instead it uses the relative position of + interleaved audio and video chunks, + making badly encoded files with VBR audio playable. +

+

+Any audio and video codec is allowed, but note that VBR audio is not well +supported by most players. The file format makes it possible to use VBR +audio, but most players expect CBR audio, thus they fail with VBR. VBR is +uncommon and Microsoft's AVI specs only describe CBR audio. I also noticed +that most AVI encoders/multiplexers create bad files when using VBR audio. +There are only two known exceptions: NanDub and +MEncoder. +

6.1.3. ASF/WMV files

+ASF (Active Streaming Format) comes from Microsoft. They developed two +variants of ASF, v1.0 and v2.0. v1.0 is used by their media tools +(Windows Media Player and +Windows Media Encoder) +and is very secret. v2.0 is published and patented :). Of course they differ, +there is no compatibility at all (it is just another legal game). +MPlayer supports only v1.0, as nobody has ever seen +v2.0 files :). Note that ASF files nowadays come with the extension +.WMA or .WMV. +

6.1.4. QuickTime/MOV files

+These formats were designed by Apple and can contain any codec, CBR or VBR. +They usually have a .QT or .MOV +extension. Note that since the MPEG-4 group chose QuickTime as the recommended +file format for MPEG-4, their MOV files come with a .MPG or +.MP4 extension (Interestingly the video and audio +streams in these files are real MPG and AAC files. You can even extract them +with the -dumpvideo and -dumpaudio options.). +

6.1.5. VIVO files

+MPlayer happily demuxes VIVO file formats. The +biggest disadvantage of the format is that it has no index block, nor a +fixed packet size or sync bytes and most files lack even keyframes, so +forget seeking! +

+The video codec of VIVO/1.0 files is standard +h.263. +The video codec of VIVO/2.0 files is a modified, nonstandard +h.263v2. The audio is the same, it may be +g.723 (standard), or +Vivo Siren. +

6.1.6. FLI files

+FLI is a very old file format used by +Autodesk Animator, but it is a common file format for short animations on the +net. +MPlayer demuxes and decodes FLI movies and is +even able to seek within them (useful when looping with the +-loop option). FLI files do not have keyframes, so the +picture will be messy for a short time after seeking. +

6.1.7. RealMedia (RM) files

+Yes, MPlayer can read (demux) RealMedia +(.rm) files. +

6.1.8. NuppelVideo files

+NuppelVideo +is a TV grabber tool (AFAIK:). MPlayer can read +its .NUV files (only NuppelVideo 5.0). Those files can +contain uncompressed YV12, YV12+RTJpeg compressed, YV12 RTJpeg+lzo +compressed, and YV12+lzo compressed frames. +MPlayer decodes (and also +encodes +them with MEncoder to MPEG-4 (DivX)/etc!) them all. +Seeking works. +

6.1.9. yuv4mpeg files

+yuv4mpeg / yuv4mpeg2 +is a file format used by the +mjpegtools programs. +You can grab, produce, filter or encode video in this format using these tools. +The file format is really a sequence of uncompressed YUV 4:2:0 images. +

6.1.10. FILM files

+This format is used on old Sega Saturn CD-ROM games. +

6.1.11. RoQ files

+RoQ files are multimedia files used in some ID games such as Quake III and +Return to Castle Wolfenstein. +

6.1.12. OGG/OGM files

+This is a new fileformat from +Xiphophorus. +It can contain any video or audio codec, CBR or VBR. You'll need +libogg and +libvorbis installed before +compiling MPlayer to be able to play it. +

6.1.13. SDP files

+SDP is an +IETF standard format for describing video and/or audio RTP streams. +(The "LIVE555 Streaming Media" +are required.) +

6.1.14. PVA files

+PVA is an MPEG-like format used by DVB TV boards' software (e.g.: +MultiDec, +WinTV under Windows). +

6.1.15. NSV files

+NSV (NullSoft Video) is the file format used by the +Winamp player to stream audio and video. +Video is VP3, VP5 or VP6, audio is MP3, AAC or VLB. +The audio only version of NSV has the .nsa extension. +MPlayer can play both NSV streams and files. +Please note that most files from the +Winamp site use VLB audio, that +can't be decoded yet. Moreover streams from that site need an extra +depacketization layer that still has to be implemented (those files are +unplayable anyway because they use VLB audio). +

6.1.16. Matroska files

+Matroska is an open container format. +Read more on the official site. +

6.1.17. NUT files

+NUT is the container format developed by MPlayer and +FFmpeg folks. Both projects support it. +Read more on the official site. +

6.1.18. GIF files

+The GIF format is a common format for web +graphics. There are two versions of the GIF spec, GIF87a and GIF89a. +The main difference is that GIF89a allows for animation. +MPlayer supports both formats through use of +libungif or +another libgif-compatible library. Non-animated GIFs will be displayed as +single frame videos. (Use the -loop and +-fixed-vo options to display these longer.) +

+MPlayer currently does not support seeking in GIF +files. GIF files do not necessarily have a fixed frame size, nor a fixed +framerate. Rather, each frame is of independent size and is supposed to be +positioned in a certain place on a field of fixed-size. The framerate is +controlled by an optional block before each frame that specifies the next +frame's delay in centiseconds. +

+Standard GIF files contain 24-bit RGB frames with at most an 8-bit indexed +palette. These frames are usually LZW-compressed, although some GIF encoders +produce uncompressed frames to avoid patent issues with LZW compression. +

+If your distribution does not come with +libungif, download a copy from the +libungif +homepage. For detailed technical information, have a look at the +GIF89a specification. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video.html new file mode 100644 index 0000000..2b10be7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/video.html @@ -0,0 +1,3 @@ +Chapter 8. Video output devices diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vidix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vidix.html new file mode 100644 index 0000000..5516cf9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/vidix.html @@ -0,0 +1,149 @@ +8.15. VIDIX

8.15. VIDIX

PREAMBLE.  +VIDIX is the abbreviation for +VIDeo +Interface +for *niX. +VIDIX was designed and introduced as an interface for fast user-space drivers +providing such video performance as mga_vid does for Matrox cards. It's also +very portable. +

+This interface was designed as an attempt to fit existing video +acceleration interfaces (known as mga_vid, rage128_vid, radeon_vid, +pm3_vid) into a fixed scheme. It provides a high level interface to chips +which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't +provide low level interface to things which are known as graphics servers. +(I don't want to compete with X11 team in graphics mode switching). I.e. +main goal of this interface is to maximize the speed of video playback. +

USAGE

  • + You can use standalone video output driver: -vo xvidix. + This driver was developed as X11's front end to VIDIX technology. It + requires X server and can work only under X server. Note that, as it directly + accesses the hardware and circumvents the X driver, pixmaps cached in the + graphics card's memory may be corrupted. You can prevent this by limiting + the amount of video memory used by X with the XF86Config option "VideoRam" + in the device section. You should set this to the amount of memory installed + on your card minus 4MB. If you have less than 8MB of video ram, you can use + the option "XaaNoPixmapCache" in the screen section instead. +

  • + There is a console VIDIX driver: -vo cvidix. + This requires a working and initialized framebuffer for most cards (or else + you'll just mess up the screen), and you'll have a similar effect as with + -vo mga or -vo fbdev. nVidia cards however + are able to output truly graphical video on a real text console. See the + nvidia_vid section for more information. + To get rid of text on the borders and the blinking cursor, try something like +

    setterm -cursor off > /dev/tty9

    + (assuming tty9 is unused so far) and then + switch to tty9. + On the other hand, -colorkey 0 should give you a video + running in the "background", though this depends on the colorkey + functionality to work right. +

  • + You can use VIDIX subdevice which was applied to several video output + drivers, such as: -vo vesa:vidix + (Linux only) and + -vo fbdev:vidix. +

+Indeed it doesn't matter which video output driver is used with +VIDIX. +

REQUIREMENTS

  • + Video card should be in graphics mode (except nVidia cards with the + -vo cvidix output driver). +

  • + MPlayer's video output driver should know + active video mode and be able to tell to VIDIX subdevice some video + characteristics of server. +

USAGE METHODS.  +When VIDIX is used as subdevice (-vo +vesa:vidix) then video mode configuration is performed by video +output device (vo_server in short). Therefore you can +pass into command line of MPlayer the same keys +as for vo_server. In addition it understands -double key +as globally visible parameter. (I recommend using this key with VIDIX at +least for ATI's card). As for -vo xvidix, currently it +recognizes the following options: -fs -zoom -x -y -double. +

+Also you can specify VIDIX's driver directly as third subargument in +command line: +

+mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi
+

+or +

+mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi
+

+But it's dangerous, and you shouldn't do that. In this case given driver +will be forced and result is unpredictable (it may +freeze your computer). You should do that +ONLY if you are absolutely sure it will work, and +MPlayer doesn't do it automatically. Please tell +about it to the developers. The right way is to use VIDIX without arguments +to enable driver autodetection. +

+Since VIDIX requires direct hardware access you can either run it as root +or set the SUID bit on the MPlayer binary +(Warning: This is a security risk!). +Alternatively, you can use a special kernel module, like this: +

  1. + Download the + development version + of svgalib (for example 1.9.17), OR + download a version made by Alex especially for usage with + MPlayer (it doesn't need the svgalib source to + compile) from + here. +

  2. + Compile the module in the + svgalib_helper directory (it can be + found inside the + svgalib-1.9.17/kernel/ directory if + you've downloaded the source from the svgalib site) and insmod it. +

  3. + To create the necessary devices in the + /dev directory, do a +

    make device

    in the + svgalib_helper dir, as root. +

  4. + Move the svgalib_helper directory to + the vidix subdirectory of the + MPlayer source tree. +

  5. + Remove the comment before the CFLAGS line containing the "svgalib_helper" + string from vidix/Makefile. +

  6. + Recompile. +

8.15.1. ATI cards

+Currently most ATI cards are supported natively, from Mach64 to the +newest Radeons. +

+There are two compiled binaries: radeon_vid for Radeon and +rage128_vid for Rage 128 cards. You may force one or let +the VIDIX system autoprobe all available drivers. +

8.15.2. Matrox cards

+Matrox G200, G400, G450 and G550 have been reported to work. +

+The driver supports video equalizers and should be nearly as fast as the +Matrox framebuffer +

8.15.3. Trident cards

+There is a driver available for the Trident Cyberblade/i1 chipset, which +can be found on VIA Epia motherboards. +

+The driver was written and is maintained by +Alastair M. Robinson. +

8.15.4. 3DLabs cards

+Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one +has tested it, so reports are welcome. +

8.15.5. nVidia cards

+An unique feature of the nvidia_vid driver is its ability to display video on +plain, pure, text-only console - with no +framebuffer or X magic whatsoever. For this purpose, we'll have to use the +cvidix video output, as the following example shows: +

mplayer -vo cvidix example.avi

+

8.15.6. SiS cards

+This is very experimental code, just like nvidia_vid. +

+It's been tested on SiS 650/651/740 (the most common chipsets used in the +SiS versions of the "Shuttle XPC" barebones boxes out there) +

+Reports awaited! +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/windows.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/windows.html new file mode 100644 index 0000000..0571d99 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/windows.html @@ -0,0 +1,129 @@ +12.4. Windows

12.4. Windows

+Yes, MPlayer runs on Windows under +Cygwin +and +MinGW. +It does not have an official GUI yet, but the command line version +is completely functional. You should check out the +MPlayer-cygwin +mailing list for help and latest information. +Official Windows binaries can be found on the +download page. +Installer packages and simple GUI frontends are available from external +sources, we have collected then in the Windows section of our +projects page. +

+If you wish to avoid using the command line, a simple trick is +to put a shortcut on your desktop that contains something like the +following in the execute section: +

c:\path\to\mplayer.exe %1

+This will make MPlayer play any movie that is +dropped on the shortcut. Add -fs for fullscreen mode. +

+Best results are achieved with the native DirectX video output driver +(-vo directx). Alternatives are OpenGL and SDL, but OpenGL +performance varies greatly between systems and SDL is known to +distort video or crash on some systems. If the image is +distorted, try turning off hardware acceleration with +-vo directx:noaccel. Download +DirectX 7 header files +to compile the DirectX video output driver. Furthermore you need to have +DirectX 7 or later installed for the DirectX video output driver to work. +

+VIDIX now works under Windows as +-vo winvidix, although it is still experimental +and needs a bit of manual setup. Download +dhahelper.sys or +dhahelper.sys (with MTRR support) +and copy it to the vidix/dhahelperwin +directory in your MPlayer source tree. +Open a console and change to that directory. Then type +

gcc -o dhasetup.exe dhasetup.c

+and execute +

dhasetup.exe install

+as Administrator. After that you will have to reboot. When you are +done, copy the .so files from +vidix/drivers to the +mplayer/vidix directory +relative to your mplayer.exe. +

+For best results MPlayer should use a +colorspace that your video card supports in hardware. Unfortunately many +Windows graphics drivers wrongly report some colorspaces as supported in +hardware. To find out which, try +

+mplayer -benchmark -nosound -frames 100 -vf format=colorspace movie
+

+where colorspace can be any colorspace +printed by the -vf format=fmt=help option. If you +find a colorspace your card handles particularly bad +-vf noformat=colorspace +will keep it from being used. Add this to your config file to permanently +keep it from being used. +

There are special codec packages for Windows available on our + download page + to allow playing formats for which there is no native support yet. + Put the codecs somewhere in your path or pass + --codecsdir=c:/path/to/your/codecs + (alternatively + --codecsdir=/path/to/your/codecs + only on Cygwin) to configure. + We have had some reports that Real DLLs need to be writable by the user + running MPlayer, but only on some systems (NT4). + Try making them writable if you have problems. +

+You can play VCDs by playing the .DAT or +.MPG files that Windows exposes on VCDs. It works like +this (adjust for the drive letter of your CD-ROM): +

mplayer d:/mpegav/avseq01.dat

+DVDs also work, adjust -dvd-device for the drive letter +of your DVD-ROM: +

+mplayer dvd://<title> -dvd-device d:
+

+The Cygwin/MinGW +console is rather slow. Redirecting output or using the +-quiet option has been reported to improve performance on +some systems. Direct rendering (-dr) may also help. +If playback is jerky, try +-autosync 100. If some of these options help you, you +may want to put them in your config file. +

Note

+On Windows the runtime CPU detection disables SSE support +because of recurring and hard-to-trace SSE-related crashes. If you +wish to have SSE support under Windows, you will have to compile without +runtime CPU-detection. +

+If you have a Pentium 4 and are experiencing a crash using the +RealPlayer codecs, you may need to disable hyperthreading support. +

12.4.1. Cygwin

+You need to run Cygwin 1.5.0 or later in +order to compile MPlayer. +

+DirectX header files need to be extracted to +/usr/include/ or +/usr/local/include/. +

+Instructions and files for making SDL run under +Cygwin can be found on the +libsdl site. +

12.4.2. MinGW

+Installing a version of MinGW that could +compile MPlayer used to be quite tricky, but it +works out of the box now. Just install MinGW +3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that +MinGW is installed. +

+Extract DirectX header files to +/mingw/include/. +

+MOV compressed header support requires +zlib, +which MinGW does not provide by default. +Configure it with --prefix=/mingw and install +it before compiling MPlayer. +

+Complete instructions for building MPlayer +and necessary libraries can be found in the +MPlayer MinGW HOWTO. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/x11.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/x11.html new file mode 100644 index 0000000..7b43519 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/x11.html @@ -0,0 +1,33 @@ +8.14. X11

8.14. X11

+Avoid if possible. Outputs to X11 (uses shared memory extension), with no +hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but +still slow) software scaling, use the options -fs -zoom. +Most cards have hardware scaling support, use the -vo xv +output for them, or -vo xmga for Matrox cards. +

+The problem is that most cards' driver doesn't support hardware +acceleration on the second head/TV. In those cases, you see green/blue +colored window instead of the movie. This is where this driver comes in +handy, but you need powerful CPU to use software scaling. Don't use the SDL +driver's software output+scaler, it has worse image quality! +

+Software scaling is very slow, you better try changing video modes instead. +It's very simple. See the DGA section's +modelines, and insert them into your XF86Config. + +

  • + If you have XFree86 4.x.x: use the -vm option. It will + change to a resolution your movie fits in. If it doesn't: +

  • + With XFree86 3.x.x: you have to cycle through available resolutions + with the + Ctrl+Alt+Keypad + + and + Ctrl+Alt+Keypad - + keys. +

+

+If you can't find the modes you inserted, browse XFree86's output. Some +drivers can't use low pixelclocks that are needed for low resolution +video modes. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/xv.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/xv.html new file mode 100644 index 0000000..8484a93 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/docs/xv.html @@ -0,0 +1,158 @@ +8.2. Xv

8.2. Xv

+Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines +using the XVideo extension. This is what the option +-vo xv uses. Also, this driver supports adjusting +brightness/contrast/hue/etc. (unless you use the old, slow DirectShow DivX +codec, which supports it everywhere), see the man page. +

+In order to make this work, be sure to check the following: + +

  1. + You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) +

  2. + Your card actually supports hardware acceleration (modern cards do) +

  3. + X loads the XVideo extension, it's something like this: +

    (II) Loading extension XVideo

    + in /var/log/XFree86.0.log +

    Note

    + This loads only the XFree86's extension. In a good install, this is + always loaded, and doesn't mean that the + card's XVideo support is loaded! +

    +

  4. + Your card has Xv support under Linux. To check, try + xvinfo, it is the part of the XFree86 distribution. It + should display a long text, similar to this: +

    +X-Video Extension version 2.2
    +screen #0
    +  Adaptor #0: "Savage Streams Engine"
    +    number of ports: 1
    +    port base: 43
    +    operations supported: PutImage
    +    supported visuals:
    +      depth 16, visualID 0x22
    +      depth 16, visualID 0x23
    +    number of attributes: 5
    +(...)
    +    Number of image formats: 7
    +      id: 0x32595559 (YUY2)
    +        guid: 59555932-0000-0010-8000-00aa00389b71
    +        bits per pixel: 16
    +        number of planes: 1
    +        type: YUV (packed)
    +      id: 0x32315659 (YV12)
    +        guid: 59563132-0000-0010-8000-00aa00389b71
    +        bits per pixel: 12
    +        number of planes: 3
    +        type: YUV (planar)
    +(...etc...)

    + It must support YUY2 packed, and YV12 planar pixel formats to be usable + with MPlayer. +

  5. + And finally, check if MPlayer was compiled + with 'xv' support. Do a mplayer -vo help | grep xv . + If 'xv' support was built a line similar to this should appear: +

      xv      X11/Xv

    +

+

8.2.1. 3dfx cards

+Older 3dfx drivers were known to have problems with XVideo acceleration, it +didn't support YUY2 or YV12 colorspaces. Verify that you have XFree86 +version 4.2.0 or later, it can handle YV12 and YUY2 while previous +versions, including 4.1.0, crash with YV12. +If you experience strange effects using -vo xv, try SDL +(it has XVideo, too) and see if it helps. Check the +SDL section for details. +

+OR, try the NEW +-vo tdfxfb driver! See the tdfxfb +section. +

8.2.2. S3 cards

+S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 +or greater (in case of image problems, try 16bpp). As for S3 Virge: there is +xv support, but the card itself is very slow, so you better sell it. +

+There is now a native framebuffer driver for S3 Virge cards similiar to +tdfxfb. Set up your framebuffer (e.g. append +"vga=792 video=vesa:mtrr" to your kernel comand line) and use +-vo s3fb (-vf yuy2 and -dr +will also help). +

Note

+It's currently unclear which Savage models lack YV12 support, and convert by +driver (slow). If you suspect your card, get a newer driver, or ask politely +on the MPlayer-users mailing list for an MMX/3DNow! enabled driver. +

8.2.3. nVidia cards

+nVidia isn't always a very good choice under Linux ... XFree86's +open-source driver supports most of these cards, but for some cases, you'll +have to use the binary closed-source nVidia driver, available at +nVidia's web site. +You'll always need this driver if you want 3D acceleration, too. +

+Riva128 cards don't have XVideo support with XFree86's nVidia driver :( +Complain to nVidia. +

+However, MPlayer contains a +VIDIX driver for most nVidia cards. Currently it +is in beta stage, and has some drawbacks. For more information, see +nVidia VIDIX section. +

8.2.4. ATI cards

+The GATOS driver +(which you should use, unless you have Rage128 or Radeon) has VSYNC enabled +by default. It means that decoding speed (!) is synced to the monitor's +refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or +set refresh rate to a n*(fps of the movie) Hz. +

+Radeon VE - if you need X, use XFree86 4.2.0 or greater for this card. +No TV out support. Of course with MPlayer you can +happily get accelerated display, with or +without TV output, and no libraries or X are +needed. +Read the VIDIX section. +

8.2.5. NeoMagic cards

+These cards can be found in many laptops. You must use XFree86 4.3.0 or +above, or else use Stefan Seyfried's +Xv-capable drivers. +Just choose the one that applies to your version of XFree86. +

+XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small +patch +against the XFree86 sources that speeds up framebuffer operations (so XVideo) +up to four times. The patch has been included in XFree86 CVS and should be in +the next release after 4.3.0. +

+To allow playback of DVD sized content change your XF86Config like this: +

+Section "Device"
+    [...]
+    Driver "neomagic"
+    Option "OverlayMem" "829440"
+    [...]
+EndSection

+

8.2.6. Trident cards

+If you want to use Xv with a Trident card, provided that it doesn't work +with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen Xv +support with the Cyberblade XP card. +

+Alternatively, MPlayer contains a +VIDIX driver for the Cyberblade/i1 card. +

8.2.7. Kyro/PowerVR cards

+If you want to use Xv with a Kyro based card (for example Hercules +Prophet 4000XT), you should download the drivers from the +PowerVR site. +

8.2.8. Intel cards

+These cards can be found in many laptops. Recent Xorg is recommended. +

+To allow playback of DVD sized (and larger) content change your XF86Config/xorg.conf like this: +

+Section "Device"
+    [...]
+    Driver "intel"
+    Option "LinearAlloc" "6144"
+    [...]
+EndSection
+

+Lack of this option usually results in an error like +

X11 error: BadAlloc (insufficient resources for operation)

+when attempting to use -vo xv. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/man_page.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/man_page.html new file mode 100644 index 0000000..c96822c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/man_page.html @@ -0,0 +1,35727 @@ + + + + + + +MPlayer + + + +

MPlayer

+NAME
+SYNOPSIS
+DESCRIPTION
+INTERACTIVE CONTROL
+USAGE
+CONFIGURATION FILES
+PROFILES
+GENERAL OPTIONS
+PLAYER OPTIONS (MPLAYER ONLY)
+DEMUXER/STREAM OPTIONS
+OSD/SUBTITLE OPTIONS
+AUDIO OUTPUT OPTIONS (MPLAYER ONLY)
+AUDIO OUTPUT DRIVERS (MPLAYER ONLY)
+VIDEO OUTPUT OPTIONS (MPLAYER ONLY)
+VIDEO OUTPUT DRIVERS (MPLAYER ONLY)
+DECODING/FILTERING OPTIONS
+AUDIO FILTERS
+VIDEO FILTERS
+GENERAL ENCODING OPTIONS (MENCODER ONLY)
+CODEC SPECIFIC ENCODING OPTIONS (MENCODER ONLY)
+ENVIRONMENT VARIABLES
+FILES
+EXAMPLES OF MPLAYER USAGE
+EXAMPLES OF MENCODER USAGE
+BUGS
+AUTHORS
+ +
+ +

NAME

+ + + + + +
+

mplayer − movie player
+mencoder − movie encoder

+
+ +

SYNOPSIS

+ + + + + +
+

mplayer [options] +[file|URL|playlist|−]
+mplayer
[options] file1 [specific options] [file2] +[specific options]
+mplayer
[options] {group of files and options} +[group-specific options]
+mplayer
+[dvd|dvdnav]://[title|[start_title]−end_title] +[options]
+mplayer
vcd://track[/device]
+mplayer
tv://[channel][/input_id] [options]
+mplayer
radio://[channel|frequency][/capture] +[options]
+mplayer
pvr:// [options]
+mplayer
dvb://[card_number@]channel [options]
+mplayer
mf://[filemask|@listfile] [−mf options] +[options]
+mplayer
[cdda|cddb]://track[-endtrack][:speed][/device] +[options]
+mplayer
cue://file[:track] [options]
+mplayer
+[file|mms[t]|http|http_proxy|rt[s]p|ftp|udp|unsv|smb]:// +[user:pass@]URL[:port] [options]
+mplayer
sdp://file [options]
+mplayer
mpst://host[:port]/URL [options]
+mplayer
tivo://host/[list|llist|fsid] [options]
+gmplayer
[options] [−skin skin]
+mencoder
[options] file [file|URL|−] [−o +file | file://file | smb://[user:pass@]host/filepath]
+mencoder
[options] file1 [specific options] [file2] +[specific options]

+
+ +

DESCRIPTION

+ + + + + +
+

mplayer is a movie player for Linux (runs on many +other platforms and CPU architectures, see the +documentation). It plays most MPEG/VOB, AVI, ASF/WMA/WMV, +RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, NuppelVideo, +yuv4mpeg, FILM and RoQ files, supported by many native and +binary codecs. You can watch Video CD, SVCD, DVD, 3ivx, DivX +3/4/5 and even WMV movies, too.

+ +

MPlayer supports a wide range of video and audio output +drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, +AAlib, libcaca, DirectFB, Quartz, Mac OS X CoreVideo, but +you can also use GGI, SDL (and all their drivers), VESA (on +every VESA-compatible card, even without X11), some +low-level card-specific drivers (for Matrox, 3dfx and ATI) +and some hardware MPEG decoder boards, such as the Siemens +DVB, Hauppauge PVR (IVTV), DXR2 and DXR3/Hollywood+. Most of +them support software or hardware scaling, so you can enjoy +movies in fullscreen mode.

+ +

MPlayer has an onscreen display (OSD) for status +information, nice big antialiased shaded subtitles and +visual feedback for keyboard controls. European/ISO8859-1,2 +(Hungarian, English, Czech, etc), Cyrillic and Korean fonts +are supported along with 12 subtitle formats (MicroDVD, +SubRip, OGM, SubViewer, Sami, VPlayer, RT, SSA, AQTitle, +JACOsub, PJS and our own: MPsub) and DVD subtitles (SPU +streams, VOBsub and Closed Captions).

+ +

mencoder (MPlayer’s Movie Encoder) is a +simple movie encoder, designed to encode MPlayer-playable +movies (see above) to other MPlayer-playable formats (see +below). It encodes to MPEG-4 (DivX/Xvid), one of the +libavcodec codecs and PCM/MP3/VBRMP3 audio in 1, 2 or 3 +passes. Furthermore it has stream copying abilities, a +powerful filter system (crop, expand, flip, postprocess, +rotate, scale, noise, RGB/YUV conversion) and more.

+ +

gmplayer is MPlayer with a graphical user +interface. It has the same options as MPlayer.

+ +

Usage examples to get you started quickly can be found at +the end of this man page.

+ +

Also see the HTML documentation!

+
+ +

INTERACTIVE CONTROL

+ + + + + +
+

MPlayer has a fully configurable, command-driven control +layer which allows you to control MPlayer using keyboard, +mouse, joystick or remote control (with LIRC). See the +−input option for ways to customize it.

+
+ + + + + +
+

keyboard control

+ + + + + +
+

<− and −>

+ + + + + +
+

Seek backward/forward 10 seconds.

+ + + + + +
+

up and down

+ + + + + +
+

Seek forward/backward 1 minute.

+ + + + + +
+

pgup and pgdown

+ + + + + +
+

Seek forward/backward 10 minutes.

+ + + + + +
+

[ and ]

+ + + + + +
+

Decrease/increase current playback speed by 10%.

+ + + + + +
+

{ and }

+ + + + + +
+

Halve/double current playback speed.

+ + + + + +
+

backspace

+ + + + + +
+

Reset playback speed to normal.

+ + + + + +
+

< and >

+ + + + + +
+

Go backward/forward in the playlist.

+ + + + + +
+

ENTER

+ + + + + +
+

Go forward in the playlist, even over the end.

+ + + + + +
+

HOME and END

+ + + + + +
+

next/previous playtree entry in the parent list

+ + + + + +
+

INS and DEL (ASX playlist only)

+ + + + + +
+

next/previous alternative source.

+ + + + + +
+

p / SPACE

+ + + + + +
+

Pause (pressing again unpauses).

+ + + + + +
+

.

+ + + + + +
+

Step forward. Pressing once will pause movie, every +consecutive press will play one frame and then go into pause +mode again (any other key unpauses).

+ + + + + +
+

q / ESC

+ + + + + +
+

Stop playing and quit.

+ + + + + +
+

+ and -

+ + + + + +
+

Adjust audio delay by +/- 0.1 seconds.

+ + + + + +
+

/ and *

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

9 and 0

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

( and )

+ + + + + +
+

Adjust audio balance in favor of left/right +channel.

+ + + + + +
+

m

+ + + + + +
+

Mute sound.

+ + + + + +
+

_ (MPEG-TS, AVI and libavformat only)

+ + + + + +
+

Cycle through the available video tracks.

+ + + + + +
+

# (DVD, MPEG, Matroska, AVI and libavformat +only)

+ + + + + +
+

Cycle through the available audio tracks.

+ + + + + +
+

TAB (MPEG-TS only)

+ + + + + +
+

Cycle through the available programs.

+ + + + + +
+

f

+ + + + + +
+

Toggle fullscreen (also see −fs).

+ + + + + +
+

T

+ + + + + +
+

Toggle stay-on-top (also see −ontop).

+ + + + + +
+

w and e

+ + + + + +
+

Decrease/increase pan-and-scan range.

+ + + + + +
+

o

+ + + + + +
+

Toggle OSD states: none / seek / seek + timer / seek + +timer + total time.

+ + + + + +
+

d

+ + + + + +
+

Toggle frame dropping states: none / skip display / skip +decoding (see −framedrop and +−hardframedrop).

+ + + + + +
+

v

+ + + + + +
+

Toggle subtitle visibility.

+ + + + + +
+

j

+ + + + + +
+

Cycle through the available subtitles.

+ + + + + +
+

y and g

+ + + + + +
+

Step forward/backward in the subtitle list.

+ + + + + +
+

F

+ + + + + +
+

Toggle displaying "forced subtitles".

+ + + + + +
+

a

+ + + + + +
+

Toggle subtitle alignment: top / middle / +bottom.

+ + + + + +
+

x and z

+ + + + + +
+

Adjust subtitle delay by +/- 0.1 seconds.

+ + + + + +
+

r and t

+ + + + + +
+

Move subtitles up/down.

+ + + + + +
+

i (−edlout mode only)

+ + + + + +
+

Set start or end of an EDL skip and write it out to the +given file.

+ + + + + +
+

s (−vf screenshot only)

+ + + + + +
+

Take a screenshot.

+ + + + + +
+

S (−vf screenshot only)

+ + + + + +
+

Start/stop taking screenshots.

+ + + + + +
+

I

+ + + + + +
+

Show filename on the OSD.

+ + + + + +
+

! and @

+ + + + + +
+

Seek to the beginning of the previous/next +chapter.

+ + + + + +
+

D (−vo xvmc, −vf yadif, −vf kerndeint +only)

+ + + + + +
+

Activate/deactivate deinterlacer.

+ + + + + +
+

(The following keys are valid only when using a hardware +accelerated video output (xv, (x)vidix, (x)mga, etc), the +software equalizer (−vf eq or −vf eq2) or hue +filter (−vf hue).)

+ + + + + +
+

1 and 2

+ + + + + +
+

Adjust contrast.

+ + + + + +
+

3 and 4

+ + + + + +
+

Adjust brightness.

+ + + + + +
+

5 and 6

+ + + + + +
+

Adjust hue.

+ + + + + +
+

7 and 8

+ + + + + +
+

Adjust saturation.

+ + + + + +
+

(The following keys are valid only when using the quartz +or macosx video output driver.)

+ + + + + +
+

command + 0

+ + + + + +
+

Resize movie window to half its original size.

+ + + + + +
+

command + 1

+ + + + + +
+

Resize movie window to its original size.

+ + + + + +
+

command + 2

+ + + + + +
+

Resize movie window to double its original size.

+ + + + + +
+

command + f

+ + + + + +
+

Toggle fullscreen (also see −fs).

+ + + + + +
+

command + [ and command + ]

+ + + + + +
+

Set movie window alpha.

+ + + + + +
+

(The following keys are valid only when using the sdl +video output driver.)

+ + + + + +
+

c

+ + + + + +
+

Cycle through available fullscreen modes.

+ + + + + +
+

n

+ + + + + +
+

Restore original mode.

+ + + + + +
+

(The following keys are valid if you have a keyboard with +multimedia keys.)

+ + + + + +
+

PAUSE

+ + + + + +
+

Pause.

+ + + + + +
+

STOP

+ + + + + +
+

Stop playing and quit.

+ + + + + +
+

PREVIOUS and NEXT

+ + + + + +
+

Seek backward/forward 1 minute.

+ + + + + +
+

(The following keys are only valid if GUI support is +compiled in and will take precedence over the keys defined +above.)

+ + + + + +
+

ENTER

+ + + + + +
+

Start playing.

+ + + + + +
+

ESC

+ + + + + +
+

Stop playing.

+ + + + + +
+

l

+ + + + + +
+

Load file.

+ + + + + +
+

t

+ + + + + +
+

Load subtitle.

+ + + + + +
+

c

+ + + + + +
+

Open skin browser.

+ + + + + +
+

p

+ + + + + +
+

Open playlist.

+ + + + + +
+

r

+ + + + + +
+

Open preferences.

+ + + + + +
+

(The following keys are only valid if you compiled with +TV or DVB input support and will take precedence over the +keys defined above.)

+ + + + + +
+

h and k

+ + + + + +
+

Select previous/next channel.

+ + + + + +
+

n

+ + + + + +
+

Change norm.

+ + + + + +
+

u

+ + + + + +
+

Change channel list.

+ + + + + +
+

(The following keys are only valid if you compiled with +dvdnav support: They are used to navigate the +menus.)

+ + + + + +
+

keypad 8

+ + + + + +
+

Select button up.

+ + + + + +
+

keypad 2

+ + + + + +
+

Select button down.

+ + + + + +
+

keypad 4

+ + + + + +
+

Select button left.

+ + + + + +
+

keypad 6

+ + + + + +
+

Select button right.

+ + + + + +
+

keypad 5

+ + + + + +
+

Return to main menu.

+ + + + + +
+

keypad 7

+ + + + + +
+

Return to nearest menu (the order of preference is: +chapter->title->root).

+ + + + + +
+

keypad ENTER

+ + + + + +
+

Confirm choice.

+ + + + + +
+

(The following keys are only valid if teletext support is +enabled during compilation: They are used for controlling TV +teletext.)

+ + + + + + + + +
+ +

X

+
+ +

Switch teletext on/off.

+
+
+ + + + + +
+

Q and W

+ + + + + +
+

Go to next/prev teletext page.

+ + + + + +
+

mouse control

+ + + + + +
+

button 3 and button 4

+ + + + + +
+

Seek backward/forward 1 minute.

+ + + + + +
+

button 5 and button 6

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

joystick control

+ + + + + +
+

left and right

+ + + + + +
+

Seek backward/forward 10 seconds.

+ + + + + +
+

up and down

+ + + + + +
+

Seek forward/backward 1 minute.

+ + + + + +
+

button 1

+ + + + + +
+

Pause.

+ + + + + +
+

button 2

+ + + + + +
+

Toggle OSD states: none / seek / seek + timer / seek + +timer + total time.

+ + + + + +
+

button 3 and button 4

+ + + + + +
+

Decrease/increase volume.

+ +

USAGE

+ + + + + +
+

Every ’flag’ option has a +’noflag’ counterpart, e.g. the opposite of the +−fs option is −nofs.

+ +

If an option is marked as (XXX only), it will only work +in combination with the XXX option or if XXX is compiled +in.

+ +

NOTE: The suboption parser (used for example for +−ao pcm suboptions) supports a special kind of +string-escaping intended for use with external GUIs.
+It has the following format:
+%n%string_of_length_n
+EXAMPLES:

+mplayer −ao pcm:file=%10%C:test.wav test.avi
+Or in a script:
+mplayer −ao pcm:file=%‘expr length +"$NAME"‘%"$NAME" test.avi

+
+ +

CONFIGURATION FILES

+ + + + + +
+

You can put all of the options in configuration files +which will be read every time MPlayer/MEncoder is run. The +system-wide configuration file ’mplayer.conf’ is +in your configuration directory (e.g. /etc/ mplayer or +/usr/local/etc/mplayer), the user specific one is ’~/ +.mplayer/config’. The configuration file for MEncoder +is ’mencoder.conf’ in your configuration +directory (e.g. /etc/mplayer or /usr/local/etc/mplayer), the +user specific one is ’~/.mplayer/ mencoder.conf. User +specific options override system-wide options and options +given on the command line override either. The syntax of the +configuration files is ’option=<value>’, +everything after a ’#’ is considered a comment. +Options that work without values can be enabled by setting +them to ’yes’ or ’1’ or +’true’ and disabled by setting them to +’no’ or ’0’ or ’false’. +Even suboptions can be specified in this way.

+ +

You can also write file-specific configuration files. If +you wish to have a configuration file for a file called +’movie.avi’, create a file named +’movie.avi.conf’ with the file-specific options +in it and put it in ~/.mplayer/. You can also put the +configuration file in the same directory as the file to be +played, as long as you give the −use-filedir-conf +option (either on the command line or in your global config +file).

+ +

EXAMPLE MPLAYER CONFIGURATION FILE:

+ +
# Use Matrox driver by default.
+vo=xmga
+# I love practicing handstands while watching videos.
+flip=yes
+# Decode/encode multiple files from PNG,
+# start with mf://filemask
+mf=type=png:fps=25
+# Eerie negative images are cool.
+vf=eq2=1.0:-0.8
+
+ +

EXAMPLE MENCODER CONFIGURATION FILE:

+ +
# Make MEncoder output to a default filename.
+o=encoded.avi
+# The next 4 lines allow mencoder tv:// to start capturing immediately.
+oac=pcm=yes
+ovc=lavc=yes
+lavcopts=vcodec=mjpeg
+tv=driver=v4l2:input=1:width=768:height=576:device=/dev/video0:audiorate=48000
+# more complex default encoding option set
+lavcopts=vcodec=mpeg4:autoaspect=1
+lameopts=aq=2:vbr=4
+ovc=lavc=1
+oac=lavc=1
+passlogfile=pass1stats.log
+noautoexpand=1
+subfont-autoscale=3
+subfont-osd-scale=6
+subfont-text-scale=4
+subalign=2
+subpos=96
+spuaa=20
+
+
+ +

PROFILES

+ + + + + + +
+

To ease working with different configurations profiles +can be defined in the configuration files. A profile starts +with its name between square brackets, e.g. +’[my-profile]’. All following options will be +part of the profile. A description (shown by −profile +help) can be defined with the profile-desc option. To end +the profile, start another one or use the profile name +’default’ to continue with normal options.

+ +

EXAMPLE MENCODER PROFILE:

+ +
[mpeg4]
+profile-desc="MPEG4 encoding"
+ovc=lacv=yes
+lavcopts=vcodec=mpeg4:vbitrate=1200
+
+[mpeg4-hq]
+profile-desc="HQ MPEG4 encoding"
+profile=mpeg4
+lavcopts=mbd=2:trell=yes:v4mv=yes
+
+
+ +

GENERAL OPTIONS

+ + + + + + +
+

−codecs-file <filename> (also see +−afm, −ac, −vfm, −vc)

+ + + + + +
+

Override the standard search path and use the specified +file instead of the builtin codecs.conf.

+
+ + + + + +
+

−include <configuration file>

+ + + + + +
+

Specify configuration file to be parsed after the default +ones.

+
+ + + + + +
+

−list-options

+ + + + + +
+

Prints all available options.

+
+ + + + + +
+

−msgcharset <charset>

+ + + + + +
+

Convert console messages to the specified character set +(default: autodetect). Text will be in the encoding +specified with the −−charset configure option. +Set this to "noconv" to disable conversion (for +e.g. iconv problems).
+NOTE:
The option takes effect after command line parsing +has finished. The MPLAYER_CHARSET environment variable can +help you get rid of the first lines of garbled output.

+
+ + + + + +
+

−msglevel +<all=<level>:<module>=<level>:...>

+ + + + + +
+

Control verbosity directly for each module. The +’all’ module changes the verbosity of all the +modules not explicitly specified on the command line. See +’−msglevel help’ for a list of all +modules.
+NOTE:
Some messages are printed before the command line +is parsed and are therefore not affected by −msglevel. +To control these messages you have to use the +MPLAYER_VERBOSE environment variable, see its description +below for details.
+Available levels:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

complete silence

+
+
+ +

0

+
+ +

fatal messages only

+
+
+ +

1

+
+ +

error messages

+
+
+ +

2

+
+ +

warning messages

+
+
+ +

3

+
+ +

short hints

+
+
+ +

4

+
+ +

informational messages

+
+
+ +

5

+
+ +

status messages (default)

+
+
+ +

6

+
+ +

verbose messages

+
+
+ +

7

+
+ +

debug level 2

+
+
+ +

8

+
+ +

debug level 3

+
+
+ +

9

+
+ +

debug level 4

+
+
+ + + + + +
+

−quiet

+ + + + + +
+

Make console output less verbose; in particular, prevents +the status line (i.e. A: 0.7 V: 0.6 A-V: 0.068 ...) from +being displayed. Particularly useful on slow terminals or +broken ones which do not properly handle carriage return +(i.e. \r).

+
+ + + + + +
+

−priority <prio> (Windows +only)

+ + + + + +
+

Set process priority for MPlayer according to the +predefined priorities available under Windows. Possible +values of <prio>:

+ + + + + +
+ +

idle|belownormal|normal|abovenormal|high|realtime

+ + + + + +
+

WARNING: Using realtime priority can cause system +lockup.

+ + + + + +
+

−profile +<profile1,profile2,...>

+ + + + + +
+

Use the given profile(s), −profile help displays a +list of the defined profiles.

+
+ + + + + +
+

−really-quiet (also see +−quiet)

+ + + + + +
+

Display even less output and status messages than with +−quiet. Also suppresses the GUI error message +boxes.

+
+ + + + + +
+

−show-profile <profile>

+ + + + + +
+

Show the description and content of a profile.

+
+ + + + + +
+

−use-filedir-conf

+ + + + + +
+

Look for a file-specific configuration file in the same +directory as the file that is being played.
+WARNING:
May be dangerous if playing from untrusted +media.

+
+ + + + + +
+

−v

+ + + + + +
+

Increment verbosity level, one level for each −v +found on the command line.

+
+ +

PLAYER OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−autoq <quality> (use with −vf +[s]pp)

+ + + + + +
+

Dynamically changes the level of postprocessing depending +on the available spare CPU time. The number you specify will +be the maximum level used. Usually you can use some big +number. You have to use −vf [s]pp without parameters +in order for this to work.

+
+ + + + + +
+

−autosync <factor>

+ + + + + +
+

Gradually adjusts the A/V sync based on audio delay +measurements. Specifying −autosync 0, the default, +will cause frame timing to be based entirely on audio delay +measurements. Specifying −autosync 1 will do the same, +but will subtly change the A/V correction algorithm. An +uneven video framerate in a movie which plays fine with +−nosound can often be helped by setting this to an +integer value greater than 1. The higher the value, the +closer the timing will be to −nosound. Try +−autosync 30 to smooth out problems with sound drivers +which do not implement a perfect audio delay measurement. +With this value, if large A/V sync offsets occur, they will +only take about 1 or 2 seconds to settle out. This delay in +reaction time to sudden A/V offsets should be the only +side-effect of turning this option on, for all sound +drivers.

+
+ + + + + +
+

−benchmark

+ + + + + +
+

Prints some statistics on CPU usage and dropped frames at +the end of playback. Use in combination with −nosound +and −vo null for benchmarking only the video +codec.
+NOTE:
With this option MPlayer will also ignore frame +duration when playing only video (you can think of that as +infinite fps).

+
+ + + + + +
+

−colorkey <number>

+ + + + + +
+

Changes the colorkey to an RGB value of your choice. +0x000000 is black and 0xffffff is white. Only supported by +the cvidix, fbdev, svga, vesa, winvidix, xmga, xvidix, +xover, xv (see −vo xv:ck), xvmc (see −vo xv:ck) +and directx video output drivers.

+
+ + + + + +
+

−nocolorkey

+ + + + + +
+

Disables colorkeying. Only supported by the cvidix, +fbdev, svga, vesa, winvidix, xmga, xvidix, xover, xv (see +−vo xv:ck), xvmc (see −vo xv:ck) and directx +video output drivers.

+
+ + + + + +
+

−correct-pts (experimental)

+ + + + + +
+

Switches MPlayer to an experimental mode where timestamps +for video frames are calculated differently and video +filters which add new frames or modify timestamps of +existing ones are supported. The more accurate timestamps +can be visible for example when playing subtitles timed to +scene changes with the −ass option. Without +−correct-pts the subtitle timing will typically be off +by some frames. This option does not work correctly with +some demuxers and codecs.

+
+ + + + + +
+

−crash-debug (DEBUG CODE)

+ + + + + +
+

Automatically attaches gdb upon crash or SIGTRAP. Support +must be compiled in by configuring with +−−enable-crash-debug.

+
+ + + + + +
+

−doubleclick-time

+ + + + + +
+

Time in milliseconds to recognize two consecutive button +presses as a double-click (default: 300). Set to 0 to let +your windowing system decide what a double-click is +(−vo directx only).
+NOTE:
You will get slightly different behaviour +depending on whether you bind MOUSE_BTN0_DBL or +MOUSE_BTN0−MOUSE_BTN0_DBL.

+
+ + + + + +
+

−edlout <filename>

+ + + + + +
+

Creates a new file and writes edit decision list (EDL) +records to it. During playback, the user hits +’i’ to mark the start or end of a skip block. +This provides a starting point from which the user can +fine-tune EDL entries later. See +http://www.mplayerhq.hu/DOCS/HTML/en/edl.html for +details.

+
+ + + + + +
+

−enqueue (GUI only)

+ + + + + +
+

Enqueue files given on the command line in the playlist +instead of playing them immediately.

+
+ + + + + +
+

−fixed-vo

+ + + + + +
+

Enforces a fixed video system for multiple files (one +(un)initialization for all files). Therefore only one window +will be opened for all files. Currently the following +drivers are fixed-vo compliant: gl, gl2, mga, svga, x11, +xmga, xv, xvidix and dfbmga.

+
+ + + + + +
+

−framedrop (also see +−hardframedrop)

+ + + + + +
+

Skip displaying some frames to maintain A/V sync on slow +systems. Video filters are not applied to such frames. For +B-frames even decoding is skipped completely.

+
+ + + + + +
+

−(no)gui

+ + + + + +
+

Enable or disable the GUI interface (default depends on +binary name). Only works as the first argument on the +command line. Does not work as a config-file option.

+
+ + + + + +
+

−h, −help, −−help

+ + + + + +
+

Show short summary of options.

+
+ + + + + +
+

−hardframedrop

+ + + + + +
+

More intense frame dropping (breaks decoding). Leads to +image distortion!

+
+ + + + + +
+

−identify

+ + + + + +
+

Shorthand for −msglevel identify=4. Show file +parameters in an easily parseable format. Also prints more +detailed information about subtitle and audio track +languages and IDs. In some cases you can get more +information by using −msglevel identify=6. For +example, for a DVD it will list the time length of each +title, as well as a disk ID. The wrapper script +TOOLS/midentify suppresses the other MPlayer output and +(hopefully) shellescapes the filenames.

+
+ + + + + +
+

−idle (also see −slave)

+ + + + + +
+

Makes MPlayer wait idly instead of quitting when there is +no file to play. Mostly useful in slave mode where MPlayer +can be controlled through input commands.

+
+ + + + + +
+

−input <commands>

+ + + + + +
+

This option can be used to configure certain parts of the +input system. Paths are relative to ~/.mplayer/.
+NOTE:
Autorepeat is currently only supported by +joysticks.

+ +

Available commands are:

+
+ + + + + +
+

conf=<filename>

+ + + + + +
+

Specify input configuration file other than the default +~/.mplayer/input.conf. ~/.mplayer/<filename> is +assumed if no full path is given.

+ + + + + +
+

ar-delay

+ + + + + +
+

Delay in milliseconds before we start to autorepeat a key +(0 to disable).

+ + + + + +
+

ar-rate

+ + + + + +
+

Number of key presses to generate per second on +autorepeat.

+ + + + + +
+

keylist

+ + + + + +
+

Prints all keys that can be bound to commands.

+ + + + + +
+

cmdlist

+ + + + + +
+

Prints all commands that can be bound to keys.

+ + + + + +
+

js-dev

+ + + + + +
+

Specifies the joystick device to use (default: /dev/ +input/js0).

+ + + + + +
+

file=<filename>

+ + + + + +
+

Read commands from the given file. Mostly useful with a +FIFO.
+NOTE:
When the given file is a FIFO MPlayer opens both +ends so you can do several ’echo "seek 10" +> mp_pipe’ and the pipe will stay valid.

+ + + + + +
+

−key-fifo-size +<2−65000>

+ + + + + +
+

Specify the size of the FIFO that buffers key events +(default: 7). A FIFO of size n can buffer (n-1) events. If +it is too small some events may be lost (leading to +"stuck mouse buttons" and similar effects). If it +is too big, MPlayer may seem to hang while it processes the +buffered events. To get the same behavior as before this +option was introduced, set it to 2 for Linux or 1024 for +Windows.

+
+ + + + + +
+

−lircconf <filename> (LIRC +only)

+ + + + + +
+

Specifies a configuration file for LIRC (default: +~/.lircrc).

+
+ + + + + +
+

−list-properties

+ + + + + +
+

Print a list of the available properties.

+
+ + + + + +
+

−loop <number>

+ + + + + +
+

Loops movie playback <number> times. 0 means +forever.

+
+ + + + + +
+

−menu (OSD menu only)

+ + + + + +
+

Turn on OSD menu support.

+
+ + + + + +
+

−menu-cfg <filename> (OSD menu +only)

+ + + + + +
+

Use an alternative menu.conf.

+
+ + + + + +
+

−menu-chroot <path> (OSD menu +only)

+ + + + + +
+

Chroot the file selection menu to a specific +location.

+ +

EXAMPLE:

+ + + + + +
+

−menu-chroot=/home

+ + + + + +
+

Will restrict the file selection menu to /home and +downward (i.e. no access to / will be possible, but +/home/user_name will).

+ + + + + +
+

−menu-keepdir (OSD menu only)

+ + + + + +
+

File browser starts from the last known location instead +of current directory.

+
+ + + + + +
+

−menu-root <value> (OSD menu +only)

+ + + + + +
+

Specify the main menu.

+
+ + + + + +
+

−menu-startup (OSD menu only)

+ + + + + +
+

Display the main menu at MPlayer startup.

+
+ + + + + +
+

−mouse-movements

+ + + + + +
+

Permit MPlayer to receive pointer events reported by the +video output driver (currently only derivatives of X11 are +supported). Necessary to select the buttons in DVD +menus.

+
+ + + + + +
+

−noconsolecontrols

+ + + + + +
+

Prevent MPlayer from reading key events from standard +input. Useful when reading data from standard input. This is +automatically enabled when − is found on the command +line. There are situations where you have to set it +manually, e.g. if you open /dev/stdin (or the equivalent on +your system), use stdin in a playlist or intend to read from +stdin later on via the loadfile or loadlist slave +commands.

+
+ + + + + +
+

−nojoystick

+ + + + + +
+

Turns off joystick support.

+
+ + + + + +
+

−nolirc

+ + + + + +
+

Turns off LIRC support.

+
+ + + + + +
+

−nomouseinput

+ + + + + +
+

Disable mouse button press/release input +(mozplayerxp’s context menu relies on this +option).

+
+ + + + + +
+

−rtc (RTC only)

+ + + + + +
+

Turns on usage of the Linux RTC (realtime clock − +/dev/rtc) as timing mechanism. This wakes up the process +every 1/1024 seconds to check the current time. Useless with +modern Linux kernels configured for desktop use as they +already wake up the process with similar accuracy when using +normal timed sleep.

+
+ + + + + +
+

−playing-msg <string>

+ + + + + +
+

Print out a string before starting playback. The +following expansions are supported:

+ + + + + +
+

${NAME}

+ + + + + +
+

Expand to the value of the property NAME.

+
+ + + + + +
+

$(NAME:TEXT)

+ + + + + +
+

Expand TEXT only if the property NAME is +available.

+ + + + + +
+

−playlist <filename>

+ + + + + +
+

Play files according to a playlist file (ASX, Winamp, +SMIL, or one-file-per-line format).
+NOTE:
This option is considered an entry so options +found after it will apply only to the elements of this +playlist.
+FIXME: This needs to be clarified and documented +thoroughly.

+
+ + + + + +
+

−rtc-device <device>

+ + + + + +
+

Use the specified device for RTC timing.

+
+ + + + + +
+

−shuffle

+ + + + + +
+

Play files in random order.

+
+ + + + + +
+

−skin <name> (GUI only)

+ + + + + +
+

Loads a skin from the directory given as parameter below +the default skin directories, +/usr/local/share/mplayer/skins/ and ~/.mplayer/skins/.

+ +

EXAMPLE:

+ + + + + +
+

−skin fittyfene

+ + + + + +
+

Tries /usr/local/share/mplayer/skins/fittyfene and +afterwards ~/.mplayer/skins/fittyfene.

+ + + + + +
+

−slave (also see −input)

+ + + + + +
+

Switches on slave mode, in which MPlayer works as a +backend for other programs. Instead of intercepting keyboard +events, MPlayer will read commands separated by a newline +(\n) from stdin.
+NOTE:
See −input cmdlist for a list of slave +commands and DOCS/tech/slave.txt for their description.

+
+ + + + + +
+

−softsleep

+ + + + + +
+

Time frames by repeatedly checking the current time +instead of asking the kernel to wake up MPlayer at the +correct time. Useful if your kernel timing is imprecise and +you cannot use the RTC either. Comes at the price of higher +CPU consumption.

+
+ + + + + +
+

−sstep <sec>

+ + + + + +
+

Skip <sec> seconds after every frame. The normal +framerate of the movie is kept, so playback is accelerated. +Since MPlayer can only seek to the next keyframe this may be +inexact.

+
+ +

DEMUXER/STREAM OPTIONS

+ + + + + +
+

−a52drc <level>

+ + + + + +
+

Select the Dynamic Range Compression level for AC-3 audio +streams. <level> is a float value ranging from 0 to 1, +where 0 means no compression and 1 (which is the default) +means full compression (make loud passages more silent and +vice versa). This option only shows an effect if the AC-3 +stream contains the required range compression +information.

+
+ + + + + +
+

−aid <ID> (also see +−alang)

+ + + + + +
+

Select audio channel (MPEG: 0−31, AVI/OGM: +1−99, ASF/RM: 0−127, VOB(AC-3): 128−159, +VOB(LPCM): 160−191, MPEG-TS 17−8190). MPlayer +prints the available audio IDs when run in verbose +(−v) mode. When playing an MPEG-TS stream, +MPlayer/MEncoder will use the first program (if present) +with the chosen audio stream.

+
+ + + + + +
+

−alang <language code[,language code,...]> +(also see −aid)

+ + + + + +
+

Specify a priority list of audio languages to use. +Different container formats employ different language codes. +DVDs use ISO 639-1 two letter language codes, Matroska, +MPEG-TS and NUT use ISO 639-2 three letter language codes +while OGM uses a free-form identifier. MPlayer prints the +available languages when run in verbose (−v) mode.

+ +

EXAMPLE:

+ + + + + +
+

mplayer dvd://1 −alang hu,en

+ + + + + +
+

Chooses the Hungarian language track on a DVD and falls +back on English if Hungarian is not available.

+ + + + + +
+

mplayer −alang jpn example.mkv

+ + + + + +
+

Plays a Matroska file in Japanese.

+ + + + + +
+

−audio-demuxer <[+]name> (−audiofile +only)

+ + + + + +
+

Force audio demuxer type for −audiofile. Use a +’+’ before the name to force it, this will skip +some checks! Give the demuxer name as printed by +−audio-demuxer help. For backward compatibility it +also accepts the demuxer ID as defined in +libmpdemux/demuxer.h. −audio-demuxer audio or +−audio-demuxer 17 forces MP3.

+
+ + + + + +
+

−audiofile <filename>

+ + + + + +
+

Play audio from an external file (WAV, MP3 or Ogg Vorbis) +while viewing a movie.

+
+ + + + + +
+

−audiofile-cache <kBytes>

+ + + + + +
+

Enables caching for the stream used by −audiofile, +using the specified amount of memory.

+
+ + + + + +
+

−reuse-socket (udp:// only)

+ + + + + +
+

Allows a socket to be reused by other processes as soon +as it is closed.

+
+ + + + + +
+

−bandwidth <value> (network +only)

+ + + + + +
+

Specify the maximum bandwidth for network streaming (for +servers that are able to send content in different +bitrates). Useful if you want to watch live streamed media +behind a slow connection. With Real RTSP streaming, it is +also used to set the maximum delivery bandwidth allowing +faster cache filling and stream dumping.

+
+ + + + + +
+

−cache <kBytes>

+ + + + + +
+

This option specifies how much memory (in kBytes) to use +when precaching a file or URL. Especially useful on slow +media.

+
+ + + + + +
+

−nocache

+ + + + + +
+

Turns off caching.

+
+ + + + + +
+

−cache-min <percentage>

+ + + + + +
+

Playback will start when the cache has been filled up to +<percentage> of the total.

+
+ + + + + +
+

−cache-seek-min <percentage>

+ + + + + +
+

If a seek is to be made to a position within +<percentage> of the cache size from the current +position, MPlayer will wait for the cache to be filled to +this position rather than performing a stream seek (default: +50).

+
+ + + + + +
+

−cdda <option1:option2> (CDDA +only)

+ + + + + +
+

This option can be used to tune the CD Audio reading +feature of MPlayer.

+ +

Available options are:

+ + + + + +
+

speed=<value>

+ + + + + +
+

Set CD spin speed.

+
+ + + + + +
+

paranoia=<0−2>

+ + + + + +
+

Set paranoia level. Values other than 0 seem to break +playback of anything but the first track.

+ + + + + +
+

0: disable checking (default)
+1: overlap checking only
+2: full data correction and verification

+ + + + + +
+

generic-dev=<value>

+ + + + + +
+

Use specified generic SCSI device.

+
+ + + + + +
+

sector-size=<value>

+ + + + + +
+

Set atomic read size.

+
+ + + + + +
+

overlap=<value>

+ + + + + +
+

Force minimum overlap search during verification to +<value> sectors.

+
+ + + + + +
+

toc-bias

+ + + + + +
+

Assume that the beginning offset of track 1 as reported +in the TOC will be addressed as LBA 0. Some Toshiba drives +need this for getting track boundaries correct.

+
+ + + + + +
+

toc-offset=<value>

+ + + + + +
+

Add <value> sectors to the values reported when +addressing tracks. May be negative.

+
+ + + + + +
+

(no)skip

+ + + + + +
+

(Never) accept imperfect data reconstruction.

+ + + + + +
+

−cdrom-device <path to +device>

+ + + + + +
+

Specify the CD-ROM device (default: /dev/cdrom).

+
+ + + + + +
+

−channels <number> (also see −af +channels)

+ + + + + +
+

Request the number of playback channels (default: 2). +MPlayer asks the decoder to decode the audio into as many +channels as specified. Then it is up to the decoder to +fulfill the requirement. This is usually only important when +playing videos with AC-3 audio (like DVDs). In that case +liba52 does the decoding by default and correctly downmixes +the audio into the requested number of channels. To directly +control the number of output channels independently of how +many channels are decoded, use the channels filter.
+NOTE:
This option is honored by codecs (AC-3 only), +filters (surround) and audio output drivers (OSS at +least).

+ +

Available options are:

+
+ + + + + + + + + + + + + + + + + + + + +
+ +

2

+
+ +

stereo

+
+
+ +

4

+
+ +

surround

+
+
+ +

6

+
+ +

full 5.1

+
+
+ + + + + +
+

−chapter <chapter +ID>[−<endchapter ID>] (dvd:// and dvdnav:// +only)

+ + + + + +
+

Specify which chapter to start playing at. Optionally +specify which chapter to end playing at (default: 1).

+
+ + + + + +
+

−cookies (network only)

+ + + + + +
+

Send cookies when making HTTP requests.

+
+ + + + + +
+

−cookies-file <filename> (network +only)

+ + + + + +
+

Read HTTP cookies from <filename> (default: +~/.mozilla/ and ~/.netscape/) and skip reading from default +locations. The file is assumed to be in Netscape format.

+
+ + + + + +
+

−delay <sec>

+ + + + + +
+

audio delay in seconds (positive or negative float +value)
+Negative values delay the audio, and positive values delay +the video. Note that this is the exact opposite of the +−audio-delay MEncoder option.
+NOTE:
When used with MEncoder, this is not guaranteed to +work correctly with −ovc copy; use −audio-delay +instead.

+
+ + + + + +
+

−ignore-start

+ + + + + +
+

Ignore the specified starting time for streams in AVI +files. In MPlayer, this nullifies stream delays in files +encoded with the −audio-delay option. During encoding, +this option prevents MEncoder from transferring original +stream start times to the new file; the −audio-delay +option is not affected. Note that MEncoder sometimes adjusts +stream starting times automatically to compensate for +anticipated decoding delays, so do not use this option for +encoding without testing it first.

+
+ + + + + +
+

−demuxer <[+]name>

+ + + + + +
+

Force demuxer type. Use a ’+’ before the name +to force it, this will skip some checks! Give the demuxer +name as printed by −demuxer help. For backward +compatibility it also accepts the demuxer ID as defined in +libmpdemux/demuxer.h.

+
+ + + + + +
+

−dumpaudio (MPlayer only)

+ + + + + +
+

Dumps raw compressed audio stream to ./stream.dump +(useful with MPEG/AC-3, in most other cases the resulting +file will not be playable). If you give more than one of +−dumpaudio, −dumpvideo, −dumpstream on the +command line only the last one will work.

+
+ + + + + +
+

−dumpfile <filename> (MPlayer +only)

+ + + + + +
+

Specify which file MPlayer should dump to. Should be used +together with −dumpaudio / −dumpvideo / +−dumpstream.

+
+ + + + + +
+

−dumpstream (MPlayer only)

+ + + + + +
+

Dumps the raw stream to ./stream.dump. Useful when +ripping from DVD or network. If you give more than one of +−dumpaudio, −dumpvideo, −dumpstream on the +command line only the last one will work.

+
+ + + + + +
+

−dumpvideo (MPlayer only)

+ + + + + +
+

Dump raw compressed video stream to ./stream.dump (not +very usable). If you give more than one of −dumpaudio, +−dumpvideo, −dumpstream on the command line only +the last one will work.

+
+ + + + + +
+

−dvbin <options> (DVB only)

+ + + + + +
+

Pass the following parameters to the DVB input module, in +order to override the default ones:

+
+ + + + + +
+

card=<1−4>

+ + + + + +
+

Specifies using card number 1−4 (default: +1).

+ + + + + +
+

file=<filename>

+ + + + + +
+

Instructs MPlayer to read the channels list from +<filename>. Default is ~/.mplayer/ +channels.conf.{sat,ter,cbl,atsc} (based on your card type) +or ~/.mplayer/channels.conf as a last resort.

+ + + + + +
+

timeout=<1−30>

+ + + + + +
+

Maximum number of seconds to wait when trying to tune a +frequency before giving up (default: 30).

+ + + + + +
+

−dvd-device <path to device> (DVD +only)

+ + + + + +
+

Specify the DVD device (default: /dev/dvd). You can also +specify a directory that contains files previously copied +directly from a DVD (with e.g. vobcopy). Note that using +−dumpstream is usually a better way to copy DVD titles +in the first place (see the examples).

+
+ + + + + +
+

−dvd-speed <factor or speed in KB/s> (DVD +only)

+ + + + + +
+

Try to limit DVD speed (default: 0, no change). DVD base +speed is about 1350KB/s, so a 8x drive can read at speeds up +to 10800KB/s. Slower speeds make the drive more quiet, for +watching DVDs 2700KB/s should be quiet and fast enough. +MPlayer resets the speed to the drive default value on +close. Values less than 100 mean multiples of 1350KB/s, i.e. +−dvd-speed 8 selects 10800KB/s.
+NOTE:
You need write access to the DVD device to change +the speed.

+
+ + + + + +
+

−dvdangle <angle ID> (DVD +only)

+ + + + + +
+

Some DVD discs contain scenes that can be viewed from +multiple angles. Here you can tell MPlayer which angles to +use (default: 1).

+
+ + + + + +
+

−edl <filename>

+ + + + + +
+

Enables edit decision list (EDL) actions during playback. +Video will be skipped over and audio will be muted and +unmuted according to the entries in the given file. See +http://www.mplayerhq.hu/DOCS/HTML/en/edl.html for details on +how to use this.

+
+ + + + + +
+

−endpos <[[hh:]mm:]ss[.ms]|size[b|kb|mb]> +(also see −ss and −sb)

+ + + + + +
+

Stop at given time or byte position.
+NOTE:
Byte position is enabled only for MEncoder and +will not be accurate, as it can only stop at a frame +boundary. When used in conjunction with −ss option, +−endpos time will shift forward by seconds specified +with −ss.

+ +

EXAMPLE:

+ + + + + +
+

−endpos 56

+ + + + + +
+

Stop at 56 seconds.

+ + + + + +
+

−endpos 01:10:00

+ + + + + +
+

Stop at 1 hour 10 minutes.

+ + + + + +
+

−ss 10 −endpos 56

+ + + + + +
+

Stop at 1 minute 6 seconds.

+ + + + + +
+

−endpos 100mb

+ + + + + +
+

Encode only 100 MB.

+ + + + + +
+

−forceidx

+ + + + + +
+

Force index rebuilding. Useful for files with broken +index (A/V desync, etc). This will enable seeking in files +where seeking was not possible. You can fix the index +permanently with MEncoder (see the documentation).
+NOTE:
This option only works if the underlying media +supports seeking (i.e. not with stdin, pipe, etc).

+
+ + + + + +
+

−fps <float value>

+ + + + + +
+

Override video framerate. Useful if the original value is +wrong or missing.

+
+ + + + + +
+

−frames <number>

+ + + + + +
+

Play/convert only first <number> frames, then +quit.

+
+ + + + + +
+

−hr-mp3-seek (MP3 only)

+ + + + + +
+

Hi-res MP3 seeking. Enabled when playing from an external +MP3 file, as we need to seek to the very exact position to +keep A/V sync. Can be slow especially when seeking backwards +since it has to rewind to the beginning to find an exact +frame position.

+
+ + + + + +
+

−idx (also see −forceidx)

+ + + + + +
+

Rebuilds index of files if no index was found, allowing +seeking. Useful with broken/incomplete downloads, or badly +created files.
+NOTE:
This option only works if the underlying media +supports seeking (i.e. not with stdin, pipe, etc).

+
+ + + + + + + +
+ +

−noidx

+
+ +

Skip rebuilding index file. MEncoder skips writing the +index with this option.

+
+ + + + + +
+

−ipv4-only-proxy (network only)

+ + + + + +
+

Skip the proxy for IPv6 addresses. It will still be used +for IPv4 connections.

+
+ + + + + +
+

−loadidx <index file>

+ + + + + +
+

The file from which to read the video index data saved by +−saveidx. This index will be used for seeking, +overriding any index data contained in the AVI itself. +MPlayer will not prevent you from loading an index file +generated from a different AVI, but this is sure to cause +unfavorable results.
+NOTE:
This option is obsolete now that MPlayer has +OpenDML support.

+
+ + + + + +
+

−mc <seconds/frame>

+ + + + + +
+

maximum A-V sync correction per frame (in seconds)

+
+ + + + + +
+

−mf <option1:option2:...>

+ + + + + +
+

Used when decoding from multiple PNG or JPEG files.

+ +

Available options are:

+
+ + + + + +
+

w=<value>

+ + + + + +
+

input file width (default: autodetect)

+ + + + + +
+

h=<value>

+ + + + + +
+

input file height (default: autodetect)

+ + + + + +
+

fps=<value>

+ + + + + +
+

output fps (default: 25)

+ + + + + +
+

type=<value>

+ + + + + +
+

input file type (available: jpeg, png, tga, sgi)

+ + + + + +
+

−ni (AVI only)

+ + + + + +
+

Force usage of non-interleaved AVI parser (fixes playback +of some bad AVI files).

+
+ + + + + +
+

−nobps (AVI only)

+ + + + + +
+

Do not use average byte/second value for A-V sync. Helps +with some AVI files with broken header.

+
+ + + + + +
+

−noextbased

+ + + + + +
+

Disables extension-based demuxer selection. By default, +when the file type (demuxer) cannot be detected reliably +(the file has no header or it is not reliable enough), the +filename extension is used to select the demuxer. Always +falls back on content-based demuxer selection.

+
+ + + + + +
+

−passwd <password> (also see −user) +(network only)

+ + + + + +
+

Specify password for HTTP authentication.

+
+ + + + + +
+

−prefer-ipv4 (network only)

+ + + + + +
+

Use IPv4 on network connections. Falls back on IPv6 +automatically.

+
+ + + + + +
+

−prefer-ipv6 (IPv6 network only)

+ + + + + +
+

Use IPv6 on network connections. Falls back on IPv4 +automatically.

+
+ + + + + +
+

−psprobe <byte position>

+ + + + + +
+

When playing an MPEG-PS stream, this option lets you +specify how many bytes in the stream you want MPlayer to +scan in order to identify the video codec used. This option +is needed to play EVO files containing H.264 streams.

+
+ + + + + +
+

−pvr <option1:option2:...> (PVR +only)

+ + + + + +
+

This option tunes various encoding properties of the PVR +capture module. It has to be used with any hardware MPEG +encoder based card supported by the V4L2 driver. The +Hauppauge WinTV PVR−150/250/350/500 and all IVTV based +cards are known as PVR capture cards. Be aware that only +Linux 2.6.18 kernel and above is able to handle MPEG stream +through V4L2 layer. For hardware capture of an MPEG stream +and watching it with MPlayer/MEncoder, use +’pvr://’ as a movie URL.

+ +

Available options are:

+ + + + + +
+

aspect=<0−3>

+ + + + + +
+

Specify input aspect ratio:

+ + + + + +
+

0: 1:1
+1: 4:3 (default)
+2: 16:9
+3: 2.21:1

+ + + + + +
+

arate=<32000−48000>

+ + + + + +
+

Specify encoding audio rate (default: 48000 Hz, +available: 32000, 44100 and 48000 Hz).

+
+ + + + + +
+

alayer=<1−3>

+ + + + + +
+

Specify MPEG audio layer encoding (default: 2).

+
+ + + + + +
+

abitrate=<32−448>

+ + + + + +
+

Specify audio encoding bitrate in kbps (default: +384).

+
+ + + + + +
+

amode=<value>

+ + + + + +
+

Specify audio encoding mode. Available preset values are +’stereo’, ’joint_stereo’, +’dual’ and ’mono’ (default: +stereo).

+
+ + + + + +
+

vbitrate=<value>

+ + + + + +
+

Specify average video bitrate encoding in Mbps (default: +6).

+
+ + + + + +
+

vmode=<value>

+ + + + + +
+

Specify video encoding mode:

+ + + + + +
+

vbr: Variable BitRate (default)
+cbr: Constant BitRate

+ + + + + +
+

vpeak=<value>

+ + + + + +
+

Specify peak video bitrate encoding in Mbps (only useful +for VBR encoding, default: 9.6).

+
+ + + + + +
+

fmt=<value>

+ + + + + +
+

Choose an MPEG format for encoding:

+ + + + + +
+

ps: MPEG-2 Program Stream (default)
+ts: MPEG-2 Transport Stream
+mpeg1: MPEG-1 System Stream
+vcd: Video CD compatible stream
+svcd: Super Video CD compatible stream
+dvd: DVD compatible stream

+ + + + + +
+

−radio <option1:option2:...> (radio +only)

+ + + + + +
+

These options set various parameters of the radio capture +module. For listening to radio with MPlayer use +’radio://<frequency>’ (if channels option +is not given) or +’radio://<channel_number>’ (if channels +option is given) as a movie URL. You can see allowed +frequency range by running MPlayer with +’−v’. To start the grabbing subsystem, use +’radio://<frequency or channel>/capture’. +If the capture keyword is not given you can listen to radio +using the line-in cable only. Using capture to listen is not +recommended due to synchronization problems, which makes +this process uncomfortable.

+ +

Available options are:

+ + + + + +
+

device=<value>

+ + + + + +
+

Radio device to use (default: /dev/radio0 for Linux and +/dev/tuner0 for *BSD).

+
+ + + + + +
+

driver=<value>

+ + + + + +
+

Radio driver to use (default: v4l2 if available, +otherwise v4l). Currently, v4l and v4l2 drivers are +supported.

+
+ + + + + +
+

volume=<0..100>

+ + + + + +
+

sound volume for radio device (default 100)

+
+ + + + + +
+

freq_min=<value> (*BSD BT848 only)

+ + + + + +
+

minimum allowed frequency (default: 87.50)

+
+ + + + + +
+

freq_max=<value> (*BSD BT848 only)

+ + + + + +
+

maximum allowed frequency (default: 108.00)

+
+ + + + + +
+ +

channels=<frequency>−<name>,<frequency>−<name>,...

+ + + + + +
+

Set channel list. Use _ for spaces in names (or play with +quoting ;-). The channel names will then be written using +OSD and the slave commands radio_step_channel and +radio_set_channel will be usable for a remote control (see +LIRC). If given, number in movie URL will be treated as +channel position in channel list.
+EXAMPLE:
radio://1, radio://104.4, radio_set_channel +1

+
+ + + + + +
+

adevice=<value> (radio capture only)

+ + + + + +
+

Name of device to capture sound from. Without such a name +capture will be disabled, even if the capture keyword +appears in the URL. For ALSA devices use it in the form +hw=<card>.<device>. If the device name contains +a ’=’, the module will use ALSA to capture, +otherwise OSS.

+
+ + + + + +
+

arate=<value> (radio capture only)

+ + + + + +
+

Rate in samples per second (default: 44100).
+NOTE:
When using audio capture set also −rawaudio +rate=<value> option with the same value as arate. If +you have problems with sound speed (runs too quickly), try +to play with different rate values (e.g. +48000,44100,32000,...).

+
+ + + + + +
+

achannels=<value> (radio capture only)

+ + + + + +
+

Number of audio channels to capture.

+ + + + + +
+

−rawaudio +<option1:option2:...>

+ + + + + +
+

This option lets you play raw audio files. You have to +use −demuxer rawaudio as well. It may also be used to +play audio CDs which are not 44kHz 16-bit stereo. For +playing raw AC-3 streams use −rawaudio format=0x2000 +−demuxer rawaudio.

+ +

Available options are:

+
+ + + + + +
+

channels=<value>

+ + + + + +
+

number of channels

+ + + + + +
+

rate=<value>

+ + + + + +
+

rate in samples per second

+ + + + + +
+

samplesize=<value>

+ + + + + +
+

sample size in bytes

+ + + + + +
+

bitrate=<value>

+ + + + + +
+

bitrate for rawaudio files

+ + + + + +
+

format=<value>

+ + + + + +
+

fourcc in hex

+ + + + + +
+

−rawvideo +<option1:option2:...>

+ + + + + +
+

This option lets you play raw video files. You have to +use −demuxer rawvideo as well.

+ +

Available options are:

+
+ + + + + +
+

fps=<value>

+ + + + + +
+

rate in frames per second (default: 25.0)

+ + + + + +
+

sqcif|qcif|cif|4cif|pal|ntsc

+ + + + + +
+

set standard image size

+ + + + + +
+

w=<value>

+ + + + + +
+

image width in pixels

+ + + + + +
+

h=<value>

+ + + + + +
+

image height in pixels

+ + + + + +
+

i420|yv12|yuy2|y8

+ + + + + +
+

set colorspace

+ + + + + +
+

format=<value>

+ + + + + +
+

colorspace (fourcc) in hex or string constant. Use +−rawvideo format=help for a list of possible +strings.

+ + + + + +
+

size=<value>

+ + + + + +
+

frame size in Bytes

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer foreman.qcif -demuxer rawvideo -rawvideo +qcif

+ + + + + +
+

Play the famous "foreman" sample +video.

+ + + + + +
+

mplayer sample-720x576.yuv -demuxer rawvideo -rawvideo +w=720:h=576

+ + + + + +
+

Play a raw YUV sample.

+ + + + + +
+

−rtsp-port

+ + + + + +
+

Used with ’rtsp://’ URLs to force the +client’s port number. This option may be useful if you +are behind a router and want to forward the RTSP stream from +the server to a specific client.

+
+ + + + + +
+

−rtsp-destination

+ + + + + +
+

Used with ’rtsp://’ URLs to force the +destination IP address to be bound. This option may be +useful with some RTSP server which do not send RTP packets +to the right interface. If the connection to the RTSP server +fails, use −v to see which IP address MPlayer tries to +bind to and try to force it to one assigned to your computer +instead.

+
+ + + + + +
+

−rtsp-stream-over-tcp (LIVE555 and NEMESI +only)

+ + + + + +
+

Used with ’rtsp://’ URLs to specify that the +resulting incoming RTP and RTCP packets be streamed over TCP +(using the same TCP connection as RTSP). This option may be +useful if you have a broken internet connection that does +not pass incoming UDP packets (see +http://www.live555.com/mplayer/).

+
+ + + + + +
+

−saveidx <filename>

+ + + + + +
+

Force index rebuilding and dump the index to +<filename>. Currently this only works with AVI +files.
+NOTE:
This option is obsolete now that MPlayer has +OpenDML support.

+
+ + + + + +
+

−sb <byte position> (also see +−ss)

+ + + + + +
+

Seek to byte position. Useful for playback from CD-ROM +images or VOB files with junk at the beginning.

+
+ + + + + +
+

−speed <0.01−100>

+ + + + + +
+

Slow down or speed up playback by the factor given as +parameter. Not guaranteed to work correctly with −oac +copy.

+
+ + + + + +
+

−srate <Hz>

+ + + + + +
+

Selects the output sample rate to be used (of course +sound cards have limits on this). If the sample frequency +selected is different from that of the current media, the +resample or lavcresample audio filter will be inserted into +the audio filter layer to compensate for the difference. The +type of resampling can be controlled by the −af-adv +option. The default is fast resampling that may cause +distortion.

+
+ + + + + +
+

−ss <time> (also see +−sb)

+ + + + + +
+

Seek to given time position.

+ +

EXAMPLE:

+ + + + + +
+

−ss 56

+ + + + + +
+

Seeks to 56 seconds.

+ + + + + +
+

−ss 01:10:00

+ + + + + +
+

Seeks to 1 hour 10 min.

+ + + + + +
+

−tskeepbroken

+ + + + + +
+

Tells MPlayer not to discard TS packets reported as +broken in the stream. Sometimes needed to play corrupted +MPEG-TS files.

+
+ + + + + +
+

−tsprobe <byte position>

+ + + + + +
+

When playing an MPEG-TS stream, this option lets you +specify how many bytes in the stream you want MPlayer to +search for the desired audio and video IDs.

+
+ + + + + +
+

−tsprog <1−65534>

+ + + + + +
+

When playing an MPEG-TS stream, you can specify with this +option which program (if present) you want to play. Can be +used with −vid and −aid.

+
+ + + + + +
+

−tv <option1:option2:...> (TV/PVR +only)

+ + + + + +
+

This option tunes various properties of the TV capture +module. For watching TV with MPlayer, use +’tv://’ or +’tv://<channel_number>’ or even +’tv://<channel_name> (see option channels for +channel_name below) as a movie URL. You can also use +’tv:///<input_id>’ to start watching a +movie from a composite or S-Video input (see option input +for details).

+ +

Available options are:

+ + + + + +
+

noaudio

+ + + + + +
+

no sound

+
+ + + + + +
+

automute=<0-255> (v4l and v4l2 only)

+ + + + + +
+

If signal strength reported by device is less than this +value, audio and video will be muted. In most cases +automute=100 will be enough. Default is 0 (automute +disabled).

+
+ + + + + +
+

driver=<value>

+ + + + + +
+

See −tv driver=help for a list of compiled-in TV +input drivers. available: dummy, v4l, v4l2, bsdbt848 +(default: autodetect)

+
+ + + + + +
+

device=<value>

+ + + + + +
+

Specify TV device (default: /dev/video0). NOTE: +For the bsdbt848 driver you can provide both bktr and tuner +device names separating them with a comma, tuner after bktr +(e.g. -tv device=/dev/bktr1,/dev/tuner1).

+
+ + + + + +
+

input=<value>

+ + + + + +
+

Specify input (default: 0 (TV), see console output for +available inputs).

+
+ + + + + +
+

freq=<value>

+ + + + + +
+

Specify the frequency to set the tuner to (e.g. 511.250). +Not compatible with the channels parameter.

+
+ + + + + +
+

outfmt=<value>

+ + + + + +
+

Specify the output format of the tuner with a preset +value supported by the V4L driver (yv12, rgb32, rgb24, +rgb16, rgb15, uyvy, yuy2, i420) or an arbitrary format given +as hex value. Try outfmt=help for a list of all available +formats.

+
+ + + + + +
+

width=<value>

+ + + + + +
+

output window width

+
+ + + + + +
+

height=<value>

+ + + + + +
+

output window height

+
+ + + + + +
+

fps=<value>

+ + + + + +
+

framerate at which to capture video (frames per +second)

+
+ + + + + +
+

buffersize=<value>

+ + + + + +
+

maximum size of the capture buffer in megabytes (default: +dynamical)

+
+ + + + + +
+

norm=<value>

+ + + + + +
+

For bsdbt848 and v4l, PAL, SECAM, NTSC are available. For +v4l2, see the console output for a list of all available +norms, also see the normid option below.

+
+ + + + + +
+

normid=<value> (v4l2 only)

+ + + + + +
+

Sets the TV norm to the given numeric ID. The TV norm +depends on the capture card. See the console output for a +list of available TV norms.

+
+ + + + + +
+

channel=<value>

+ + + + + +
+

Set tuner to <value> channel.

+
+ + + + + +
+

chanlist=<value>

+ + + + + +
+

available: europe-east, europe-west, us-bcast, us-cable, +etc

+
+ + + + + +
+ +

channels=<channel>−<name>,<channel>−<name>,...

+ + + + + +
+

Set names for channels. NOTE: If <channel> +is an integer greater than 1000, it will be treated as +frequency (in kHz) rather than channel name from frequency +table.
+Use _ for spaces in names (or play with quoting ;-). The +channel names will then be written using OSD, and the slave +commands tv_step_channel, tv_set_channel and tv_last_channel +will be usable for a remote control (see LIRC). Not +compatible with the frequency parameter.
+NOTE:
The channel number will then be the position in +the ’channels’ list, beginning with 1.
+EXAMPLE:
tv://1, tv://TV1, tv_set_channel 1, +tv_set_channel TV1

+
+ + + + + +
+ +

[brightness|contrast|hue|saturation]=<-100−100>

+ + + + + +
+

Set the image equalizer on the card.

+
+ + + + + +
+

audiorate=<value>

+ + + + + +
+

Set audio capture bitrate.

+
+ + + + + +
+

forceaudio

+ + + + + +
+

Capture audio even if there are no audio sources reported +by v4l.

+
+ + + + + +
+

alsa

+ + + + + +
+

Capture from ALSA.

+
+ + + + + +
+

amode=<0−3>

+ + + + + +
+

Choose an audio mode:

+ + + + + +
+

0: mono
+1: stereo
+2: language 1
+3: language 2

+ + + + + +
+

forcechan=<1−2>

+ + + + + +
+

By default, the count of recorded audio channels is +determined automatically by querying the audio mode from the +TV card. This option allows forcing stereo/ mono recording +regardless of the amode option and the values returned by +v4l. This can be used for troubleshooting when the TV card +is unable to report the current audio mode.

+
+ + + + + +
+

adevice=<value>

+ + + + + +
+

Set an audio device. <value> should be /dev/xxx for +OSS and a hardware ID for ALSA. You must replace any +’:’ by a ’.’ in the hardware ID for +ALSA.

+
+ + + + + +
+

audioid=<value>

+ + + + + +
+

Choose an audio output of the capture card, if it has +more than one.

+
+ + + + + +
+

[volume|bass|treble|balance]=<0−65535> +(v4l1)

+ + + + + +
+

[volume|bass|treble|balance]=<0−100> +(v4l2)

+ + + + + +
+

These options set parameters of the mixer on the video +capture card. They will have no effect, if your card does +not have one. For v4l2 50 maps to the default value of the +control, as reported by the driver.

+
+ + + + + +
+

gain=<0−100> (v4l2)

+ + + + + +
+

Set gain control for video devices (usually webcams) to +the desired value and switch off automatic control. A value +of 0 enables automatic control. If this option is omitted, +gain control will not be modified.

+
+ + + + + +
+

immediatemode=<bool>

+ + + + + +
+

A value of 0 means capture and buffer audio and video +together (default for MEncoder). A value of 1 (default for +MPlayer) means to do video capture only and let the audio go +through a loopback cable from the TV card to the sound +card.

+
+ + + + + +
+

mjpeg

+ + + + + +
+

Use hardware MJPEG compression (if the card supports it). +When using this option, you do not need to specify the width +and height of the output window, because MPlayer will +determine it automatically from the decimation value (see +below).

+
+ + + + + +
+

decimation=<1|2|4>

+ + + + + +
+

choose the size of the picture that will be compressed by +hardware MJPEG compression:

+ + + + + +
+

1: full size 704x576 PAL 704x480 NTSC
+2: medium size 352x288 PAL 352x240 NTSC
+4: small size 176x144 PAL 176x120 NTSC

+ + + + + +
+

quality=<0−100>

+ + + + + +
+

Choose the quality of the JPEG compression (< 60 +recommended for full size).

+
+ + + + + +
+

tdevice=<value>

+ + + + + +
+

Specify TV teletext device (example: /dev/vbi0) (default: +none).

+
+ + + + + +
+

tformat=<format>

+ + + + + +
+

Specify TV teletext display format (default: 0):

+ + + + + +
+

0: opaque
+1: transparent
+2: opaque with inverted colors
+3: transparent with inverted colors

+ + + + + +
+

tpage=<100-899>

+ + + + + +
+

Specify initial TV teletext page number (default: +100).

+
+ + + + + +
+

tlang=<−1−127>

+ + + + + +
+

Specify default teletext language code (default: 0), +which will be used as primary language until a type 28 +packet is received. Useful when the teletext system uses a +non-latin character set, but language codes are not +transmitted via teletext type 28 packets for some reason. To +see a list of supported language codes set this option to +−1.

+ + + + + +
+

−tvscan <option1:option2:...> (TV and +MPlayer only)

+ + + + + +
+

Tune the TV channel scanner. MPlayer will also print +value for "-tv channels=" option, including +existing and just found channels.

+ +

Available suboptions are:

+ + + + + +
+

autostart

+ + + + + +
+

Begin channel scanning immediately after startup +(default: disabled).

+
+ + + + + +
+

period=<0.1-2.0>

+ + + + + +
+

Specify delay in seconds before switching to next channel +(default: 0.5). Lower values will cause faster scanning, but +can detect inactive TV channels as active.

+
+ + + + + +
+

threshold=<1-100>

+ + + + + +
+

Threshold value for the signal strength (in percent), as +reported by the device (default: 50). A signal strength +higher than this value will indicate that the currently +scanning channel is active.

+ + + + + +
+

−user <username> (also see −passwd) +(network only)

+ + + + + +
+

Specify username for HTTP authentication.

+
+ + + + + +
+

−user-agent <string>

+ + + + + +
+

Use <string> as user agent for HTTP streaming.

+
+ + + + + +
+

−vid <ID>

+ + + + + +
+

Select video channel (MPG: 0−15, ASF: 0−255, +MPEG-TS: 17−8190). When playing an MPEG-TS stream, +MPlayer/MEncoder will use the first program (if present) +with the chosen video stream.

+
+ + + + + +
+

−vivo <suboption> (DEBUG +CODE)

+ + + + + +
+

Force audio parameters for the VIVO demuxer (for +debugging purposes). FIXME: Document this.

+
+ +

OSD/SUBTITLE OPTIONS

+ + + + + +
+

NOTE: Also see −vf expand.

+
+ + + + + +
+

−ass (FreeType only)

+ + + + + +
+

Turn on SSA/ASS subtitle rendering. With this option, +libass will be used for SSA/ASS external subtitles and +Matroska tracks. You may also want to use +−embeddedfonts.

+
+ + + + + +
+

−ass-border-color <value>

+ + + + + +
+

Sets the border (outline) color for text subtitles. The +color format is RRGGBBAA.

+
+ + + + + +
+

−ass-bottom-margin <value>

+ + + + + +
+

Adds a black band at the bottom of the frame. The SSA/ASS +renderer can place subtitles there (with +−ass-use-margins).

+
+ + + + + +
+

−ass-color <value>

+ + + + + +
+

Sets the color for text subtitles. The color format is +RRGGBBAA.

+
+ + + + + +
+

−ass-font-scale <value>

+ + + + + +
+

Set the scale coefficient to be used for fonts in the +SSA/ASS renderer.

+
+ + + + + +
+

−ass-force-style +<[Style.]Param=Value[,...]>

+ + + + + +
+

Override some style parameters.

+ +

EXAMPLE:

+ + + + + +
+

−ass-force-style +FontName=Arial,Default.Bold=1

+ + + + + +
+

−ass-hinting <type>

+ + + + + +
+

Set hinting type.

+ + + + + +
+

<type>

+ + + + + +
+

0: No hinting.
+1: FreeType autohinter, light mode.
+2: FreeType autohinter, normal mode.
+3: Font native hinter.
+0-3 + 4: The same, but hinting will only be performed if OSD +is rendered at screen resolution and, therefore, will not be +scaled.
+The default value is 7 (use native hinter for unscaled OSD +and no hinting otherwise).

+ + + + + +
+

−ass-line-spacing <value>

+ + + + + +
+

Set line spacing value for SSA/ASS renderer.

+
+ + + + + +
+

−ass-styles <filename>

+ + + + + +
+

Load all SSA/ASS styles found in the specified file and +use them for rendering text subtitles. The syntax of the +file is exactly like the [V4 Styles] / [V4+ Styles] section +of SSA/ASS.

+
+ + + + + +
+

−ass-top-margin <value>

+ + + + + +
+

Adds a black band at the top of the frame. The SSA/ASS +renderer can place toptitles there (with +−ass-use-margins).

+
+ + + + + +
+

−ass-use-margins

+ + + + + +
+

Enables placing toptitles and subtitles in black borders +when they are available.

+
+ + + + + +
+

−dumpjacosub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based JACOsub subtitle format. Creates a +dumpsub.js file in the current directory.

+
+ + + + + +
+

−dumpmicrodvdsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the MicroDVD subtitle format. Creates a +dumpsub.sub file in the current directory.

+
+ + + + + +
+

−dumpmpsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to MPlayer’s subtitle format, MPsub. Creates a +dump.mpsub file in the current directory.

+
+ + + + + +
+

−dumpsami (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based SAMI subtitle format. Creates a +dumpsub.smi file in the current directory.

+
+ + + + + +
+

−dumpsrtsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based SubViewer (SRT) subtitle format. +Creates a dumpsub.srt file in the current directory.
+NOTE:
Some broken hardware players choke on SRT subtitle +files with Unix line endings. If you are unlucky enough to +have such a box, pass your subtitle files through unix2dos +or a similar program to replace Unix line endings with +DOS/Windows line endings.

+
+ + + + + +
+

−dumpsub (MPlayer only) (BETA CODE)

+ + + + + +
+

Dumps the subtitle substream from VOB streams. Also see +the −dump*sub and −vobsubout* options.

+
+ + + + + +
+

−embeddedfonts (FreeType only)

+ + + + + +
+

Enables extraction of Matroska embedded fonts (default: +disabled). These fonts can be used for SSA/ASS subtitle +rendering (−ass option). Font files are created in the +~/.mplayer/fonts directory.
+NOTE:
With FontConfig 2.4.2 or newer, embedded fonts are +opened directly from memory, and this option is enabled by +default.

+
+ + + + + +
+

−ffactor <number>

+ + + + + +
+

Resample the font alphamap. Can be:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

plain white fonts

+
+
+ +

0.75

+
+ +

very narrow black outline (default)

+
+
+ +

1

+
+ +

narrow black outline

+
+
+ +

10

+
+ +

bold black outline

+
+
+ + + + + +
+

−flip-hebrew (FriBiDi only)

+ + + + + +
+

Turns on flipping subtitles using FriBiDi.

+
+ + + + + +
+

−noflip-hebrew-commas

+ + + + + +
+

Change FriBiDi’s assumptions about the placements +of commas in subtitles. Use this if commas in subtitles are +shown at the start of a sentence instead of at the end.

+
+ + + + + +
+

−font <path to font.desc +file>

+ + + + + +
+

Search for the OSD/SUB fonts in an alternative directory +(default for normal fonts: ~/.mplayer/font/font.desc, +default for FreeType fonts: ~/.mplayer/subfont.ttf).
+NOTE:
With FreeType, this option determines the path to +the text font file. With fontconfig, this option determines +the fontconfig font name.

+ +

EXAMPLE:

+ + + + + +
+

−font ~/.mplayer/arial-14/font.desc
+−font ~/.mplayer/arialuni.ttf
+−font ’Bitstream Vera Sans’

+ + + + + +
+

−fontconfig (fontconfig only)

+ + + + + +
+

Enables the usage of fontconfig managed fonts.

+
+ + + + + +
+

−forcedsubsonly

+ + + + + +
+

Display only forced subtitles for the DVD subtitle stream +selected by e.g. −slang.

+
+ + + + + +
+

−fribidi-charset <charset name> (FriBiDi +only)

+ + + + + +
+

Specifies the character set that will be passed to +FriBiDi when decoding non-UTF-8 subtitles (default: +ISO8859-8).

+
+ + + + + +
+

−ifo <VOBsub IFO file>

+ + + + + +
+

Indicate the file that will be used to load palette and +frame size for VOBsub subtitles.

+
+ + + + + +
+

−noautosub

+ + + + + +
+

Turns off automatic subtitle file loading.

+
+ + + + + +
+

−osd-duration <time>

+ + + + + +
+

Set the duration of the OSD messages in ms (default: +1000).

+
+ + + + + +
+

−osdlevel <0−3> (MPlayer +only)

+ + + + + +
+

Specifies which mode the OSD should start in.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

subtitles only

+
+ +

1

+
+ +

volume + seek (default)

+
+ +

2

+
+ +

volume + seek + timer + percentage

+
+ +

3

+
+ +

volume + seek + timer + percentage + total time

+
+ + + + + +
+

−overlapsub

+ + + + + +
+

Allows the next subtitle to be displayed while the +current one is still visible (default is to enable the +support only for specific formats).

+
+ + + + + +
+

−sid <ID> (also see −slang, +−vobsubid)

+ + + + + +
+

Display the subtitle stream specified by <ID> +(0−31). MPlayer prints the available subtitle IDs when +run in verbose (−v) mode. If you cannot select one of +the subtitles on a DVD, also try −vobsubid.

+
+ + + + + +
+

−slang <language code[,language code,...]> +(also see −sid)

+ + + + + +
+

Specify a priority list of subtitle languages to use. +Different container formats employ different language codes. +DVDs use ISO 639-1 two letter language codes, Matroska uses +ISO 639-2 three letter language codes while OGM uses a +free-form identifier. MPlayer prints the available languages +when run in verbose (−v) mode.

+ +

EXAMPLE:

+ + + + + +
+

mplayer dvd://1 −slang hu,en

+ + + + + +
+

Chooses the Hungarian subtitle track on a DVD and falls +back on English if Hungarian is not available.

+ + + + + +
+

mplayer −slang jpn example.mkv

+ + + + + +
+

Plays a Matroska file with Japanese subtitles.

+ + + + + +
+

−spuaa <mode>

+ + + + + +
+

Antialiasing/scaling mode for DVD/VOBsub. A value of 16 +may be added to <mode> in order to force scaling even +when original and scaled frame size already match. This can +be employed to e.g. smooth subtitles with gaussian blur. +Available modes are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none (fastest, very ugly)

+
+ +

1

+
+ +

approximate (broken?)

+
+ +

2

+
+ +

full (slow)

+
+ +

3

+
+ +

bilinear (default, fast and not too bad)

+
+ +

4

+
+ +

uses swscaler gaussian blur (looks very good)

+
+ + + + + +
+

−spualign <-1−2>

+ + + + + +
+

Specify how SPU (DVD/VOBsub) subtitles should be +aligned.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

original position

+
+ +

0

+
+ +

Align at top (original behavior, default).

+
+ +

1

+
+ +

Align at center.

+
+ +

2

+
+ +

Align at bottom.

+
+ + + + + +
+

−spugauss <0.0−3.0>

+ + + + + +
+

Variance parameter of gaussian used by −spuaa 4. +Higher means more blur (default: 1.0).

+
+ + + + + +
+

−sub +<subtitlefile1,subtitlefile2,...>

+ + + + + +
+

Use/display these subtitle files. Only one file can be +displayed at the same time.

+
+ + + + + +
+

−sub-bg-alpha <0−255>

+ + + + + +
+

Specify the alpha channel value for subtitles and OSD +backgrounds. Big values mean more transparency. 0 means +completely transparent.

+
+ + + + + +
+

−sub-bg-color <0−255>

+ + + + + +
+

Specify the color value for subtitles and OSD +backgrounds. Currently subtitles are grayscale so this value +is equivalent to the intensity of the color. 255 means white +and 0 black.

+
+ + + + + +
+

−sub-demuxer <[+]name> (−subfile +only) (BETA CODE)

+ + + + + +
+

Force subtitle demuxer type for −subfile. Use a +’+’ before the name to force it, this will skip +some checks! Give the demuxer name as printed by +−sub-demuxer help. For backward compatibility it also +accepts the demuxer ID as defined in subreader.h.

+
+ + + + + +
+

−sub-fuzziness <mode>

+ + + + + +
+

Adjust matching fuzziness when searching for +subtitles:

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

exact match

+
+
+ +

1

+
+ +

Load all subs containing movie name.

+
+
+ +

2

+
+ +

Load all subs in the current directory.

+
+
+ + + + + +
+

−sub-no-text-pp

+ + + + + +
+

Disables any kind of text post processing done after +loading the subtitles. Used for debug purposes.

+
+ + + + + +
+

−subalign <0−2>

+ + + + + +
+

Specify which edge of the subtitles should be aligned at +the height given by −subpos.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Align subtitle top edge (original behavior).

+
+ +

1

+
+ +

Align subtitle center.

+
+ +

2

+
+ +

Align subtitle bottom edge (default).

+
+ + + + + +
+

−subcc

+ + + + + +
+

Display DVD Closed Caption (CC) subtitles. These are +not the VOB subtitles, these are special ASCII +subtitles for the hearing impaired encoded in the VOB +userdata stream on most region 1 DVDs. CC subtitles have not +been spotted on DVDs from other regions so far.

+
+ + + + + +
+

−subcp <codepage> (iconv +only)

+ + + + + +
+

If your system supports iconv(3), you can use this option +to specify the subtitle codepage.

+ +

EXAMPLE:

+ + + + + +
+

−subcp latin2
+−subcp cp1250

+ + + + + +
+

−subcp enca:<language>:<fallback +codepage> (ENCA only)

+ + + + + +
+

You can specify your language using a two letter language +code to make ENCA detect the codepage automatically. If +unsure, enter anything and watch mplayer −v output for +available languages. Fallback codepage specifies the +codepage to use, when autodetection fails.

+ +

EXAMPLE:

+ + + + + +
+

−subcp enca:cs:latin2

+ + + + + +
+

Guess the encoding, assuming the subtitles are Czech, +fall back on latin 2, if the detection fails.

+ + + + + +
+

−subcp enca:pl:cp1250

+ + + + + +
+

Guess the encoding for Polish, fall back on +cp1250.

+ + + + + +
+

−subdelay <sec>

+ + + + + +
+

Delays subtitles by <sec> seconds. Can be +negative.

+
+ + + + + +
+

−subfile <filename> (BETA +CODE)

+ + + + + +
+

Currently useless. Same as −audiofile, but for +subtitle streams (OggDS?).

+
+ + + + + +
+

−subfont <filename> (FreeType +only)

+ + + + + +
+

Sets the subtitle font. If no −subfont is given, +−font is used.

+
+ + + + + +
+

−subfont-autoscale <0−3> (FreeType +only)

+ + + + + +
+

Sets the autoscale mode.
+NOTE:
0 means that text scale and OSD scale are font +heights in points.

+ +

The mode can be:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

no autoscale

+
+
+ +

1

+
+ +

proportional to movie height

+
+
+ +

2

+
+ +

proportional to movie width

+
+
+ +

3

+
+ +

proportional to movie diagonal (default)

+
+
+ + + + + +
+

−subfont-blur <0−8> (FreeType +only)

+ + + + + +
+

Sets the font blur radius (default: 2).

+
+ + + + + +
+

−subfont-encoding <value> (FreeType +only)

+ + + + + +
+

Sets the font encoding. When set to +’unicode’, all the glyphs from the font file +will be rendered and unicode will be used (default: +unicode).

+
+ + + + + +
+

−subfont-osd-scale <0−100> (FreeType +only)

+ + + + + +
+

Sets the autoscale coefficient of the OSD elements +(default: 6).

+
+ + + + + +
+

−subfont-outline <0−8> (FreeType +only)

+ + + + + +
+

Sets the font outline thickness (default: 2).

+
+ + + + + +
+

−subfont-text-scale <0−100> +(FreeType only)

+ + + + + +
+

Sets the subtitle text autoscale coefficient as +percentage of the screen size (default: 5).

+
+ + + + + +
+

−subfps <rate>

+ + + + + +
+

Specify the framerate of the subtitle file (default: +movie fps).
+NOTE:
<rate> > movie fps speeds the subtitles +up for frame-based subtitle files and slows them down for +time-based ones.

+
+ + + + + +
+

−subpos <0−100> (useful with +−vf expand)

+ + + + + +
+

Specify the position of subtitles on the screen. The +value is the vertical position of the subtitle in % of the +screen height.

+
+ + + + + +
+

−subwidth <10−100>

+ + + + + +
+

Specify the maximum width of subtitles on the screen. +Useful for TV-out. The value is the width of the subtitle in +% of the screen width.

+
+ + + + + +
+

−noterm-osd

+ + + + + +
+

Disable the display of OSD messages on the console when +no video output is available.

+
+ + + + + +
+

−term-osd-esc <escape +sequence>

+ + + + + +
+

Specify the escape sequence to use before writing an OSD +message on the console. The escape sequence should move the +pointer to the beginning of the line used for the OSD and +clear it (default: ^[[A\r^[[K).

+
+ + + + + +
+

−unicode

+ + + + + +
+

Tells MPlayer to handle the subtitle file as unicode.

+
+ + + + + +
+

−utf8

+ + + + + +
+

Tells MPlayer to handle the subtitle file as UTF-8.

+
+ + + + + +
+

−vobsub <VOBsub file without +extension>

+ + + + + +
+

Specify a VOBsub file to use for subtitles. Has to be the +full pathname without extension, i.e. without the +’.idx’, ’.ifo’ or +’.sub’.

+
+ + + + + +
+

−vobsubid <0−31>

+ + + + + +
+

Specify the VOBsub subtitle ID.

+
+ +

AUDIO OUTPUT OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−abs <value> (−ao oss only) +(OBSOLETE)

+ + + + + +
+

Override audio driver/card buffer size detection.

+
+ + + + + +
+

−format <format> (also see the format +audio filter)

+ + + + + +
+

Select the sample format used for output from the audio +filter layer to the sound card. The values that +<format> can adopt are listed below in the description +of the format audio filter.

+
+ + + + + +
+

−mixer <device>

+ + + + + +
+

Use a mixer device different from the default /dev/mixer. +For ALSA this is the mixer name.

+
+ + + + + +
+

−mixer-channel <mixer line>[,mixer index] +(−ao oss and −ao alsa only)

+ + + + + +
+

This option will tell MPlayer to use a different channel +for controlling volume than the default PCM. Options for OSS +include vol, pcm, line. For a complete list of +options look for SOUND_DEVICE_NAMES in +/usr/include/linux/soundcard.h. For ALSA you can use the +names e.g. alsamixer displays, like Master, Line, +PCM.
+NOTE:
ALSA mixer channel names followed by a number must +be specified in the <name,number> format, i.e. a +channel labeled ’PCM 1’ in alsamixer must be +converted to PCM,1.

+
+ + + + + +
+

−softvol

+ + + + + +
+

Force the use of the software mixer, instead of using the +sound card mixer.

+
+ + + + + +
+

−softvol-max +<10.0−10000.0>

+ + + + + +
+

Set the maximum amplification level in percent (default: +110). A value of 200 will allow you to adjust the volume up +to a maximum of double the current level. With values below +100 the initial volume (which is 100%) will be above the +maximum, which e.g. the OSD cannot display correctly.

+
+ + + + + +
+

−volstep <0−100>

+ + + + + +
+

Set the step size of mixer volume changes in percent of +the whole range (default: 3).

+
+ +

AUDIO OUTPUT DRIVERS (MPLAYER ONLY)

+ + + + + +
+

Audio output drivers are interfaces to different audio +output facilities. The syntax is:

+
+ + + + + +
+

−ao +<driver1[:suboption1[=value]:...],driver2,...[,]>

+ + + + + +
+

Specify a priority list of audio output drivers to be +used.

+
+ + + + + +
+

If the list has a trailing ’,’ MPlayer will +fall back on drivers not contained in the list. Suboptions +are optional and can mostly be omitted.
+NOTE:
See −ao help for a list of compiled-in audio +output drivers.

+ +

EXAMPLE:

+ + + + + +
+

−ao alsa,oss,

+ + + + + +
+

Try the ALSA driver, then the OSS driver, then +others.

+ + + + + +
+

−ao alsa:noblock:device=hw=0.3

+ + + + + +
+

Sets noblock-mode and the device-name as first card, +fourth device.

+ + + + + +
+

Available audio output drivers are:

+
+ + + + + +
+

alsa

+ + + + + +
+

ALSA 0.9/1.x audio output driver

+ + + + + +
+

noblock

+ + + + + +
+

Sets noblock-mode.

+ + + + + +
+

device=<device>

+ + + + + +
+

Sets the device name. Replace any ’,’ with +’.’ and any ’:’ with ’=’ +in the ALSA device name. For hwac3 output via S/PDIF, use an +"iec958" or "spdif" device, unless you +really know how to set it correctly.

+ + + + + +
+

alsa5

+ + + + + +
+

ALSA 0.5 audio output driver

+
+ + + + + +
+

oss

+ + + + + +
+

OSS audio output driver

+ + + + + +
+

<dsp-device>

+ + + + + +
+

Sets the audio output device (default: +/dev/dsp).

+ + + + + +
+

<mixer-device>

+ + + + + +
+

Sets the audio mixer device (default: +/dev/mixer).

+ + + + + +
+

<mixer-channel>

+ + + + + +
+

Sets the audio mixer channel (default: pcm).

+ + + + + +
+

sdl (SDL only)

+ + + + + +
+

highly platform independent SDL (Simple Directmedia +Layer) library audio output driver

+ + + + + +
+

<driver>

+ + + + + +
+

Explicitly choose the SDL audio driver to use (default: +let SDL choose).

+ + + + + +
+

arts

+ + + + + +
+

audio output through the aRts daemon

+
+ + + + + +
+

esd

+ + + + + +
+

audio output through the ESD daemon

+ + + + + +
+

<server>

+ + + + + +
+

Explicitly choose the ESD server to use (default: +localhost).

+ + + + + +
+

jack

+ + + + + +
+

audio output through JACK (Jack Audio Connection +Kit)

+ + + + + +
+

port=<name>

+ + + + + +
+

Connects to the ports with the given name (default: +physical ports).

+ + + + + +
+

name=<client

+ + + + + +
+

Client name that is passed to JACK (default: MPlayer +[<PID>]). Useful if you want to have certain +connections established automatically.

+ + + + + +
+

(no)estimate

+ + + + + +
+

Estimate the audio delay, supposed to make the video +playback smoother (default: enabled).

+ + + + + +
+

nas

+ + + + + +
+

audio output through NAS

+
+ + + + + +
+

macosx (Mac OS X only)

+ + + + + +
+

native Mac OS X audio output driver

+
+ + + + + + + +
+ +

openal

+
+ +

Experimental, unfinished (will downmix to mono) OpenAL +audio output driver

+
+ + + + + +
+

sgi (SGI only)

+ + + + + +
+

native SGI audio output driver

+ + + + + +
+

<output device name>

+ + + + + +
+

Explicitly choose the output device/interface to use +(default: system-wide default). For example, ’Analog +Out’ or ’Digital Out’.

+ + + + + +
+

sun (Sun only)

+ + + + + +
+

native Sun audio output driver

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the audio device to use (default: +/dev/audio).

+ + + + + +
+

win32 (Windows only)

+ + + + + +
+

native Windows waveout audio output driver

+
+ + + + + +
+

dsound (Windows only)

+ + + + + +
+

DirectX DirectSound audio output driver

+ + + + + +
+

device=<devicenum>

+ + + + + +
+

Sets the device number to use. Playing a file with +−v will show a list of available devices.

+ + + + + +
+

dxr2 (also see −dxr2) (DXR2 only)

+ + + + + +
+

Creative DXR2 specific output driver

+
+ + + + + +
+

ivtv (IVTV only)

+ + + + + +
+

IVTV specific MPEG audio output driver. Works with +−ac hwmpa only.

+
+ + + + + +
+

v4l2 (requires Linux 2.6.22+ kernel)

+ + + + + +
+

Audio output driver for V4L2 cards with hardware MPEG +decoder.

+
+ + + + + +
+

mpegpes (DVB only)

+ + + + + +
+

Audio output driver for DVB cards that writes the output +to an MPEG-PES file if no DVB card is installed.

+ + + + + +
+

card=<1−4>

+ + + + + +
+

DVB card to use if more than one card is +present.

+ + + + + +
+

file=<filename>

+ + + + + +
+

output filename

+ + + + + +
+

null

+ + + + + +
+

Produces no audio output but maintains video playback +speed. Use −nosound for benchmarking.

+
+ + + + + +
+

pcm

+ + + + + +
+

raw PCM/wave file writer audio output

+ + + + + +
+

(no)waveheader

+ + + + + +
+

Include or do not include the wave header (default: +included). When not included, raw PCM will be +generated.

+ + + + + +
+

file=<filename>

+ + + + + +
+

Write the sound to <filename> instead of the +default audiodump.wav. If nowaveheader is specified, the +default is audiodump.pcm.

+ + + + + +
+

fast

+ + + + + +
+

Try to dump faster than realtime. Make sure the output +does not get truncated (usually with "Too many video +packets in buffer" message). It is normal that you get +a "Your system is too SLOW to play this!" +message.

+ + + + + +
+

plugin

+ + + + + +
+

plugin audio output driver

+
+ +

VIDEO OUTPUT OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−adapter <value>

+ + + + + +
+

Set the graphics card that will receive the image. You +can get a list of available cards when you run this option +with −v. Currently only works with the directx video +output driver.

+
+ + + + + +
+

−bpp <depth>

+ + + + + +
+

Override the autodetected color depth. Only supported by +the fbdev, dga, svga, vesa video output drivers.

+
+ + + + + +
+

−border

+ + + + + +
+

Play movie with window border and decorations. Since this +is on by default, use −noborder to disable the +standard window decorations. Supported by the directx video +output driver.

+
+ + + + + +
+

−brightness <-100−100>

+ + + + + +
+

Adjust the brightness of the video signal (default: 0). +Not supported by all video output drivers.

+
+ + + + + +
+

−contrast <-100−100>

+ + + + + +
+

Adjust the contrast of the video signal (default: 0). Not +supported by all video output drivers.

+
+ + + + + +
+

−display <name> (X11 only)

+ + + + + +
+

Specify the hostname and display number of the X server +you want to display on.

+ +

EXAMPLE:

+ + + + + +
+

−display xtest.localdomain:0

+ + + + + +
+

−dr

+ + + + + +
+

Turns on direct rendering (not supported by all codecs +and video outputs)
+WARNING:
May cause OSD/SUB corruption!

+
+ + + + + +
+

−dxr2 <option1:option2:...>

+ + + + + +
+

This option is used to control the dxr2 video output +driver.

+ + + + + +
+

ar-mode=<value>

+ + + + + +
+

aspect ratio mode (0 = normal, 1 = pan-and-scan, 2 = +letterbox (default))

+
+ + + + + +
+

iec958-encoded

+ + + + + +
+

Set iec958 output mode to encoded.

+
+ + + + + +
+

iec958-decoded

+ + + + + +
+

Set iec958 output mode to decoded (default).

+
+ + + + + +
+

macrovision=<value>

+ + + + + +
+

macrovision mode (0 = off (default), 1 = agc, 2 = agc 2 +colorstripe, 3 = agc 4 colorstripe)

+
+ + + + + +
+

mute

+ + + + + +
+

mute sound output

+
+ + + + + +
+

unmute

+ + + + + +
+

unmute sound output

+
+ + + + + +
+

ucode=<value>

+ + + + + +
+

path to the microcode

+ + + + + +
+

TV output

+ + + + + +
+

75ire

+ + + + + +
+

enable 7.5 IRE output mode

+
+ + + + + +
+

no75ire

+ + + + + +
+

disable 7.5 IRE output mode (default)

+
+ + + + + +
+

bw

+ + + + + +
+

b/w TV output

+
+ + + + + +
+

color

+ + + + + +
+

color TV output (default)

+
+ + + + + +
+

interlaced

+ + + + + +
+

interlaced TV output (default)

+
+ + + + + +
+

nointerlaced

+ + + + + +
+

disable interlaced TV output

+
+ + + + + +
+

norm=<value>

+ + + + + +
+

TV norm (ntsc (default), pal, pal60, palm, paln, +palnc)

+
+ + + + + +
+

square-pixel

+ + + + + +
+

set pixel mode to square

+
+ + + + + +
+

ccir601-pixel

+ + + + + +
+

set pixel mode to ccir601

+ + + + + +
+

overlay

+ + + + + +
+

cr-left=<0−500>

+ + + + + +
+

Set the left cropping value (default: 50).

+
+ + + + + +
+

cr-right=<0−500>

+ + + + + +
+

Set the right cropping value (default: 300).

+
+ + + + + +
+

cr-top=<0−500>

+ + + + + +
+

Set the top cropping value (default: 0).

+
+ + + + + +
+

cr-bottom=<0−500>

+ + + + + +
+

Set the bottom cropping value (default: 0).

+
+ + + + + +
+

ck-[r|g|b]=<0−255>

+ + + + + +
+

Set the r(ed), g(reen) or b(lue) gain of the overlay +color-key.

+
+ + + + + +
+

ck-[r|g|b]min=<0−255>

+ + + + + +
+

minimum value for the respective color key

+
+ + + + + +
+

ck-[r|g|b]max=<0−255>

+ + + + + +
+

maximum value for the respective color key

+
+ + + + + +
+

ignore-cache

+ + + + + +
+

Ignore cached overlay settings.

+
+ + + + + +
+

update-cache

+ + + + + +
+

Update cached overlay settings.

+
+ + + + + +
+

ol-osd

+ + + + + +
+

Enable overlay onscreen display.

+
+ + + + + +
+

nool-osd

+ + + + + +
+

Disable overlay onscreen display (default).

+
+ + + + + +
+

ol[h|w|x|y]-cor=<-20−20>

+ + + + + +
+

Adjust the overlay size (h,w) and position (x,y) in case +it does not match the window perfectly (default: 0).

+
+ + + + + +
+

overlay

+ + + + + +
+

Activate overlay (default).

+
+ + + + + +
+

nooverlay

+ + + + + +
+

Activate TVout.

+
+ + + + + +
+

overlay-ratio=<1−2500>

+ + + + + +
+

Tune the overlay (default: 1000).

+ + + + + +
+

−fbmode <modename> (−vo fbdev +only)

+ + + + + +
+

Change video mode to the one that is labeled as +<modename> in /etc/fb.modes.
+NOTE:
VESA framebuffer does not support mode +changing.

+
+ + + + + +
+

−fbmodeconfig <filename> (−vo fbdev +only)

+ + + + + +
+

Override framebuffer mode configuration file (default: +/etc/ fb.modes).

+
+ + + + + +
+

−fs (also see −zoom)

+ + + + + +
+

Fullscreen playback (centers movie, and paints black +bands around it). Not supported by all video output +drivers.

+
+ + + + + +
+

−fsmode-dontuse <0−31> (OBSOLETE, +use the −fs option)

+ + + + + +
+

Try this option if you still experience fullscreen +problems.

+
+ + + + + +
+

−fstype <type1,type2,...> (X11 +only)

+ + + + + +
+

Specify a priority list of fullscreen modes to be used. +You can negate the modes by prefixing them with +’−’. If you experience problems like the +fullscreen window being covered by other windows try using a +different order.
+NOTE:
See −fstype help for a full list of +available modes.

+ +

The available types are:

+
+ + + + + +
+

above

+ + + + + +
+

Use the _NETWM_STATE_ABOVE hint if available.

+ + + + + +
+

below

+ + + + + +
+

Use the _NETWM_STATE_BELOW hint if available.

+ + + + + +
+

fullscreen

+ + + + + +
+

Use the _NETWM_STATE_FULLSCREEN hint if +available.

+ + + + + +
+

layer

+ + + + + +
+

Use the _WIN_LAYER hint with the default layer.

+ + + + + +
+

layer=<0...15>

+ + + + + +
+

Use the _WIN_LAYER hint with the given layer +number.

+ + + + + +
+

netwm

+ + + + + +
+

Force NETWM style.

+ + + + + +
+

none

+ + + + + +
+

Do not set fullscreen window layer.

+ + + + + +
+

stays_on_top

+ + + + + +
+

Use _NETWM_STATE_STAYS_ON_TOP hint if available.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

layer,stays_on_top,above,fullscreen

+ + + + + +
+

Default order, will be used as a fallback if incorrect or +unsupported modes are specified.

+ + + + + +
+

−fullscreen

+ + + + + +
+

Fixes fullscreen switching on OpenBox 1.x.

+ + + + + +
+

−geometry x[%][:y[%]] or +[WxH][+x+y]

+ + + + + +
+

Adjust where the output is on the screen initially. The x +and y specifications are in pixels measured from the +top-left of the screen to the top-left of the image being +displayed, however if a percentage sign is given after the +argument it turns the value into a percentage of the screen +size in that direction. It also supports the standard X11 +−geometry option format. If an external window is +specified using the −wid option, then the x and y +coordinates are relative to the top-left corner of the +window rather than the screen.
+NOTE:
This option is only supported by the x11, xmga, +xv, xvmc, xvidix, gl, gl2, directx and tdfxfb video output +drivers.

+ +

EXAMPLE:

+ + + + + +
+

50:40

+ + + + + +
+

Places the window at x=50, y=40.

+ + + + + +
+

50%:50%

+ + + + + +
+

Places the window in the middle of the screen.

+ + + + + +
+

100%

+ + + + + +
+

Places the window at the middle of the right edge of the +screen.

+ + + + + +
+

100%:100%

+ + + + + +
+

Places the window at the bottom right corner of the +screen.

+ + + + + +
+

−guiwid <window ID> (also see −wid) +(GUI only)

+ + + + + +
+

This tells the GUI to also use an X11 window and stick +itself to the bottom of the video, which is useful to embed +a mini-GUI in a browser (with the MPlayer plugin for +instance).

+
+ + + + + +
+

−hue <-100−100>

+ + + + + +
+

Adjust the hue of the video signal (default: 0). You can +get a colored negative of the image with this option. Not +supported by all video output drivers.

+
+ + + + + +
+

−monitor-dotclock <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the dotclock or pixelclock range of the +monitor.

+
+ + + + + +
+

−monitor-hfreq <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the horizontal frequency range of the +monitor.

+
+ + + + + +
+

−monitor-vfreq <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the vertical frequency range of the monitor.

+
+ + + + + +
+

−monitoraspect <ratio> (also see +−aspect)

+ + + + + +
+

Set the aspect ratio of your monitor or TV screen. A +value of 0 disables a previous setting (e.g. in the config +file). Overrides the −monitorpixelaspect setting if +enabled.

+ +

EXAMPLE:

+ + + + + +
+

−monitoraspect 4:3 or 1.3333
+−monitoraspect 16:9 or 1.7777

+ + + + + +
+

−monitorpixelaspect <ratio> (also see +−aspect)

+ + + + + +
+

Set the aspect of a single pixel of your monitor or TV +screen (default: 1). A value of 1 means square pixels +(correct for (almost?) all LCDs).

+
+ + + + + +
+

−nodouble

+ + + + + +
+

Disables double buffering, mostly for debugging purposes. +Double buffering fixes flicker by storing two frames in +memory, and displaying one while decoding another. It can +affect OSD negatively, but often removes OSD flickering.

+
+ + + + + +
+

−nograbpointer

+ + + + + +
+

Do not grab the mouse pointer after a video mode change +(−vm). Useful for multihead setups.

+
+ + + + + +
+

−nokeepaspect

+ + + + + +
+

Do not keep window aspect ratio when resizing windows. +Only works with the x11, xv, xmga, xvidix, directx video +output drivers. Furthermore under X11 your window manager +has to honor window aspect hints.

+
+ + + + + +
+

−ontop

+ + + + + +
+

Makes the player window stay on top of other windows. +Supported by video output drivers which use X11, except SDL, +as well as directx, macosx, quartz, ggi and gl2.

+
+ + + + + +
+

−panscan <0.0−1.0>

+ + + + + +
+

Enables pan-and-scan functionality (cropping the sides of +e.g. a 16:9 movie to make it fit a 4:3 display without black +bands). The range controls how much of the image is cropped. +Only works with the xv, xmga, mga, gl, gl2, quartz, macosx +and xvidix video output drivers.
+NOTE:
Values between -1 and 0 are allowed as well, but +highly experimental and may crash or worse. Use at your own +risk!

+
+ + + + + +
+

−panscanrange <-19.0−99.0> +(experimental)

+ + + + + +
+

Change the range of the pan-and-scan functionality +(default: 1). Positive values mean multiples of the default +range. Negative numbers mean you can zoom in up to a factor +of −panscanrange+1. E.g. −panscanrange -3 allows +a zoom factor of up to 4. This feature is experimental. Do +not report bugs unless you are using −vo gl.

+
+ + + + + +
+

−refreshrate <Hz>

+ + + + + +
+

Set the monitor refreshrate in Hz. Currently only +supported by −vo directx combined with the −vm +option.

+
+ + + + + +
+

−rootwin

+ + + + + +
+

Play movie in the root window (desktop background). +Desktop background images may cover the movie window, +though. Only works with the x11, xv, xmga, xvidix, quartz, +macosx and directx video output drivers.

+
+ + + + + +
+

−saturation <-100−100>

+ + + + + +
+

Adjust the saturation of the video signal (default: 0). +You can get grayscale output with this option. Not supported +by all video output drivers.

+
+ + + + + +
+

−screenh <pixels>

+ + + + + +
+

Specify the vertical screen resolution for video output +drivers which do not know the screen resolution like fbdev, +x11 and TVout.

+
+ + + + + +
+

−screenw <pixels>

+ + + + + +
+

Specify the horizontal screen resolution for video output +drivers which do not know the screen resolution like fbdev, +x11 and TVout.

+
+ + + + + +
+

−stop-xscreensaver (X11 only)

+ + + + + +
+

Turns off xscreensaver at startup and turns it on again +on exit.

+
+ + + + + +
+

−vm

+ + + + + +
+

Try to change to a different video mode. Supported by the +dga, x11, xv, sdl and directx video output drivers. If used +with the directx video output driver the −screenw, +−screenh, −bpp and −refreshrate options +can be used to set the new display mode.

+
+ + + + + +
+

−vsync

+ + + + + +
+

Enables VBI for the vesa, dfbmga and svga video output +drivers.

+
+ + + + + +
+

−wid <window ID> (also see −guiwid) +(X11, OpenGL and DirectX only)

+ + + + + +
+

This tells MPlayer to attach to an existing window. +Useful to embed MPlayer in a browser (e.g. the plugger +extension).

+
+ + + + + +
+

−xineramascreen <−2−...> (X11 +only)

+ + + + + +
+

In Xinerama configurations (i.e. a single desktop that +spans across multiple displays) this option tells MPlayer +which screen to display the movie on. A value of −2 +means fullscreen across the whole virtual display (in this +case Xinerama information is completely ignored), −1 +means fullscreen on the display the window currently is on. +The initial position set via the −geometry option is +relative to the specified screen. Will usually only work +with "−fstype −fullscreen" or +"−fstype none".

+
+ + + + + +
+

−zrbw (−vo zr only)

+ + + + + +
+

Display in black and white. For optimal performance, this +can be combined with ’−lavdopts gray’.

+
+ + + + + +
+

−zrcrop <[width]x[height]+[x offset]+[y +offset]> (−vo zr only)

+ + + + + +
+

Select a part of the input image to display, multiple +occurrences of this option switch on cinerama mode. In +cinerama mode the movie is distributed over more than one TV +(or beamer) to create a larger image. Options appearing +after the n-th −zrcrop apply to the n-th MJPEG card, +each card should at least have a −zrdev in addition to +the −zrcrop. For examples, see the output of +−zrhelp and the Zr section of the documentation.

+
+ + + + + +
+

−zrdev <device> (−vo zr +only)

+ + + + + +
+

Specify the device special file that belongs to your +MJPEG card, by default the zr video output driver takes the +first v4l device it can find.

+
+ + + + + +
+

−zrfd (−vo zr only)

+ + + + + +
+

Force decimation: Decimation, as specified by +−zrhdec and −zrvdec, only happens if the +hardware scaler can stretch the image to its original size. +Use this option to force decimation.

+
+ + + + + +
+

−zrhdec <1|2|4> (−vo zr +only)

+ + + + + +
+

Horizontal decimation: Ask the driver to send only every +2nd or 4th line/pixel of the input image to the MJPEG card +and use the scaler of the MJPEG card to stretch the image to +its original size.

+
+ + + + + +
+

−zrhelp (−vo zr only)

+ + + + + +
+

Display a list of all −zr* options, their default +values and a cinerama mode example.

+
+ + + + + +
+

−zrnorm <norm> (−vo zr +only)

+ + + + + +
+

Specify the TV norm as PAL or NTSC (default: no +change).

+
+ + + + + +
+

−zrquality <1−20> (−vo zr +only)

+ + + + + +
+

A number from 1 (best) to 20 (worst) representing the +JPEG encoding quality.

+
+ + + + + +
+

−zrvdec <1|2|4> (−vo zr +only)

+ + + + + +
+

Vertical decimation: Ask the driver to send only every +2nd or 4th line/pixel of the input image to the MJPEG card +and use the scaler of the MJPEG card to stretch the image to +its original size.

+
+ + + + + +
+

−zrxdoff <x display offset> (−vo zr +only)

+ + + + + +
+

If the movie is smaller than the TV screen, this option +specifies the x offset from the upper-left corner of the TV +screen (default: centered).

+
+ + + + + +
+

−zrydoff <y display offset> (−vo zr +only)

+ + + + + +
+

If the movie is smaller than the TV screen, this option +specifies the y offset from the upper-left corner of the TV +screen (default: centered).

+
+ +

VIDEO OUTPUT DRIVERS (MPLAYER ONLY)

+ + + + + +
+

Video output drivers are interfaces to different video +output facilities. The syntax is:

+
+ + + + + +
+

−vo +<driver1[:suboption1[=value]:...],driver2,...[,]>

+ + + + + +
+

Specify a priority list of video output drivers to be +used.

+
+ + + + + +
+

If the list has a trailing ’,’ MPlayer will +fall back on drivers not contained in the list. Suboptions +are optional and can mostly be omitted.
+NOTE:
See −vo help for a list of compiled-in video +output drivers.

+ +

EXAMPLE:

+ + + + + +
+

−vo xmga,xv,

+ + + + + +
+

Try the Matrox X11 driver, then the Xv driver, then +others.

+ + + + + +
+

−vo directx:noaccel

+ + + + + +
+

Uses the DirectX driver with acceleration features turned +off.

+ + + + + +
+

Available video output drivers are:

+
+ + + + + +
+

xv (X11 only)

+ + + + + +
+

Uses the XVideo extension of XFree86 4.x to enable +hardware accelerated playback. If you cannot use a hardware +specific driver, this is probably the best option. For +information about what colorkey is used and how it is drawn +run MPlayer with −v option and look out for the lines +tagged with [xv common] at the beginning.

+ + + + + +
+

port=<number>

+ + + + + +
+

Select a specific XVideo port.

+ + + + + +
+

ck=<cur|use|set>

+ + + + + +
+

Select the source from which the colorkey is taken +(default: cur).

+ + + + + + + + + + + + + + + + + +
+ +

cur

+
+ +

The default takes the colorkey currently set in Xv.

+
+ +

use

+
+ +

Use but do not set the colorkey from MPlayer (use +−colorkey option to change it).

+
+ +

set

+
+ +

Same as use but also sets the supplied colorkey.

+
+ + + + + +
+

ck-method=<man|bg|auto>

+ + + + + +
+

Sets the colorkey drawing method (default: man).

+ + + + + + + + + + + + + + + + + +
+ +

man

+
+ +

Draw the colorkey manually (reduces flicker in some +cases).

+
+ +

bg

+
+ +

Set the colorkey as window background.

+
+ +

auto

+
+ +

Let Xv draw the colorkey.

+
+ + + + + +
+

x11 (X11 only)

+ + + + + +
+

Shared memory video output driver without hardware +acceleration that works whenever X11 is present.

+
+ + + + + +
+

xover (X11 only)

+ + + + + +
+

Adds X11 support to all overlay based video output +drivers. Currently only supported by tdfx_vid.

+ + + + + +
+

<vo_driver>

+ + + + + +
+

Select the driver to use as source to overlay on top of +X11.

+ + + + + +
+

xvmc (X11 with −vc ffmpeg12mc only)

+ + + + + +
+

Video output driver that uses the XvMC (X Video Motion +Compensation) extension of XFree86 4.x to speed up MPEG-1/2 +and VCR2 decoding.

+ + + + + +
+

port=<number>

+ + + + + +
+

Select a specific XVideo port.

+ + + + + +
+

(no)benchmark

+ + + + + +
+

Disables image display. Necessary for proper benchmarking +of drivers that change image buffers on monitor retrace only +(nVidia). Default is not to disable image display +(nobenchmark).

+ + + + + +
+

(no)bobdeint

+ + + + + +
+

Very simple deinterlacer. Might not look better than +−vf tfields=1, but it is the only deinterlacer for +xvmc (default: nobobdeint).

+ + + + + +
+

(no)queue

+ + + + + +
+

Queue frames for display to allow more parallel work of +the video hardware. May add a small (not noticeable) +constant A/V desync (default: noqueue).

+ + + + + +
+

(no)sleep

+ + + + + +
+

Use sleep function while waiting for rendering to finish +(not recommended on Linux) (default: nosleep).

+ + + + + +
+

ck=cur|use|set

+ + + + + +
+

Same as −vo xv:ck (see −vo xv).

+ + + + + +
+

ck-method=man|bg|auto

+ + + + + +
+

Same as −vo xv:ck-method (see −vo +xv).

+ + + + + +
+

dga (X11 only)

+ + + + + +
+

Play video through the XFree86 Direct Graphics Access +extension. Considered obsolete.

+
+ + + + + +
+

sdl (SDL only)

+ + + + + +
+

Highly platform independent SDL (Simple Directmedia +Layer) library video output driver. Since SDL uses its own +X11 layer, MPlayer X11 options do not have any effect on +SDL.

+ + + + + +
+

driver=<driver>

+ + + + + +
+

Explicitly choose the SDL driver to use.

+ + + + + +
+

(no)forcexv

+ + + + + +
+

Use XVideo through the sdl video output driver (default: +forcexv).

+ + + + + +
+

(no)hwaccel

+ + + + + +
+

Use hardware accelerated scaler (default: +hwaccel).

+ + + + + +
+

vidix

+ + + + + +
+

VIDIX (VIDeo Interface for *niX) is an interface to the +video acceleration features of different graphics cards. +Very fast video output driver on cards that support +it.

+ + + + + +
+

<subdevice>

+ + + + + +
+

Explicitly choose the VIDIX subdevice driver to use. +Available subdevice drivers are cyberblade, mach64, +mga_crtc2, mga, nvidia, pm2, pm3, radeon, rage128, sis_vid +and unichrome.

+ + + + + +
+

xvidix (X11 only)

+ + + + + +
+

X11 frontend for VIDIX

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

cvidix

+ + + + + +
+

Generic and platform independent VIDIX frontend, can even +run in a text console with nVidia cards.

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

winvidix (Windows only)

+ + + + + +
+

Windows frontend for VIDIX

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

directx (Windows only)

+ + + + + +
+

Video output driver that uses the DirectX +interface.

+ + + + + +
+

noaccel

+ + + + + +
+

Turns off hardware acceleration. Try this option if you +have display problems.

+ + + + + +
+

quartz (Mac OS X only)

+ + + + + +
+

Mac OS X Quartz video output driver. Under some +circumstances, it might be more efficient to force a packed +YUV output format, with e.g. −vf format=yuy2.

+ + + + + +
+

device_id=<number>

+ + + + + +
+

Choose the display device to use in fullscreen.

+ + + + + +
+

fs_res=<width>:<height>

+ + + + + +
+

Specify the fullscreen resolution (useful on slow +systems).

+ + + + + +
+

macosx (Mac OS X 10.4 or 10.3.9 with QuickTime +7)

+ + + + + +
+

Mac OS X CoreVideo video output driver

+ + + + + +
+

device_id=<number>

+ + + + + +
+

Choose the display device to use in fullscreen.

+ + + + + +
+

fbdev (Linux only)

+ + + + + +
+

Uses the kernel framebuffer to play video.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (e.g. +/dev/fb0) or the name of the VIDIX subdevice if the device +name starts with ’vidix’ (e.g. +’vidixsis_vid’ for the sis driver).

+ + + + + +
+

fbdev2 (Linux only)

+ + + + + +
+

Uses the kernel framebuffer to play video, alternative +implementation.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

vesa

+ + + + + +
+

Very general video output driver that should work on any +VESA VBE 2.0 compatible card.

+ + + + + +
+

(no)dga

+ + + + + +
+

Turns DGA mode on or off (default: on).

+ + + + + +
+

neotv_pal

+ + + + + +
+

Activate the NeoMagic TV out and set it to PAL +norm.

+ + + + + +
+

neotv_ntsc

+ + + + + +
+

Activate the NeoMagic TV out and set it to NTSC +norm.

+ + + + + +
+

vidix

+ + + + + +
+

Use the VIDIX driver.

+ + + + + +
+

lvo:

+ + + + + +
+

Activate the Linux Video Overlay on top of VESA +mode.

+ + + + + +
+

svga

+ + + + + +
+

Play video using the SVGA library.

+ + + + + +
+

<video mode>

+ + + + + +
+

Specify video mode to use. The mode can be given in a +<width>x<height>x<colors> format, e.g. +640x480x16M or be a graphics mode number, e.g. 84.

+ + + + + +
+

bbosd

+ + + + + +
+

Draw OSD into black bands below the movie +(slower).

+ + + + + +
+

native

+ + + + + +
+

Use only native drawing functions. This avoids direct +rendering, OSD and hardware acceleration.

+ + + + + +
+

retrace

+ + + + + +
+

Force frame switch on vertical retrace. Usable only with +−double. It has the same effect as the −vsync +option.

+ + + + + +
+

sq

+ + + + + +
+

Try to select a video mode with square pixels.

+ + + + + +
+

vidix

+ + + + + +
+

Use svga with VIDIX.

+ + + + + +
+

gl

+ + + + + +
+

OpenGL video output driver, simple version. Video size +must be smaller than the maximum texture size of your OpenGL +implementation. Intended to work even with the most basic +OpenGL implementations, but also makes use of newer +extensions, which allow support for more colorspaces and +direct rendering. Please use −dr if it works with your +OpenGL implementation, since for higher resolutions this +provides a big speedup. The code performs very few +checks, so if a feature does not work, this might be because +it is not supported by your card/OpenGL implementation even +if you do not get any error message. Use glxinfo or a +similar tool to display the supported OpenGL +extensions.

+ + + + + +
+

(no)scaled-osd

+ + + + + +
+

Changes the way the OSD behaves when the size of the +window changes (default: disabled). When enabled behaves +more like the other video output drivers, which is better +for fixed-size fonts. Disabled looks much better with +FreeType fonts and uses the borders in fullscreen mode. Does +not work correctly with ass subtitles (see −ass), you +can instead render them without OpenGL support via −vf +ass.

+ + + + + +
+

osdcolor=<0xRRGGBB>

+ + + + + +
+

Color for OSD (default: 0xffffff, corresponds to +white).

+ + + + + +
+

rectangle=<0,1,2>

+ + + + + +
+

Select usage of rectangular textures which saves video +RAM, but often is slower (default: 0).

+ + + + + +
+

0: Use power-of-two textures (default).
+1: Use the GL_ARB_texture_rectangle extension.
+2: Use the GL_ARB_texture_non_power_of_two extension. In +some cases only supported in software and thus very +slow.

+ + + + + +
+

swapinterval=<n>

+ + + + + +
+

Minimum interval between two buffer swaps, counted in +displayed frames (default: 1). 1 is equivalent to enabling +VSYNC, 0 to disabling VSYNC. Values below 0 will leave it at +the system default. This limits the framerate to (horizontal +refresh rate / n). Requires GLX_SGI_swap_control support to +work. With some (most/all?) implementations this only works +in fullscreen mode.

+ + + + + +
+

yuv=<n>

+ + + + + +
+

Select the type of YUV to RGB conversion.

+ + + + + +
+

0: Use software conversion (default). Compatible with all +OpenGL versions. Provides brightness, contrast and +saturation control.
+1: Use register combiners. This uses an nVidia-specific +extension (GL_NV_register_combiners). At least three texture +units are needed. Provides saturation and hue control. This +method is fast but inexact.
+2: Use a fragment program. Needs the GL_ARB_fragment_program +extension and at least three texture units. Provides +brightness, contrast, saturation and hue control.
+3: Use a fragment program using the POW instruction. Needs +the GL_ARB_fragment_program extension and at least three +texture units. Provides brightness, contrast, saturation, +hue and gamma control. Gamma can also be set independently +for red, green and blue. Method 4 is usually faster.
+4: Use a fragment program with additional lookup. Needs the +GL_ARB_fragment_program extension and at least four texture +units. Provides brightness, contrast, saturation, hue and +gamma control. Gamma can also be set independently for red, +green and blue.
+5: Use ATI-specific method (for older cards). This uses an +ATI-specific extension (GL_ATI_fragment_shader - not +GL_ARB_fragment_shader!). At least three texture units are +needed. Provides saturation and hue control. This method is +fast but inexact.
+6: Use a 3D texture to do conversion via lookup. Needs the +GL_ARB_fragment_program extension and at least four texture +units. Extremely slow (software emulation) on some (all?) +ATI cards since it uses a texture with border pixels. +Provides brightness, contrast, saturation, hue and gamma +control. Gamma can also be set independently for red, green +and blue. Speed depends more on GPU memory bandwidth than +other methods.

+ + + + + +
+

lscale=<n>

+ + + + + +
+

Select the scaling function to use for luminance scaling. +Only valid for yuv modes 2, 3, 4 and 6.

+ + + + + +
+

0: Use simple linear filtering (default).
+1: Use bicubic filtering (better quality). Needs one +additional texture unit. Older cards will not be able to +handle this for chroma at least in fullscreen mode.
+2: Use cubic filtering in horizontal, linear filtering in +vertical direction. Works on a few more cards than method +1.

+ + + + + +
+

cscale=<n>

+ + + + + +
+

Select the scaling function to use for chrominance +scaling. For details see lscale.

+ + + + + +
+

customprog=<filename>

+ + + + + +
+

Load a custom fragment program from <filename>. See +TOOLS/edgedect.fp for an example.

+ + + + + +
+

customtex=<filename>

+ + + + + +
+

Load a custom "gamma ramp" texture from +<filename>. This can be used in combination with yuv=4 +or with the customprog option.

+ + + + + +
+

(no)customtlin

+ + + + + +
+

If enabled (default) use GL_LINEAR interpolation, +otherwise use GL_NEAREST for customtex texture.

+ + + + + +
+

(no)customtrect

+ + + + + +
+

If enabled, use texture_rectangle for customtex texture. +Default is disabled.

+ + + + + +
+

Normally there is no reason to use the following options, +they mostly exist for testing purposes.

+ + + + + +
+

(no)glfinish

+ + + + + +
+

Call glFinish() before swapping buffers. Slower but in +some cases more correct output (default: disabled).

+ + + + + +
+

(no)manyfmts

+ + + + + +
+

Enables support for more (RGB and BGR) color formats +(default: enabled). Needs OpenGL version >= 1.2.

+ + + + + +
+

slice-height=<0−...>

+ + + + + +
+

Number of lines copied to texture in one piece (default: +0). 0 for whole image.
+NOTE:
If YUV colorspace is used (see yuv suboption), +special rules apply:

+ + + + + +
+

If the decoder uses slice rendering (see +−noslices), this setting has no effect, the size of +the slices as provided by the decoder is used.
+If the decoder does not use slice rendering, the default is +16.

+ + + + + +
+

(no)osd

+ + + + + +
+

Enable or disable support for OSD rendering via OpenGL +(default: enabled). This option is for testing; to disable +the OSD use −osdlevel 0 instead.

+ + + + + +
+

(no)aspect

+ + + + + +
+

Enable or disable aspect scaling and pan-and-scan support +(default: enabled). Disabling might increase speed.

+ + + + + +
+

gl2

+ + + + + +
+

OpenGL video output driver, second generation. Supports +OSD and videos larger than the maximum texture +size.

+ + + + + +
+

(no)glfinish

+ + + + + +
+

same as gl (default: enabled)

+ + + + + +
+

yuv=<n>

+ + + + + +
+

Select the type of YUV to RGB conversion. If set to +anything except 0 OSD will be disabled and brightness, +contrast and gamma setting is only available via the global +X server settings. Apart from this the values have the same +meaning as for −vo gl.

+ + + + + +
+

null

+ + + + + +
+

Produces no video output. Useful for benchmarking.

+
+ + + + + +
+

aa

+ + + + + +
+

ASCII art video output driver that works on a text +console. You can get a list and an explanation of available +suboptions executing mplayer −vo aa:help
+NOTE:
Driver does not not handle −aspect +correctly.
+HINT:
You probably have to specify +−monitorpixelaspect. Try mplayer -vo aa +-monitorpixelaspect 0.5.

+
+ + + + + +
+

caca

+ + + + + +
+

Color ASCII art video output driver that works on a text +console.

+
+ + + + + +
+

bl

+ + + + + +
+

Video playback using the Blinkenlights UDP protocol. This +driver is highly hardware specific.

+ + + + + +
+

<subdevice>

+ + + + + +
+

Explicitly choose the Blinkenlights subdevice driver to +use. It is something like arcade:host=localhost:2323 or +hdl:file=name1,file=name2. You must specify a +subdevice.

+ + + + + +
+

ggi

+ + + + + +
+

GGI graphics system video output driver

+ + + + + +
+

<driver>

+ + + + + +
+

Explicitly choose the GGI driver to use. Replace any +’,’ that would appear in the driver string by a +’.’.

+ + + + + +
+

directfb

+ + + + + +
+

Play video using the DirectFB library.

+ + + + + +
+

(no)input

+ + + + + +
+

Use the DirectFB instead of the MPlayer keyboard code +(default: enabled).

+ + + + + +
+

buffermode=single|double|triple

+ + + + + +
+

Double and triple buffering give best results if you want +to avoid tearing issues. Triple buffering is more efficient +than double buffering as it does not block MPlayer while +waiting for the vertical retrace. Single buffering should be +avoided (default: single).

+ + + + + +
+

fieldparity=top|bottom

+ + + + + +
+

Control the output order for interlaced frames (default: +disabled). Valid values are top = top fields first, bottom = +bottom fields first. This option does not have any effect on +progressive film material like most MPEG movies are. You +need to enable this option if you have tearing issues or +unsmooth motions watching interlaced film material.

+ + + + + +
+

layer=N

+ + + + + +
+

Will force layer with ID N for playback (default: -1 - +auto).

+ + + + + +
+

dfbopts=<list>

+ + + + + +
+

Specify a parameter list for DirectFB.

+ + + + + +
+

dfbmga

+ + + + + +
+

Matrox G400/G450/G550 specific video output driver that +uses the DirectFB library to make use of special hardware +features. Enables CRTC2 (second head), displaying video +independently of the first head.

+ + + + + +
+

(no)input

+ + + + + +
+

same as directfb (default: disabled)

+ + + + + +
+

buffermode=single|double|triple

+ + + + + +
+

same as directfb (default: triple)

+ + + + + +
+

fieldparity=top|bottom

+ + + + + +
+

same as directfb

+ + + + + +
+

(no)bes

+ + + + + +
+

Enable the use of the Matrox BES (backend scaler) +(default: disabled). Gives very good results concerning +speed and output quality as interpolated picture processing +is done in hardware. Works only on the primary +head.

+ + + + + +
+

(no)spic

+ + + + + +
+

Make use of the Matrox sub picture layer to display the +OSD (default: enabled).

+ + + + + +
+

(no)crtc2

+ + + + + +
+

Turn on TV-out on the second head (default: enabled). The +output quality is amazing as it is a full interlaced picture +with proper sync to every odd/even field.

+ + + + + +
+

tvnorm=pal|ntsc|auto

+ + + + + +
+

Will set the TV norm of the Matrox card without the need +for modifying /etc/directfbrc (default: disabled). Valid +norms are pal = PAL, ntsc = NTSC. Special norm is auto +(auto-adjust using PAL/NTSC) because it decides which norm +to use by looking at the framerate of the movie.

+ + + + + +
+

mga (Linux only)

+ + + + + +
+

Matrox specific video output driver that makes use of the +YUV back end scaler on Gxxx cards through a kernel module. +If you have a Matrox card, this is the fastest +option.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the Matrox device name to use (default: +/dev/mga_vid).

+ + + + + +
+

xmga (Linux, X11 only)

+ + + + + +
+

The mga video output driver, running in an X11 +window.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the Matrox device name to use (default: +/dev/mga_vid).

+ + + + + +
+

s3fb (Linux only) (see also −vf yuv2 and +−dr)

+ + + + + +
+

S3 Virge specific video output driver. This driver +supports the card’s YUV conversion and scaling, double +buffering and direct rendering features. Use −vf yuy2 +to get hardware-accelerated YUY2 rendering, which is much +faster than YV12 on this card.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

3dfx (Linux only)

+ + + + + +
+

3dfx-specific video output driver that directly uses the +hardware on top of X11. Only 16 bpp are supported.

+
+ + + + + +
+

tdfxfb (Linux only)

+ + + + + +
+

This driver employs the tdfxfb framebuffer driver to play +movies with YUV acceleration on 3dfx cards.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

tdfx_vid (Linux only)

+ + + + + +
+

3dfx-specific video output driver that works in +combination with the tdfx_vid kernel module.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the device name to use (default: +/dev/tdfx_vid).

+ + + + + +
+

dxr2 (also see −dxr2) (DXR2 only)

+ + + + + +
+

Creative DXR2 specific video output driver.

+ + + + + +
+

<vo_driver>

+ + + + + +
+

Output video subdriver to use as overlay (x11, +xv).

+ + + + + +
+

dxr3 (DXR3 only)

+ + + + + +
+

Sigma Designs em8300 MPEG decoder chip (Creative DXR3, +Sigma Designs Hollywood Plus) specific video output driver. +Also see the lavc video filter.

+ + + + + +
+

overlay

+ + + + + +
+

Activates the overlay instead of TVOut.

+ + + + + +
+

prebuf

+ + + + + +
+

Turns on prebuffering.

+ + + + + +
+

sync

+ + + + + +
+

Will turn on the new sync-engine.

+ + + + + +
+

norm=<norm>

+ + + + + +
+

Specifies the TV norm.

+ + + + + +
+

0: Does not change current norm (default).
+1: Auto-adjust using PAL/NTSC.
+2: Auto-adjust using PAL/PAL-60.
+3: PAL
+4: PAL-60
+5: NTSC

+ + + + + +
+

<0−3>

+ + + + + +
+

Specifies the device number to use if you have more than +one em8300 card.

+ + + + + +
+

ivtv (IVTV only)

+ + + + + +
+

Conexant CX23415 (iCompression iTVC15) or Conexant +CX23416 (iCompression iTVC16) MPEG decoder chip (Hauppauge +WinTV PVR-150/250/350/500) specific video output driver for +TV-Out. Also see the lavc video filter.

+ + + + + +
+

device

+ + + + + +
+

Explicitly choose the MPEG decoder device name to use +(default: /dev/video16).

+ + + + + +
+

output

+ + + + + +
+

Explicitly choose the TV-Out output to be used for the +video signal.

+ + + + + +
+

v4l2 (requires Linux 2.6.22+ kernel)

+ + + + + +
+

Video output driver for V4L2 compliant cards with +built-in hardware MPEG decoder. Also see the lavc video +filter.

+ + + + + +
+

device

+ + + + + +
+

Explicitly choose the MPEG decoder device name to use +(default: /dev/video16).

+ + + + + +
+

output

+ + + + + +
+

Explicitly choose the TV-Out output to be used for the +video signal.

+ + + + + +
+

mpegpes (DVB only)

+ + + + + +
+

Video output driver for DVB cards that writes the output +to an MPEG-PES file if no DVB card is installed.

+ + + + + +
+

card=<1−4>

+ + + + + +
+

Specifies the device number to use if you have more than +one DVB output card (V3 API only, such as 1.x.y series +drivers).

+ + + + + +
+

<filename>

+ + + + + +
+

output filename (default: ./grab.mpg)

+ + + + + +
+

zr (also see −zr* and +−zrhelp)

+ + + + + +
+

Video output driver for a number of MJPEG +capture/playback cards.

+
+ + + + + +
+

zr2 (also see the zrmjpeg video filter)

+ + + + + +
+

Video output driver for a number of MJPEG +capture/playback cards, second generation.

+ + + + + +
+

dev=<device>

+ + + + + +
+

Specifies the video device to use.

+ + + + + +
+

norm=<PAL|NTSC|SECAM|auto>

+ + + + + +
+

Specifies the video norm to use (default: auto).

+ + + + + +
+

(no)prebuf

+ + + + + +
+

(De)Activate prebuffering, not yet supported.

+ + + + + +
+

md5sum

+ + + + + +
+

Calculate MD5 sums of each frame and write them to a +file. Supports RGB24 and YV12 colorspaces. Useful for +debugging.

+ + + + + +
+

outfile=<value>

+ + + + + +
+

Specify the output filename (default: +./md5sums).

+ + + + + +
+

yuv4mpeg

+ + + + + +
+

Transforms the video stream into a sequence of +uncompressed YUV 4:2:0 images and stores it in a file +(default: ./stream.yuv). The format is the same as the one +employed by mjpegtools, so this is useful if you want to +process the video with the mjpegtools suite. It supports the +YV12, RGB (24 bpp) and BGR (24 bpp) format. You can combine +it with the −fixed-vo option to concatenate files with +the same dimensions and fps value.

+ + + + + +
+

interlaced

+ + + + + +
+

Write the output as interlaced frames, top field +first.

+ + + + + +
+

interlaced_bf

+ + + + + +
+

Write the output as interlaced frames, bottom field +first.

+ + + + + +
+

file=<filename>

+ + + + + +
+

Write the output to <filename> instead of the +default stream.yuv.

+ + + + + +
+

NOTE: If you do not specify any option the output +is progressive (i.e. not interlaced).

+ + + + + +
+

gif89a

+ + + + + +
+

Output each frame into a single animated GIF file in the +current directory. It supports only RGB format with 24 bpp +and the output is converted to 256 colors.

+ + + + + +
+

<fps>

+ + + + + +
+

Float value to specify framerate (default: 5.0).

+ + + + + +
+

<output>

+ + + + + +
+

Specify the output filename (default: +./out.gif).

+ + + + + +
+

NOTE: You must specify the framerate before the +filename or the framerate will be part of the filename.

+ +

EXAMPLE:

+ + + + + +
+

mplayer video.nut −vo +gif89a:fps=15:output=test.gif

+ + + + + +
+

jpeg

+ + + + + +
+

Output each frame into a JPEG file in the current +directory. Each file takes the frame number padded with +leading zeros as name.

+ + + + + +
+

[no]progressive

+ + + + + +
+

Specify standard or progressive JPEG (default: +noprogressive).

+ + + + + +
+

[no]baseline

+ + + + + +
+

Specify use of baseline or not (default: +baseline).

+ + + + + +
+

optimize=<0−100>

+ + + + + +
+

optimization factor (default: 100)

+ + + + + +
+

smooth=<0−100>

+ + + + + +
+

smooth factor (default: 0)

+ + + + + +
+

quality=<0−100>

+ + + + + +
+

quality factor (default: 75)

+ + + + + +
+

outdir=<dirname>

+ + + + + +
+

Specify the directory to save the JPEG files to (default: +./).

+ + + + + +
+

subdirs=<prefix>

+ + + + + +
+

Create numbered subdirectories with the specified prefix +to save the files in instead of the current +directory.

+ + + + + +
+

maxfiles=<value> (subdirs only)

+ + + + + +
+

Maximum number of files to be saved per subdirectory. +Must be equal to or larger than 1 (default: 1000).

+ + + + + +
+

pnm

+ + + + + +
+

Output each frame into a PNM file in the current +directory. Each file takes the frame number padded with +leading zeros as name. It supports PPM, PGM and PGMYUV files +in both raw and ASCII mode. Also see pnm(5), ppm(5) and +pgm(5).

+ + + + + +
+

ppm

+ + + + + +
+

Write PPM files (default).

+ + + + + +
+

pgm

+ + + + + +
+

Write PGM files.

+ + + + + +
+

pgmyuv

+ + + + + +
+

Write PGMYUV files. PGMYUV is like PGM, but it also +contains the U and V plane, appended at the bottom of the +picture.

+ + + + + +
+

raw

+ + + + + +
+

Write PNM files in raw mode (default).

+ + + + + +
+

ascii

+ + + + + +
+

Write PNM files in ASCII mode.

+ + + + + +
+

outdir=<dirname>

+ + + + + +
+

Specify the directory to save the PNM files to (default: +./).

+ + + + + +
+

subdirs=<prefix>

+ + + + + +
+

Create numbered subdirectories with the specified prefix +to save the files in instead of the current +directory.

+ + + + + +
+

maxfiles=<value> (subdirs only)

+ + + + + +
+

Maximum number of files to be saved per subdirectory. +Must be equal to or larger than 1 (default: 1000).

+ + + + + +
+

png

+ + + + + +
+

Output each frame into a PNG file in the current +directory. Each file takes the frame number padded with +leading zeros as name. 24bpp RGB and BGR formats are +supported.

+ + + + + +
+

z=<0-9>

+ + + + + +
+

Specifies the compression level. 0 is no compression, 9 +is maximum compression.

+ + + + + +
+

tga

+ + + + + +
+

Output each frame into a Targa file in the current +directory. Each file takes the frame number padded with +leading zeros as name. The purpose of this video output +driver is to have a simple lossless image writer to use +without any external library. It supports the BGR[A] color +format, with 15, 24 and 32 bpp. You can force a particular +format with the format video filter.

+ +

EXAMPLE:

+ + + + + +
+

mplayer video.nut −vf format=bgr15 −vo +tga

+ +

DECODING/FILTERING OPTIONS

+ + + + + +
+

−ac +<[-|+]codec1,[-|+]codec2,...[,]>

+ + + + + +
+

Specify a priority list of audio codecs to be used, +according to their codec name in codecs.conf. Use a +’-’ before the codec name to omit it. Use a +’+’ before the codec name to force it, this will +likely crash! If the list has a trailing ’,’ +MPlayer will fall back on codecs not contained in the +list.
+NOTE:
See −ac help for a full list of available +codecs.

+ +

EXAMPLE:

+ + + + + +
+

−ac mp3acm

+ + + + + +
+

Force the l3codeca.acm MP3 codec.

+ + + + + +
+

−ac mad,

+ + + + + +
+

Try libmad first, then fall back on others.

+ + + + + +
+

−ac hwac3,a52,

+ + + + + +
+

Try hardware AC-3 passthrough, software AC-3, then +others.

+ + + + + +
+

−ac hwdts,

+ + + + + +
+

Try hardware DTS passthrough, then fall back on +others.

+ + + + + +
+

−ac -ffmp3,

+ + + + + +
+

Skip FFmpeg’s MP3 decoder.

+ + + + + +
+

−af-adv <force=(0−7):list=(filters)> +(also see −af)

+ + + + + +
+

Specify advanced audio filter options:

+ + + + + +
+

force=<0−7>

+ + + + + +
+

Forces the insertion of audio filters to one of the +following:

+ + + + + +
+

0: Use completely automatic filter insertion.
+1: Optimize for accuracy (default).
+2: Optimize for speed. Warning: Some features in the +audio filters may silently fail, and the sound quality may +drop.
+3: Use no automatic insertion of filters and no +optimization. Warning: It may be possible to crash +MPlayer using this setting.
+4: Use automatic insertion of filters according to 0 above, +but use floating point processing when possible.
+5: Use automatic insertion of filters according to 1 above, +but use floating point processing when possible.
+6: Use automatic insertion of filters according to 2 above, +but use floating point processing when possible.
+7: Use no automatic insertion of filters according to 3 +above, and use floating point processing when +possible.

+ + + + + +
+

list=<filters>

+ + + + + +
+

Same as −af.

+ + + + + +
+

−afm <driver1,driver2,...>

+ + + + + +
+

Specify a priority list of audio codec families to be +used, according to their codec name in codecs.conf. Falls +back on the default codecs if none of the given codec +families work.
+NOTE:
See −afm help for a full list of available +codec families.

+ +

EXAMPLE:

+ + + + + +
+

−afm ffmpeg

+ + + + + +
+

Try FFmpeg’s libavcodec codecs first.

+ + + + + +
+

−afm acm,dshow

+ + + + + +
+

Try Win32 codecs first.

+ + + + + +
+

−aspect <ratio> (also see +−zoom)

+ + + + + +
+

Override movie aspect ratio, in case aspect information +is incorrect or missing in the file being played.

+ +

EXAMPLE:

+ + + + + +
+

−aspect 4:3 or −aspect 1.3333
+−aspect 16:9 or −aspect 1.7777

+ + + + + +
+

−noaspect

+ + + + + +
+

Disable automatic movie aspect ratio compensation.

+
+ + + + + +
+

−field-dominance <-1−1>

+ + + + + +
+

Set first field for interlaced content. Useful for +deinterlacers that double the framerate: −vf +tfields=1, −vf yadif=1 and −vo +xvmc:bobdeint.

+ + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

auto (default): If the decoder does not export the +appropriate information, it falls back to 0 (top field +first).

+
+ +

0

+
+ +

top field first

+
+ +

1

+
+ +

bottom field first

+
+ + + + + +
+

−flip

+ + + + + +
+

Flip image upside-down.

+
+ + + + + +
+

−lavdopts <option1:option2:...> (DEBUG +CODE)

+ + + + + +
+

Specify libavcodec decoding parameters. Separate multiple +options with a colon.

+ +

EXAMPLE:

+ + + + + +
+

−lavdopts +gray:skiploopfilter=all:skipframe=nonref

+ + + + + +
+

Available options are:

+ + + + + +
+

bitexact

+ + + + + +
+

Only use bit-exact algorithms in all decoding steps (for +codec testing).

+
+ + + + + +
+

bug=<value>

+ + + + + +
+

Manually work around encoder bugs.

+ + + + + +
+

0: nothing
+1: autodetect bugs (default)
+2 (msmpeg4v3): some old lavc generated msmpeg4v3 files (no +autodetection)
+4 (mpeg4): Xvid interlacing bug (autodetected if +fourcc==XVIX)
+8 (mpeg4): UMP4 (autodetected if fourcc==UMP4)
+16 (mpeg4): padding bug (autodetected)
+32 (mpeg4): illegal vlc bug (autodetected per fourcc)
+64 (mpeg4): Xvid and DivX qpel bug (autodetected per +fourcc/version)
+128 (mpeg4): old standard qpel (autodetected per +fourcc/version)
+256 (mpeg4): another qpel bug (autodetected per +fourcc/version)
+512 (mpeg4): direct-qpel-blocksize bug (autodetected per +fourcc/version)
+1024 (mpeg4): edge padding bug (autodetected per +fourcc/version)

+ + + + + +
+

debug=<value>

+ + + + + +
+

Display debugging information.

+ + + + + +
+

0: disabled
+1: picture info
+2: rate control
+4: bitstream
+8: macroblock (MB) type
+16: per-block quantization parameter (QP)
+32: motion vector
+0x0040: motion vector visualization (use +−noslices)
+0x0080: macroblock (MB) skip
+0x0100: startcode
+0x0200: PTS
+0x0400: error resilience
+0x0800: memory management control operations (H.264)
+0x1000: bugs
+0x2000: Visualize quantization parameter (QP), lower QP are +tinted greener.
+0x4000: Visualize block types.

+ + + + + +
+

ec=<value>

+ + + + + +
+

Set error concealment strategy.

+ + + + + +
+

1: Use strong deblock filter for damaged MBs.
+2: iterative motion vector (MV) search (slow)
+3: all (default)

+ + + + + +
+

er=<value>

+ + + + + +
+

Set error resilience strategy.

+ + + + + +
+

0: disabled
+1: careful (Should work with broken encoders.)
+2: normal (default) (Works with compliant encoders.)
+3: aggressive (More checks, but might cause problems even +for valid bitstreams.)
+4: very aggressive

+ + + + + +
+

fast (MPEG-2, MPEG-4, and H.264 only)

+ + + + + +
+

Enable optimizations which do not comply to the +specification and might potentially cause problems, like +simpler dequantization, simpler motion compensation, +assuming use of the default quantization matrix, assuming +YUV 4:2:0 and skipping a few checks to detect damaged +bitstreams.

+
+ + + + + +
+

gray

+ + + + + +
+

grayscale only decoding (a bit faster than with +color)

+
+ + + + + +
+

idct=<0−99> (see −lavcopts)

+ + + + + +
+

For best decoding quality use the same IDCT algorithm for +decoding and encoding. This may come at a price in accuracy, +though.

+
+ + + + + +
+

lowres=<number>[,<w>]

+ + + + + +
+

Decode at lower resolutions. Low resolution decoding is +not supported by all codecs, and it will often result in +ugly artifacts. This is not a bug, but a side effect of not +decoding at full resolution.

+ + + + + +
+

0: disabled
+1: 1/2 resolution
+2: 1/4 resolution
+3: 1/8 resolution

+ + + + + +
+

If <w> is specified lowres decoding will be used +only if the width of the video is major than or equal to +<w>.

+ + + + + +
+

sb=<number> (MPEG-2 only)

+ + + + + +
+

Skip the given number of macroblock rows at the +bottom.

+
+ + + + + +
+

st=<number> (MPEG-2 only)

+ + + + + +
+

Skip the given number of macroblock rows at the top.

+
+ + + + + +
+

skiploopfilter=<skipvalue> (H.264 only)

+ + + + + +
+

Skips the loop filter (AKA deblocking) during H.264 +decoding. Since the filtered frame is supposed to be used as +reference for decoding dependent frames this has a worse +effect on quality than not doing deblocking on e.g. MPEG-2 +video. But at least for high bitrate HDTV this provides a +big speedup with no visible quality loss.

+ +

<skipvalue> can be either one of the +following:

+ + + + + +
+

none: Never skip.
+default: Skip useless processing steps (e.g. 0 size packets +in AVI).
+nonref: Skip frames that are not referenced (i.e. not used +for decoding other frames, the error cannot "build +up").
+bidir: Skip B-Frames.
+nonkey: Skip all frames except keyframes.
+all: Skip all frames.

+ + + + + +
+

skipidct=<skipvalue> (MPEG-1/2 only)

+ + + + + +
+

Skips the IDCT step. This degrades quality a lot of in +almost all cases (see skiploopfilter for available skip +values).

+
+ + + + + +
+

skipframe=<skipvalue>

+ + + + + +
+

Skips decoding of frames completely. Big speedup, but +jerky motion and sometimes bad artifacts (see skiploopfilter +for available skip values).

+
+ + + + + +
+

threads=<1−8> (MPEG-1/2 only)

+ + + + + +
+

number of threads to use for decoding (default: 1)

+
+ + + + + +
+

vismv=<value>

+ + + + + +
+

Visualize motion vectors.

+ + + + + +
+

0: disabled
+1: Visualize forward predicted MVs of P-frames.
+2: Visualize forward predicted MVs of B-frames.
+4: Visualize backward predicted MVs of B-frames.

+ + + + + +
+

vstats

+ + + + + +
+

Prints some statistics and stores them in +./vstats_*.log.

+ + + + + +
+

−noslices

+ + + + + +
+

Disable drawing video by 16-pixel height slices/bands, +instead draws the whole frame in a single run. May be faster +or slower, depending on video card and available cache. It +has effect only with libmpeg2 and libavcodec codecs.

+
+ + + + + +
+

−nosound

+ + + + + +
+

Do not play/encode sound. Useful for benchmarking.

+
+ + + + + +
+

−novideo

+ + + + + +
+

Do not play/encode video. In many cases this will not +work, use −vc null −vo null instead.

+
+ + + + + +
+

−pp <quality> (also see −vf +pp)

+ + + + + +
+

Set the DLL postprocess level. This option is no longer +usable with −vf pp. It only works with Win32 +DirectShow DLLs with internal postprocessing routines. The +valid range of −pp values varies by codec, it is +mostly 0−6, where 0=disable, 6=slowest/best.

+
+ + + + + +
+

−pphelp (also see −vf pp)

+ + + + + +
+

Show a summary about the available postprocess filters +and their usage.

+
+ + + + + +
+

−ssf <mode>

+ + + + + +
+

Specifies software scaler parameters.

+ +

EXAMPLE:

+ + + + + +
+

−vf scale −ssf lgb=3.0

+ + + + + +
+

lgb=<0−100>

+ + + + + +
+

gaussian blur filter (luma)

+ + + + + +
+

cgb=<0−100>

+ + + + + +
+

gaussian blur filter (chroma)

+ + + + + +
+

ls=<-100−100>

+ + + + + +
+

sharpen filter (luma)

+ + + + + +
+

cs=<-100−100>

+ + + + + +
+

sharpen filter (chroma)

+ + + + + +
+

chs=<h>

+ + + + + +
+

chroma horizontal shifting

+ + + + + +
+

cvs=<v>

+ + + + + +
+

chroma vertical shifting

+ + + + + +
+

−stereo <mode>

+ + + + + +
+

Select type of MP2/MP3 stereo output.

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

stereo

+
+
+ +

1

+
+ +

left channel

+
+
+ +

2

+
+ +

right channel

+
+
+ + + + + +
+

−sws <software scaler type> (also see +−vf scale and −zoom)

+ + + + + +
+

Specify the software scaler algorithm to be used with the +−zoom option. This affects video output drivers which +lack hardware acceleration, e.g. x11.

+ +

Available types are:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

fast bilinear

+
+
+ +

1

+
+ +

bilinear

+
+
+ +

2

+
+ +

bicubic (good quality) (default)

+
+
+ +

3

+
+ +

experimental

+
+
+ +

4

+
+ +

nearest neighbor (bad quality)

+
+
+ +

5

+
+ +

area

+
+
+ +

6

+
+ +

luma bicubic / chroma bilinear

+
+
+ +

7

+
+ +

gauss

+
+
+ +

8

+
+ +

sincR

+
+
+ +

9

+
+ +

lanczos

+
+
+ +

10

+
+ +

natural bicubic spline

+
+
+ + + + + +
+

NOTE: Some −sws options are tunable. The +description of the scale video filter has further +information.

+ + + + + +
+

−vc +<[-|+]codec1,[-|+]codec2,...[,]>

+ + + + + +
+

Specify a priority list of video codecs to be used, +according to their codec name in codecs.conf. Use a +’-’ before the codec name to omit it. Use a +’+’ before the codec name to force it, this will +likely crash! If the list has a trailing ’,’ +MPlayer will fall back on codecs not contained in the +list.
+NOTE:
See −vc help for a full list of available +codecs.

+ +

EXAMPLE:

+ + + + + +
+

−vc divx

+ + + + + +
+

Force Win32/VfW DivX codec, no fallback.

+ + + + + +
+

−vc -divxds,-divx,

+ + + + + +
+

Skip Win32 DivX codecs.

+ + + + + +
+

−vc ffmpeg12,mpeg12,

+ + + + + +
+

Try libavcodec’s MPEG-1/2 codec, then libmpeg2, +then others.

+ + + + + +
+

−vfm <driver1,driver2,...>

+ + + + + +
+

Specify a priority list of video codec families to be +used, according to their names in codecs.conf. Falls back on +the default codecs if none of the given codec families +work.
+NOTE:
See −vfm help for a full list of available +codec families.

+ +

EXAMPLE:

+ + + + + +
+

−vfm ffmpeg,dshow,vfw

+ + + + + +
+

Try the libavcodec, then Directshow, then VfW codecs and +fall back on others, if they do not work.

+ + + + + +
+

−vfm xanim

+ + + + + +
+

Try XAnim codecs first.

+ + + + + +
+

−x <x> (also see −zoom) (MPlayer +only)

+ + + + + +
+

Scale image to width <x> (if software/hardware +scaling is available). Disables aspect calculations.

+
+ + + + + +
+

−xvidopts +<option1:option2:...>

+ + + + + +
+

Specify additional parameters when decoding with +Xvid.
+NOTE:
Since libavcodec is faster than Xvid you might +want to use the libavcodec postprocessing filter (−vf +pp) and decoder (−vfm ffmpeg) instead.

+ +

Xvid’s internal postprocessing filters:

+ + + + + +
+

deblock-chroma (also see −vf pp)

+ + + + + +
+

chroma deblock filter

+ + + + + +
+

deblock-luma (also see −vf pp)

+ + + + + +
+

luma deblock filter

+ + + + + +
+

dering-luma (also see −vf pp)

+ + + + + +
+

luma deringing filter

+ + + + + +
+

dering-chroma (also see −vf pp)

+ + + + + +
+

chroma deringing filter

+ + + + + +
+

filmeffect (also see −vf noise)

+ + + + + +
+

Adds artificial film grain to the video. May increase +perceived quality, while lowering true quality.

+ + + + + +
+

rendering methods:

+ + + + + +
+

dr2

+ + + + + +
+

Activate direct rendering method 2.

+ + + + + +
+

nodr2

+ + + + + +
+

Deactivate direct rendering method 2.

+ + + + + +
+

−xy <value> (also see +−zoom)

+ + + + + +
+

value<=8

+ + + + + +
+

Scale image by factor <value>.

+ + + + + +
+

value>8

+ + + + + +
+

Set width to value and calculate height to keep correct +aspect ratio.

+ + + + + +
+

−y <y> (also see −zoom) (MPlayer +only)

+ + + + + +
+

Scale image to height <y> (if software/hardware +scaling is available). Disables aspect calculations.

+
+ + + + + +
+

−zoom

+ + + + + +
+

Allow software scaling, where available. This will allow +scaling with output drivers (like x11, fbdev) that do not +support hardware scaling where MPlayer disables scaling by +default for performance reasons.

+
+ +

AUDIO FILTERS

+ + + + + +
+

Audio filters allow you to modify the audio stream and +its properties. The syntax is:

+
+ + + + + +
+

−af +<filter1[=parameter1:parameter2:...],filter2,...>

+ + + + + +
+

Setup a chain of audio filters.

+
+ + + + + +
+

NOTE: To get a full list of available audio +filters, see −af help.

+ +

Available filters are:

+
+ + + + + +
+

resample[=srate[:sloppy[:type]]]

+ + + + + +
+

Changes the sample rate of the audio stream. Can be used +if you have a fixed frequency sound card or if you are stuck +with an old sound card that is only capable of max 44.1kHz. +This filter is automatically enabled if necessary. It only +supports 16-bit integer and float in native-endian format as +input.
+NOTE:
With MEncoder, you need to also use −srate +<srate>.

+ + + + + +
+

<srate>

+ + + + + +
+

output sample frequency in Hz. The valid range for this +parameter is 8000 to 192000. If the input and output sample +frequency are the same or if this parameter is omitted the +filter is automatically unloaded. A high sample frequency +normally improves the audio quality, especially when used in +combination with other filters.

+ + + + + +
+

<sloppy>

+ + + + + +
+

Allow (1) or disallow (0) the output frequency to differ +slightly from the frequency given by <srate> (default: +1). Can be used if the startup of the playback is extremely +slow.

+ + + + + +
+

<type>

+ + + + + +
+

Selects which resampling method to use.

+ + + + + +
+

0: linear interpolation (fast, poor quality especially +when upsampling)
+1: polyphase filterbank and integer processing
+2: polyphase filterbank and floating point processing (slow, +best quality)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af resample=44100:0:0

+ + + + + +
+

would set the output frequency of the resample filter to +44100Hz using exact output frequency scaling and linear +interpolation.

+ + + + + +
+ +

lavcresample[=srate[:length[:linear[:count[:cutoff]]]]]

+ + + + + +
+

Changes the sample rate of the audio stream to an integer +<srate> in Hz. It only supports the 16-bit +native-endian format.
+NOTE:
With MEncoder, you need to also use −srate +<srate>.

+ + + + + +
+

<srate>

+ + + + + +
+

the output sample rate

+ + + + + +
+

<length>

+ + + + + +
+

length of the filter with respect to the lower sampling +rate (default: 16)

+ + + + + +
+

<linear>

+ + + + + +
+

if 1 then filters will be linearly interpolated between +polyphase entries

+ + + + + +
+

<count>

+ + + + + +
+

log2 of the number of polyphase entries (..., +10->1024, 11->2048, 12->4096, ...) (default: +10->1024)

+ + + + + +
+

<cutoff>

+ + + + + +
+

cutoff frequency (0.0-1.0), default set depending upon +filter length

+ + + + + +
+

sweep[=speed]

+ + + + + +
+

Produces a sine sweep.

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

Sine function delta, use very low values to hear the +sweep.

+ + + + + +
+

sinesuppress[=freq:decay]

+ + + + + +
+

Remove a sine at the specified frequency. Useful to get +rid of the 50/60Hz noise on low quality audio equipment. It +probably only works on mono input.

+ + + + + +
+

<freq>

+ + + + + +
+

The frequency of the sine which should be removed (in Hz) +(default: 50)

+ + + + + +
+

<decay>

+ + + + + +
+

Controls the adaptivity (a larger value will make the +filter adapt to amplitude and phase changes quicker, a +smaller value will make the adaptation slower) (default: +0.0001). Reasonable values are around 0.001.

+ + + + + +
+

hrtf[=flag]

+ + + + + +
+

Head-related transfer function: Converts multichannel +audio to 2 channel output for headphones, preserving the +spatiality of the sound.

+
+ + + + + +
+

Flag Meaning

+ + + + + +
+

m matrix decoding of the rear channel

+ + + + + +
+

s 2-channel matrix decoding

+ + + + + +
+

0 no matrix decoding (default)

+ + + + + +
+

equalizer=[g1:g2:g3:...:g10]

+ + + + + +
+

10 octave band graphic equalizer, implemented using 10 +IIR band pass filters. This means that it works regardless +of what type of audio is being played back. The center +frequencies for the 10 bands are:

+
+ + + + + +
+

No. frequency

+ + + + + +
+

0 31.25 Hz

+ + + + + +
+

1 62.50 Hz

+ + + + + +
+

2 125.00 Hz

+ + + + + +
+

3 250.00 Hz

+ + + + + +
+

4 500.00 Hz

+ + + + + +
+

5 1.00 kHz

+ + + + + +
+

6 2.00 kHz

+ + + + + +
+

7 4.00 kHz

+ + + + + +
+

8 8.00 kHz

+ + + + + +
+

9 16.00 kHz

+ + + + + +
+

If the sample rate of the sound being played is lower +than the center frequency for a frequency band, then that +band will be disabled. A known bug with this filter is that +the characteristics for the uppermost band are not +completely symmetric if the sample rate is close to the +center frequency of that band. This problem can be worked +around by upsampling the sound using the resample filter +before it reaches this filter.

+ + + + + +
+ +

<g1>:<g2>:<g3>:...:<g10>

+ + + + + +
+

floating point numbers representing the gain in dB for +each frequency band (-12−12)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af equalizer=11:11:10:5:0:-12:0:5:12:12 +media.avi

+ + + + + +
+

Would amplify the sound in the upper and lower frequency +region while canceling it almost completely around +1kHz.

+ + + + + +
+ +

channels=nch[:nr:from1:to1:from2:to2:from3:to3:...]

+ + + + + +
+

Can be used for adding, removing, routing and copying +audio channels. If only <nch> is given the default +routing is used, it works as follows: If the number of +output channels is bigger than the number of input channels +empty channels are inserted (except mixing from mono to +stereo, then the mono channel is repeated in both of the +output channels). If the number of output channels is +smaller than the number of input channels the exceeding +channels are truncated.

+ + + + + +
+

<nch>

+ + + + + +
+

number of output channels (1−6)

+ + + + + +
+

<nr>

+ + + + + +
+

number of routes (1−6)

+ + + + + +
+

<from1:to1:from2:to2:from3:to3:...>

+ + + + + +
+

Pairs of numbers between 0 and 5 that define where to +route each channel.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af channels=4:4:0:1:1:0:2:2:3:3 +media.avi

+ + + + + +
+

Would change the number of channels to 4 and set up 4 +routes that swap channel 0 and channel 1 and leave channel 2 +and 3 intact. Observe that if media containing two channels +was played back, channels 2 and 3 would contain silence but +0 and 1 would still be swapped.

+ + + + + +
+

mplayer −af channels=6:4:0:0:0:1:0:2:0:3 +media.avi

+ + + + + +
+

Would change the number of channels to 6 and set up 4 +routes that copy channel 0 to channels 0 to 3. Channel 4 and +5 will contain silence.

+ + + + + +
+

mplayer −af channels=6:6:0:4:1:0:2:1:3:2:4:3:5:5 +media.avi

+ + + + + +
+

Should make the 6-channel ffdca (DTS) output work +correctly with ALSA.

+ + + + + +
+

format[=format] (also see −format)

+ + + + + +
+

Convert between different sample formats. Automatically +enabled when needed by the sound card or another +filter.

+ + + + + +
+

<format>

+ + + + + +
+

Sets the desired format. The general form is +’sbe’, where ’s’ denotes the sign +(either ’s’ for signed or ’u’ for +unsigned), ’b’ denotes the number of bits per +sample (16, 24 or 32) and ’e’ denotes the +endianness (’le’ means little-endian, +’be’ big-endian and ’ne’ the +endianness of the computer MPlayer is running on). Valid +values (amongst others) are: ’s16le’, +’u32be’ and ’u24ne’. Exceptions to +this rule that are also valid format specifiers: u8, s8, +floatle, floatbe, floatne, mulaw, alaw, mpeg2, ac3 and +imaadpcm.

+ + + + + +
+

volume[=v[:sc]]

+ + + + + +
+

Implements software volume control. Use this filter with +caution since it can reduce the signal to noise ratio of the +sound. In most cases it is best to set the level for the PCM +sound to max, leave this filter out and control the output +level to your speakers with the master volume control of the +mixer. In case your sound card has a digital PCM mixer +instead of an analog one, and you hear distortion, use the +MASTER mixer instead. If there is an external amplifier +connected to the computer (this is almost always the case), +the noise level can be minimized by adjusting the master +level and the volume knob on the amplifier until the hissing +noise in the background is gone.
+This filter has a second feature: It measures the overall +maximum sound level and prints out that level when MPlayer +exits. This volume estimate can be used for setting the +sound level in MEncoder such that the maximum dynamic range +is utilized.
+NOTE:
This filter is not reentrant and can therefore +only be enabled once for every audio stream.

+ + + + + +
+

<v>

+ + + + + +
+

Sets the desired gain in dB for all channels in the +stream from -200dB to +60dB, where -200dB mutes the sound +completely and +60dB equals a gain of 1000 (default: +0).

+ + + + + +
+

<sc>

+ + + + + +
+

Turns soft clipping on (1) or off (0). Soft-clipping can +make the sound more smooth if very high volume levels are +used. Enable this option if the dynamic range of the +loudspeakers is very low.
+WARNING:
This feature creates distortion and should be +considered a last resort.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af volume=10.1:0 media.avi

+ + + + + +
+

Would amplify the sound by 10.1dB and hard-clip if the +sound level is too high.

+ + + + + +
+ +

pan=n[:L00:L01:L02:...L10:L11:L12:...Ln0:Ln1:Ln2:...]

+ + + + + +
+

Mixes channels arbitrarily. Basically a combination of +the volume and the channels filter that can be used to +down-mix many channels to only a few, e.g. stereo to mono or +vary the "width" of the center speaker in a +surround sound system. This filter is hard to use, and will +require some tinkering before the desired result is +obtained. The number of options for this filter depends on +the number of output channels. An example how to downmix a +six-channel file to two channels with this filter can be +found in the examples section near the end.

+ + + + + +
+

<n>

+ + + + + +
+

number of output channels (1−6)

+ + + + + +
+

<Lij>

+ + + + + +
+

How much of input channel i is mixed into output channel +j (0−1). So in principle you first have n numbers +saying what to do with the first input channel, then n +numbers that act on the second input channel etc. If you do +not specify any numbers for some input channels, 0 is +assumed.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af pan=1:0.5:0.5 media.avi

+ + + + + +
+

Would down-mix from stereo to mono.

+ + + + + +
+

mplayer −af pan=3:1:0:0.5:0:1:0.5 +media.avi

+ + + + + +
+

Would give 3 channel output leaving channels 0 and 1 +intact, and mix channels 0 and 1 into output channel 2 +(which could be sent to a subwoofer for example).

+ + + + + +
+

sub[=fc:ch]

+ + + + + +
+

Adds a subwoofer channel to the audio stream. The audio +data used for creating the subwoofer channel is an average +of the sound in channel 0 and channel 1. The resulting sound +is then low-pass filtered by a 4th order Butterworth filter +with a default cutoff frequency of 60Hz and added to a +separate channel in the audio stream.
+Warning:
Disable this filter when you are playing DVDs +with Dolby Digital 5.1 sound, otherwise this filter will +disrupt the sound to the subwoofer.

+ + + + + +
+

<fc>

+ + + + + +
+

cutoff frequency in Hz for the low-pass filter (20Hz to +300Hz) (default: 60Hz) For the best result try setting the +cutoff frequency as low as possible. This will improve the +stereo or surround sound experience.

+ + + + + +
+

<ch>

+ + + + + +
+

Determines the channel number in which to insert the +sub-channel audio. Channel number can be between 0 and 5 +(default: 5). Observe that the number of channels will +automatically be increased to <ch> if +necessary.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af sub=100:4 −channels 5 +media.avi

+ + + + + +
+

Would add a sub-woofer channel with a cutoff frequency of +100Hz to output channel 4.

+ + + + + +
+

center

+ + + + + +
+

Creates a center channel from the front channels. May +currently be low quality as it does not implement a +high-pass filter for proper extraction yet, but averages and +halves the channels instead.

+ + + + + +
+

<ch>

+ + + + + +
+

Determines the channel number in which to insert the +center channel. Channel number can be between 0 and 5 +(default: 5). Observe that the number of channels will +automatically be increased to <ch> if +necessary.

+ + + + + +
+

surround[=delay]

+ + + + + +
+

Decoder for matrix encoded surround sound like Dolby +Surround. Many files with 2 channel audio actually contain +matrixed surround sound. Requires a sound card supporting at +least 4 channels.

+ + + + + +
+

<delay>

+ + + + + +
+

delay time in ms for the rear speakers (0 to 1000) +(default: 20) This delay should be set as follows: If d1 is +the distance from the listening position to the front +speakers and d2 is the distance from the listening position +to the rear speakers, then the delay should be set to 15ms +if d1 <= d2 and to 15 + 5*(d1-d2) if d1 > d2.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af surround=15 −channels 4 +media.avi

+ + + + + +
+

Would add surround sound decoding with 15ms delay for the +sound to the rear speakers.

+ + + + + +
+

delay[=ch1:ch2:...]

+ + + + + +
+

Delays the sound to the loudspeakers such that the sound +from the different channels arrives at the listening +position simultaneously. It is only useful if you have more +than 2 loudspeakers.

+ + + + + +
+

ch1,ch2,...

+ + + + + +
+

The delay in ms that should be imposed on each channel +(floating point number between 0 and 1000).

+ + + + + +
+

To calculate the required delay for the different +channels do as follows:

+
+ + + + + + + + + + + + + + +
+ +

1.

+
+ +

Measure the distance to the loudspeakers in meters in +relation to your listening position, giving you the +distances s1 to s5 (for a 5.1 system). There is no point in +compensating for the subwoofer (you will not hear the +difference anyway).

+
+ +

2.

+
+ +

Subtract the distances s1 to s5 from the maximum +distance, i.e. s[i] = max(s) - s[i]; i = 1...5.

+
+ +

3.

+
+ +

Calculate the required delays in ms as d[i] = +1000*s[i]/342; i = 1...5.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af delay=10.5:10.5:0:0:7:0 +media.avi

+ + + + + +
+

Would delay front left and right by 10.5ms, the two rear +channels and the sub by 0ms and the center channel by +7ms.

+ + + + + +
+

export[=mmapped_file[:nsamples]]

+ + + + + +
+

Exports the incoming signal to other processes using +memory mapping (mmap()). Memory mapped areas contain a +header:

+ +
int nch                      /*number of channels*/
+int size                     /*buffer size*/
+unsigned long long counter   /*Used to keep sync, updated every
+                               time new data is exported.*/
+
+ +

The rest is payload (non-interleaved) 16 bit +data.

+ + + + + +
+

<mmapped_file>

+ + + + + +
+

file to map data to (default: ~/.mplayer/ +mplayer-af_export)

+ + + + + +
+

<nsamples>

+ + + + + +
+

number of samples per channel (default: 512)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af export=/tmp/mplayer-af_export:1024 +media.avi

+ + + + + +
+

Would export 1024 samples per channel to +’/tmp/mplayer-af_export’.

+ + + + + +
+

extrastereo[=mul]

+ + + + + +
+

(Linearly) increases the difference between left and +right channels which adds some sort of "live" +effect to playback.

+ + + + + +
+

<mul>

+ + + + + +
+

Sets the difference coefficient (default: 2.5). 0.0 means +mono sound (average of both channels), with 1.0 sound will +be unchanged, with -1.0 left and right channels will be +swapped.

+ + + + + +
+

volnorm[=method:target]

+ + + + + +
+

Maximizes the volume without distorting the +sound.

+ + + + + +
+

<method>

+ + + + + +
+

Sets the used method.

+ + + + + +
+

1: Use a single sample to smooth the variations via the +standard weighted mean over past samples (default).
+2: Use several samples to smooth the variations via the +standard weighted mean over past samples.

+ + + + + +
+

<target>

+ + + + + +
+

Sets the target amplitude as a fraction of the maximum +for the sample type (default: 0.25).

+ + + + + +
+

ladspa=file:label[:controls...]

+ + + + + +
+

Load a LADSPA (Linux Audio Developer’s Simple +Plugin API) plugin. This filter is reentrant, so multiple +LADSPA plugins can be used at once.

+ + + + + +
+

<file>

+ + + + + +
+

Specifies the LADSPA plugin library file. If LADSPA_PATH +is set, it searches for the specified file. If it is not +set, you must supply a fully specified pathname.

+ + + + + +
+

<label>

+ + + + + +
+

Specifies the filter within the library. Some libraries +contain only one filter, but others contain many of them. +Entering ’help’ here, will list all available +filters within the specified library, which eliminates the +use of ’listplugins’ from the LADSPA +SDK.

+ + + + + +
+

<controls>

+ + + + + +
+

Controls are zero or more floating point values that +determine the behavior of the loaded plugin (for example +delay, threshold or gain). In verbose mode (add −v to +the MPlayer command line), all available controls and their +valid ranges are printed. This eliminates the use of +’analyseplugin’ from the LADSPA SDK.

+ + + + + +
+

comp

+ + + + + +
+

Compressor/expander filter usable for microphone input. +Prevents artifacts on very loud sound and raises the volume +on very low sound. This filter is untested, maybe even +unusable.

+
+ + + + + +
+

gate

+ + + + + +
+

Noise gate filter similar to the comp audio filter. This +filter is untested, maybe even unusable.

+
+ + + + + +
+

karaoke

+ + + + + +
+

Simple voice removal filter exploiting the fact that +voice is usually recorded with mono gear and later +’center’ mixed onto the final audio stream. +Beware that this filter will turn your signal into mono. +Works well for 2 channel tracks; do not bother trying it on +anything but 2 channel stereo.

+
+ +

VIDEO FILTERS

+ + + + + +
+

Video filters allow you to modify the video stream and +its properties. The syntax is:

+
+ + + + + +
+

−vf +<filter1[=parameter1:parameter2:...],filter2,...>

+ + + + + +
+

Setup a chain of video filters.

+
+ + + + + +
+

Many parameters are optional and set to default values if +omitted. To explicitly use a default value set a parameter +to ’-1’. Parameters w:h means width x height in +pixels, x:y means x;y position counted from the upper left +corner of the bigger image.
+NOTE:
To get a full list of available video filters, see +−vf help.

+ +

Video filters are managed in lists. There are a few +commands to manage the filter list.

+
+ + + + + +
+

−vf-add +<filter1[,filter2,...]>

+ + + + + +
+

Appends the filters given as arguments to the filter +list.

+
+ + + + + +
+

−vf-pre +<filter1[,filter2,...]>

+ + + + + +
+

Prepends the filters given as arguments to the filter +list.

+
+ + + + + +
+

−vf-del <index1[,index2,...]>

+ + + + + +
+

Deletes the filters at the given indexes. Index numbers +start at 0, negative numbers address the end of the list (-1 +is the last).

+
+ + + + + +
+

−vf-clr

+ + + + + +
+

Completely empties the filter list.

+
+ + + + + +
+

With filters that support it, you can access parameters +by their name.

+
+ + + + + +
+

−vf <filter>=help

+ + + + + +
+

Prints the parameter names and parameter value ranges for +a particular filter.

+
+ + + + + +
+

−vf +<filter=named_parameter1=value1[:named_parameter2=value2:...]>

+ + + + + +
+

Sets a named parameter to the given value. Use on and off +or yes and no to set flag parameters.

+
+ + + + + +
+

Available filters are:

+
+ + + + + +
+

crop[=w:h:x:y]

+ + + + + +
+

Crops the given part of the image and discards the rest. +Useful to remove black bands from widescreen +movies.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

Cropped width and height, defaults to original width and +height.

+ + + + + +
+

<x>,<y>

+ + + + + +
+

Position of the cropped picture, defaults to +center.

+ + + + + +
+

cropdetect[=limit:round]

+ + + + + +
+

Calculates necessary cropping parameters and prints the +recommended parameters to stdout.

+ + + + + +
+

<limit>

+ + + + + +
+

Threshold, which can be optionally specified from nothing +(0) to everything (255) (default: 24).

+ + + + + +
+

<round>

+ + + + + +
+

Value which the width/height should be divisible by +(default: 16). The offset is automatically adjusted to +center the video. Use 2 to get only even dimensions (needed +for 4:2:2 video). 16 is best when encoding to most video +codecs.

+ + + + + +
+

rectangle[=w:h:x:y]

+ + + + + +
+

The plugin responds to the input.conf directive +’change_rectangle’ that takes two +parameters.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

width and height (default: -1, maximum possible width +where boundaries are still visible.)

+ + + + + +
+

<x>,<y>

+ + + + + +
+

top left corner position (default: -1, uppermost +leftmost)

+ + + + + +
+

expand[=w:h:x:y:o:a:r]

+ + + + + +
+

Expands (not scales) movie resolution to the given value +and places the unscaled original at coordinates x, y. Can be +used for placing subtitles/OSD in the resulting black +bands.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

Expanded width,height (default: original width,height). +Negative values for w and h are treated as offsets to the +original size.

+ +

EXAMPLE:

+ + + + + +
+

expand=0:-50:0:0

+ + + + + +
+

Adds a 50 pixel border to the bottom of the +picture.

+ + + + + +
+

<x>,<y>

+ + + + + +
+

position of original image on the expanded image +(default: center)

+
+ + + + + +
+

<o>

+ + + + + +
+

OSD/subtitle rendering

+ + + + + +
+

0: disable (default)
+1: enable

+ + + + + +
+

<a>

+ + + + + +
+

Expands to fit an aspect instead of a resolution +(default: 0).

+ +

EXAMPLE:

+ + + + + +
+

expand=800:::::4/3

+ + + + + +
+

Expands to 800x600, unless the source is higher +resolution, in which case it expands to fill a 4/3 +aspect.

+ + + + + +
+

<r>

+ + + + + +
+

Rounds up to make both width and height divisible by +<r> (default: 1).

+ + + + + +
+

flip (also see −flip)

+ + + + + +
+

Flips the image upside down.

+
+ + + + + +
+

mirror

+ + + + + +
+

Mirrors the image on the Y axis.

+
+ + + + + +
+

rotate[=<0−7>]

+ + + + + +
+

Rotates the image by 90 degrees and optionally flips it. +For values between 4−7 rotation is only done if the +movie geometry is portrait and not landscape.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Rotate by 90 degrees clockwise and flip (default).

+
+ +

1

+
+ +

Rotate by 90 degrees clockwise.

+
+ +

2

+
+ +

Rotate by 90 degrees counterclockwise.

+
+ +

3

+
+ +

Rotate by 90 degrees counterclockwise and flip.

+
+ + + + + +
+ +

scale[=w:h[:ilaced[:chr_drop[:par[:par2[:presize[:noup[:arnd]]]]]]]]

+ + + + + +
+

Scales the image with the software scaler (slow) and +performs a YUV<−>RGB colorspace conversion (also +see −sws).

+ + + + + +
+

<w>,<h>

+ + + + + +
+

scaled width/height (default: original +width/height)
+NOTE:
If −zoom is used, and underlying filters +(including libvo) are incapable of scaling, it defaults to +d_width/d_height!

+ + + + + +
+

0: scaled d_width/d_height
+-1: original width/height
+-2: Calculate w/h using the other dimension and the +prescaled aspect ratio.
+-3: Calculate w/h using the other dimension and the original +aspect ratio.
+-(n+8): Like -n above, but rounding the dimension to the +closest multiple of 16.

+ + + + + +
+

<ilaced>

+ + + + + +
+

Toggle interlaced scaling.

+ + + + + +
+

0: off (default)
+1: on

+ + + + + +
+

<chr_drop>

+ + + + + +
+

chroma skipping

+ + + + + +
+

0: Use all available input lines for chroma.
+1: Use only every 2. input line for chroma.
+2: Use only every 4. input line for chroma.
+3: Use only every 8. input line for chroma.

+ + + + + +
+

<par>[:<par2>] (also see −sws)

+ + + + + +
+

Set some scaling parameters depending on the type of +scaler selected with −sws.

+ + + + + +
+

−sws 2 (bicubic): B (blurring) and C (ringing)
+0.00:0.60 default
+0.00:0.75 VirtualDub’s "precise bicubic"
+0.00:0.50 Catmull-Rom spline
+0.33:0.33 Mitchell-Netravali spline
+1.00:0.00 cubic B-spline
+−sws 7 (gaussian): sharpness (0 (soft) − 100 +(sharp))
+−sws 9 (lanczos): filter length (1−10)

+ + + + + +
+

<presize>

+ + + + + +
+

Scale to preset sizes.

+ + + + + +
+

qntsc: 352x240 (NTSC quarter screen)
+qpal: 352x288 (PAL quarter screen)
+ntsc: 720x480 (standard NTSC)
+pal: 720x576 (standard PAL)
+sntsc: 640x480 (square pixel NTSC)
+spal: 768x576 (square pixel PAL)

+ + + + + +
+

<noup>

+ + + + + +
+

Disallow upscaling past the original dimensions.

+ + + + + +
+

0: Allow upscaling (default).
+1: Disallow upscaling if one dimension exceeds its original +value.
+2: Disallow upscaling if both dimensions exceed their +original values.

+ + + + + +
+

<arnd>

+ + + + + +
+

Accurate rounding for the vertical scaler, which may be +faster or slower than the default rounding.

+ + + + + +
+

0: Disable accurate rounding (default).
+1: Enable accurate rounding.

+ + + + + +
+

dsize[=aspect|w:h:aspect-method:r]

+ + + + + +
+

Changes the intended display size/aspect at an arbitrary +point in the filter chain. Aspect can be given as a fraction +(4/3) or floating point number (1.33). Alternatively, you +may specify the exact display width and height desired. Note +that this filter does not do any scaling itself; it +just affects what later scalers (software or hardware) will +do when auto-scaling to correct aspect.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

New display width and height. Can also be these special +values:

+ + + + + +
+

0: original display width and height
+-1: original video width and height (default)
+-2: Calculate w/h using the other dimension and the original +display aspect ratio.
+-3: Calculate w/h using the other dimension and the original +video aspect ratio.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

dsize=800:-2

+ + + + + +
+

Specifies a display resolution of 800x600 for a 4/3 +aspect video, or 800x450 for a 16/9 aspect video.

+ + + + + +
+

<aspect-method>

+ + + + + +
+

Modifies width and height according to original aspect +ratios.

+ + + + + +
+

-1: Ignore original aspect ratio (default).
+0: Keep display aspect ratio by using <w> and +<h> as maximum resolution.
+1: Keep display aspect ratio by using <w> and +<h> as minimum resolution.
+2: Keep video aspect ratio by using <w> and <h> +as maximum resolution.
+3: Keep video aspect ratio by using <w> and <h> +as minimum resolution.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

dsize=800:600:0

+ + + + + +
+

Specifies a display resolution of at most 800x600, or +smaller, in order to keep aspect.

+ + + + + +
+

<r>

+ + + + + +
+

Rounds up to make both width and height divisible by +<r> (default: 1).

+ + + + + +
+

yuy2

+ + + + + +
+

Forces software YV12/I420/422P to YUY2 conversion. Useful +for video cards/drivers with slow YV12 but fast YUY2 +support.

+
+ + + + + +
+

yvu9

+ + + + + +
+

Forces software YVU9 to YV12 colorspace conversion. +Deprecated in favor of the software scaler.

+
+ + + + + +
+

yuvcsp

+ + + + + +
+

Clamps YUV color values to the CCIR 601 range without +doing real conversion.

+
+ + + + + +
+

rgb2bgr[=swap]

+ + + + + +
+

RGB 24/32 <−> BGR 24/32 colorspace +conversion.

+ + + + + +
+

swap

+ + + + + +
+

Also perform R <-> B swapping.

+ + + + + +
+

palette

+ + + + + +
+

RGB/BGR 8 −> 15/16/24/32bpp colorspace +conversion using palette.

+
+ + + + + +
+

format[=fourcc]

+ + + + + +
+

Restricts the colorspace for the next filter without +doing any conversion. Use together with the scale filter for +a real conversion.
+NOTE:
For a list of available formats see +format=fmt=help.

+ + + + + +
+

<fourcc>

+ + + + + +
+

format name like rgb15, bgr24, yv12, etc (default: +yuy2)

+ + + + + +
+

noformat[=fourcc]

+ + + + + +
+

Restricts the colorspace for the next filter without +doing any conversion. Unlike the format filter, this will +allow any colorspace except the one you +specify.
+NOTE:
For a list of available formats see +noformat=fmt=help.

+ + + + + +
+

<fourcc>

+ + + + + +
+

format name like rgb15, bgr24, yv12, etc (default: +yv12)

+ + + + + +
+

pp[=filter1[:option1[:option2...]]/[-]filter2...] +(also see −pphelp)

+ + + + + +
+

Enables the specified chain of postprocessing subfilters. +Subfilters must be separated by ’/’ and can be +disabled by prepending a ’−’. Each +subfilter and some options have a short and a long name that +can be used interchangeably, i.e. dr/dering are the same. +All subfilters share common options to determine their +scope:

+ + + + + +
+

a/autoq

+ + + + + +
+

Automatically switch the subfilter off if the CPU is too +slow.

+ + + + + +
+

c/chrom

+ + + + + +
+

Do chrominance filtering, too (default).

+ + + + + +
+

y/nochrom

+ + + + + +
+

Do luminance filtering only (no chrominance).

+ + + + + +
+

n/noluma

+ + + + + +
+

Do chrominance filtering only (no luminance).

+ + + + + +
+

NOTE: −pphelp shows a list of available +subfilters.

+ +

Available subfilters are

+ + + + + +
+

hb/hdeblock[:difference[:flatness]]

+ + + + + +
+

horizontal deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

vb/vdeblock[:difference[:flatness]]

+ + + + + +
+

vertical deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

ha/hadeblock[:difference[:flatness]]

+ + + + + +
+

accurate horizontal deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

va/vadeblock[:difference[:flatness]]

+ + + + + +
+

accurate vertical deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

The horizontal and vertical deblocking filters share the +difference and flatness values so you cannot set different +horizontal and vertical thresholds.

+
+ + + + + +
+

h1/x1hdeblock

+ + + + + +
+

experimental horizontal deblocking filter

+
+ + + + + +
+

v1/x1vdeblock

+ + + + + +
+

experimental vertical deblocking filter

+
+ + + + + +
+

dr/dering

+ + + + + +
+

deringing filter

+
+ + + + + +
+ +

tn/tmpnoise[:threshold1[:threshold2[:threshold3]]]

+ + + + + +
+

temporal noise reducer

+ + + + + +
+

<threshold1>: larger -> stronger filtering
+<threshold2>: larger -> stronger filtering
+<threshold3>: larger -> stronger filtering

+ + + + + +
+

al/autolevels[:f/fullyrange]

+ + + + + +
+

automatic brightness / contrast correction

+ + + + + +
+

f/fullyrange: Stretch luminance to +(0−255).

+ + + + + +
+

lb/linblenddeint

+ + + + + +
+

Linear blend deinterlacing filter that deinterlaces the +given block by filtering all lines with a (1 2 1) +filter.

+
+ + + + + +
+

li/linipoldeint

+ + + + + +
+

Linear interpolating deinterlacing filter that +deinterlaces the given block by linearly interpolating every +second line.

+
+ + + + + +
+

ci/cubicipoldeint

+ + + + + +
+

Cubic interpolating deinterlacing filter deinterlaces the +given block by cubically interpolating every second +line.

+
+ + + + + +
+

md/mediandeint

+ + + + + +
+

Median deinterlacing filter that deinterlaces the given +block by applying a median filter to every second line.

+
+ + + + + +
+

fd/ffmpegdeint

+ + + + + +
+

FFmpeg deinterlacing filter that deinterlaces the given +block by filtering every second line with a (-1 4 2 4 -1) +filter.

+
+ + + + + +
+

l5/lowpass5

+ + + + + +
+

Vertically applied FIR lowpass deinterlacing filter that +deinterlaces the given block by filtering all lines with a +(-1 2 6 2 -1) filter.

+
+ + + + + +
+

fq/forceQuant[:quantizer]

+ + + + + +
+

Overrides the quantizer table from the input with the +constant quantizer you specify.

+ + + + + +
+

<quantizer>: quantizer to use

+ + + + + +
+

de/default

+ + + + + +
+

default pp filter combination (hb:a,vb:a,dr:a)

+
+ + + + + +
+

fa/fast

+ + + + + +
+

fast pp filter combination (h1:a,v1:a,dr:a)

+
+ + + + + +
+

ac

+ + + + + +
+

high quality pp filter combination +(ha:a:128:7,va:a,dr:a)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

−vf pp=hb/vb/dr/al

+ + + + + +
+

horizontal and vertical deblocking, deringing and +automatic brightness/contrast

+ + + + + +
+

−vf pp=de/-al

+ + + + + +
+

default filters without brightness/contrast +correction

+ + + + + +
+

−vf pp=default/tmpnoise:1:2:3

+ + + + + +
+

Enable default filters & temporal denoiser.

+ + + + + +
+

−vf pp=hb:y/vb:a

+ + + + + +
+

Horizontal deblocking on luminance only, and switch +vertical deblocking on or off automatically depending on +available CPU time.

+ + + + + +
+

spp[=quality[:qp[:mode]]]

+ + + + + +
+

Simple postprocessing filter that compresses and +decompresses the image at several (or − in the case of +quality level 6 − all) shifts and averages the +results.

+ + + + + +
+

<quality>

+ + + + + +
+

0−6 (default: 3)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<mode>

+ + + + + +
+

0: hard thresholding (default)
+1: soft thresholding (better deringing, but blurrier)
+4: like 0, but also use B-frames’ QP (may cause +flicker)
+5: like 1, but also use B-frames’ QP (may cause +flicker)

+ + + + + +
+

uspp[=quality[:qp]]

+ + + + + +
+

Ultra simple & slow postprocessing filter that +compresses and decompresses the image at several (or − +in the case of quality level 8 − all) shifts and +averages the results. The way this differs from the behavior +of spp is that uspp actually encodes & decodes each case +with libavcodec Snow, whereas spp uses a simplified intra +only 8x8 DCT similar to MJPEG.

+ + + + + +
+

<quality>

+ + + + + +
+

0−8 (default: 3)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+ + + + + +
+

fspp[=quality[:qp[:strength[:bframes]]]]

+ + + + + +
+

faster version of the simple postprocessing +filter

+ + + + + +
+

<quality>

+ + + + + +
+

4−5 (equivalent to spp; default: 4)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<-15−32>

+ + + + + +
+

Filter strength, lower values mean more details but also +more artifacts, while higher values make the image smoother +but also blurrier (default: 0 − PSNR optimal).

+
+ + + + + +
+

<bframes>

+ + + + + +
+

0: do not use QP from B-frames (default)
+1: use QP from B-frames too (may cause flicker)

+ + + + + +
+

pp7[=qp[:mode]]

+ + + + + +
+

Variant of the spp filter, similar to spp=6 with 7 point +DCT where only the center sample is used after +IDCT.

+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<mode>

+ + + + + +
+

0: hard thresholding
+1: soft thresholding (better deringing, but blurrier)
+2: medium thresholding (default, good results)

+ + + + + +
+

qp=equation

+ + + + + +
+

quantization parameter (QP) change filter

+ + + + + +
+

<equation>

+ + + + + +
+

some equation like "2+2*sin(PI*qp)"

+ + + + + +
+

geq=equation

+ + + + + +
+

generic equation change filter

+ + + + + +
+

<equation>

+ + + + + +
+

Some equation, e.g. ’p(W-X\,Y)’ to flip the +image horizontally. You can use whitespace to make the +equation more readable. There are a couple of constants that +can be used in the equation:

+ + + + + +
+

PI: the number pi
+E: the number e
+X / Y: the coordinates of the current sample
+W / H: width and height of the image
+SW / SH: width/height scale depending on the currently +filtered plane, e.g. 1,1 and 0.5,0.5 for YUV 4:2:0.
+p(x,y): returns the value of the pixel at location x/y of +the current plane.

+ + + + + +
+

test

+ + + + + +
+

Generate various test patterns.

+
+ + + + + +
+

rgbtest

+ + + + + +
+

Generate an RGB test pattern useful for detecting RGB vs +BGR issues. You should see a red, green and blue stripe from +top to bottom.

+
+ + + + + +
+

lavc[=quality:fps]

+ + + + + +
+

Fast software YV12 to MPEG-1 conversion with libavcodec +for use with DVB/DXR3/IVTV/V4L2.

+ + + + + +
+

<quality>

+ + + + + +
+

1−31: fixed qscale
+32−: fixed bitrate in kbits

+
+ + + + + +
+

<fps>

+ + + + + +
+

force output fps (float value) (default: 0, autodetect +based on height)

+ + + + + +
+

dvbscale[=aspect]

+ + + + + +
+

Set up optimal scaling for DVB cards, scaling the x axis +in hardware and calculating the y axis scaling in software +to keep aspect. Only useful together with expand and +scale.

+ + + + + +
+

<aspect>

+ + + + + +
+

Control aspect ratio, calculate as DVB_HEIGHT*ASPECTRATIO +(default: 576*4/3=768), set it to 576*(16/9)=1024 for a 16:9 +TV.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

−vf +dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc

+ + + + + +
+

FIXME: Explain what this does.

+ + + + + +
+ +

noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]]

+ + + + + +
+

Adds noise.

+ + + + + +
+

<0−100>

+ + + + + +
+

luma noise

+ + + + + +
+

<0−100>

+ + + + + +
+

chroma noise

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

u

+
+ +

uniform noise (gaussian otherwise)

+
+ +

t

+
+ +

temporal noise (noise pattern changes between +frames)

+
+ +

a

+
+ +

averaged temporal noise (smoother, but a lot slower)

+
+ +

h

+
+ +

high quality (slightly better looking, slightly +slower)

+
+ +

p

+
+ +

mix random noise with a (semi)regular pattern

+
+ + + + + +
+ +

denoise3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]

+ + + + + +
+

This filter aims to reduce image noise producing smooth +images and making still images really still (This should +enhance compressibility.).

+ + + + + +
+

<luma_spatial>

+ + + + + +
+

spatial luma strength (default: 4)

+ + + + + +
+

<chroma_spatial>

+ + + + + +
+

spatial chroma strength (default: 3)

+ + + + + +
+

<luma_tmp>

+ + + + + +
+

luma temporal strength (default: 6)

+ + + + + +
+

<chroma_tmp>

+ + + + + +
+

chroma temporal strength (default: +luma_tmp*chroma_spatial/luma_spatial)

+ + + + + +
+ +

hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]

+ + + + + +
+

High precision/quality version of the denoise3d filter. +Parameters and usage are the same.

+
+ + + + + +
+

eq[=brightness:contrast] (OBSOLETE)

+ + + + + +
+

Software equalizer with interactive controls just like +the hardware equalizer, for cards/drivers that do not +support brightness and contrast controls in hardware. Might +also be useful with MEncoder, either for fixing poorly +captured movies, or for slightly reducing contrast to mask +artifacts and get by with lower bitrates.

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial brightness

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial contrast

+ + + + + +
+ +

eq2[=gamma:contrast:brightness:saturation:rg:gg:bg:weight]

+ + + + + +
+

Alternative software equalizer that uses lookup tables +(very slow), allowing gamma correction in addition to simple +brightness and contrast adjustment. Note that it uses the +same MMX optimized code as −vf eq if all gamma values +are 1.0. The parameters are given as floating point +values.

+ + + + + +
+

<0.1−10>

+ + + + + +
+

initial gamma value (default: 1.0)

+ + + + + +
+

<-2−2>

+ + + + + +
+

initial contrast, where negative values result in a +negative image (default: 1.0)

+ + + + + +
+

<-1−1>

+ + + + + +
+

initial brightness (default: 0.0)

+ + + + + +
+

<0−3>

+ + + + + +
+

initial saturation (default: 1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the red component (default: 1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the green component (default: +1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the blue component (default: +1.0)

+ + + + + +
+

<0−1>

+ + + + + +
+

The weight parameter can be used to reduce the effect of +a high gamma value on bright image areas, e.g. keep them +from getting overamplified and just plain white. A value of +0.0 turns the gamma correction all the way down while 1.0 +leaves it at its full strength (default: 1.0).

+ + + + + +
+

hue[=hue:saturation]

+ + + + + +
+

Software equalizer with interactive controls just like +the hardware equalizer, for cards/drivers that do not +support hue and saturation controls in hardware.

+ + + + + +
+

<-180−180>

+ + + + + +
+

initial hue (default: 0.0)

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial saturation, where negative values result in a +negative chroma (default: 1.0)

+ + + + + +
+

halfpack[=f]

+ + + + + +
+

Convert planar YUV 4:2:0 to half-height packed 4:2:2, +downsampling luma but keeping all chroma samples. Useful for +output to low-resolution display devices when hardware +downscaling is poor quality or is not available. Can also be +used as a primitive luma-only deinterlacer with very low CPU +usage.

+ + + + + +
+

<f>

+ + + + + +
+

By default, halfpack averages pairs of lines when +downsampling. Any value different from 0 or 1 gives the +default (averaging) behavior.

+ + + + + +
+

0: Only use even lines when downsampling.
+1: Only use odd lines when downsampling.

+ + + + + +
+

ilpack[=mode]

+ + + + + +
+

When interlaced video is stored in YUV 4:2:0 formats, +chroma interlacing does not line up properly due to vertical +downsampling of the chroma channels. This filter packs the +planar 4:2:0 data into YUY2 (4:2:2) format with the chroma +lines in their proper locations, so that in any given +scanline, the luma and chroma data both come from the same +field.

+ + + + + +
+

<mode>

+ + + + + +
+

Select the sampling mode.

+ + + + + +
+

0: nearest-neighbor sampling, fast but incorrect
+1: linear interpolation (default)

+ + + + + +
+

harddup

+ + + + + +
+

Only useful with MEncoder. If harddup is used when +encoding, it will force duplicate frames to be encoded in +the output. This uses slightly more space, but is necessary +for output to MPEG files or if you plan to demux and remux +the video stream after encoding. Should be placed at or near +the end of the filter chain unless you have a good reason to +do otherwise.

+
+ + + + + +
+

softskip

+ + + + + +
+

Only useful with MEncoder. Softskip moves the frame +skipping (dropping) step of encoding from before the filter +chain to some point during the filter chain. This allows +filters which need to see all frames (inverse telecine, +temporal denoising, etc.) to function properly. Should be +placed after the filters which need to see all frames and +before any subsequent filters that are CPU-intensive.

+
+ + + + + +
+

decimate[=max:hi:lo:frac]

+ + + + + +
+

Drops frames that do not differ greatly from the previous +frame in order to reduce framerate. The main use of this +filter is for very-low-bitrate encoding (e.g. streaming over +dialup modem), but it could in theory be used for fixing +movies that were inverse-telecined incorrectly.

+ + + + + +
+

<max>

+ + + + + +
+

Sets the maximum number of consecutive frames which can +be dropped (if positive), or the minimum interval between +dropped frames (if negative).

+ + + + + +
+

<hi>,<lo>,<frac>

+ + + + + +
+

A frame is a candidate for dropping if no 8x8 region +differs by more than a threshold of <hi>, and if not +more than <frac> portion (1 meaning the whole image) +differs by more than a threshold of <lo>. Values of +<hi> and <lo> are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of +64 corresponds to 1 unit of difference for each pixel, or +the same spread out differently over the block.

+ + + + + +
+

dint[=sense:level]

+ + + + + +
+

The drop-deinterlace (dint) filter detects and drops the +first from a set of interlaced video frames.

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

relative difference between neighboring pixels (default: +0.1)

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

What part of the image has to be detected as interlaced +to drop the frame (default: 0.15).

+ + + + + +
+

lavcdeint (OBSOLETE)

+ + + + + +
+

FFmpeg deinterlacing filter, same as −vf pp=fd

+
+ + + + + +
+ +

kerndeint[=thresh[:map[:order[:sharp[:twoway]]]]]

+ + + + + +
+

Donald Graft’s adaptive kernel deinterlacer. +Deinterlaces parts of a video if a configurable threshold is +exceeded.

+ + + + + +
+

<0−255>

+ + + + + +
+

threshold (default: 10)

+ + + + + +
+

<map>

+ + + + + +
+

0: Ignore pixels exceeding the threshold (default).
+1: Paint pixels exceeding the threshold white.

+ + + + + +
+

<order>

+ + + + + +
+

0: Leave fields alone (default).
+1: Swap fields.

+ + + + + +
+

<sharp>

+ + + + + +
+

0: Disable additional sharpening (default).
+1: Enable additional sharpening.

+ + + + + +
+

<twoway>

+ + + + + +
+

0: Disable twoway sharpening (default).
+1: Enable twoway sharpening.

+ + + + + +
+

unsharp[=l|cWxH:amount[:l|cWxH:amount]]

+ + + + + +
+

unsharp mask / gaussian blur

+ + + + + +
+

l

+ + + + + +
+

Apply effect on luma component.

+
+ + + + + +
+

c

+ + + + + +
+

Apply effect on chroma components.

+
+ + + + + +
+

<width>x<height>

+ + + + + +
+

width and height of the matrix, odd sized in both +directions (min = 3x3, max = 13x11 or 11x13, usually +something between 3x3 and 7x7)

+
+ + + + + +
+

amount

+ + + + + +
+

Relative amount of sharpness/blur to add to the image (a +sane range should be -1.5−1.5).

+ + + + + +
+

<0: blur
+>0: sharpen

+ + + + + +
+

swapuv

+ + + + + +
+

Swap U & V plane.

+
+ + + + + +
+

il[=d|i][s][:[d|i][s]]

+ + + + + +
+

(De)interleaves lines. The goal of this filter is to add +the ability to process interlaced images pre-field without +deinterlacing them. You can filter your interlaced DVD and +play it on a TV without breaking the interlacing. While +deinterlacing (with the postprocessing filter) removes +interlacing permanently (by smoothing, averaging, etc) +deinterleaving splits the frame into 2 fields (so called +half pictures), so you can process (filter) them +independently and then re-interleave them.

+ + + + + + + + + + + + + + + + + + + + +
+ +

d

+
+ +

deinterleave (placing one above the other)

+
+
+ +

i

+
+ +

interleave

+
+
+ +

s

+
+ +

swap fields (exchange even & odd lines)

+
+
+ + + + + +
+

fil[=i|d]

+ + + + + +
+

(De)interleaves lines. This filter is very similar to the +il filter but much faster, the main disadvantage is that it +does not always work. Especially if combined with other +filters it may produce randomly messed up images, so be +happy if it works but do not complain if it does not for +your combination of filters.

+ + + + + + + + + + + + +
+ +

d

+
+ +

Deinterleave fields, placing them side by side.

+
+ +

i

+
+ +

Interleave fields again (reversing the effect of +fil=d).

+
+ + + + + +
+

field[=n]

+ + + + + +
+

Extracts a single field from an interlaced image using +stride arithmetic to avoid wasting CPU time. The optional +argument n specifies whether to extract the even or the odd +field (depending on whether n is even or odd).

+
+ + + + + +
+

detc[=var1=value1:var2=value2:...]

+ + + + + +
+

Attempts to reverse the ’telecine’ process to +recover a clean, non-interlaced stream at film framerate. +This was the first and most primitive inverse telecine +filter to be added to MPlayer/MEncoder. It works by latching +onto the telecine 3:2 pattern and following it as long as +possible. This makes it suitable for perfectly-telecined +material, even in the presence of a fair degree of noise, +but it will fail in the presence of complex post-telecine +edits. Development on this filter is no longer taking place, +as ivtc, pullup, and filmdint are better for most +applications. The following arguments (see syntax above) may +be used to control detc’s behavior:

+ + + + + +
+

<dr>

+ + + + + +
+

Set the frame dropping mode.

+ + + + + +
+

0: Do not drop frames to maintain fixed output framerate +(default).
+1: Always drop a frame when there have been no drops or +telecine merges in the past 5 frames.
+2: Always maintain exact 5:4 input to output frame +ratio.
+NOTE:
Use mode 1 or 2 with MEncoder.

+ + + + + +
+

<am>

+ + + + + +
+

Analysis mode.

+ + + + + +
+

0: Fixed pattern with initial frame number specified by +<fr>.
+1: aggressive search for telecine pattern (default)

+ + + + + +
+

<fr>

+ + + + + +
+

Set initial frame number in sequence. 0−2 are the +three clean progressive frames; 3 and 4 are the two +interlaced frames. The default, -1, means ’not in +telecine sequence’. The number specified here is the +type for the imaginary previous frame before the movie +starts.

+
+ + + + + +
+

<t0>, <t1>, <t2>, <t3>

+ + + + + +
+

Threshold values to be used in certain modes.

+ + + + + +
+

ivtc[=1]

+ + + + + +
+

Experimental ’stateless’ inverse telecine +filter. Rather than trying to lock on to a pattern like the +detc filter does, ivtc makes its decisions independently for +each frame. This will give much better results for material +that has undergone heavy editing after telecine was applied, +but as a result it is not as forgiving of noisy input, for +example TV capture. The optional parameter (ivtc=1) +corresponds to the dr=1 option for the detc filter, and +should be used with MEncoder but not with MPlayer. As with +detc, you must specify the correct output framerate +(−ofps 24000/1001) when using MEncoder. Further +development on ivtc has stopped, as the pullup and filmdint +filters appear to be much more accurate.

+
+ + + + + +
+

pullup[=jl:jr:jt:jb:sb:mp]

+ + + + + +
+

Third-generation pulldown reversal (inverse telecine) +filter, capable of handling mixed hard-telecine, 24000/1001 +fps progressive, and 30000/1001 fps progressive content. The +pullup filter is designed to be much more robust than detc +or ivtc, by taking advantage of future context in making its +decisions. Like ivtc, pullup is stateless in the sense that +it does not lock onto a pattern to follow, but it instead +looks forward to the following fields in order to identify +matches and rebuild progressive frames. It is still under +development, but believed to be quite accurate.

+ + + + + +
+

jl, jr, jt, and jb

+ + + + + +
+

These options set the amount of "junk" to +ignore at the left, right, top, and bottom of the image, +respectively. Left/right are in units of 8 pixels, while +top/bottom are in units of 2 lines. The default is 8 pixels +on each side.

+
+ + + + + +
+

sb (strict breaks)

+ + + + + +
+

Setting this option to 1 will reduce the chances of +pullup generating an occasional mismatched frame, but it may +also cause an excessive number of frames to be dropped +during high motion sequences. Conversely, setting it to -1 +will make pullup match fields more easily. This may help +processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames +in the output.

+
+ + + + + +
+

mp (metric plane)

+ + + + + +
+

This option may be set to 1 or 2 to use a chroma plane +instead of the luma plane for doing pullup’s +computations. This may improve accuracy on very clean source +material, but more likely will decrease accuracy, especially +if there is chroma noise (rainbow effect) or any grayscale +video. The main purpose of setting mp to a chroma plane is +to reduce CPU load and make pullup usable in realtime on +slow machines.

+ + + + + +
+

NOTE: Always follow pullup with the softskip +filter when encoding to ensure that pullup is able to see +each frame. Failure to do so will lead to incorrect output +and will usually crash, due to design limitations in the +codec/filter layer.

+ + + + + +
+

filmdint[=options]

+ + + + + +
+

Inverse telecine filter, similar to the pullup filter +above. It is designed to handle any pulldown pattern, +including mixed soft and hard telecine and limited support +for movies that are slowed down or sped up from their +original framerate for TV. Only the luma plane is used to +find the frame breaks. If a field has no match, it is +deinterlaced with simple linear approximation. If the source +is MPEG-2, this must be the first filter to allow access to +the field-flags set by the MPEG-2 decoder. Depending on the +source MPEG, you may be fine ignoring this advice, as long +as you do not see lots of "Bottom-first field" +warnings. With no options it does normal inverse telecine, +and should be used together with mencoder −fps +30000/1001 −ofps 24000/1001. When this filter is used +with mplayer, it will result in an uneven framerate during +playback, but it is still generally better than using pp=lb +or no deinterlacing at all. Multiple options can be +specified separated by /.

+ + + + + +
+

crop=<w>:<h>:<x>:<y>

+ + + + + +
+

Just like the crop filter, but faster, and works on mixed +hard and soft telecined content as well as when y is not a +multiple of 4. If x or y would require cropping fractional +pixels from the chroma planes, the crop area is extended. +This usually means that x and y must be even.

+
+ + + + + +
+

io=<ifps>:<ofps>

+ + + + + +
+

For each ifps input frames the filter will output ofps +frames. The ratio of ifps/ofps should match the +−fps/−ofps ratio. This could be used to filter +movies that are broadcast on TV at a frame rate different +from their original framerate.

+
+ + + + + +
+

luma_only=<n>

+ + + + + +
+

If n is nonzero, the chroma plane is copied unchanged. +This is useful for YV12 sampled TV, which discards one of +the chroma fields.

+
+ + + + + +
+

mmx2=<n>

+ + + + + +
+

On x86, if n=1, use MMX2 optimized functions, if n=2, use +3DNow! optimized functions, otherwise, use plain C. If this +option is not specified, MMX2 and 3DNow! are auto-detected, +use this option to override auto-detection.

+
+ + + + + +
+

fast=<n>

+ + + + + +
+

The larger n will speed up the filter at the expense of +accuracy. The default value is n=3. If n is odd, a frame +immediately following a frame marked with the +REPEAT_FIRST_FIELD MPEG flag is assumed to be progressive, +thus filter will not spend any time on soft-telecined MPEG-2 +content. This is the only effect of this flag if MMX2 or +3DNow! is available. Without MMX2 and 3DNow, if n=0 or 1, +the same calculations will be used as with n=2 or 3. If n=2 +or 3, the number of luma levels used to find the frame +breaks is reduced from 256 to 128, which results in a faster +filter without losing much accuracy. If n=4 or 5, a faster, +but much less accurate metric will be used to find the frame +breaks, which is more likely to misdetect high vertical +detail as interlaced content.

+
+ + + + + +
+

verbose=<n>

+ + + + + +
+

If n is nonzero, print the detailed metrics for each +frame. Useful for debugging.

+
+ + + + + +
+

dint_thres=<n>

+ + + + + +
+

Deinterlace threshold. Used during de-interlacing of +unmatched frames. Larger value means less deinterlacing, use +n=256 to completely turn off deinterlacing. Default is +n=8.

+
+ + + + + +
+

comb_thres=<n>

+ + + + + +
+

Threshold for comparing a top and bottom fields. Defaults +to 128.

+
+ + + + + +
+

diff_thres=<n>

+ + + + + +
+

Threshold to detect temporal change of a field. Default +is 128.

+
+ + + + + +
+

sad_thres=<n>

+ + + + + +
+

Sum of Absolute Difference threshold, default is +64.

+ + + + + +
+

softpulldown

+ + + + + +
+

This filter works only correct with MEncoder and acts on +the MPEG-2 flags used for soft 3:2 pulldown (soft telecine). +If you want to use the ivtc or detc filter on movies that +are partly soft telecined, inserting this filter before them +should make them more reliable.

+
+ + + + + +
+

divtc[=options]

+ + + + + +
+

Inverse telecine for deinterlaced video. If 3:2-pulldown +telecined video has lost one of the fields or is +deinterlaced using a method that keeps one field and +interpolates the other, the result is a juddering video that +has every fourth frame duplicated. This filter is intended +to find and drop those duplicates and restore the original +film framerate. When using this filter, you must specify +−ofps that is 4/5 of the fps of the input file and +place the softskip later in the filter chain to make sure +that divtc sees all the frames. Two different modes are +available: One pass mode is the default and is +straightforward to use, but has the disadvantage that any +changes in the telecine phase (lost frames or bad edits) +cause momentary judder until the filter can resync again. +Two pass mode avoids this by analyzing the whole video +beforehand so it will have forward knowledge about the phase +changes and can resync at the exact spot. These passes do +not correspond to pass one and two of the encoding +process. You must run an extra pass using divtc pass one +before the actual encoding throwing the resulting video +away. Use −nosound −ovc raw −o /dev/null +to avoid wasting CPU power for this pass. You may add +something like crop=2:2:0:0 after divtc to speed things up +even more. Then use divtc pass two for the actual encoding. +If you use multiple encoder passes, use divtc pass two for +all of them. The options are:

+ + + + + +
+

pass=1|2

+ + + + + +
+

Use two pass mode.

+
+ + + + + +
+

file=<filename>

+ + + + + +
+

Set the two pass log filename (default: +"framediff.log").

+
+ + + + + +
+

threshold=<value>

+ + + + + +
+

Set the minimum strength the telecine pattern must have +for the filter to believe in it (default: 0.5). This is used +to avoid recognizing false pattern from the parts of the +video that are very dark or very still.

+
+ + + + + +
+

window=<numframes>

+ + + + + +
+

Set the number of past frames to look at when searching +for pattern (default: 30). Longer window improves the +reliability of the pattern search, but shorter window +improves the reaction time to the changes in the telecine +phase. This only affects the one pass mode. The two pass +mode currently uses fixed window that extends to both future +and past.

+
+ + + + + +
+

phase=0|1|2|3|4

+ + + + + +
+

Sets the initial telecine phase for one pass mode +(default: 0). The two pass mode can see the future, so it is +able to use the correct phase from the beginning, but one +pass mode can only guess. It catches the correct phase when +it finds it, but this option can be used to fix the possible +juddering at the beginning. The first pass of the two pass +mode also uses this, so if you save the output from the +first pass, you get constant phase result.

+
+ + + + + +
+

deghost=<value>

+ + + + + +
+

Set the deghosting threshold (0−255 for one pass +mode, -255−255 for two pass mode, default 0). If +nonzero, deghosting mode is used. This is for video that has +been deinterlaced by blending the fields together instead of +dropping one of the fields. Deghosting amplifies any +compression artifacts in the blended frames, so the +parameter value is used as a threshold to exclude those +pixels from deghosting that differ from the previous frame +less than specified value. If two pass mode is used, then +negative value can be used to make the filter analyze the +whole video in the beginning of pass-2 to determine whether +it needs deghosting or not and then select either zero or +the absolute value of the parameter. Specify this option for +pass-2, it makes no difference on pass-1.

+ + + + + +
+

phase[=t|b|p|a|u|T|B|A|U][:v]

+ + + + + +
+

Delay interlaced video by one field time so that the +field order changes. The intended use is to fix PAL movies +that have been captured with the opposite field order to the +film-to-video transfer. The options are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

t

+
+ +

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field.

+
+ +

b

+
+ +

Capture bottom-first, transfer top-first. Filter will +delay the top field.

+
+ +

p

+
+ +

Capture and transfer with the same field order. This +mode only exists for the documentation of the other options +to refer to, but if you actually select it, the filter will +faithfully do nothing ;-)

+
+ +

a

+
+ +

Capture field order determined automatically by field +flags, transfer opposite. Filter selects among t and b modes +on a frame by frame basis using field flags. If no field +information is available, then this works just like u.

+
+ +

u

+
+ +

Capture unknown or varying, transfer opposite. Filter +selects among t and b on a frame by frame basis by analyzing +the images and selecting the alternative that produces best +match between the fields.

+
+ +

T

+
+ +

Capture top-first, transfer unknown or varying. Filter +selects among t and p using image analysis.

+
+ +

B

+
+ +

Capture bottom-first, transfer unknown or varying. +Filter selects among b and p using image analysis.

+
+ +

A

+
+ +

Capture determined by field flags, transfer unknown or +varying. Filter selects among t, b and p using field flags +and image analysis. If no field information is available, +then this works just like U. This is the default mode.

+
+ +

U

+
+ +

Both capture and transfer unknown or varying. Filter +selects among t, b and p using image analysis only.

+
+ +

v

+
+ +

Verbose operation. Prints the selected mode for each +frame and the average squared difference between fields for +t, b, and p alternatives.

+
+ + + + + +
+

telecine[=start]

+ + + + + +
+

Apply 3:2 ’telecine’ process to increase +framerate by 20%. This most likely will not work correctly +with MPlayer, but it can be used with ’mencoder +−fps 30000/1001 −ofps 30000/1001 −vf +telecine’. Both fps options are essential! (A/V sync +will break if they are wrong.) The optional start parameter +tells the filter where in the telecine pattern to start +(0−3).

+
+ + + + + +
+

tinterlace[=mode]

+ + + + + +
+

Temporal field interlacing − merge pairs of frames +into an interlaced frame, halving the framerate. Even frames +are moved into the upper field, odd frames to the lower +field. This can be used to fully reverse the effect of the +tfields filter (in mode 0). Available modes are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Move odd frames into the upper field, even into the +lower field, generating a full-height frame at half +framerate.

+
+ +

1

+
+ +

Only output odd frames, even frames are dropped; height +unchanged.

+
+ +

2

+
+ +

Only output even frames, odd frames are dropped; height +unchanged.

+
+ +

3

+
+ +

Expand each frame to full height, but pad alternate +lines with black; framerate unchanged.

+
+ +

4

+
+ +

Interleave even lines from even frames with odd lines +from odd frames. Height unchanged at half framerate.

+
+ + + + + +
+

tfields[=mode[:field_dominance]]

+ + + + + +
+

Temporal field separation − split fields into +frames, doubling the output framerate. Like the telecine +filter, tfields will only work properly with MEncoder, and +only if both −fps and −ofps are set to the +desired (double) framerate!

+ + + + + +
+

<mode>

+ + + + + +
+

0: Leave fields unchanged (will jump/flicker).
+1: Interpolate missing lines. (The algorithm used might not +be so good.)
+2: Translate fields by 1/4 pixel with linear interpolation +(no jump).
+4: Translate fields by 1/4 pixel with 4tap filter (higher +quality) (default).

+ + + + + +
+

<field_dominance> (DEPRECATED)

+ + + + + +
+

-1: auto (default) Only works if the decoder exports the +appropriate information and no other filters which discard +that information come before tfields in the filter chain, +otherwise it falls back to 0 (top field first).
+0: top field first
+1: bottom field first
+NOTE:
This option will possibly be removed in a future +version. Use −field-dominance instead.

+ + + + + +
+

yadif=[mode[:field_dominance]]

+ + + + + +
+

Yet another deinterlacing filter

+ + + + + +
+

<mode>

+ + + + + +
+

0: Output 1 frame for each frame.
+1: Output 1 frame for each field.
+2: Like 0 but skips spatial interlacing check.
+3: Like 1 but skips spatial interlacing check.

+ + + + + +
+

<field_dominance> (DEPRECATED)

+ + + + + +
+

Operates like tfields.
+NOTE:
This option will possibly be removed in a future +version. Use −field-dominance instead.

+ + + + + +
+

mcdeint=[mode[:parity[:qp]]]

+ + + + + +
+

Motion compensating deinterlacer. It needs one field per +frame as input and must thus be used together with tfields=1 +or yadif=1/3 or equivalent.

+ + + + + +
+

<mode>

+ + + + + +
+

0: fast
+1: medium
+2: slow, iterative motion estimation
+3: extra slow, like 2 plus multiple reference +frames

+ + + + + +
+

<parity>

+ + + + + +
+

0 or 1 selects which field to use (note: no autodetection +yet!).

+ + + + + +
+

<qp>

+ + + + + +
+

Higher values should result in a smoother motion vector +field but less optimal individual vectors.

+ + + + + +
+

boxblur=radius:power[:radius:power]

+ + + + + +
+

box blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength

+ + + + + +
+

<power>

+ + + + + +
+

number of filter applications

+ + + + + +
+ +

sab=radius:pf:colorDiff[:radius:pf:colorDiff]

+ + + + + +
+

shape adaptive blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength (~0.1−4.0) (slower if +larger)

+ + + + + +
+

<pf>

+ + + + + +
+

prefilter strength (~0.1−2.0)

+ + + + + +
+

<colorDiff>

+ + + + + +
+

maximum difference between pixels to still be considered +(~0.1−100.0)

+ + + + + +
+ +

smartblur=radius:strength:threshold[:radius:strength:threshold]

+ + + + + +
+

smart blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength (~0.1−5.0) (slower if +larger)

+ + + + + +
+

<strength>

+ + + + + +
+

blur (0.0−1.0) or sharpen (-1.0−0.0)

+ + + + + +
+

<threshold>

+ + + + + +
+

filter all (0), filter flat areas (0−30) or filter +edges (-30−0)

+ + + + + +
+

perspective=x0:y0:x1:y1:x2:y2:x3:y3:t

+ + + + + +
+

Correct the perspective of movies not filmed +perpendicular to the screen.

+ + + + + +
+

<x0>,<y0>,...

+ + + + + +
+

coordinates of the top left, top right, bottom left, +bottom right corners

+ + + + + +
+

<t>

+ + + + + +
+

linear (0) or cubic resampling (1)

+ + + + + +
+

2xsai

+ + + + + +
+

Scale and smooth the image with the 2x scale and +interpolate algorithm.

+
+ + + + + +
+

1bpp

+ + + + + +
+

1bpp bitmap to YUV/BGR 8/15/16/32 conversion

+
+ + + + + +
+

down3dright[=lines]

+ + + + + +
+

Reposition and resize stereoscopic images. Extracts both +stereo fields and places them side by side, resizing them to +maintain the original movie aspect.

+ + + + + +
+

<lines>

+ + + + + +
+

number of lines to select from the middle of the image +(default: 12)

+ + + + + +
+

bmovl=hidden:opaque:fifo

+ + + + + +
+

The bitmap overlay filter reads bitmaps from a FIFO and +displays them on top of the movie, allowing some +transformations on the image. Also see TOOLS/bmovl-test.c +for a small bmovl test program.

+ + + + + +
+

<hidden>

+ + + + + +
+

Set the default value of the ’hidden’ flag +(0=visible, 1=hidden).

+ + + + + +
+

<opaque>

+ + + + + +
+

Set the default value of the ’opaque’ flag +(0=transparent, 1=opaque).

+ + + + + +
+

<fifo>

+ + + + + +
+

path/filename for the FIFO (named pipe connecting +’mplayer −vf bmovl’ to the controlling +application)

+ + + + + +
+

FIFO commands are:

+ + + + + +
+

RGBA32 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*4 Bytes of raw RGBA32 +data.

+ + + + + +
+

ABGR32 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*4 Bytes of raw ABGR32 +data.

+ + + + + +
+

RGB24 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*3 Bytes of raw RGB24 +data.

+ + + + + +
+

BGR24 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*3 Bytes of raw BGR24 +data.

+ + + + + +
+

ALPHA width height xpos ypos alpha

+ + + + + +
+

Change alpha transparency of the specified area.

+ + + + + +
+

CLEAR width height xpos ypos

+ + + + + +
+

Clear area.

+ + + + + +
+

OPAQUE

+ + + + + +
+

Disable all alpha transparency. Send "ALPHA 0 0 0 0 +0" to enable it again.

+ + + + + +
+

HIDE

+ + + + + +
+

Hide bitmap.

+ + + + + +
+

SHOW

+ + + + + +
+

Show bitmap.

+ + + + + +
+

Arguments are:

+ + + + + +
+

<width>, <height>

+ + + + + +
+

image/area size

+ + + + + +
+

<xpos>, <ypos>

+ + + + + +
+

Start blitting at position x/y.

+ + + + + +
+

<alpha>

+ + + + + +
+

Set alpha difference. If you set this to -255 you can +then send a sequence of ALPHA-commands to set the area to +-225, -200, -175 etc for a nice fade-in-effect! ;)

+ + + + + +
+

0: same as original
+255: Make everything opaque.
+-255: Make everything transparent.

+ + + + + +
+

<clear>

+ + + + + +
+

Clear the framebuffer before blitting.

+ + + + + +
+

0: The image will just be blitted on top of the old one, +so you do not need to send 1.8MB of RGBA32 data every time a +small part of the screen is updated.
+1: clear

+ + + + + +
+

framestep=I|[i]step

+ + + + + +
+

Renders only every nth frame or every intra frame +(keyframe).

+ +

If you call the filter with I (uppercase) as the +parameter, then only keyframes are rendered. For DVDs +it generally means one in every 15/12 frames +(IBBPBBPBBPBBPBB), for AVI it means every scene change or +every keyint value (see −lavcopts keyint= value if you +use MEncoder to encode the video).

+ +

When a keyframe is found, an ’I!’ string +followed by a newline character is printed, leaving the +current line of MPlayer/ MEncoder output on the screen, +because it contains the time (in seconds) and frame number +of the keyframe (You can use this information to split the +AVI.).

+ +

If you call the filter with a numeric parameter +’step’ then only one in every ’step’ +frames is rendered.

+ +

If you put an ’i’ (lowercase) before the +number then an ’I!’ is printed (like the I +parameter).

+ +

If you give only the i then nothing is done to the +frames, only I! is printed.

+
+ + + + + +
+

tile=xtiles:ytiles:output:start:delta

+ + + + + +
+

Tile a series of images into a single, bigger image. If +you omit a parameter or use a value less than 0, then the +default value is used. You can also stop when you are +satisfied (... −vf tile=10:5 ...). It is probably a +good idea to put the scale filter before the tile :-)

+ +

The parameters are:

+
+ + + + + +
+

<xtiles>

+ + + + + +
+

number of tiles on the x axis (default: 5)

+ + + + + +
+

<ytiles>

+ + + + + +
+

number of tiles on the y axis (default: 5)

+ + + + + +
+

<output>

+ + + + + +
+

Render the tile when ’output’ number of +frames are reached, where ’output’ should be a +number less than xtile * ytile. Missing tiles are left +blank. You could, for example, write an 8 * 7 tile every 50 +frames to have one image every 2 seconds @ 25 fps.

+ + + + + +
+

<start>

+ + + + + +
+

outer border thickness in pixels (default: 2)

+ + + + + +
+

<delta>

+ + + + + +
+

inner border thickness in pixels (default: 4)

+ + + + + +
+

delogo[=x:y:w:h:t]

+ + + + + +
+

Suppresses a TV station logo by a simple interpolation of +the surrounding pixels. Just set a rectangle covering the +logo and watch it disappear (and sometimes something even +uglier appear − your mileage may vary).

+ + + + + +
+

<x>,<y>

+ + + + + +
+

top left corner of the logo

+ + + + + +
+

<w>,<h>

+ + + + + +
+

width and height of the cleared rectangle

+ + + + + + + +
+ +

<t>

+
+ +

Thickness of the fuzzy edge of the rectangle (added to w +and h). When set to -1, a green rectangle is drawn on the +screen to simplify finding the right x,y,w,h parameters.

+
+ + + + + +
+ +

remove-logo=/path/to/logo_bitmap_file_name.pgm

+ + + + + +
+

Suppresses a TV station logo, using a PGM or PPM image +file to determine which pixels comprise the logo. The width +and height of the image file must match those of the video +stream being processed. Uses the filter image and a circular +blur algorithm to remove the logo.

+ + + + + +
+

/path/to/logo_bitmap_file_name.pgm

+ + + + + +
+

[path] + filename of the filter image.

+ + + + + +
+

zrmjpeg[=options]

+ + + + + +
+

Software YV12 to MJPEG encoder for use with the zr2 video +output device.

+ + + + + +
+

maxheight=<h>|maxwidth=<w>

+ + + + + +
+

These options set the maximum width and height the zr +card can handle (the MPlayer filter layer currently cannot +query those).

+
+ + + + + +
+

{dc10+,dc10,buz,lml33}-{PAL|NTSC}

+ + + + + +
+

Use these options to set maxwidth and maxheight +automatically to the values known for card/mode combo. For +example, valid options are: dc10-PAL and buz-NTSC (default: +dc10+PAL)

+
+ + + + + +
+

color|bw

+ + + + + +
+

Select color or black and white encoding. Black and white +encoding is faster. Color is the default.

+
+ + + + + +
+

hdec={1,2,4}

+ + + + + +
+

Horizontal decimation 1, 2 or 4.

+
+ + + + + +
+

vdec={1,2,4}

+ + + + + +
+

Vertical decimation 1, 2 or 4.

+
+ + + + + +
+

quality=1−20

+ + + + + +
+

Set JPEG compression quality [BEST] 1 − 20 [VERY +BAD].

+
+ + + + + +
+

fd|nofd

+ + + + + +
+

By default, decimation is only performed if the Zoran +hardware can upscale the resulting MJPEG images to the +original size. The option fd instructs the filter to always +perform the requested decimation (ugly).

+ + + + + +
+

screenshot

+ + + + + +
+

Allows acquiring screenshots of the movie using slave +mode commands that can be bound to keypresses. See the slave +mode documentation and the INTERACTIVE CONTROL section for +details. Files named ’shotNNNN.png’ will be +saved in the working directory, using the first available +number - no files will be overwritten. The filter has no +overhead when not used and accepts an arbitrary colorspace, +so it is safe to add it to the configuration file.

+ + + + + +
+

ass

+ + + + + +
+

Moves SSA/ASS subtitle rendering to an arbitrary point in +the filter chain. Only useful with the −ass +option.

+ +

EXAMPLE:

+ + + + + +
+

−vf ass,screenshot

+ + + + + +
+

Moves SSA/ASS rendering before the screenshot filter. +Screenshots taken this way will contain subtitles.

+ + + + + +
+

blackframe[=amount:threshold]

+ + + + + +
+

Detect frames that are (almost) completely black. Can be +useful to detect chapter transitions or commercials. Output +lines consist of the frame number of the detected frame, the +percentage of blackness, the frame type and the frame number +of the last encountered keyframe.

+ + + + + +
+

<amount>

+ + + + + +
+

Percentage of the pixels that have to be below the +threshold (default: 98).

+
+ + + + + +
+

<threshold>

+ + + + + +
+

Threshold below which a pixel value is considered black +(default: 32).

+ +

GENERAL ENCODING OPTIONS (MENCODER ONLY)

+ + + + + +
+

−audio-delay <any floating-point +number>

+ + + + + +
+

Delays either audio or video by setting a delay field in +the header (default: 0.0). This does not delay either stream +while encoding, but the player will see the delay field and +compensate accordingly. Positive values delay the audio, and +negative values delay the video. Note that this is the exact +opposite of the −delay option. For example, if a video +plays correctly with −delay 0.2, you can fix the video +with MEncoder by using −audio-delay -0.2.

+ +

Currently, this option only works with the default muxer +(−of avi). If you are using a different muxer, then +you must use −delay instead.

+
+ + + + + +
+

−audio-density <1−50>

+ + + + + +
+

Number of audio chunks per second (default is 2 for 0.5s +long audio chunks).
+NOTE:
CBR only, VBR ignores this as it puts each packet +in a new chunk.

+
+ + + + + +
+

−audio-preload +<0.0−2.0>

+ + + + + +
+

Sets up the audio buffering time interval (default: +0.5s).

+
+ + + + + +
+

−fafmttag <format>

+ + + + + +
+

Can be used to override the audio format tag of the +output file.

+ +

EXAMPLE:

+ + + + + +
+

−fafmttag 0x55

+ + + + + +
+

Will have the output file contain 0x55 (mp3) as audio +format tag.

+ + + + + +
+

−ffourcc <fourcc>

+ + + + + +
+

Can be used to override the video fourcc of the output +file.

+ +

EXAMPLE:

+ + + + + +
+

−ffourcc div3

+ + + + + +
+

Will have the output file contain ’div3’ as +video fourcc.

+ + + + + +
+

−force-avi-aspect +<0.2−3.0>

+ + + + + +
+

Override the aspect stored in the AVI OpenDML vprp +header. This can be used to change the aspect ratio with +’−ovc copy’.

+
+ + + + + +
+

−frameno-file <filename> +(DEPRECATED)

+ + + + + +
+

Specify the name of the audio file with framenumber +mappings created in the first (audio only) pass of a special +three pass encoding mode.
+NOTE:
Using this mode will most likely give you A-V +desync. Do not use it. It is kept for backwards +compatibility only and will possibly be removed in a future +version.

+
+ + + + + +
+

−hr-edl-seek

+ + + + + +
+

Use a more precise, but much slower method for skipping +areas. Areas marked for skipping are not seeked over, +instead all frames are decoded, but only the necessary +frames are encoded. This allows starting at non-keyframe +boundaries.
+NOTE:
Not guaranteed to work right with +’−ovc copy’.

+
+ + + + + +
+

−info <option1:option2:...> (AVI +only)

+ + + + + +
+

Specify the info header of the resulting AVI file.

+ +

Available options are:

+ + + + + +
+

help

+ + + + + +
+

Show this description.

+
+ + + + + +
+

name=<value>

+ + + + + +
+

title of the work

+
+ + + + + +
+

artist=<value>

+ + + + + +
+

artist or author of the work

+
+ + + + + +
+

genre=<value>

+ + + + + +
+

original work category

+
+ + + + + +
+

subject=<value>

+ + + + + +
+

contents of the work

+
+ + + + + +
+

copyright=<value>

+ + + + + +
+

copyright information

+
+ + + + + +
+

srcform=<value>

+ + + + + +
+

original format of the digitized material

+
+ + + + + +
+

comment=<value>

+ + + + + +
+

general comments about the work

+ + + + + +
+

−noautoexpand

+ + + + + +
+

Do not automatically insert the expand filter into the +MEncoder filter chain. Useful to control at which point of +the filter chain subtitles are rendered when hardcoding +subtitles onto a movie.

+
+ + + + + +
+

−noencodedups

+ + + + + +
+

Do not attempt to encode duplicate frames in duplicate; +always output zero-byte frames to indicate duplicates. +Zero-byte frames will be written anyway unless a filter or +encoder capable of doing duplicate encoding is loaded. +Currently the only such filter is harddup.

+
+ + + + + +
+

−noodml (−of avi only)

+ + + + + +
+

Do not write OpenDML index for AVI files >1GB.

+
+ + + + + +
+

−noskip

+ + + + + +
+

Do not skip frames.

+
+ + + + + +
+

−o <filename>

+ + + + + +
+

Outputs to the given filename.
+If you want a default output filename, you can put this +option in the MEncoder config file.

+
+ + + + + +
+

−oac <codec name>

+ + + + + +
+

Encode with the given audio codec (no default +set).
+NOTE:
Use −oac help to get a list of available +audio codecs.

+ +

EXAMPLE:

+ + + + + +
+

−oac copy

+ + + + + +
+

no encoding, just streamcopy

+ + + + + +
+

−oac pcm

+ + + + + +
+

Encode to uncompressed PCM.

+ + + + + +
+

−oac mp3lame

+ + + + + +
+

Encode to MP3 (using LAME).

+ + + + + +
+

−oac lavc

+ + + + + +
+

Encode with a libavcodec codec.

+ + + + + +
+

−of <format> (BETA CODE!)

+ + + + + +
+

Encode to the specified container format (default: +AVI).
+NOTE:
Use −of help to get a list of available +container formats.

+ +

EXAMPLE:

+ + + + + +
+

−of avi

+ + + + + +
+

Encode to AVI.

+ + + + + +
+

−of mpeg

+ + + + + +
+

Encode to MPEG (also see −mpegopts).

+ + + + + +
+

−of lavf

+ + + + + +
+

Encode with libavformat muxers (also see +−lavfopts).

+ + + + + +
+

−of rawvideo

+ + + + + +
+

raw video stream (no muxing − one video stream +only)

+ + + + + +
+

−of rawaudio

+ + + + + +
+

raw audio stream (no muxing − one audio stream +only)

+ + + + + +
+

−ofps <fps>

+ + + + + +
+

Specify a frames per second (fps) value for the output +file, which can be different from that of the source +material. Must be set for variable fps (ASF, some MOV) and +progressive (30000/1001 fps telecined MPEG) files.

+
+ + + + + +
+

−ovc <codec name>

+ + + + + +
+

Encode with the given video codec (no default +set).
+NOTE:
Use −ovc help to get a list of available +video codecs.

+ +

EXAMPLE:

+ + + + + +
+

−ovc copy

+ + + + + +
+

no encoding, just streamcopy

+ + + + + +
+

−ovc raw

+ + + + + +
+

Encode to an arbitrary uncompressed format (use +’−vf format’ to select).

+ + + + + +
+

−ovc lavc

+ + + + + +
+

Encode with a libavcodec codec.

+ + + + + +
+

−passlogfile <filename>

+ + + + + +
+

Dump first pass information to <filename> instead +of the default divx2pass.log in two pass encoding mode.

+
+ + + + + +
+

−skiplimit <value>

+ + + + + +
+

Specify the maximum number of frames that may be skipped +after encoding one frame (−noskiplimit for +unlimited).

+
+ + + + + +
+

−vobsubout <basename>

+ + + + + +
+

Specify the basename for the output .idx and .sub files. +This turns off subtitle rendering in the encoded movie and +diverts it to VOBsub subtitle files.

+
+ + + + + +
+

−vobsuboutid <langid>

+ + + + + +
+

Specify the language two letter code for the subtitles. +This overrides what is read from the DVD or the .ifo +file.

+
+ + + + + +
+

−vobsuboutindex <index>

+ + + + + +
+

Specify the index of the subtitles in the output files +(default: 0).

+
+ +

CODEC SPECIFIC ENCODING OPTIONS (MENCODER ONLY)

+ + + + + +
+

You can specify codec specific encoding parameters using +the following syntax:

+
+ + + + + +
+

−<codec>opts +<option1[=value],option2,...>

+ + + + + +
+

Where <codec> may be: lavc, xvidenc, lame, toolame, +twolame, nuv, xvfw, faac, x264enc, mpeg, lavf.

+
+ + + + + +
+

lame (−lameopts)

+ + + + + +
+

help

+ + + + + +
+

get help

+
+ + + + + +
+

vbr=<0−4>

+ + + + + +
+

variable bitrate method

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

cbr

+
+
+ +

1

+
+ +

mt

+
+
+ +

2

+
+ +

rh (default)

+
+
+ +

3

+
+ +

abr

+
+
+ +

4

+
+ +

mtrh

+
+
+ + + + + +
+

abr

+ + + + + +
+

average bitrate

+
+ + + + + +
+

cbr

+ + + + + +
+

constant bitrate Also forces CBR mode encoding on +subsequent ABR presets modes.

+
+ + + + + +
+

br=<0−1024>

+ + + + + +
+

bitrate in kbps (CBR and ABR only)

+
+ + + + + +
+

q=<0−9>

+ + + + + +
+

quality (0 − highest, 9 − lowest) (VBR +only)

+
+ + + + + +
+

aq=<0−9>

+ + + + + +
+

algorithmic quality (0 − best/slowest, 9 − +worst/fastest)

+
+ + + + + +
+

ratio=<1−100>

+ + + + + +
+

compression ratio

+
+ + + + + +
+

vol=<0−10>

+ + + + + +
+

audio input gain

+
+ + + + + +
+

mode=<0−3>

+ + + + + +
+

(default: auto)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

stereo

+
+
+ +

1

+
+ +

joint-stereo

+
+
+ +

2

+
+ +

dualchannel

+
+
+ +

3

+
+ +

mono

+
+
+ + + + + +
+

padding=<0−2>

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none

+
+
+ +

1

+
+ +

all

+
+
+ +

2

+
+ +

adjust

+
+
+ + + + + +
+

fast

+ + + + + +
+

Switch on faster encoding on subsequent VBR presets +modes. This results in slightly lower quality and higher +bitrates.

+
+ + + + + +
+

highpassfreq=<freq>

+ + + + + +
+

Set a highpass filtering frequency in Hz. Frequencies +below the specified one will be cut off. A value of -1 will +disable filtering, a value of 0 will let LAME choose values +automatically.

+
+ + + + + +
+

lowpassfreq=<freq>

+ + + + + +
+

Set a lowpass filtering frequency in Hz. Frequencies +above the specified one will be cut off. A value of -1 will +disable filtering, a value of 0 will let LAME choose values +automatically.

+
+ + + + + +
+

preset=<value>

+ + + + + +
+

preset values

+ + + + + +
+

help

+ + + + + +
+

Print additional options and information about presets +settings.

+
+ + + + + +
+

medium

+ + + + + +
+

VBR encoding, good quality, 150−180 kbps bitrate +range

+
+ + + + + +
+

standard

+ + + + + +
+

VBR encoding, high quality, 170−210 kbps bitrate +range

+
+ + + + + +
+

extreme

+ + + + + +
+

VBR encoding, very high quality, 200−240 kbps +bitrate range

+
+ + + + + +
+

insane

+ + + + + +
+

CBR encoding, highest preset quality, 320 kbps +bitrate

+
+ + + + + +
+

<8−320>

+ + + + + +
+

ABR encoding at average given kbps bitrate

+ + + + + +
+

EXAMPLES:

+ + + + + +
+

fast:preset=standard

+ + + + + +
+

suitable for most people and most music types and already +quite high quality

+ + + + + +
+

cbr:preset=192

+ + + + + +
+

Encode with ABR presets at a 192 kbps forced constant +bitrate.

+ + + + + +
+

preset=172

+ + + + + +
+

Encode with ABR presets at a 172 kbps average +bitrate.

+ + + + + +
+

preset=extreme

+ + + + + +
+

for people with extremely good hearing and similar +equipment

+ + + + + +
+

toolame and twolame (−toolameopts and +−twolameopts respectively)

+ + + + + +
+

br=<32−384>

+ + + + + +
+

In CBR mode this parameter indicates the bitrate in kbps, +when in VBR mode it is the minimum bitrate allowed per +frame. VBR mode will not work with a value below 112.

+
+ + + + + +
+

vbr=<-50−50> (VBR only)

+ + + + + +
+

variability range; if negative the encoder shifts the +average bitrate towards the lower limit, if positive towards +the higher. When set to 0 CBR is used (default).

+
+ + + + + +
+

maxvbr=<32−384> (VBR only)

+ + + + + +
+

maximum bitrate allowed per frame, in kbps

+
+ + + + + +
+

mode=<stereo | jstereo | mono | +dual>

+ + + + + +
+

(default: mono for 1-channel audio, stereo otherwise)

+
+ + + + + +
+

psy=<-1−4>

+ + + + + +
+

psychoacoustic model (default: 2)

+
+ + + + + +
+

errprot=<0 | 1>

+ + + + + +
+

Include error protection.

+
+ + + + + +
+

debug=<0−10>

+ + + + + +
+

debug level

+ + + + + +
+

faac (−faacopts)

+ + + + + +
+

br=<bitrate>

+ + + + + +
+

average bitrate in kbps (mutually exclusive with +quality)

+
+ + + + + +
+

quality=<1−1000>

+ + + + + +
+

quality mode, the higher the better (mutually exclusive +with br)

+
+ + + + + +
+

object=<1−4>

+ + + + + +
+

object type complexity

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

MAIN (default)

+
+
+ +

2

+
+ +

LOW

+
+
+ +

3

+
+ +

SSR

+
+
+ +

4

+
+ +

LTP (extremely slow)

+
+
+ + + + + +
+

mpeg=<2|4>

+ + + + + +
+

MPEG version (default: 4)

+
+ + + + + +
+

tns

+ + + + + +
+

Enables temporal noise shaping.

+
+ + + + + +
+

cutoff=<0−sampling_rate/2>

+ + + + + +
+

cutoff frequency (default: sampling_rate/2)

+
+ + + + + +
+

raw

+ + + + + +
+

Stores the bitstream as raw payload with extradata in the +container header (default: 0, corresponds to ADTS). Do not +set this flag if not explicitly required or you will not be +able to remux the audio stream later on.

+ + + + + +
+

lavc (−lavcopts)

+ + + + + +
+

Many libavcodec (lavc for short) options are tersely +documented. Read the source for full details.

+ +

EXAMPLE:

+ + + + + +
+

vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250

+ + + + + +
+

acodec=<value>

+ + + + + +
+

audio codec (default: mp2)

+ + + + + +
+

ac3

+ + + + + +
+

Dolby Digital (AC-3)

+ + + + + +
+

adpcm_*

+ + + + + +
+

Adaptive PCM formats - see the HTML documentation for +details.

+ + + + + +
+

flac

+ + + + + +
+

Free Lossless Audio Codec (FLAC)

+ + + + + +
+

g726

+ + + + + +
+

G.726 ADPCM

+ + + + + +
+

libamr_nb

+ + + + + +
+

3GPP Adaptive Multi-Rate (AMR) narrow-band

+ + + + + +
+

libamr_wb

+ + + + + +
+

3GPP Adaptive Multi-Rate (AMR) wide-band

+ + + + + +
+

libfaac

+ + + + + +
+

Advanced Audio Coding (AAC) - using FAAC

+ + + + + +
+

libmp3lame

+ + + + + +
+

MPEG-1 audio layer 3 (MP3) - using LAME

+ + + + + +
+

mp2

+ + + + + +
+

MPEG-1 audio layer 2 (MP2)

+ + + + + +
+

pcm_*

+ + + + + +
+

PCM formats - see the HTML documentation for +details.

+ + + + + +
+

roq_dpcm

+ + + + + +
+

Id Software RoQ DPCM

+ + + + + +
+

sonic

+ + + + + +
+

experimental simple lossy codec

+ + + + + +
+

sonicls

+ + + + + +
+

experimental simple lossless codec

+ + + + + +
+

vorbis

+ + + + + +
+

Vorbis

+ + + + + +
+

wmav1

+ + + + + +
+

Windows Media Audio v1

+ + + + + +
+

wmav2

+ + + + + +
+

Windows Media Audio v2

+ + + + + +
+

abitrate=<value>

+ + + + + +
+

audio bitrate in kbps (default: 224)

+
+ + + + + +
+

atag=<value>

+ + + + + +
+

Use the specified Windows audio format tag (e.g. +atag=0x55).

+
+ + + + + +
+

bit_exact

+ + + + + +
+

Use only bit exact algorithms (except (I)DCT). +Additionally bit_exact disables several optimizations and +thus should only be used for regression tests, which need +binary identical files even if the encoder version changes. +This also suppresses the user_data header in MPEG-4 streams. +Do not use this option unless you know exactly what you are +doing.

+
+ + + + + +
+

threads=<1−8>

+ + + + + +
+

Maximum number of threads to use (default: 1). May have a +slight negative effect on motion estimation.

+ + + + + +
+

vcodec=<value>

+ + + + + +
+

Employ the specified codec (default: mpeg4).

+ + + + + +
+

asv1

+ + + + + +
+

ASUS Video v1

+ + + + + +
+

asv2

+ + + + + +
+

ASUS Video v2

+ + + + + +
+

dvvideo

+ + + + + +
+

Sony Digital Video

+ + + + + +
+

ffv1

+ + + + + +
+

FFmpeg’s lossless video codec

+ + + + + +
+

ffvhuff

+ + + + + +
+

nonstandard 20% smaller HuffYUV using YV12

+ + + + + +
+

flv

+ + + + + +
+

Sorenson H.263 used in Flash Video

+ + + + + +
+

h261

+ + + + + +
+

H.261

+ + + + + +
+

h263

+ + + + + +
+

H.263

+ + + + + +
+

h263p

+ + + + + +
+

H.263+

+ + + + + +
+

huffyuv

+ + + + + +
+

HuffYUV

+ + + + + +
+

libtheora

+ + + + + +
+

Theora

+ + + + + +
+

libx264

+ + + + + +
+

x264 H.264/AVC MPEG-4 Part 10

+ + + + + +
+

libxvid

+ + + + + +
+

Xvid MPEG-4 Part 2 (ASP)

+ + + + + +
+

ljpeg

+ + + + + +
+

Lossless JPEG

+ + + + + +
+

mjpeg

+ + + + + +
+

Motion JPEG

+ + + + + +
+

mpeg1video

+ + + + + +
+

MPEG-1 video

+ + + + + +
+

mpeg2video

+ + + + + +
+

MPEG-2 video

+ + + + + +
+

mpeg4

+ + + + + +
+

MPEG-4 (DivX 4/5)

+ + + + + +
+

msmpeg4

+ + + + + +
+

DivX 3

+ + + + + +
+

msmpeg4v2

+ + + + + +
+

MS MPEG4v2

+ + + + + +
+

roqvideo

+ + + + + +
+

ID Software RoQ Video

+ + + + + +
+

rv10

+ + + + + +
+

an old RealVideo codec

+ + + + + +
+

snow (also see: vstrict)

+ + + + + +
+

FFmpeg’s experimental wavelet-based codec

+ + + + + +
+

svq1

+ + + + + +
+

Apple Sorenson Video 1

+ + + + + +
+

wmv1

+ + + + + +
+

Windows Media Video, version 1 (AKA WMV7)

+ + + + + +
+

wmv2

+ + + + + +
+

Windows Media Video, version 2 (AKA WMV8)

+ + + + + +
+

vqmin=<1−31>

+ + + + + +
+

minimum quantizer (pass 1/2)

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

Not recommended (much larger file, little quality +difference and weird side effects: msmpeg4, h263 will be +very low quality, ratecontrol will be confused resulting in +lower quality and some decoders will not be able to decode +it).

+
+ +

2

+
+ +

Recommended for normal mpeg4/mpeg1video encoding +(default).

+
+ +

3

+
+ +

Recommended for h263(p)/msmpeg4. The reason for +preferring 3 over 2 is that 2 could lead to overflows. (This +will be fixed for h263(p) by changing the quantizer per MB +in the future, msmpeg4 cannot be fixed as it does not +support that.)

+
+ + + + + +
+

lmin=<0.01−255.0>

+ + + + + +
+

Minimum frame-level Lagrange multiplier for ratecontrol +(default: 2.0). Lavc will rarely use quantizers below the +value of lmin. Lowering lmin will make lavc more likely to +choose lower quantizers for some frames, but not lower than +the value of vqmin. Likewise, raising lmin will make lavc +less likely to choose low quantizers, even if vqmin would +have allowed them. You probably want to set lmin +approximately equal to vqmin. When adaptive quantization is +in use, changing lmin/lmax may have less of an effect; see +mblmin/mblmax.

+ + + + + +
+

lmax=<0.01−255.0>

+ + + + + +
+

maximum Lagrange multiplier for ratecontrol (default: +31.0)

+ + + + + +
+

mblmin=<0.01−255.0>

+ + + + + +
+

Minimum macroblock-level Lagrange multiplier for +ratecontrol (default:2.0). This parameter affects adaptive +quantization options like qprd, lumi_mask, etc..

+ + + + + +
+

mblmax=<0.01−255.0>

+ + + + + +
+

Maximum macroblock-level Lagrange multiplier for +ratecontrol (default: 31.0).

+ + + + + +
+

vqscale=<0−31>

+ + + + + +
+

Constant quantizer / constant quality encoding (selects +fixed quantizer mode). A lower value means better quality +but larger files (default: -1). In case of snow codec, value +0 means lossless encoding. Since the other codecs do not +support this, vqscale=0 will have an undefined effect. 1 is +not recommended (see vqmin for details).

+
+ + + + + +
+

vqmax=<1−31>

+ + + + + +
+

Maximum quantizer (pass 1/2), 10−31 should be a +sane range (default: 31).

+
+ + + + + +
+

mbqmin=<1−31>

+ + + + + +
+

obsolete, use vqmin

+
+ + + + + +
+

mbqmax=<1−31>

+ + + + + +
+

obsolete, use vqmax

+
+ + + + + +
+

vqdiff=<1−31>

+ + + + + +
+

maximum quantizer difference between consecutive I- or +P-frames (pass 1/2) (default: 3)

+
+ + + + + +
+

vmax_b_frames=<0−4>

+ + + + + +
+

maximum number of B-frames between non-B-frames:

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

no B-frames (default)

+
+
+ +

0−2

+
+ +

sane range for MPEG-4

+
+
+ + + + + +
+

vme=<0−5>

+ + + + + +
+

motion estimation method. Available methods are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none (very low quality)

+
+ +

1

+
+ +

full (slow, currently unmaintained and disabled)

+
+ +

2

+
+ +

log (low quality, currently unmaintained and +disabled)

+
+ +

3

+
+ +

phods (low quality, currently unmaintained and +disabled)

+
+ +

4

+
+ +

EPZS: size=1 diamond, size can be adjusted with the *dia +options (default)

+
+ +

5

+
+ +

X1 (experimental, currently aliased to EPZS)

+
+ +

8

+
+ +

iter (iterative overlapped block, only used in snow)

+
+ + + + + +
+

NOTE: 0−3 currently ignores the amount of +bits spent, so quality may be low.

+ + + + + +
+

me_range=<0−9999>

+ + + + + +
+

motion estimation search range (default: 0 +(unlimited))

+
+ + + + + +
+

mbd=<0−2> (see also *cmp, +qpel)

+ + + + + +
+

Macroblock decision algorithm (high quality mode), encode +each macro block in all modes and choose the best. This is +slow but results in better quality and file size. When mbd +is set to 1 or 2, the value of mbcmp is ignored when +comparing macroblocks. If any comparison setting (precmp, +subcmp, cmp, or mbcmp) is nonzero, however, a slower but +better half-pel motion search will be used, regardless of +what mbd is set to. If qpel is set, quarter-pel motion +search will be used regardless.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Use comparison function given by mbcmp (default).

+
+ +

1

+
+ +

Select the MB mode which needs the fewest bits +(=vhq).

+
+ +

2

+
+ +

Select the MB mode which has the best rate +distortion.

+
+ + + + + +
+

vhq

+ + + + + +
+

Same as mbd=1, kept for compatibility reasons.

+
+ + + + + +
+

v4mv

+ + + + + +
+

Allow 4 motion vectors per macroblock (slightly better +quality). Works better if used with mbd>0.

+
+ + + + + +
+

obmc

+ + + + + +
+

overlapped block motion compensation (H.263+)

+
+ + + + + +
+

loop

+ + + + + +
+

loop filter (H.263+) note, this is broken

+
+ + + + + +
+

inter_threshold <-1000−1000>

+ + + + + +
+

Does absolutely nothing at the moment.

+
+ + + + + +
+

keyint=<0−300>

+ + + + + +
+

maximum interval between keyframes in frames (default: +250 or one keyframe every ten seconds in a 25fps movie. This +is the recommended default for MPEG-4). Most codecs require +regular keyframes in order to limit the accumulation of +mismatch error. Keyframes are also needed for seeking, as +seeking is only possible to a keyframe - but keyframes need +more space than other frames, so larger numbers here mean +slightly smaller files but less precise seeking. 0 is +equivalent to 1, which makes every frame a keyframe. Values +>300 are not recommended as the quality might be bad +depending upon decoder, encoder and luck. It is a common for +MPEG-1/2 to use values <=30.

+
+ + + + + +
+ +

sc_threshold=<-1000000000−1000000000>

+ + + + + +
+

Threshold for scene change detection. A keyframe is +inserted by libavcodec when it detects a scene change. You +can specify the sensitivity of the detection with this +option. -1000000000 means there is a scene change detected +at every frame, 1000000000 means no scene changes are +detected (default: 0).

+
+ + + + + +
+

sc_factor=<any positive integer>

+ + + + + +
+

Causes frames with higher quantizers to be more likely to +trigger a scene change detection and make libavcodec use an +I-frame (default: 1). 1−16 is a sane range. Values +between 2 and 6 may yield increasing PSNR (up to +approximately 0.04 dB) and better placement of I-frames in +high-motion scenes. Higher values than 6 may give very +slightly better PSNR (approximately 0.01 dB more than +sc_factor=6), but noticably worse visual quality.

+
+ + + + + +
+

vb_strategy=<0−2> (pass one +only)

+ + + + + +
+

strategy to choose between I/P/B-frames:

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Always use the maximum number of B-frames (default).

+
+ +

1

+
+ +

Avoid B-frames in high motion scenes. See the +b_sensitivity option to tune this strategy.

+
+ +

2

+
+ +

Places B-frames more or less optimally to yield maximum +quality (slower). You may want to reduce the speed impact of +this option by tuning the option brd_scale.

+
+ + + + + +
+

b_sensitivity=<any integer greater than +0>

+ + + + + +
+

Adjusts how sensitively vb_strategy=1 detects motion and +avoids using B-frames (default: 40). Lower sensitivities +will result in more B-frames. Using more B-frames usually +improves PSNR, but too many B-frames can hurt quality in +high-motion scenes. Unless there is an extremely high amount +of motion, b_sensitivity can safely be lowered below the +default; 10 is a reasonable value in most cases.

+
+ + + + + +
+

brd_scale=<0−10>

+ + + + + +
+

Downscales frames for dynamic B-frame decision (default: +0). Each time brd_scale is increased by one, the frame +dimensions are divided by two, which improves speed by a +factor of four. Both dimensions of the fully downscaled +frame must be even numbers, so brd_scale=1 requires the +original dimensions to be multiples of four, brd_scale=2 +requires multiples of eight, etc. In other words, the +dimensions of the original frame must both be divisible by +2^(brd_scale+1) with no remainder.

+
+ + + + + +
+

bidir_refine=<0−4>

+ + + + + +
+

Refine the two motion vectors used in bidirectional +macroblocks, rather than re-using vectors from the forward +and backward searches. This option has no effect without +B-frames.

+ + + + + + + + + + + + +
+ +

0

+
+ +

Disabled (default).

+
+ +

1−4

+
+ +

Use a wider search (larger values are slower).

+
+ + + + + +
+

vpass=<1−3>

+ + + + + +
+

Activates internal two (or more) pass mode, only specify +if you wish to use two (or more) pass encoding.

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

first pass (also see turbo)

+
+ +

2

+
+ +

second pass

+
+ +

3

+
+ +

Nth pass (second and subsequent passes of N-pass +encoding)

+
+ + + + + +
+

Here is how it works, and how to use it:
+The first pass (vpass=1) writes the statistics file. You +might want to deactivate some CPU-hungry options, like +"turbo" mode does.
+In two pass mode, the second pass (vpass=2) reads the +statistics file and bases ratecontrol decisions on it.
+In N-pass mode, the second pass (vpass=3, that is not a +typo) does both: It first reads the statistics, then +overwrites them. You might want to backup divx2pass.log +before doing this if there is any possibility that you will +have to cancel MEncoder. You can use all encoding options, +except very CPU-hungry options like "qns".
+You can run this same pass over and over to refine the +encode. Each subsequent pass will use the statistics from +the previous pass to improve. The final pass can include any +CPU-hungry encoding options.
+If you want a 2 pass encode, use first vpass=1, and then +vpass=2.
+If you want a 3 or more pass encode, use vpass=1 for the +first pass and then vpass=3 and then vpass=3 again and again +until you are satisfied with the encode.

+ + + + + +
+

huffyuv:

+ + + + + +
+

pass 1

+ + + + + +
+

Saves statistics.

+ + + + + +
+

pass 2

+ + + + + +
+

Encodes with an optimal Huffman table based upon +statistics from the first pass.

+ + + + + +
+

turbo (two pass only)

+ + + + + +
+

Dramatically speeds up pass one using faster algorithms +and disabling CPU-intensive options. This will probably +reduce global PSNR a little bit (around 0.01dB) and change +individual frame type and PSNR a little bit more (up to +0.03dB).

+
+ + + + + +
+

aspect=<x/y>

+ + + + + +
+

Store movie aspect internally, just like with MPEG files. +Much nicer than rescaling, because quality is not decreased. +Only MPlayer will play these files correctly, other players +will display them with wrong aspect. The aspect parameter +can be given as a ratio or a floating point number.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

aspect=16/9 or aspect=1.78

+ + + + + +
+

autoaspect

+ + + + + +
+

Same as the aspect option, but automatically computes +aspect, taking into account all the adjustments +(crop/expand/scale/ etc.) made in the filter chain. Does not +incur a performance penalty, so you can safely leave it +always on.

+
+ + + + + +
+

vbitrate=<value>

+ + + + + +
+

Specify bitrate (pass 1/2) (default: 800).
+WARNING:
1kbit = 1000 bits

+ + + + + +
+

4−16000

+ + + + + +
+

(in kbit)

+ + + + + +
+

16001−24000000

+ + + + + +
+

(in bit)

+ + + + + +
+

vratetol=<value>

+ + + + + +
+

approximated file size tolerance in kbit. +1000−100000 is a sane range. (warning: 1kbit = 1000 +bits) (default: 8000)
+NOTE:
vratetol should not be too large during the second +pass or there might be problems if vrc_(min|max)rate is +used.

+
+ + + + + +
+

vrc_maxrate=<value>

+ + + + + +
+

maximum bitrate in kbit/sec (pass 1/2) (default: 0, +unlimited)

+
+ + + + + +
+

vrc_minrate=<value>

+ + + + + +
+

minimum bitrate in kbit/sec (pass 1/2) (default: 0, +unlimited)

+
+ + + + + +
+

vrc_buf_size=<value>

+ + + + + +
+

buffer size in kbit (pass 1/2). For MPEG-1/2 this also +sets the vbv buffer size, use 327 for VCD, 917 for SVCD and +1835 for DVD.

+
+ + + + + +
+

vrc_buf_aggressivity

+ + + + + +
+

currently useless

+
+ + + + + +
+

vrc_strategy

+ + + + + +
+

Ratecontrol method. Note that some of the +ratecontrol-affecting options will have no effect if +vrc_strategy is not set to 0.

+ + + + + + + + + + + + +
+ +

0

+
+ +

Use internal lavc ratecontrol (default).

+
+ +

1

+
+ +

Use Xvid ratecontrol (experimental; requires MEncoder to +be compiled with support for Xvid 1.1 or higher).

+
+ + + + + +
+

vb_qfactor=<-31.0−31.0>

+ + + + + +
+

quantizer factor between B- and non-B-frames (pass 1/2) +(default: 1.25)

+
+ + + + + +
+

vi_qfactor=<-31.0−31.0>

+ + + + + +
+

quantizer factor between I- and non-I-frames (pass 1/2) +(default: 0.8)

+
+ + + + + +
+

vb_qoffset=<-31.0−31.0>

+ + + + + +
+

quantizer offset between B- and non-B-frames (pass 1/2) +(default: 1.25)

+
+ + + + + +
+

vi_qoffset=<-31.0−31.0>

+ + + + + +
+

(pass 1/2) (default: 0.0)
+if v{b|i}_qfactor > 0
+I/B-frame quantizer = P-frame quantizer * v{b|i}_qfactor + +v{b|i}_qoffset
+else
+do normal ratecontrol (do not lock to next P-frame +quantizer) and set q= -q * v{b|i}_qfactor + +v{b|i}_qoffset
+HINT:
To do constant quantizer encoding with different +quantizers for I/P- and B-frames you can use: lmin= +<ip_quant>:lmax= <ip_quant>:vb_qfactor= +<b_quant/ip_quant>.

+
+ + + + + +
+

vqblur=<0.0−1.0> (pass one)

+ + + + + +
+

Quantizer blur (default: 0.5), larger values will average +the quantizer more over time (slower change).

+ + + + + + + + + + + + +
+ +

0.0

+
+ +

Quantizer blur disabled.

+
+ +

1.0

+
+ +

Average the quantizer over all previous frames.

+
+ + + + + +
+

vqblur=<0.0−99.0> (pass two)

+ + + + + +
+

Quantizer gaussian blur (default: 0.5), larger values +will average the quantizer more over time (slower +change).

+
+ + + + + +
+

vqcomp=<0.0−1.0>

+ + + + + +
+

Quantizer compression, vrc_eq depends upon this (pass +1/2) (default: 0.5). For instance, assuming the default rate +control equation is used, if vqcomp=1.0, the ratecontrol +allocates to each frame the number of bits needed to encode +them all at the same QP. If vqcomp=0.0, the ratecontrol +allocates the same number of bits to each frame, i.e. strict +CBR. NOTE: Those are extreme settings and should +never be used. Perceptual quality will be optimal somewhere +in between these two extremes.

+
+ + + + + +
+

vrc_eq=<equation>

+ + + + + +
+

main ratecontrol equation (pass 1/2)

+ + + + + +
+

1

+ + + + + +
+

constant bitrate

+
+ + + + + +
+

tex

+ + + + + +
+

constant quality

+
+ + + + + +
+

1+(tex/avgTex-1)*qComp

+ + + + + +
+

approximately the equation of the old ratecontrol +code

+
+ + + + + +
+

tex^qComp

+ + + + + +
+

with qcomp 0.5 or something like that (default)

+ + + + + +
+

infix operators:

+ + + + + +
+

+,-,*,/,^

+ + + + + +
+

variables:

+ + + + + +
+

tex

+ + + + + +
+

texture complexity

+
+ + + + + +
+

iTex,pTex

+ + + + + +
+

intra, non-intra texture complexity

+
+ + + + + +
+

avgTex

+ + + + + +
+

average texture complexity

+
+ + + + + +
+

avgIITex

+ + + + + +
+

average intra texture complexity in I-frames

+
+ + + + + +
+

avgPITex

+ + + + + +
+

average intra texture complexity in P-frames

+
+ + + + + +
+

avgPPTex

+ + + + + +
+

average non-intra texture complexity in P-frames

+
+ + + + + +
+

avgBPTex

+ + + + + +
+

average non-intra texture complexity in B-frames

+
+ + + + + +
+

mv

+ + + + + +
+

bits used for motion vectors

+
+ + + + + +
+

fCode

+ + + + + +
+

maximum length of motion vector in log2 scale

+
+ + + + + +
+

iCount

+ + + + + +
+

number of intra macroblocks / number of macroblocks

+
+ + + + + +
+

var

+ + + + + +
+

spatial complexity

+
+ + + + + +
+

mcVar

+ + + + + +
+

temporal complexity

+
+ + + + + +
+

qComp

+ + + + + +
+

qcomp from the command line

+
+ + + + + +
+

isI, isP, isB

+ + + + + +
+

Is 1 if picture type is I/P/B else 0.

+
+ + + + + +
+

Pi,E

+ + + + + +
+

See your favorite math book.

+ + + + + +
+

functions:

+ + + + + +
+

max(a,b),min(a,b)

+ + + + + +
+

maximum / minimum

+
+ + + + + +
+

gt(a,b)

+ + + + + +
+

is 1 if a>b, 0 otherwise

+
+ + + + + +
+

lt(a,b)

+ + + + + +
+

is 1 if a<b, 0 otherwise

+
+ + + + + +
+

eq(a,b)

+ + + + + +
+

is 1 if a==b, 0 otherwise

+
+ + + + + +
+

sin, cos, tan, sinh, cosh, tanh, exp, log, abs

+ + + + + +
+

vrc_override=<options>

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...) (pass 1/2). The options are +<start-frame>, <end-frame>, +<quality>[/<start-frame>, <end-frame>, +<quality>[/...]]:

+ + + + + +
+

quality (2−31)

+ + + + + +
+

quantizer

+ + + + + +
+

quality (-500−0)

+ + + + + +
+

quality correction in %

+ + + + + +
+

vrc_init_cplx=<0−1000>

+ + + + + +
+

initial complexity (pass 1)

+
+ + + + + +
+

vrc_init_occupancy=<0.0−1.0>

+ + + + + +
+

initial buffer occupancy, as a fraction of vrc_buf_size +(default: 0.9)

+
+ + + + + +
+

vqsquish=<0|1>

+ + + + + +
+

Specify how to keep the quantizer between qmin and qmax +(pass 1/2).

+ + + + + + + + + + + + +
+ +

0

+
+ +

Use clipping.

+
+ +

1

+
+ +

Use a nice differentiable function (default).

+
+ + + + + +
+

vlelim=<-1000−1000>

+ + + + + +
+

Sets single coefficient elimination threshold for +luminance. Negative values will also consider the DC +coefficient (should be at least -4 or lower for encoding at +quant=1):

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+
+ +

-4

+
+ +

JVT recommendation

+
+
+ + + + + +
+

vcelim=<-1000−1000>

+ + + + + +
+

Sets single coefficient elimination threshold for +chrominance. Negative values will also consider the DC +coefficient (should be at least -4 or lower for encoding at +quant=1):

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+
+ +

7

+
+ +

JVT recommendation

+
+
+ + + + + +
+

vstrict=<-2|-1|0|1>

+ + + + + +
+

strict standard compliance

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled

+
+ +

1

+
+ +

Only recommended if you want to feed the output into the +MPEG-4 reference decoder.

+
+ +

-1

+
+ +

Allow libavcodec specific extensions (default).

+
+ +

-2

+
+ +

Enables experimental codecs and features which may not +be playable with future MPlayer versions (snow).

+
+ + + + + +
+

vdpart

+ + + + + +
+

Data partitioning. Adds 2 Bytes per video packet, +improves error-resistance when transferring over unreliable +channels (e.g. streaming over the internet). Each video +packet will be encoded in 3 separate partitions:

+ + + + + +
+

1. MVs

+ + + + + +
+

movement

+ + + + + +
+

2. DC coefficients

+ + + + + +
+

low res picture

+ + + + + +
+

3. AC coefficients

+ + + + + +
+

details

+ + + + + +
+

MV & DC are most important, losing them looks far +worse than losing the AC and the 1. & 2. partition. (MV +& DC) are far smaller than the 3. partition (AC) meaning +that errors will hit the AC partition much more often than +the MV & DC partitions. Thus, the picture will look +better with partitioning than without, as without +partitioning an error will trash AC/DC/MV equally.

+ + + + + +
+

vpsize=<0−10000> (also see +vdpart)

+ + + + + +
+

Video packet size, improves error-resistance.

+ + + + + +
+

0

+ + + + + +
+

disabled (default)

+ + + + + +
+

100−1000

+ + + + + +
+

good choice

+ + + + + +
+

ss

+ + + + + +
+

slice structured mode for H.263+

+
+ + + + + +
+

gray

+ + + + + +
+

grayscale only encoding (faster)

+
+ + + + + +
+

vfdct=<0−10>

+ + + + + +
+

DCT algorithm

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Automatically select a good one (default).

+
+
+ +

1

+
+ +

fast integer

+
+
+ +

2

+
+ +

accurate integer

+
+
+ +

3

+
+ +

MMX

+
+
+ +

4

+
+ +

mlib

+
+
+ +

5

+
+ +

AltiVec

+
+
+ +

6

+
+ +

floating point AAN

+
+
+ + + + + +
+

idct=<0−99>

+ + + + + +
+

IDCT algorithm
+NOTE:
To the best of our knowledge all these IDCTs do +pass the IEEE1180 tests.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Automatically select a good one (default).

+
+ +

1

+
+ +

JPEG reference integer

+
+ +

2

+
+ +

simple

+
+ +

3

+
+ +

simplemmx

+
+ +

4

+
+ +

libmpeg2mmx (inaccurate, do not use for encoding with +keyint >100)

+
+ +

5

+
+ +

ps2

+
+ +

6

+
+ +

mlib

+
+ +

7

+
+ +

arm

+
+ +

8

+
+ +

AltiVec

+
+ +

9

+
+ +

sh4

+
+ +

10

+
+ +

simplearm

+
+ +

11

+
+ +

H.264

+
+ +

12

+
+ +

VP3

+
+ +

13

+
+ +

IPP

+
+ +

14

+
+ +

xvidmmx

+
+ +

15

+
+ +

CAVS

+
+ +

16

+
+ +

simplearmv5te

+
+ +

17

+
+ +

simplearmv6

+
+ + + + + +
+

lumi_mask=<0.0−1.0>

+ + + + + +
+

Luminance masking is a ’psychosensory’ +setting that is supposed to make use of the fact that the +human eye tends to notice fewer details in very bright parts +of the picture. Luminance masking compresses bright areas +stronger than medium ones, so it will save bits that can be +spent again on other frames, raising overall subjective +quality, while possibly reducing PSNR.
+WARNING:
Be careful, overly large values can cause +disastrous things.
+WARNING:
Large values might look good on some monitors +but may look horrible on other monitors.

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.3

+ + + + + +
+

sane range

+ + + + + +
+

dark_mask=<0.0−1.0>

+ + + + + +
+

Darkness masking is a ’psychosensory’ setting +that is supposed to make use of the fact that the human eye +tends to notice fewer details in very dark parts of the +picture. Darkness masking compresses dark areas stronger +than medium ones, so it will save bits that can be spent +again on other frames, raising overall subjective quality, +while possibly reducing PSNR.
+WARNING:
Be careful, overly large values can cause +disastrous things.
+WARNING:
Large values might look good on some monitors +but may look horrible on other monitors / TV / TFT.

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.3

+ + + + + +
+

sane range

+ + + + + +
+

tcplx_mask=<0.0−1.0>

+ + + + + +
+

Temporal complexity masking (default: 0.0 (disabled)). +Imagine a scene with a bird flying across the whole scene; +tcplx_mask will raise the quantizers of the bird’s +macroblocks (thus decreasing their quality), as the human +eye usually does not have time to see all the bird’s +details. Be warned that if the masked object stops (e.g. the +bird lands) it is likely to look horrible for a short period +of time, until the encoder figures out that the object is +not moving and needs refined blocks. The saved bits will be +spent on other parts of the video, which may increase +subjective quality, provided that tcplx_mask is carefully +chosen.

+
+ + + + + +
+

scplx_mask=<0.0−1.0>

+ + + + + +
+

Spatial complexity masking. Larger values help against +blockiness, if no deblocking filter is used for decoding, +which is maybe not a good idea.
+Imagine a scene with grass (which usually has great spatial +complexity), a blue sky and a house; scplx_mask will raise +the quantizers of the grass’ macroblocks, thus +decreasing its quality, in order to spend more bits on the +sky and the house.
+HINT:
Crop any black borders completely as they will +reduce the quality of the macroblocks (also applies without +scplx_mask).

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.5

+ + + + + +
+

sane range

+ + + + + +
+

NOTE: This setting does not have the same effect +as using a custom matrix that would compress high +frequencies harder, as scplx_mask will reduce the quality of +P blocks even if only DC is changing. The result of +scplx_mask will probably not look as good.

+ + + + + +
+

p_mask=<0.0−1.0> (also see +vi_qfactor)

+ + + + + +
+

Reduces the quality of inter blocks. This is equivalent +to increasing the quality of intra blocks, because the same +average bitrate will be distributed by the rate controller +to the whole video sequence (default: 0.0 (disabled)). +p_mask=1.0 doubles the bits allocated to each intra +block.

+
+ + + + + +
+

border_mask=<0.0−1.0>

+ + + + + +
+

border-processing for MPEG-style encoders. Border +processing increases the quantizer for macroblocks which are +less than 1/5th of the frame width/height away from the +frame border, since they are often visually less +important.

+
+ + + + + +
+

naq

+ + + + + +
+

Normalize adaptive quantization (experimental). When +using adaptive quantization (*_mask), the average per-MB +quantizer may no longer match the requested frame-level +quantizer. Naq will attempt to adjust the per-MB quantizers +to maintain the proper average.

+
+ + + + + +
+

ildct

+ + + + + +
+

Use interlaced DCT.

+
+ + + + + +
+

ilme

+ + + + + +
+

Use interlaced motion estimation (mutually exclusive with +qpel).

+
+ + + + + +
+

alt

+ + + + + +
+

Use alternative scantable.

+
+ + + + + +
+

top=<-1−1>

+ + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

automatic

+
+
+ +

0

+
+ +

bottom field first

+
+
+ +

1

+
+ +

top field first

+
+
+ + + + + +
+

format=<value>

+ + + + + +
+

YV12

+ + + + + +
+

default

+ + + + + +
+

444P

+ + + + + +
+

for ffv1

+ + + + + +
+

422P

+ + + + + +
+

for HuffYUV, lossless JPEG, dv and ffv1

+ + + + + +
+

411P

+ + + + + +
+

for lossless JPEG, dv and ffv1

+ + + + + +
+

YVU9

+ + + + + +
+

for lossless JPEG, ffv1 and svq1

+ + + + + +
+

BGR32

+ + + + + +
+

for lossless JPEG and ffv1

+ + + + + +
+

pred

+ + + + + +
+

(for HuffYUV)

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

left prediction

+
+
+ +

1

+
+ +

plane/gradient prediction

+
+
+ +

2

+
+ +

median prediction

+
+
+ + + + + +
+

pred

+ + + + + +
+

(for lossless JPEG)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

left prediction

+
+
+ +

1

+
+ +

top prediction

+
+
+ +

2

+
+ +

topleft prediction

+
+
+ +

3

+
+ +

plane/gradient prediction

+
+
+ +

6

+
+ +

mean prediction

+
+
+ + + + + +
+

coder

+ + + + + +
+

(for ffv1)

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

vlc coding (Golomb-Rice)

+
+
+ +

1

+
+ +

arithmetic coding (CABAC)

+
+
+ + + + + +
+

context

+ + + + + +
+

(for ffv1)

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

small context model

+
+
+ +

1

+
+ +

large context model

+
+
+ + + + + +
+

(for ffvhuff)

+ + + + + + + + + + + + +
+ +

0

+
+ +

predetermined Huffman tables (builtin or two pass)

+
+ +

1

+
+ +

adaptive Huffman tables

+
+ + + + + +
+

qpel

+ + + + + +
+

Use quarter pel motion compensation (mutually exclusive +with ilme).
+HINT:
This seems only useful for high bitrate +encodings.

+
+ + + + + +
+

mbcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for the macroblock decision, +has only an effect if mbd=0.

+ + + + + +
+

0 (SAD)

+ + + + + +
+

sum of absolute differences, fast (default)

+ + + + + +
+

1 (SSE)

+ + + + + +
+

sum of squared errors

+ + + + + +
+

2 (SATD)

+ + + + + +
+

sum of absolute Hadamard transformed differences

+ + + + + +
+

3 (DCT)

+ + + + + +
+

sum of absolute DCT transformed differences

+ + + + + +
+

4 (PSNR)

+ + + + + +
+

sum of squared quantization errors (avoid, low +quality)

+ + + + + +
+

5 (BIT)

+ + + + + +
+

number of bits needed for the block

+ + + + + +
+

6 (RD)

+ + + + + +
+

rate distortion optimal, slow

+ + + + + +
+

7 (ZERO)

+ + + + + +
+

0

+ + + + + +
+

8 (VSAD)

+ + + + + +
+

sum of absolute vertical differences

+ + + + + +
+

9 (VSSE)

+ + + + + +
+

sum of squared vertical differences

+ + + + + +
+

10 (NSSE)

+ + + + + +
+

noise preserving sum of squared differences

+ + + + + +
+

11 (W53)

+ + + + + +
+

5/3 wavelet, only used in snow

+ + + + + +
+

12 (W97)

+ + + + + +
+

9/7 wavelet, only used in snow

+ + + + + +
+

+256

+ + + + + +
+

Also use chroma, currently does not work (correctly) with +B-frames.

+ + + + + +
+

ildctcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for interlaced DCT decision +(see mbcmp for available comparison functions).

+
+ + + + + +
+

precmp=<0−2000>

+ + + + + +
+

Sets the comparison function for motion estimation pre +pass (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

cmp=<0−2000>

+ + + + + +
+

Sets the comparison function for full pel motion +estimation (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

subcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for sub pel motion +estimation (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

skipcmp=<0−2000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

nssew=<0−1000000>

+ + + + + +
+

This setting controls NSSE weight, where larger weights +will result in more noise. 0 NSSE is identical to SSE You +may find this useful if you prefer to keep some noise in +your encoded video rather than filtering it away before +encoding (default: 8).

+
+ + + + + +
+

predia=<-99−6>

+ + + + + +
+

diamond type and size for motion estimation pre-pass

+
+ + + + + +
+

dia=<-99−6>

+ + + + + +
+

Diamond type & size for motion estimation. Motion +search is an iterative process. Using a small diamond does +not limit the search to finding only small motion vectors. +It is just somewhat more likely to stop before finding the +very best motion vector, especially when noise is involved. +Bigger diamonds allow a wider search for the best motion +vector, thus are slower but result in better quality.
+Big normal diamonds are better quality than shape-adaptive +diamonds.
+Shape-adaptive diamonds are a good tradeoff between speed +and quality.
+NOTE:
The sizes of the normal diamonds and shape +adaptive ones do not have the same meaning.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

-3

+
+ +

shape adaptive (fast) diamond with size 3

+
+ +

-2

+
+ +

shape adaptive (fast) diamond with size 2

+
+ +

-1

+
+ +

uneven multi-hexagon search (slow)

+
+ +

1

+
+ +

normal size=1 diamond (default) =EPZS type diamond

+
+ + + + + +
+

0
+000
+0

+
+ + + + + + + + +
+ +

2

+
+ +

normal size=2 diamond

+
+
+ + + + + +
+

0
+000
+00000
+000
+0

+ + + + + +
+

trell

+ + + + + +
+

Trellis searched quantization. This will find the optimal +encoding for each 8x8 block. Trellis searched quantization +is quite simply an optimal quantization in the PSNR versus +bitrate sense (Assuming that there would be no rounding +errors introduced by the IDCT, which is obviously not the +case.). It simply finds a block for the minimum of error and +lambda*bits.

+ + + + + +
+

lambda

+ + + + + +
+

quantization parameter (QP) dependent constant

+ + + + + +
+

bits

+ + + + + +
+

amount of bits needed to encode the block

+ + + + + +
+

error

+ + + + + +
+

sum of squared errors of the quantization

+ + + + + +
+

cbp

+ + + + + +
+

Rate distorted optimal coded block pattern. Will select +the coded block pattern which minimizes distortion + +lambda*rate. This can only be used together with trellis +quantization.

+
+ + + + + +
+

mv0

+ + + + + +
+

Try to encode each MB with MV=<0,0> and choose the +better one. This has no effect if mbd=0.

+
+ + + + + +
+

mv0_threshold=<any non-negative +integer>

+ + + + + +
+

When surrounding motion vectors are <0,0> and the +motion estimation score of the current block is less than +mv0_threshold, <0,0> is used for the motion vector and +further motion estimation is skipped (default: 256). +Lowering mv0_threshold to 0 can give a slight (0.01dB) PSNR +increase and possibly make the encoded video look slightly +better; raising mv0_threshold past 320 results in diminished +PSNR and visual quality. Higher values speed up encoding +very slightly (usually less than 1%, depending on the other +options used).
+NOTE:
This option does not require mv0 to be +enabled.

+
+ + + + + +
+

qprd (mbd=2 only)

+ + + + + +
+

rate distorted optimal quantization parameter (QP) for +the given lambda of each macroblock

+
+ + + + + +
+

last_pred=<0−99>

+ + + + + +
+

amount of motion predictors from the previous +frame

+ + + + + + + + + + + + +
+ +

0

+
+ +

(default)

+
+ +

a

+
+ +

Will use 2a+1 x 2a+1 macroblock square of motion vector +predictors from the previous frame.

+
+ + + + + +
+

preme=<0−2>

+ + + + + +
+

motion estimation pre-pass

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled

+
+
+ +

1

+
+ +

only after I-frames (default)

+
+
+ +

2

+
+ +

always

+
+
+ + + + + +
+

subq=<1−8>

+ + + + + +
+

subpel refinement quality (for qpel) (default: 8 (high +quality))
+NOTE:
This has a significant effect on speed.

+
+ + + + + +
+

refs=<1−8>

+ + + + + +
+

number of reference frames to consider for motion +compensation (Snow only) (default: 1)

+
+ + + + + +
+

psnr

+ + + + + +
+

print the PSNR (peak signal to noise ratio) for the whole +video after encoding and store the per frame PSNR in a file +with a name like ’psnr_hhmmss.log’. Returned +values are in dB (decibel), the higher the better.

+
+ + + + + +
+

mpeg_quant

+ + + + + +
+

Use MPEG quantizers instead of H.263.

+
+ + + + + +
+

aic

+ + + + + +
+

Enable AC prediction for MPEG-4 or advanced intra +prediction for H.263+. This will improve quality very +slightly (around 0.02 dB PSNR) and slow down encoding very +slightly (about 1%).
+NOTE:
vqmin should be 8 or larger for H.263+ AIC.

+
+ + + + + +
+

aiv

+ + + + + +
+

alternative inter vlc for H.263+

+
+ + + + + +
+

umv

+ + + + + +
+

unlimited MVs (H.263+ only) Allows encoding of +arbitrarily long MVs.

+
+ + + + + +
+

ibias=<-256−256>

+ + + + + +
+

intra quantizer bias (256 equals 1.0, MPEG style +quantizer default: 96, H.263 style quantizer default: +0)
+NOTE:
The H.263 MMX quantizer cannot handle positive +biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot +handle negative biases (set vfdct=1 or 2).

+
+ + + + + +
+

pbias=<-256−256>

+ + + + + +
+

inter quantizer bias (256 equals 1.0, MPEG style +quantizer default: 0, H.263 style quantizer default: +-64)
+NOTE:
The H.263 MMX quantizer cannot handle positive +biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot +handle negative biases (set vfdct=1 or 2).
+HINT:
A more positive bias (-32 − -16 instead of +-64) seems to improve the PSNR.

+
+ + + + + +
+

nr=<0−100000>

+ + + + + +
+

Noise reduction, 0 means disabled. 0−600 is a +useful range for typical content, but you may want to turn +it up a bit more for very noisy content (default: 0). Given +its small impact on speed, you might want to prefer to use +this over filtering noise away with video filters like +denoise3d or hqdn3d.

+
+ + + + + +
+

qns=<0−3>

+ + + + + +
+

Quantizer noise shaping. Rather than choosing +quantization to most closely match the source video in the +PSNR sense, it chooses quantization such that noise (usually +ringing) will be masked by similar-frequency content in the +image. Larger values are slower but may not result in better +quality. This can and should be used together with trellis +quantization, in which case the trellis quantization +(optimal for constant weight) will be used as startpoint for +the iterative search.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

Only lower the absolute value of coefficients.

+
+ +

2

+
+ +

Only change coefficients before the last non-zero +coefficient + 1.

+
+ +

3

+
+ +

Try all.

+
+ + + + + +
+

inter_matrix=<comma separated +matrix>

+ + + + + +
+

Use custom inter matrix. It needs a comma separated +string of 64 integers.

+
+ + + + + +
+

intra_matrix=<comma separated +matrix>

+ + + + + +
+

Use custom intra matrix. It needs a comma separated +string of 64 integers.

+
+ + + + + +
+

vqmod_amp

+ + + + + +
+

experimental quantizer modulation

+
+ + + + + +
+

vqmod_freq

+ + + + + +
+

experimental quantizer modulation

+
+ + + + + +
+

dc

+ + + + + +
+

intra DC precision in bits (default: 8). If you specify +vcodec=mpeg2video this value can be 8, 9, 10 or 11.

+
+ + + + + +
+

cgop (also see sc_threshold)

+ + + + + +
+

Close all GOPs. Currently it only works if scene change +detection is disabled (sc_threshold=1000000000).

+
+ + + + + +
+

(no)lowdelay

+ + + + + +
+

Sets the low delay flag for MPEG-1/2 (disables +B-frames).

+
+ + + + + +
+

vglobal=<0−3>

+ + + + + +
+

Control writing global video headers.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Codec decides where to write global headers +(default).

+
+ +

1

+
+ +

Write global headers only in extradata (needed for +.mp4/MOV/NUT).

+
+ +

2

+
+ +

Write global headers only in front of keyframes.

+
+ +

3

+
+ +

Combine 1 and 2.

+
+ + + + + +
+

aglobal=<0−3>

+ + + + + +
+

Same as vglobal for audio headers.

+
+ + + + + +
+

level=<value>

+ + + + + +
+

Set CodecContext Level. Use 31 or 41 to play video on a +Playstation 3.

+
+ + + + + +
+

skip_exp=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

skip_factor=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

skip_threshold=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

nuv (−nuvopts)

+ + + + + +
+

Nuppel video is based on RTJPEG and LZO. By default +frames are first encoded with RTJPEG and then compressed +with LZO, but it is possible to disable either or both of +the two passes. As a result, you can in fact output raw +i420, LZO compressed i420, RTJPEG, or the default LZO +compressed RTJPEG.
+NOTE:
The nuvrec documentation contains some advice and +examples about the settings to use for the most common TV +encodings.

+
+ + + + + +
+

c=<0−20>

+ + + + + +
+

chrominance threshold (default: 1)

+
+ + + + + +
+

l=<0−20>

+ + + + + +
+

luminance threshold (default: 1)

+
+ + + + + +
+

lzo

+ + + + + +
+

Enable LZO compression (default).

+
+ + + + + +
+

nolzo

+ + + + + +
+

Disable LZO compression.

+
+ + + + + +
+

q=<3−255>

+ + + + + +
+

quality level (default: 255)

+
+ + + + + +
+

raw

+ + + + + +
+

Disable RTJPEG encoding.

+
+ + + + + +
+

rtjpeg

+ + + + + +
+

Enable RTJPEG encoding (default).

+
+ + + + + +
+

xvidenc (−xvidencopts)

+ + + + + +
+

There are three modes available: constant bitrate (CBR), +fixed quantizer and two pass.

+
+ + + + + +
+

pass=<1|2>

+ + + + + +
+

Specify the pass in two pass mode.

+
+ + + + + +
+

turbo (two pass only)

+ + + + + +
+

Dramatically speeds up pass one using faster algorithms +and disabling CPU-intensive options. This will probably +reduce global PSNR a little bit and change individual frame +type and PSNR a little bit more.

+
+ + + + + +
+

bitrate=<value> (CBR or two pass +mode)

+ + + + + +
+

Sets the bitrate to be used in kbits/second if <16000 +or in bits/second if >16000. If <value> is +negative, Xvid will use its absolute value as the target +size (in kBytes) of the video and compute the associated +bitrate automagically (default: 687 kbits/s).

+
+ + + + + +
+

fixed_quant=<1−31>

+ + + + + +
+

Switch to fixed quantizer mode and specify the quantizer +to be used.

+
+ + + + + +
+

zones=<zone0>[/<zone1>[/...]] (CBR or two +pass mode)

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...). Each zone is +<start-frame>,<mode>,<value> where +<mode> may be

+ + + + + + + + + + + + +
+ +

q

+
+ +

Constant quantizer override, where +value=<2.0−31.0> represents the quantizer +value.

+
+ +

w

+
+ +

Ratecontrol weight override, where +value=<0.01−2.00> represents the quality +correction in %.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

zones=90000,q,20

+ + + + + +
+

Encodes all frames starting with frame 90000 at constant +quantizer 20.

+ + + + + +
+

zones=0,w,0.1/10001,w,1.0/90000,q,20

+ + + + + +
+

Encode frames 0−10000 at 10% bitrate, encode frames +90000 up to the end at constant quantizer 20. Note that the +second zone is needed to delimit the first zone, as without +it everything up until frame 89999 would be encoded at 10% +bitrate.

+ + + + + +
+

me_quality=<0−6>

+ + + + + +
+

This option controls the motion estimation subsystem. The +higher the value, the more precise the estimation should be +(default: 6). The more precise the motion estimation is, the +more bits can be saved. Precision is gained at the expense +of CPU time so decrease this setting if you need realtime +encoding.

+
+ + + + + +
+

(no)qpel

+ + + + + +
+

MPEG-4 uses a half pixel precision for its motion search +by default. The standard proposes a mode where encoders are +allowed to use quarter pixel precision. This option usually +results in a sharper image. Unfortunately it has a great +impact on bitrate and sometimes the higher bitrate use will +prevent it from giving a better image quality at a fixed +bitrate. It is better to test with and without this option +and see whether it is worth activating.

+
+ + + + + +
+

(no)gmc

+ + + + + +
+

Enable Global Motion Compensation, which makes Xvid +generate special frames (GMC-frames) which are well suited +for Pan/Zoom/ Rotating images. Whether or not the use of +this option will save bits is highly dependent on the source +material.

+
+ + + + + +
+

(no)trellis

+ + + + + +
+

Trellis Quantization is a kind of adaptive quantization +method that saves bits by modifying quantized coefficients +to make them more compressible by the entropy encoder. Its +impact on quality is good, and if VHQ uses too much CPU for +you, this setting can be a good alternative to save a few +bits (and gain quality at fixed bitrate) at a lesser cost +than with VHQ (default: on).

+
+ + + + + +
+

(no)cartoon

+ + + + + +
+

Activate this if your encoded sequence is an +anime/cartoon. It modifies some Xvid internal thresholds so +Xvid takes better decisions on frame types and motion +vectors for flat looking cartoons.

+
+ + + + + +
+

(no)chroma_me

+ + + + + +
+

The usual motion estimation algorithm uses only the +luminance information to find the best motion vector. +However for some video material, using the chroma planes can +help find better vectors. This setting toggles the use of +chroma planes for motion estimation (default: on).

+
+ + + + + +
+

(no)chroma_opt

+ + + + + +
+

Enable a chroma optimizer prefilter. It will do some +extra magic on color information to minimize the +stepped-stairs effect on edges. It will improve quality at +the cost of encoding speed. It reduces PSNR by nature, as +the mathematical deviation to the original picture will get +bigger, but the subjective image quality will raise. Since +it works with color information, you might want to turn it +off when encoding in grayscale.

+
+ + + + + +
+

(no)hq_ac

+ + + + + +
+

Activates high-quality prediction of AC coefficients for +intra frames from neighbor blocks (default: on).

+
+ + + + + +
+

vhq=<0−4>

+ + + + + +
+

The motion search algorithm is based on a search in the +usual color domain and tries to find a motion vector that +minimizes the difference between the reference frame and the +encoded frame. With this setting activated, Xvid will also +use the frequency domain (DCT) to search for a motion vector +that minimizes not only the spatial difference but also the +encoding length of the block. Fastest to slowest:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

off

+
+
+ +

1

+
+ +

mode decision (inter/intra MB) (default)

+
+
+ +

2

+
+ +

limited search

+
+
+ +

3

+
+ +

medium search

+
+
+ +

4

+
+ +

wide search

+
+
+ + + + + +
+

(no)lumi_mask

+ + + + + +
+

Adaptive quantization allows the macroblock quantizers to +vary inside each frame. This is a +’psychosensory’ setting that is supposed to make +use of the fact that the human eye tends to notice fewer +details in very bright and very dark parts of the picture. +It compresses those areas more strongly than medium ones, +which will save bits that can be spent again on other +frames, raising overall subjective quality and possibly +reducing PSNR.

+
+ + + + + +
+

(no)grayscale

+ + + + + +
+

Make Xvid discard chroma planes so the encoded video is +grayscale only. Note that this does not speed up encoding, +it just prevents chroma data from being written in the last +stage of encoding.

+
+ + + + + +
+

(no)interlacing

+ + + + + +
+

Encode the fields of interlaced video material. Turn this +option on for interlaced content.
+NOTE:
Should you rescale the video, you would need an +interlace-aware resizer, which you can activate with +−vf scale=<width>:<height>:1.

+
+ + + + + +
+

min_iquant=<0−31>

+ + + + + +
+

minimum I-frame quantizer (default: 2)

+
+ + + + + +
+

max_iquant=<0−31>

+ + + + + +
+

maximum I-frame quantizer (default: 31)

+
+ + + + + +
+

min_pquant=<0−31>

+ + + + + +
+

minimum P-frame quantizer (default: 2)

+
+ + + + + +
+

max_pquant=<0−31>

+ + + + + +
+

maximum P-frame quantizer (default: 31)

+
+ + + + + +
+

min_bquant=<0−31>

+ + + + + +
+

minimum B-frame quantizer (default: 2)

+
+ + + + + +
+

max_bquant=<0−31>

+ + + + + +
+

maximum B-frame quantizer (default: 31)

+
+ + + + + +
+

min_key_interval=<value> (two pass +only)

+ + + + + +
+

minimum interval between keyframes (default: 0)

+
+ + + + + +
+

max_key_interval=<value>

+ + + + + +
+

maximum interval between keyframes (default: 10*fps)

+
+ + + + + +
+

quant_type=<h263|mpeg>

+ + + + + +
+

Sets the type of quantizer to use. For high bitrates, you +will find that MPEG quantization preserves more detail. For +low bitrates, the smoothing of H.263 will give you less +block noise. When using custom matrices, MPEG quantization +must be used.

+
+ + + + + +
+

quant_intra_matrix=<filename>

+ + + + + +
+

Load a custom intra matrix file. You can build such a +file with xvid4conf’s matrix editor.

+
+ + + + + +
+

quant_inter_matrix=<filename>

+ + + + + +
+

Load a custom inter matrix file. You can build such a +file with xvid4conf’s matrix editor.

+
+ + + + + +
+

keyframe_boost=<0−1000> (two pass mode +only)

+ + + + + +
+

Shift some bits from the pool for other frame types to +intra frames, thus improving keyframe quality. This amount +is an extra percentage, so a value of 10 will give your +keyframes 10% more bits than normal (default: 0).

+
+ + + + + +
+

kfthreshold=<value> (two pass mode +only)

+ + + + + +
+

Works together with kfreduction. Determines the minimum +distance below which you consider that two frames are +considered consecutive and treated differently according to +kfreduction (default: 10).

+
+ + + + + +
+

kfreduction=<0−100> (two pass mode +only)

+ + + + + +
+

The above two settings can be used to adjust the size of +keyframes that you consider too close to the first (in a +row). kfthreshold sets the range in which keyframes are +reduced, and kfreduction determines the bitrate reduction +they get. The last I-frame will get treated normally +(default: 30).

+
+ + + + + +
+

max_bframes=<0−4>

+ + + + + +
+

Maximum number of B-frames to put between I/P-frames +(default: 2).

+
+ + + + + +
+

bquant_ratio=<0−1000>

+ + + + + +
+

quantizer ratio between B- and non-B-frames, 150=1.50 +(default: 150)

+
+ + + + + +
+

bquant_offset=<-1000−1000>

+ + + + + +
+

quantizer offset between B- and non-B-frames, 100=1.00 +(default: 100)

+
+ + + + + +
+

bf_threshold=<-255−255>

+ + + + + +
+

This setting allows you to specify what priority to place +on the use of B-frames. The higher the value, the higher the +probability of B-frames being used (default: 0). Do not +forget that B-frames usually have a higher quantizer, and +therefore aggressive production of B-frames may cause worse +visual quality.

+
+ + + + + +
+

(no)closed_gop

+ + + + + +
+

This option tells Xvid to close every GOP (Group Of +Pictures bounded by two I-frames), which makes GOPs +independent from each other. This just implies that the last +frame of the GOP is either a P-frame or a N-frame but not a +B-frame. It is usually a good idea to turn this option on +(default: on).

+
+ + + + + +
+

(no)packed

+ + + + + +
+

This option is meant to solve frame-order issues when +encoding to container formats like AVI that cannot cope with +out-of-order frames. In practice, most decoders (both +software and hardware) are able to deal with frame-order +themselves, and may get confused when this option is turned +on, so you can safely leave if off, unless you really know +what you are doing.
+WARNING:
This will generate an illegal bitstream, and +will not be decodable by ISO-MPEG-4 decoders except +DivX/libavcodec/ Xvid.
+WARNING:
This will also store a fake DivX version in the +file so the bug autodetection of some decoders might be +confused.

+
+ + + + + +
+

frame_drop_ratio=<0−100> (max_bframes=0 +only)

+ + + + + +
+

This setting allows the creation of variable framerate +video streams. The value of the setting specifies a +threshold under which, if the difference of the following +frame to the previous frame is below or equal to this +threshold, a frame gets not coded (a so called n-vop is +placed in the stream). On playback, when reaching an n-vop +the previous frame will be displayed.
+WARNING:
Playing with this setting may result in a jerky +video, so use it at your own risks!

+
+ + + + + +
+

rc_reaction_delay_factor=<value>

+ + + + + +
+

This parameter controls the number of frames the CBR rate +controller will wait before reacting to bitrate changes and +compensating for them to obtain a constant bitrate over an +averaging range of frames.

+
+ + + + + +
+

rc_averaging_period=<value>

+ + + + + +
+

Real CBR is hard to achieve. Depending on the video +material, bitrate can be variable, and hard to predict. +Therefore Xvid uses an averaging period for which it +guarantees a given amount of bits (minus a small variation). +This settings expresses the "number of frames" for +which Xvid averages bitrate and tries to achieve CBR.

+
+ + + + + +
+

rc_buffer=<value>

+ + + + + +
+

size of the rate control buffer

+
+ + + + + +
+ +

curve_compression_high=<0−100>

+ + + + + +
+

This setting allows Xvid to take a certain percentage of +bits away from high bitrate scenes and give them back to the +bit reservoir. You could also use this if you have a clip +with so many bits allocated to high-bitrate scenes that the +low(er)-bitrate scenes start to look bad (default: 0).

+
+ + + + + +
+ +

curve_compression_low=<0−100>

+ + + + + +
+

This setting allows Xvid to give a certain percentage of +extra bits to the low bitrate scenes, taking a few bits from +the entire clip. This might come in handy if you have a few +low-bitrate scenes that are still blocky (default: 0).

+
+ + + + + +
+ +

overflow_control_strength=<0−100>

+ + + + + +
+

During pass one of two pass encoding, a scaled bitrate +curve is computed. The difference between that expected +curve and the result obtained during encoding is called +overflow. Obviously, the two pass rate controller tries to +compensate for that overflow, distributing it over the next +frames. This setting controls how much of the overflow is +distributed every time there is a new frame. Low values +allow lazy overflow control, big rate bursts are compensated +for more slowly (could lead to lack of precision for small +clips). Higher values will make changes in bit +redistribution more abrupt, possibly too abrupt if you set +it too high, creating artifacts (default: 5).
+NOTE:
This setting impacts quality a lot, play with it +carefully!

+
+ + + + + +
+ +

max_overflow_improvement=<0−100>

+ + + + + +
+

During the frame bit allocation, overflow control may +increase the frame size. This parameter specifies the +maximum percentage by which the overflow control is allowed +to increase the frame size, compared to the ideal curve +allocation (default: 5).

+
+ + + + + +
+ +

max_overflow_degradation=<0−100>

+ + + + + +
+

During the frame bit allocation, overflow control may +decrease the frame size. This parameter specifies the +maximum percentage by which the overflow control is allowed +to decrease the frame size, compared to the ideal curve +allocation (default: 5).

+
+ + + + + +
+

container_frame_overhead=<0...>

+ + + + + +
+

Specifies a frame average overhead per frame, in bytes. +Most of the time users express their target bitrate for +video w/o taking care of the video container overhead. This +small but (mostly) constant overhead can cause the target +file size to be exceeded. Xvid allows users to set the +amount of overhead per frame the container generates (give +only an average per frame). 0 has a special meaning, it lets +Xvid use its own default values (default: 24 − AVI +average overhead).

+
+ + + + + +
+

profile=<profile_name>

+ + + + + +
+

Restricts options and VBV (peak bitrate over a short +period) according to the Simple, Advanced Simple and DivX +profiles. The resulting videos should be playable on +standalone players adhering to these profile +specifications.

+ + + + + +
+

unrestricted

+ + + + + +
+

no restrictions (default)

+ + + + + +
+

sp0

+ + + + + +
+

simple profile at level 0

+ + + + + +
+

sp1

+ + + + + +
+

simple profile at level 1

+ + + + + +
+

sp2

+ + + + + +
+

simple profile at level 2

+ + + + + +
+

sp3

+ + + + + +
+

simple profile at level 3

+ + + + + +
+

asp0

+ + + + + +
+

advanced simple profile at level 0

+ + + + + +
+

asp1

+ + + + + +
+

advanced simple profile at level 1

+ + + + + +
+

asp2

+ + + + + +
+

advanced simple profile at level 2

+ + + + + +
+

asp3

+ + + + + +
+

advanced simple profile at level 3

+ + + + + +
+

asp4

+ + + + + +
+

advanced simple profile at level 4

+ + + + + +
+

asp5

+ + + + + +
+

advanced simple profile at level 5

+ + + + + +
+

dxnhandheld

+ + + + + +
+

DXN handheld profile

+ + + + + +
+

dxnportntsc

+ + + + + +
+

DXN portable NTSC profile

+ + + + + +
+

dxnportpal

+ + + + + +
+

DXN portable PAL profile

+ + + + + +
+

dxnhtntsc

+ + + + + +
+

DXN home theater NTSC profile

+ + + + + +
+

dxnhtpal

+ + + + + +
+

DXN home theater PAL profile

+ + + + + +
+

dxnhdtv

+ + + + + +
+

DXN HDTV profile

+ + + + + +
+

NOTE: These profiles should be used in conjunction +with an appropriate −ffourcc. Generally DX50 is +applicable, as some players do not recognize Xvid but most +recognize DivX.

+ + + + + +
+

par=<mode>

+ + + + + +
+

Specifies the Pixel Aspect Ratio mode (not to be confused +with DAR, the Display Aspect Ratio). PAR is the ratio of the +width and height of a single pixel. So both are related like +this: DAR = PAR * (width/height).
+MPEG-4 defines 5 pixel aspect ratios and one extended one, +giving the opportunity to specify a specific pixel aspect +ratio. 5 standard modes can be specified:

+ + + + + +
+

vga11

+ + + + + +
+

It is the usual PAR for PC content. Pixels are a square +unit.

+ + + + + +
+

pal43

+ + + + + +
+

PAL standard 4:3 PAR. Pixels are rectangles.

+ + + + + +
+

pal169

+ + + + + +
+

same as above

+ + + + + +
+

ntsc43

+ + + + + +
+

same as above

+ + + + + +
+

ntsc169

+ + + + + +
+

same as above (Do not forget to give the exact +ratio.)

+ + + + + +
+

ext

+ + + + + +
+

Allows you to specify your own pixel aspect ratio with +par_width and par_height.

+ + + + + +
+

NOTE: In general, setting aspect and autoaspect +options is enough.

+ + + + + +
+

par_width=<1−255> (par=ext +only)

+ + + + + +
+

Specifies the width of the custom pixel aspect ratio.

+
+ + + + + +
+

par_height=<1−255> (par=ext +only)

+ + + + + +
+

Specifies the height of the custom pixel aspect +ratio.

+
+ + + + + +
+

aspect=<x/y | f (float value)>

+ + + + + +
+

Store movie aspect internally, just like MPEG files. Much +nicer solution than rescaling, because quality is not +decreased. MPlayer and a few others players will play these +files correctly, others will display them with the wrong +aspect. The aspect parameter can be given as a ratio or a +floating point number.

+
+ + + + + +
+

(no)autoaspect

+ + + + + +
+

Same as the aspect option, but automatically computes +aspect, taking into account all the adjustments +(crop/expand/scale/ etc.) made in the filter chain.

+
+ + + + + +
+

psnr

+ + + + + +
+

Print the PSNR (peak signal to noise ratio) for the whole +video after encoding and store the per frame PSNR in a file +with a name like ’psnr_hhmmss.log’ in the +current directory. Returned values are in dB (decibel), the +higher the better.

+
+ + + + + +
+

debug

+ + + + + +
+

Save per-frame statistics in ./xvid.dbg. (This is not the +two pass control file.)

+ + + + + +
+

The following option is only available in Xvid 1.1.x.

+
+ + + + + +
+

bvhq=<0|1>

+ + + + + +
+

This setting allows vector candidates for B-frames to be +used for the encoding chosen using a rate distortion +optimized operator, which is what is done for P-frames by +the vhq option. This produces nicer-looking B-frames while +incurring almost no performance penalty (default: 1).

+
+ + + + + +
+

The following option is only available in the 1.2.x +version of Xvid.

+
+ + + + + +
+

threads=<0−n>

+ + + + + +
+

Create n threads to run the motion estimation (default: +0). The maximum number of threads that can be used is the +picture height divided by 16.

+
+ + + + + +
+

x264enc (−x264encopts)

+ + + + + +
+

bitrate=<value>

+ + + + + +
+

Sets the average bitrate to be used in kbits/second +(default: off). Since local bitrate may vary, this average +may be inaccurate for very short videos (see ratetol). +Constant bitrate can be achieved by combining this with +vbv_maxrate, at significant reduction in quality.

+
+ + + + + +
+

qp=<0−51>

+ + + + + +
+

This selects the quantizer to use for P-frames. I- and +B-frames are offset from this value by ip_factor and +pb_factor, respectively. 20−40 is a useful range. +Lower values result in better fidelity, but higher bitrates. +0 is lossless. Note that quantization in H.264 works +differently from MPEG-1/2/4: H.264’s quantization +parameter (QP) is on a logarithmic scale. The mapping is +approximately H264QP = 12 + 6*log2(MPEGQP). For example, +MPEG at QP=2 is equivalent to H.264 at QP=18.

+
+ + + + + +
+

crf=<1.0−50.0>

+ + + + + +
+

Enables constant quality mode, and selects the quality. +The scale is similar to QP. Like the bitrate-based modes, +this allows each frame to use a different QP based on the +frame’s complexity.

+
+ + + + + +
+

pass=<1−3>

+ + + + + +
+

Enable 2 or 3-pass mode. It is recommended to always +encode in 2 or 3-pass mode as it leads to a better bit +distribution and improves overall quality.

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

first pass

+
+ +

2

+
+ +

second pass (of two pass encoding)

+
+ +

3

+
+ +

Nth pass (second and third passes of three pass +encoding)

+
+ + + + + +
+

Here is how it works, and how to use it:
+The first pass (pass=1) collects statistics on the video and +writes them to a file. You might want to deactivate some +CPU-hungry options, apart from the ones that are on by +default.
+In two pass mode, the second pass (pass=2) reads the +statistics file and bases ratecontrol decisions on it.
+In three pass mode, the second pass (pass=3, that is not a +typo) does both: It first reads the statistics, then +overwrites them. You can use all encoding options, except +very CPU-hungry options.
+The third pass (pass=3) is the same as the second pass, +except that it has the second pass’ statistics to work +from. You can use all encoding options, including CPU-hungry +ones.
+The first pass may use either average bitrate or constant +quantizer. ABR is recommended, since it does not require +guessing a quantizer. Subsequent passes are ABR, and must +specify bitrate.

+ + + + + +
+

turbo=<0−2>

+ + + + + +
+

Fast first pass mode. During the first pass of a two or +more pass encode it is possible to gain speed by disabling +some options with negligible or even no impact on the final +pass output quality.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

Reduce subq, frameref and disable some inter-macroblock +partition analysis modes.

+
+ +

2

+
+ +

Reduce subq and frameref to 1, use a diamond ME search +and disable all partition analysis modes.

+
+ + + + + +
+

Level 1 can increase first pass speed up to 2x with no +change in the global PSNR of the final pass compared to a +full quality first pass.
+Level 2 can increase first pass speed up to 4x with about ++/- 0.05dB change in the global PSNR of the final pass +compared to a full quality first pass.

+ + + + + +
+

keyint=<value>

+ + + + + +
+

Sets maximum interval between IDR-frames (default: 250). +Larger values save bits, thus improve quality, at the cost +of seeking precision. Unlike MPEG-1/2/4, H.264 does not +suffer from DCT drift with large values of keyint.

+
+ + + + + +
+

keyint_min=<1−keyint/2>

+ + + + + +
+

Sets minimum interval between IDR-frames (default: 25). +If scenecuts appear within this interval, they are still +encoded as I-frames, but do not start a new GOP. In H.264, +I-frames do not necessarily bound a closed GOP because it is +allowable for a P-frame to be predicted from more frames +than just the one frame before it (also see frameref). +Therefore, I-frames are not necessarily seekable. IDR-frames +restrict subsequent P-frames from referring to any frame +prior to the IDR-frame.

+
+ + + + + +
+

scenecut=<-1−100>

+ + + + + +
+

Controls how aggressively to insert extra I-frames +(default: 40). With small values of scenecut, the codec +often has to force an I-frame when it would exceed keyint. +Good values of scenecut may find a better location for the +I-frame. Large values use more I-frames than necessary, thus +wasting bits. -1 disables scene-cut detection, so I-frames +are inserted only once every other keyint frames, even if a +scene-cut occurs earlier. This is not recommended and wastes +bitrate as scenecuts encoded as P-frames are just as big as +I-frames, but do not reset the "keyint +counter".

+
+ + + + + +
+

frameref=<1−16>

+ + + + + +
+

Number of previous frames used as predictors in B- and +P-frames (default: 1). This is effective in anime, but in +live-action material the improvements usually drop off very +rapidly above 6 or so reference frames. This has no effect +on decoding speed, but does increase the memory needed for +decoding. Some decoders can only handle a maximum of 15 +reference frames.

+
+ + + + + +
+

bframes=<0−16>

+ + + + + +
+

maximum number of consecutive B-frames between I- and +P-frames (default: 0)

+
+ + + + + +
+

(no)b_adapt

+ + + + + +
+

Automatically decides when to use B-frames and how many, +up to the maximum specified above (default: on). If this +option is disabled, then the maximum number of B-frames is +used.

+
+ + + + + +
+

b_bias=<-100−100>

+ + + + + +
+

Controls the decision performed by b_adapt. A higher +b_bias produces more B-frames (default: 0).

+
+ + + + + +
+

(no)b_pyramid

+ + + + + +
+

Allows B-frames to be used as references for predicting +other frames. For example, consider 3 consecutive B-frames: +I0 B1 B2 B3 P4. Without this option, B-frames follow the +same pattern as MPEG-[124]. So they are coded in the order +I0 P4 B1 B2 B3, and all the B-frames are predicted from I0 +and P4. With this option, they are coded as I0 P4 B2 B1 B3. +B2 is the same as above, but B1 is predicted from I0 and B2, +and B3 is predicted from B2 and P4. This usually results in +slightly improved compression, at almost no speed cost. +However, this is an experimental option: it is not fully +tuned and may not always help. Requires bframes >= 2. +Disadvantage: increases decoding delay to 2 frames.

+
+ + + + + +
+

(no)deblock

+ + + + + +
+

Use deblocking filter (default: on). As it takes very +little time compared to its quality gain, it is not +recommended to disable it.

+
+ + + + + +
+ +

deblock=<-6−6>,<-6−6>

+ + + + + +
+

The first parameter is AlphaC0 (default: 0). This adjusts +thresholds for the H.264 in-loop deblocking filter. First, +this parameter adjusts the maximum amount of change that the +filter is allowed to cause on any one pixel. Secondly, this +parameter affects the threshold for difference across the +edge being filtered. A positive value reduces blocking +artifacts more, but will also smear details.
+The second parameter is Beta (default: 0). This affects the +detail threshold. Very detailed blocks are not filtered, +since the smoothing caused by the filter would be more +noticeable than the original blocking.
+The default behavior of the filter almost always achieves +optimal quality, so it is best to either leave it alone, or +make only small adjustments. However, if your source +material already has some blocking or noise which you would +like to remove, it may be a good idea to turn it up a little +bit.

+
+ + + + + +
+

(no)cabac

+ + + + + +
+

Use CABAC (Context-Adaptive Binary Arithmetic Coding) +(default: on). Slightly slows down encoding and decoding, +but should save 10-15% bitrate. Unless you are looking for +decoding speed, you should not disable it.

+
+ + + + + +
+

qp_min=<1−51> (ABR or two +pass)

+ + + + + +
+

Minimum quantizer, 10−30 seems to be a useful range +(default: 10).

+
+ + + + + +
+

qp_max=<1−51> (ABR or two +pass)

+ + + + + +
+

maximum quantizer (default: 51)

+
+ + + + + +
+

qp_step=<1−50> (ABR or two +pass)

+ + + + + +
+

maximum value by which the quantizer may be +incremented/decremented between frames (default: 4)

+
+ + + + + +
+

ratetol=<0.1−100.0> (ABR or two +pass)

+ + + + + +
+

allowed variance in average bitrate (no particular units) +(default: 1.0)

+
+ + + + + +
+

vbv_maxrate=<value> (ABR or two +pass)

+ + + + + +
+

maximum local bitrate, in kbits/second (default: +disabled)

+
+ + + + + +
+

vbv_bufsize=<value> (ABR or two +pass)

+ + + + + +
+

averaging period for vbv_maxrate, in kbits (default: +none, must be specified if vbv_maxrate is enabled)

+
+ + + + + +
+

vbv_init=<0.0−1.0> (ABR or two +pass)

+ + + + + +
+

initial buffer occupancy, as a fraction of vbv_bufsize +(default: 0.9)

+
+ + + + + +
+

ip_factor=<value>

+ + + + + +
+

quantizer factor between I- and P-frames (default: +1.4)

+
+ + + + + +
+

pb_factor=<value>

+ + + + + +
+

quantizer factor between P- and B-frames (default: +1.3)

+
+ + + + + +
+

qcomp=<0−1> (ABR or two pass)

+ + + + + +
+

quantizer compression (default: 0.6). A lower value makes +the bitrate more constant, while a higher value makes the +quantization parameter more constant.

+
+ + + + + +
+

cplx_blur=<0−999> (two pass +only)

+ + + + + +
+

Temporal blur of the estimated frame complexity, before +curve compression (default: 20). Lower values allow the +quantizer value to jump around more, higher values force it +to vary more smoothly. cplx_blur ensures that each I-frame +has quality comparable to the following P-frames, and +ensures that alternating high and low complexity frames +(e.g. low fps animation) do not waste bits on fluctuating +quantizer.

+
+ + + + + +
+

qblur=<0−99> (two pass only)

+ + + + + +
+

Temporal blur of the quantization parameter, after curve +compression (default: 0.5). Lower values allow the quantizer +value to jump around more, higher values force it to vary +more smoothly.

+
+ + + + + +
+ +

zones=<zone0>[/<zone1>[/...]]

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...). Each zone is +<start-frame>,<end-frame>,<option> where +option may be

+ + + + + +
+

q=<0−51>

+ + + + + +
+

quantizer

+ + + + + +
+

b=<0.01−100.0>

+ + + + + +
+

bitrate multiplier

+ + + + + +
+

NOTE: The quantizer option is not strictly +enforced. It affects only the planning stage of ratecontrol, +and is still subject to overflow compensation and +qp_min/qp_max.

+ + + + + +
+

direct_pred=<name>

+ + + + + +
+

Determines the type of motion prediction used for direct +macroblocks in B-frames.

+ + + + + + + + +
+ +

none

+
+ +

Direct macroblocks are not used.

+
+
+ + + + + +
+

spatial

+ + + + + +
+

Motion vectors are extrapolated from neighboring blocks. +(default)

+ + + + + +
+

temporal

+ + + + + +
+

Motion vectors are interpolated from the following +P-frame.

+ + + + + + + +
+ +

auto

+
+ +

The codec selects between spatial and temporal for each +frame.

+
+ + + + + +
+

Spatial and temporal are approximately the same speed and +PSNR, the choice between them depends on the video content. +Auto is slightly better, but slower. Auto is most effective +when combined with multipass. direct_pred=none is both +slower and lower quality.

+ + + + + +
+

(no)weight_b

+ + + + + +
+

Use weighted prediction in B-frames. Without this option, +bidirectionally predicted macroblocks give equal weight to +each reference frame. With this option, the weights are +determined by the temporal position of the B-frame relative +to the references. Requires bframes > 1.

+
+ + + + + +
+

partitions=<list>

+ + + + + +
+

Enable some optional macroblock types (default: +p8x8,b8x8,i8x8,i4x4).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

p8x8

+
+ +

Enable types p16x8, p8x16, p8x8.

+
+ +

p4x4

+
+ +

Enable types p8x4, p4x8, p4x4. p4x4 is recommended only +with subq >= 5, and only at low resolutions.

+
+ +

b8x8

+
+ +

Enable types b16x8, b8x16, b8x8.

+
+ +

i8x8

+
+ +

Enable type i8x8. i8x8 has no effect unless 8x8dct is +enabled.

+
+ +

i4x4

+
+ +

Enable type i4x4.

+
+ +

all

+
+ +

Enable all of the above types.

+
+ +

none

+
+ +

Disable all of the above types.

+
+ + + + + +
+

Regardless of this option, macroblock types p16x16, +b16x16, and i16x16 are always enabled.
+The idea is to find the type and size that best describe a +certain area of the picture. For example, a global pan is +better represented by 16x16 blocks, while small moving +objects are better represented by smaller blocks.

+ + + + + +
+

(no)8x8dct

+ + + + + +
+

Adaptive spatial transform size: allows macroblocks to +choose between 4x4 and 8x8 DCT. Also allows the i8x8 +macroblock type. Without this option, only 4x4 DCT is +used.

+
+ + + + + +
+

me=<name>

+ + + + + +
+

Select fullpixel motion estimation algorithm.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

dia

+
+ +

diamond search, radius 1 (fast)

+
+ +

hex

+
+ +

hexagon search, radius 2 (default)

+
+ +

umh

+
+ +

uneven multi-hexagon search (slow)

+
+ +

esa

+
+ +

exhaustive search (very slow, and no better than +umh)

+
+ + + + + +
+

me_range=<4−64>

+ + + + + +
+

radius of exhaustive or multi-hexagon motion search +(default: 16)

+
+ + + + + +
+

subq=<1−7>

+ + + + + +
+

Adjust subpel refinement quality. This parameter controls +quality versus speed tradeoffs involved in the motion +estimation decision process. subq=5 can compress up to 10% +better than subq=1.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

Runs fullpixel precision motion estimation on all +candidate macroblock types. Then selects the best type. Then +refines the motion of that type to fast quarterpixel +precision (fastest).

+
+ +

2

+
+ +

Runs halfpixel precision motion estimation on all +candidate macroblock types. Then selects the best type. Then +refines the motion of that type to fast quarterpixel +precision.

+
+ +

3

+
+ +

As 2, but uses a slower quarterpixel refinement.

+
+ +

4

+
+ +

Runs fast quarterpixel precision motion estimation on +all candidate macroblock types. Then selects the best type. +Then finishes the quarterpixel refinement for that type.

+
+ +

5

+
+ +

Runs best quality quarterpixel precision motion +estimation on all candidate macroblock types, before +selecting the best type (default).

+
+ +

6

+
+ +

Enables rate-distortion optimization of macroblock types +in I- and P-frames.

+
+ +

7

+
+ +

Enables rate-distortion optimization of motion vectors +and intra modes. (best)

+
+ + + + + +
+

In the above, "all candidates" does not exactly +mean all enabled types: 4x4, 4x8, 8x4 are tried only if 8x8 +is better than 16x16.

+ + + + + +
+

(no)chroma_me

+ + + + + +
+

Takes into account chroma information during subpixel +motion search (default: enabled). Requires subq>=5.

+
+ + + + + +
+

(no)mixed_refs

+ + + + + +
+

Allows each 8x8 or 16x8 motion partition to independently +select a reference frame. Without this option, a whole +macroblock must use the same reference. Requires +frameref>1.

+
+ + + + + +
+

(no)brdo

+ + + + + +
+

Enables rate-distortion optimization of macroblock types +in B-frames. Requires subq>=6.

+
+ + + + + +
+

(no)bime

+ + + + + +
+

Refine the two motion vectors used in bidirectional +macroblocks, rather than re-using vectors from the forward +and backward searches. This option has no effect without +B-frames.

+
+ + + + + +
+

trellis=<0−2>

+ + + + + +
+

rate-distortion optimal quantization

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

enabled only for the final encode

+
+ +

2

+
+ +

enabled during all mode decisions (slow, requires +subq>=6)

+
+ + + + + +
+

deadzone_inter=<0−32>

+ + + + + +
+

Set the size of the inter luma quantization deadzone for +non-trellis quantization (default: 21). Lower values help to +preserve fine details and film grain (typically useful for +high bitrate/quality encode), while higher values help +filter out these details to save bits that can be spent +again on other macroblocks and frames (typically useful for +bitrate-starved encodes). It is recommended that you start +by tweaking deadzone_intra before changing this +parameter.

+
+ + + + + +
+

deadzone_intra=<0−32>

+ + + + + +
+

Set the size of the intra luma quantization deadzone for +non-trellis quantization (default: 11). This option has the +same effect as deadzone_inter except that it affects intra +frames. It is recommended that you start by tweaking this +parameter before changing deadzone_inter.

+
+ + + + + +
+

(no)fast_pskip

+ + + + + +
+

Performs early skip detection in P-frames (default: +enabled). This usually improves speed at no cost, but it can +sometimes produce artifacts in areas with no details, like +sky.

+
+ + + + + +
+

(no)dct_decimate

+ + + + + +
+

Eliminate dct blocks in P-frames containing only a small +single coefficient (default: enabled). This will remove some +details, so it will save bits that can be spent again on +other frames, hopefully raising overall subjective quality. +If you are compressing non-anime content with a high target +bitrate, you may want to disable this to preserve as much +detail as possible.

+
+ + + + + +
+

nr=<0−100000>

+ + + + + +
+

Noise reduction, 0 means disabled. 100−1000 is a +useful range for typical content, but you may want to turn +it up a bit more for very noisy content (default: 0). Given +its small impact on speed, you might want to prefer to use +this over filtering noise away with video filters like +denoise3d or hqdn3d.

+
+ + + + + +
+

chroma_qp_offset=<-12−12>

+ + + + + +
+

Use a different quantizer for chroma as compared to luma. +Useful values are in the range <-2−2> (default: +0).

+
+ + + + + +
+

cqm=<flat|jvt|<filename>>

+ + + + + +
+

Either uses a predefined custom quantization matrix or +loads a JM format matrix file.

+ + + + + +
+

flat

+ + + + + +
+

Use the predefined flat 16 matrix (default).

+ + + + + +
+

jvt

+ + + + + +
+

Use the predefined JVT matrix.

+ + + + + +
+

<filename>

+ + + + + +
+

Use the provided JM format matrix file.

+ + + + + +
+

NOTE: Windows CMD.EXE users may experience +problems with parsing the command line if they attempt to +use all the CQM lists. This is due to a command line length +limitation. In this case it is recommended the lists be put +into a JM format CQM file and loaded as specified +above.

+ + + + + +
+

cqm4iy=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 intra luminance matrix, given as a list of 16 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4ic=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 intra chrominance matrix, given as a list of +16 comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4py=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 inter luminance matrix, given as a list of 16 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4pc=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 inter chrominance matrix, given as a list of +16 comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm8iy=<list> (also see cqm)

+ + + + + +
+

Custom 8x8 intra luminance matrix, given as a list of 64 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm8py=<list> (also see cqm)

+ + + + + +
+

Custom 8x8 inter luminance matrix, given as a list of 64 +comma separated values in the 1−255 range.

+
+ + + + + +
+

level_idc=<10−51>

+ + + + + +
+

Set the bitstream’s level as defined by annex A of +the H.264 standard (default: 51 - Level 5.1). This is used +for telling the decoder what capabilities it needs to +support. Use this parameter only if you know what it means, +and you have a need to set it.

+
+ + + + + +
+

threads=<0−16>

+ + + + + +
+

Spawn threads to encode in parallel on multiple CPUs +(default: 1). This has a slight penalty to compression +quality. 0 or ’auto’ tells x264 to detect how +many CPUs you have and pick an appropriate number of +threads.

+
+ + + + + +
+

(no)global_header

+ + + + + +
+

Causes SPS and PPS to appear only once, at the beginning +of the bitstream (default: disabled). Some players, such as +the Sony PSP, require the use of this option. The default +behavior causes SPS and PPS to repeat prior to each IDR +frame.

+
+ + + + + +
+

(no)interlaced

+ + + + + +
+

Treat the video content as interlaced.

+
+ + + + + +
+

log=<-1−3>

+ + + + + +
+

Adjust the amount of logging info printed to the +screen.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

none

+
+ +

0

+
+ +

Print errors only.

+
+ +

1

+
+ +

warnings

+
+ +

2

+
+ +

PSNR and other analysis statistics when the encode +finishes (default)

+
+ +

3

+
+ +

PSNR, QP, frametype, size, and other statistics for +every frame

+
+ + + + + +
+

(no)psnr

+ + + + + +
+

Print signal-to-noise ratio statistics.
+NOTE:
The ’Y’, ’U’, +’V’, and ’Avg’ PSNR fields in the +summary are not mathematically sound (they are simply the +average of per-frame PSNRs). They are kept only for +comparison to the JM reference codec. For all other +purposes, please use either the ’Global’ PSNR, +or the per-frame PSNRs printed by log=3.

+
+ + + + + +
+

(no)ssim

+ + + + + +
+

Print the Structural Similarity Metric results. This is +an alternative to PSNR, and may be better correlated with +the perceived quality of the compressed video.

+
+ + + + + +
+

(no)visualize

+ + + + + +
+

Enable x264 visualizations during encoding. If the x264 +on your system supports it, a new window will be opened +during the encoding process, in which x264 will attempt to +present an overview of how each frame gets encoded. Each +block type on the visualized movie will be colored as +follows:

+ + + + + +
+

red/pink

+ + + + + +
+

intra block

+ + + + + +
+

blue

+ + + + + +
+

inter block

+ + + + + +
+

green

+ + + + + +
+

skip block

+ + + + + +
+

yellow

+ + + + + +
+

B-block

+ + + + + +
+

This feature can be considered experimental and subject +to change. In particular, it depends on x264 being compiled +with visualizations enabled. Note that as of writing this, +x264 pauses after encoding and visualizing each frame, +waiting for the user to press a key, at which point the next +frame will be encoded.

+ + + + + +
+

xvfw (−xvfwopts)

+ + + + + +
+

Encoding with Video for Windows codecs is mostly obsolete +unless you wish to encode to some obscure fringe codec.

+
+ + + + + +
+

codec=<name>

+ + + + + +
+

The name of the binary codec file with which to +encode.

+
+ + + + + +
+

compdata=<file>

+ + + + + +
+

The name of the codec settings file (like firstpass.mcf) +created by vfw2menc.

+
+ + + + + +
+

MPEG muxer (−mpegopts)

+ + + + + +
+

The MPEG muxer can generate 5 types of streams, each of +which has reasonable default parameters that the user can +override. Generally, when generating MPEG files, it is +advisable to disable MEncoder’s frame-skip code (see +−noskip, −mc as well as the harddup and softskip +video filters).

+ +

EXAMPLE:

+ + + + + +
+

format=mpeg2:tsaf:vbitrate=8000

+ + + + + +
+

format=<mpeg1 | mpeg2 | xvcd | xsvcd | dvd | pes1 | +pes2>

+ + + + + +
+

stream format (default: mpeg2). pes1 and pes2 are very +broken formats (no pack header and no padding), but VDR uses +them; do not choose them unless you know exactly what you +are doing.

+
+ + + + + +
+

size=<up to 65535>

+ + + + + +
+

Pack size in bytes, do not change unless you know exactly +what you are doing (default: 2048).

+
+ + + + + +
+

muxrate=<int>

+ + + + + +
+

Nominal muxrate in kbit/s used in the pack headers +(default: 1800 kb/s). Will be updated as necessary in the +case of ’format=mpeg1’ or +’mpeg2’.

+
+ + + + + +
+

tsaf

+ + + + + +
+

Sets timestamps on all frames, if possible; recommended +when format=dvd. If dvdauthor complains with a message like +"..audio sector out of range...", you probably did +not enable this option.

+
+ + + + + +
+

interleaving2

+ + + + + +
+

Uses a better algorithm to interleave audio and video +packets, based on the principle that the muxer will always +try to fill the stream with the largest percentage of free +space.

+
+ + + + + +
+

vdelay=<1−32760>

+ + + + + +
+

Initial video delay time, in milliseconds (default: 0), +use it if you want to delay video with respect to audio. It +doesn’t work with :drop.

+
+ + + + + +
+

adelay=<1−32760>

+ + + + + +
+

Initial audio delay time, in milliseconds (default: 0), +use it if you want to delay audio with respect to video.

+
+ + + + + +
+

drop

+ + + + + +
+

When used with vdelay the muxer drops the part of audio +that was anticipated.

+
+ + + + + +
+

vwidth, vheight=<1−4095>

+ + + + + +
+

Set the video width and height when video is +MPEG-1/2.

+
+ + + + + +
+

vpswidth, vpsheight=<1−4095>

+ + + + + +
+

Set pan and scan video width and height when video is +MPEG-2.

+
+ + + + + +
+

vaspect=<1 | 4/3 | 16/9 | 221/100>

+ + + + + +
+

Sets the display aspect ratio for MPEG-2 video. Do not +use it on MPEG-1 or the resulting aspect ratio will be +completely wrong.

+
+ + + + + +
+

vbitrate=<int>

+ + + + + +
+

Sets the video bitrate in kbit/s for MPEG-1/2 video.

+
+ + + + + +
+

vframerate=<24000/1001 | 24 | 25 | 30000/1001 | 30 +| 50 | 60000/1001 | 60 >

+ + + + + +
+

Sets the framerate for MPEG-1/2 video. This option will +be ignored if used with the telecine option.

+
+ + + + + +
+

telecine

+ + + + + +
+

Enables 3:2 pulldown soft telecine mode: The muxer will +make the video stream look like it was encoded at 30000/1001 +fps. It only works with MPEG-2 video when the output +framerate is 24000/1001 fps, convert it with −ofps if +necessary. Any other framerate is incompatible with this +option.

+
+ + + + + +
+

film2pal

+ + + + + +
+

Enables FILM to PAL and NTSC to PAL soft telecine mode: +The muxer will make the video stream look like it was +encoded at 25 fps. It only works with MPEG-2 video when the +output framerate is 24000/1001 fps, convert it with +−ofps if necessary. Any other framerate is +incompatible with this option.

+
+ + + + + +
+

tele_src and tele_dest

+ + + + + +
+

Enables arbitrary telecining using Donand Graft’s +DGPulldown code. You need to specify the original and the +desired framerate; the muxer will make the video stream look +like it was encoded at the desired framerate. It only works +with MPEG-2 video when the input framerate is smaller than +the output framerate and the framerate increase is <= +1.5.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

tele_src=25,tele_dest=30000/1001

+ + + + + +
+

PAL to NTSC telecining

+ + + + + +
+

vbuf_size=<40−1194>

+ + + + + +
+

Sets the size of the video decoder’s buffer, +expressed in kilobytes. Specify it only if the bitrate of +the video stream is too high for the chosen format and if +you know perfectly well what you are doing. A too high value +may lead to an unplayable movie, depending on the +player’s capabilities. When muxing HDTV video a value +of 400 should suffice.

+
+ + + + + +
+

abuf_size=<4−64>

+ + + + + +
+

Sets the size of the audio decoder’s buffer, +expressed in kilobytes. The same principle as for vbuf_size +applies.

+
+ + + + + +
+

FFmpeg libavformat demuxers +(−lavfdopts)

+ + + + + +
+

analyzeduration=<value>

+ + + + + +
+

Maximum length in seconds to analyze the stream +properties.

+
+ + + + + +
+

format=<value>

+ + + + + +
+

Force a specific libavformat demuxer.

+
+ + + + + +
+

probesize=<value>

+ + + + + +
+

Maximum amount of data to probe during the detection +phase. In the case of MPEG-TS this value identifies the +maximum number of TS packets to scan.

+
+ + + + + +
+

FFmpeg libavformat muxers (−lavfopts) (also see +−of lavf)

+ + + + + +
+

delay=<value>

+ + + + + +
+

Currently only meaningful for MPEG[12]: Maximum allowed +distance, in seconds, between the reference timer of the +output stream (SCR) and the decoding timestamp (DTS) for any +stream present (demux to decode delay). Default is 0.7 (as +mandated by the standards defined by MPEG). Higher values +require larger buffers and must not be used.

+
+ + + + + +
+

format=<container_format>

+ + + + + +
+

Override which container format to mux into (default: +autodetect from output file extension).

+ + + + + +
+

mpg

+ + + + + +
+

MPEG-1 systems and MPEG-2 PS

+ + + + + +
+

asf

+ + + + + +
+

Advanced Streaming Format

+ + + + + +
+

avi

+ + + + + +
+

Audio Video Interleave file

+ + + + + +
+

wav

+ + + + + +
+

Waveform Audio

+ + + + + +
+

swf

+ + + + + +
+

Macromedia Flash

+ + + + + +
+

flv

+ + + + + +
+

Macromedia Flash video files

+ + + + + +
+

rm

+ + + + + +
+

RealAudio and RealVideo

+ + + + + +
+

au

+ + + + + +
+

SUN AU format

+ + + + + +
+

nut

+ + + + + +
+

NUT open container format (experimental)

+ + + + + +
+

mov

+ + + + + +
+

QuickTime

+ + + + + +
+

mp4

+ + + + + +
+

MPEG-4 format

+ + + + + +
+

dv

+ + + + + +
+

Sony Digital Video container

+ + + + + +
+

muxrate=<rate>

+ + + + + +
+

Nominal bitrate of the multiplex, in bits per second; +currently it is meaningful only for MPEG[12]. Sometimes +raising it is necessary in order to avoid "buffer +underflows".

+
+ + + + + +
+

packetsize=<size>

+ + + + + +
+

Size, expressed in bytes, of the unitary packet for the +chosen format. When muxing to MPEG[12] implementations the +default values are: 2324 for [S]VCD, 2048 for all others +formats.

+
+ + + + + +
+

preload=<distance>

+ + + + + +
+

Currently only meaningful for MPEG[12]: Initial distance, +in seconds, between the reference timer of the output stream +(SCR) and the decoding timestamp (DTS) for any stream +present (demux to decode delay).

+
+ +

ENVIRONMENT VARIABLES

+ + + + + +
+

There are a number of environment variables that can be +used to control the behavior of MPlayer and MEncoder.

+
+ + + + + +
+

MPLAYER_CHARSET (also see +−msgcharset)

+ + + + + +
+

Convert console messages to the specified charset +(default: autodetect). A value of "noconv" means +no conversion.

+
+ + + + + +
+

MPLAYER_HOME

+ + + + + +
+

Directory where MPlayer looks for user settings.

+
+ + + + + +
+

MPLAYER_VERBOSE (also see −v and +−msglevel)

+ + + + + +
+

Set the initial verbosity level across all message +modules (default: 0). The resulting verbosity corresponds to +that of −msglevel 5 plus the value of +MPLAYER_VERBOSE.

+
+ + + + + +
+

libaf:

+ + + + + +
+

LADSPA_PATH

+ + + + + +
+

If LADSPA_PATH is set, it searches for the specified +file. If it is not set, you must supply a fully specified +pathname. FIXME: This is also mentioned in the ladspa +section.

+
+ + + + + +
+

libdvdcss:

+ + + + + +
+

DVDCSS_CACHE

+ + + + + +
+

Specify a directory in which to store title key values. +This will speed up descrambling of DVDs which are in the +cache. The DVDCSS_CACHE directory is created if it does not +exist, and a subdirectory is created named after the +DVD’s title or manufacturing date. If DVDCSS_CACHE is +not set or is empty, libdvdcss will use the default value +which is "${HOME}/.dvdcss/" under Unix and +"C:\Documents and Settings\$USER\Application +Data\dvdcss\" under Win32. The special value +"off" disables caching.

+
+ + + + + +
+

DVDCSS_METHOD

+ + + + + +
+

Sets the authentication and decryption method that +libdvdcss will use to read scrambled discs. Can be one of +title, key or disc.

+ + + + + +
+

key

+ + + + + +
+

is the default method. libdvdcss will use a set of +calculated player keys to try and get the disc key. This can +fail if the drive does not recognize any of the player +keys.

+ + + + + +
+

disc

+ + + + + +
+

is a fallback method when key has failed. Instead of +using player keys, libdvdcss will crack the disc key using a +brute force algorithm. This process is CPU intensive and +requires 64 MB of memory to store temporary data.

+ + + + + +
+

title

+ + + + + +
+

is the fallback when all other methods have failed. It +does not rely on a key exchange with the DVD drive, but +rather uses a crypto attack to guess the title key. On rare +cases this may fail because there is not enough encrypted +data on the disc to perform a statistical attack, but in the +other hand it is the only way to decrypt a DVD stored on a +hard disc, or a DVD with the wrong region on an RPC2 +drive.

+ + + + + +
+

DVDCSS_RAW_DEVICE

+ + + + + +
+

Specify the raw device to use. Exact usage will depend on +your operating system, the Linux utility to set up raw +devices is raw(8) for instance. Please note that on most +operating systems, using a raw device requires highly +aligned buffers: Linux requires a 2048 bytes alignment +(which is the size of a DVD sector).

+
+ + + + + +
+

DVDCSS_VERBOSE

+ + + + + +
+

Sets the libdvdcss verbosity level.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Outputs no messages at all.

+
+ +

1

+
+ +

Outputs error messages to stderr.

+
+ +

2

+
+ +

Outputs error messages and debug messages to stderr.

+
+ + + + + +
+

DVDREAD_NOKEYS

+ + + + + +
+

Skip retrieving all keys on startup. Currently +disabled.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libao2:

+ + + + + +
+

AO_SUN_DISABLE_SAMPLE_TIMING

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

AUDIODEV

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

AUDIOSERVER

+ + + + + +
+

Specifies the Network Audio System server to which the +nas audio output driver should connect and the transport +that should be used. If unset DISPLAY is used instead. The +transport can be one of tcp and unix. Syntax is +tcp/<somehost>:<someport>, +<somehost>:<instancenumber> or +[unix]:<instancenumber>. The NAS base port is 8000 and +<instancenumber> is added to that.

+
+ + + + + +
+

EXAMPLES:

+ + + + + +
+

AUDIOSERVER=somehost:0

+ + + + + +
+

Connect to NAS server on somehost using default port and +transport.

+ + + + + +
+

AUDIOSERVER=tcp/somehost:8000

+ + + + + +
+

Connect to NAS server on somehost listening on TCP port +8000.

+ + + + + +
+

AUDIOSERVER=(unix)?:0

+ + + + + +
+

Connect to NAS server instance 0 on localhost using unix +domain sockets.

+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

vidix:

+ + + + + +
+

VIDIX_CRT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

osdep:

+ + + + + + + + +
+ +

TERM

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libvo:

+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

FRAMEBUFFER

+ + + + + +
+

FIXME: Document this.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libmpdemux:

+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

HOMEPATH

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

http_proxy

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

LOGNAME

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

USERPROFILE

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

libmpcodecs:

+ + + + + +
+

XANIM_MOD_DIR

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

GUI:

+ + + + + +
+

CHARSET

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libavformat:

+ + + + + +
+

AUDIO_FLIP_LEFT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_DEV

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_FORMAT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_FREQUENCY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

http_proxy

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

no_proxy

+ + + + + +
+

FIXME: Document this.

+
+ +

FILES

+ + + + + +
+

/usr/local/etc/mplayer/mplayer.conf

+ + + + + +
+

MPlayer system-wide settings

+
+ + + + + +
+

/usr/local/etc/mplayer/mencoder.conf

+ + + + + +
+

MEncoder system-wide settings

+
+ + + + + +
+

~/.mplayer/config

+ + + + + +
+

MPlayer user settings

+
+ + + + + +
+

~/.mplayer/mencoder.conf

+ + + + + +
+

MEncoder user settings

+
+ + + + + +
+

~/.mplayer/input.conf

+ + + + + +
+

input bindings (see ’−input keylist’ +for the full list)

+
+ + + + + +
+

~/.mplayer/gui.conf

+ + + + + +
+

GUI configuration file

+
+ + + + + +
+

~/.mplayer/gui.pl

+ + + + + +
+

GUI playlist

+
+ + + + + +
+

~/.mplayer/font/

+ + + + + +
+

font directory (There must be a font.desc file and files +with .RAW extension.)

+
+ + + + + +
+

~/.mplayer/DVDkeys/

+ + + + + +
+

cached CSS keys

+
+ + + + + +
+

Assuming that /path/to/movie.avi is played, MPlayer +searches for sub files

+ + + + + +
+

in this order:

+ + + + + +
+

/path/to/movie.sub
+~/.mplayer/sub/movie.sub

+ +

EXAMPLES OF MPLAYER USAGE

+ + + + + +
+

Quickstart DVD playing:

+ +
mplayer dvd://1
+
+ +

Play in Japanese with English subtitles:

+ +
mplayer dvd://1 −alang ja −slang en
+
+ +

Play only chapters 5, 6, 7:

+ +
mplayer dvd://1 −chapter 5-7
+
+ +

Play only titles 5, 6, 7:

+ +
mplayer dvd://5-7
+
+ +

Play a multiangle DVD:

+ +
mplayer dvd://1 −dvdangle 2
+
+ +

Play from a different DVD device:

+ +
mplayer dvd://1 −dvd-device /dev/dvd2
+
+ +

Play DVD video from a directory with VOB +files:

+ +
mplayer dvd://1 −dvd-device /path/to/directory/
+
+ +

Copy a DVD title to hard disk, saving to file +title1.vob :

+ +
mplayer dvd://1 −dumpstream −dumpfile title1.vob
+
+ +

Stream from HTTP:

+ +
mplayer http://mplayer.hq/example.avi
+
+ +

Stream using RTSP:

+ +
mplayer rtsp://server.example.com/streamName
+
+ +

Convert subtitles to MPsub format:

+ +
mplayer dummy.avi −sub source.sub −dumpmpsub
+
+ +

Convert subtitles to MPsub format without watching the +movie:

+ +
mplayer /dev/zero −rawvideo pal:fps=xx −demuxer rawvideo −vc null −vo null −noframedrop −benchmark −sub source.sub −dumpmpsub
+
+ +

input from standard V4L:

+ +
mplayer tv:// −tv driver=v4l:width=640:height=480:outfmt=i420 −vc rawi420 −vo xv
+
+ +

Playback on Zoran cards (old style, +deprecated):

+ +
mplayer −vo zr −vf scale=352:288 file.avi
+
+ +

Playback on Zoran cards (new style):

+ +
mplayer −vo zr2 −vf scale=352:288,zrmjpeg file.avi
+
+ +

Play a 6-channel AAC file with only two +speakers:

+ +
mplayer −rawaudio format=0xff −demuxer rawaudio −af pan=2:.32:.32:.39:.06:.06:.39:.17:-.17:-.17:.17:.33:.33 adts_he-aac160_51.aac
+
+ +

You might want to play a bit with the pan values (e.g +multiply with a value) to increase volume or avoid +clipping.

+ +

checkerboard invert with geq filter:

+ +
mplayer −vf geq=’128+(p(XY)-128)*(0.5-gt(mod(X/SW128)64))*(0.5-gt(mod(Y/SH128)64))*4’
+
+
+ +

EXAMPLES OF MENCODER USAGE

+ + + + + + +
+

Encode DVD title #2, only selected chapters:

+ +
mencoder dvd://2 −chapter 10-15 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode DVD title #2, resizing to 640x480:

+ +
mencoder dvd://2 −vf scale=640:480 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode DVD title #2, resizing to 512xHHH (keep aspect +ratio):

+ +
mencoder dvd://2 −vf scale −zoom −xy 512 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

The same, but with bitrate set to 1800kbit and +optimized macroblocks:

+ +
mencoder dvd://2 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4:mbd=1:vbitrate=1800
+
+ +

The same, but with MJPEG compression:

+ +
mencoder dvd://2 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mjpeg:mbd=1:vbitrate=1800
+
+ +

Encode all *.jpg files in the current +directory:

+ +
mencoder "mf://*.jpg" −mf fps=25 −o output.avi −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode from a tuner (specify a format with −vf +format):

+ +
mencoder −tv driver=v4l:width=640:height=480 tv:// −o tv.avi −ovc raw
+
+ +

Encode from a pipe:

+ +
rar p test-SVCD.rar | mencoder −ovc lavc −lavcopts vcodec=mpeg4:vbitrate=800 −ofps 24 −
+
+
+ +

BUGS

+ + + + + + +
+

Don’t panic. If you find one, report it to us, but +please make sure you have read all of the documentation +first. Also look out for smileys. :) Many bugs are the +result of incorrect setup or parameter usage. The bug +reporting section of the documentation +(http://www.mplayerhq.hu/DOCS/HTML/en/bugreports.html) +explains how to create useful bug reports.

+
+ +

AUTHORS

+ + + + + +
+

MPlayer was initially written by Arpad Gereoffy. See the +AUTHORS file for a list of some of the many other +contributors.

+ +

MPlayer is (C) 2000−2007 The MPlayer Team

+ +

This man page was written mainly by Gabucino, Jonas +Jermann and Diego Biurrun. It is maintained by Diego +Biurrun. Please send mails about it to the MPlayer-DOCS +mailing list. Translation specific mails belong on the +MPlayer-translations mailing list.

+
+
+ + diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mencoder.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mencoder.exe new file mode 100644 index 0000000..df8e2d8 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mencoder.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer.exe new file mode 100644 index 0000000..7e25a84 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/config b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/config new file mode 100644 index 0000000..0c717bf --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/config @@ -0,0 +1,22 @@ +## MPlayer Windows configuration + +## It's better to leave this enabled on Windows, since the console is slow. +quiet=yes + +## Frame dropping +#framedrop=yes + +## drive letter of your DVD +#dvd-device=d: + +## Uncomment this for AC-3 passthrough. +#afm=hwac3 + +## You can use the DirectX or OpenGL video output, default is directx. +#vo=directx +#vo=gl2 + +## video filtering and postprocessing +## eq is useful if your video card does not support video overlay. +#vf=pp,eq +#vf=eq,pp=lb/hb/vb diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/input.conf b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/input.conf new file mode 100644 index 0000000..f7ab3e6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/input.conf @@ -0,0 +1,152 @@ +## +## MPlayer input control file +## +## You are able to redefine default keyboard/joystick/mouse/LIRC bindings, or +## add new ones here. +## See DOCS/tech/slave.txt for possible commands that can be bound. +## Also see mplayer -input cmdlist for other possible options. +## The file should be placed in the $HOME/.mplayer directory. +## + +RIGHT seek +10 +LEFT seek -10 +DOWN seek -60 +UP seek +60 +PGUP seek 600 +PGDWN seek -600 +m mute +# switch_audio # switch audio streams ++ audio_delay 0.100 +- audio_delay -0.100 +[ speed_mult 0.9091 # scale playback speed +] speed_mult 1.1 +{ speed_mult 0.5 +} speed_mult 2.0 +BS speed_set 1.0 # reset speed to normal +q quit +ESC quit +ENTER pt_step 1 1 # skip to next file +p pause +. frame_step # advance one frame and pause +SPACE pause +HOME pt_up_step 1 +END pt_up_step -1 +> pt_step 1 # skip to next file +< pt_step -1 # previous +INS alt_src_step 1 +DEL alt_src_step -1 +o osd +I osd_show_property_text "${filename}" # display filename in osd +z sub_delay -0.1 # subtract 100 ms delay from subs +x sub_delay +0.1 # add +9 volume -1 +/ volume -1 +0 volume 1 +* volume 1 +1 contrast -1 +2 contrast 1 +3 brightness -1 +4 brightness 1 +5 hue -1 +6 hue 1 +7 saturation -1 +8 saturation 1 +( balance -0.1 # adjust audio balance in favor of left +) balance +0.1 # right +d frame_drop +r sub_pos -1 # move subtitles up +t sub_pos +1 # down +#? sub_step +1 # immediately display next subtitle +#? sub_step -1 # previous +#? sub_scale +0.1 # increase subtitle font size +#? sub_scale -0.1 # decrease subtitle font size +f vo_fullscreen +T vo_ontop # toggle video window ontop of other windows +w panscan -0.1 # zoom out with -panscan 0 -fs +e panscan +0.1 # in +s screenshot # take a png screenshot with -vf screenshot + # S will take a png screenshot of every frame + +h tv_step_channel 1 +l tv_step_channel -1 +n tv_step_norm +b tv_step_chanlist + +## +## GUI +## + +#l gui_loadfile +#t gui_loadsubtitle +#a gui_about +#s gui_stop +#p gui_playlist +#r gui_preferences +#c gui_skinbrowser + +## +## Joystick section +## WARNING: joystick support has to be explicitly enabled at +## compiletime with --enable-joystick +## + +JOY_RIGHT seek 10 +JOY_LEFT seek -10 +JOY_UP seek 60 +JOY_DOWN seek -60 +JOY_BTN0 pause +JOY_BTN1 osd +JOY_BTN2 volume 1 +JOY_BTN3 volume -1 + +## +## Apple Remote section +## + +AR_PLAY pause +AR_PLAY_HOLD quit +AR_NEXT seek 30 +AR_NEXT_HOLD seek 120 +AR_PREV seek -10 +AR_PREV_HOLD seek -120 +AR_MENU osd +AR_MENU_HOLD mute +AR_VUP volume 1 +AR_VDOWN volume -1 + +## +## OSD Menu movement keys +## +## If you are using only the keyboard it is enough to define one command (like +## "menu up"), because then that single key will display the menu, which can +## then be navigated with the cursor keys and ENTER. +## +## LIRC users should bind each "menu" command to a button on their remote. +## +## The set_menu command directly displays the (sub)menu specified as +## its argument. Usage should be self-explanatory (although not likely +## to be needed), after reading input.conf. +## + +#MOUSE_BTN0 menu up +#y menu down +#y menu ok +#y menu cancel +#y menu hide +#y set_menu general_pref + +## +## DVDNAV +## Requires dvdnav:// +## + +KP8 dvdnav 1 # DVDNav UP +KP2 dvdnav 2 # DVDNav DOWN +KP4 dvdnav 3 # DVDNav LEFT +KP6 dvdnav 4 # DVDNav RIGHT +KP5 dvdnav 5 # DVDNav MENU +KP_ENTER dvdnav 6 # DVDNav SELECT (ok) +KP7 dvdnav 7 # DVDNav PREVIOUS menu (in the order chapter->title->root) + +#? seek_chapter -1 # skip to previous dvd chapter +#? seek_chapter +1 # next diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/subfont.ttf b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/subfont.ttf new file mode 100644 index 0000000..8f43790 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/mplayer/subfont.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/vfw2menc.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/vfw2menc.exe new file mode 100644 index 0000000..2b26857 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer & bme2picseq/vfw2menc.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/AUTHORS.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer/AUTHORS.txt new file mode 100644 index 0000000..60c2d2d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/AUTHORS.txt @@ -0,0 +1,1089 @@ + ***************************************** + AUTHORS + ***************************************** + +NOTE: NEVER send bug reports, help and feature requests directly to the +authors, but you're free to write mails about donating! + +For donation requests visit http://www.mplayerhq.hu/donations.html. + + +___________________ +The MPlayer project +~~~~~~~~~~~~~~~~~~~ + +MPlayer was originally written by Ãrpád Gereöffy (for a more complete history +see DOCS/HTML/en/history.html) and later extended by a bunch of other people, +some of which are listed here in alphabetical order. If you think you are +missing, feel free to send a patch. + +Ackermann, Andreas (Acki) + * LIRC support + * DGA support in libvo + +adland + * support for various Windows DLL codecs (LCW2, ASLC) + * SMIL playlist parser + * many streaming bug fixes and improvements + * libfaad2 update + +Anholt, Eric + * CPU detection code + +Ashberg, Folke + * native AAlib driver (-vo aa) + +Balatoni, Dénes + * XMMS inputplugin support + * minor features & fixes + * Sun XVR-100 VO driver port from xine + +Barat, Zsolt (joyping) + * ao_alsa9 fixes, AC3 passthrough support + * ao_alsa unified ALSA audio output driver + +Barbato, Luca (lu_zero) + * random AltiVec fixes + * other minor fixes + +Baryshkov, Dmitry (lumag) + * Russian documentation translation + * FLAC decoding support + * XML build system + +Baudet, Bertrand + * network streaming support author + * CDDB support + +Bedel, Alban (albeu) + * MMS network streaming patches + * playtree and per-entry config + * playlist parsers + * new input layer, slave mode improvements + * audio only support + * MP3, WAV and Ogg demuxers, Ogg in AVI fixes + * support for audio from an external file + * DXR2 driver + * vo_aa improvements + * CDDA support + * OSD menu + * new modular config/command line parser code + +Behrisch, Michael + * online audio stream switching for MPEG and Matroska files + +Belev, Luchezar (lucho) + * hw-accelerated video eq support into x11, gl2 (using DirectColor cmap) + +Bérczi, Gábor (Gabucino) + * large parts the original HTML and TXT documentation + * original Hungarian documentation, homepage, console message translation + * second homepage design & gfx + * original homepage content + * testing, codecs quality & speed comparisons + * experimental MINIX port :) (what's funny about it?) + * MPsub subtitle format design + * AlienMind, BlueHeart, CubicPlayer, MidnightLove, netscape4, + WMP6, xanim, xine-lcd skins + +Berecz, Szabolcs (Szabi) + * codecs.conf file parser + * config file and command line parser + * mga_vid fixes, module option, etc + * fbdev video output driver + * type #7 subtitle support + +Beregszászi, Alex (al3x) + * second project maintainer + * alsa5 and alsa9 audio output drivers in libao2 + * ggi video output driver (www.ggi-project.org) + * XAnim codecs support + * VIVO files, codecs support + * TV grabbing support + * QuickTime hackings + * libavcodec support in MEncoder + * RM file format demuxer + * MEncoder framecopy + * yuv4mpeg1 support + * NuppelVideo demuxer changes + * subconfig + * VIDIX and libdha hackings + * Matrox driver port to VIDIX + * XVIDIX video output driver + * many other things (in libvo, libmad syncing, dec_audio/video and loader) + * libmpcodecs / libmpdemux hacking + * patch review + * dynamic a/v plugins (external shared ad/vd/.. objects) + * millions of bug fixes + +Bitterberg, Tilmann + * AVI OpenDML read support + +Biurrun, Diego (DonDiego) + * documentation all over the place + * command line option documentation completed + * README, wishlist, translations.txt + * random trivial fixes + * main tester and small fixes for the Cygwin and MinGW ports + * testing, bug reports + * homepage content improvements, design7, HTML fixed + * Hunglish to English translation everywhere + * head of the Ministry for English Composition + * ultrafina skin + * skin review part I + * patch review + * build system overhaul + +Blomenkamp, Marcus + * VIDIX patches (Rage128, Radeon 7000) + * OSS AC3 passthrough fix + +Buehler, Andrew (The Wanderer) + * various documentation spelling and grammar corrections + * mp_msg transition on main source files + +Bulgroz, Eviv + * presets support for mp3lame encoding + * AVI demuxer time/bitrate calculation fixes + * various bug fixes + +Bünemann, Felix (Atmos) + * additional YUV formats fixes + * new font (mp_font2.zip) + * png video output driver + * flipping support (for Indeo 3/4, etc) + * SDL audio output driver in libao2 + * RAW PCM/WAVE file writer for libao2 + * Ogg Vorbis audio support + * aspect ratio code improvements, prescaling support + * Win32 (Cygwin) port + * DivX5Linux support + * AAC decoding support via libfaad2 + * Darwin (Mac OS X) port + +Bunkus, Moritz (Mosu) + * various OGM hacks/fixes + * OGMtools author + * Matroska demuxer + +Christiansen, Dan Villiom Podlaski (danchr) + * timer-darwin.c + * ao_macosx + * build system cleanups for Darwin + +Clagg, Jeff (snacky) + * minor updates and fixes for x264 support + * x264's encoding guide + * superficial clarity fixes for mpcf.txt + +Comstedt, Marcus + * initial Solaris 8 x86 support + * configure fixes + +Cook, Kees + * dvdnav hacks + * rawdv demuxer fixes + +Curry, Alan (pacman, tcsetattr) + * swscale AltiVec/big-endian fixes + * misc vo_fbdev fixes + +Davies, Stephen + * support for large video files (>2^32 bytes in size) + * surround sound aop plugin + +Di Vita, Piero (Scognito) + * gnome, trium skins + * new GUI icons + * skin review part II + +Diedrich, Tobias (ranma, ranmachan) + * NAS audio output driver + * DXR2 driver + * softpulldown video filter + * ported Donald Graft's kerndeint video filter + * AVI OpenDML write support + +Dietrich, Florian + * MinGW networking support + +Dobbelaere, Jeroen + * original libmad support + +Döffinger, Reimar (reimar) + * GL code fixes + * various fixes all over the place + * reworked live changing playback speed + * made MMS over HTTP stream selection work and modified ASF header parsing + * reimplemented ao_jack without bio2jack dependency + * musepack demuxer and decoder, based on Reza's patch + * speex decoder via libspeex + * MPEG-2 in GXF demuxer + * vo_gl ported to windows + * gl_commmon.[ch] to decrease code duplication + * OpenGL support for OSD, panscan, YUV->RGB conversion, texture buffers, + custom fragment programs and more + +Dolbeau, Romain + * random AltiVec (PowerPC multimedia extensions) stuff + * vo_quartz YUV support & fixes + * endianness fixes + +Dönmez, İsmail (cartman) + * compile fix for mga_vid to compile with Linux 2.5/2.6 kernels + * small fixes all around + +Edele, Robert (yartrebo) + * remove_logo filter + +Egger, Christoph + * vo_ggi updates + +Elsinghorst, Paul Wilhelm + * GUI: remote ESD support including software mixer + +Ernesti, Bernd + * NetBSD support patches + +Falco, Salvatore + * jacosub parsing & dump support + * overlapping subtitles & sub sorting support + * SAMI subtitles dump support + +Feigl, Johannes (jaf) + * original German docs translation (outdated) + * some improvements in configure, small patches + * found somebody (Thilo Wunderlich) who sent a DVB card + +Felker, D Richard III (dalias) + * lots of work on inverse telecine including initial support + * improved MEncoder (getting rid of DivX4 dependency, seeking, ...) + * antialiased DVD subtitles + * misc bug fixes and improvements, esp. in video filter/output system + * tech docs on encoding + * eq, halfpack, dint, detc, field, decimate, dsize, ilpack, ivtc, + tfields, pullup video filters + +Ferguson, Tim + * open source Cinepak decoder + * open source CYUV decoder + +Finlayson, Ross + * LIVE555 Streaming Media library author + * RTP/RTSP streaming support + +Forghieri, Daniele (xdanny) + * TGA output driver + * framestep & tile video filters + * initial Italian man page translation + * fixes and improvements to lavc audio encoding + +Foth, Kilian A. + * slave mode + +Franz, Fabian (Fabianx) + * help with the libmpeg2 0.3.0 update + * playlist improvements + * KDE screensaver support + * mini skin + +Gansser, Martin + * HP-UX port + +Gereöffy, Ãrpád (A'rpi/ESP-team) + * project founder, first project maintainer + * MPlayer, MEncoder core, A-V sync + * libmpdemux, demultiplexer for MPEG, ASF, AVI, various fixes in others + * mp3lib, based on mpglib sources [MP3 audio decoder] + * getch2 [keyboard handler] + * some changes in libmpeg2 code (progressive frames, bitrate & fps support) + * libvo improvements: adding OpenGL support, bug fix in mga driver... + * triple buffering & YUY2 support (for DivX/MPEG-4) into mga_vid driver + * OSD & subtitle display code + * FFmpeg/libavcodec integration + * DivX4Linux (Project Mayo) support (see documentation) + * New DVD support using libdvdread + * MPEG PES output & DVB card support + * libmpcodecs design, porting video decoders, filters + +Giani, Matteo + * PVA demuxer + +Giaquinta, Emanuele (exg) + * Darwin/ppc fixes + * libfaad2 update + +Goethel, Sven + * vo_gl2 video output driver + * PVR Channel Navigation + +Gomez Garcia, German + * SPDIF AC3 output for SBLive! + +Gottwald, Alexander + * various small bug fixes + +Graffam, Michael + * XF86VidMode support to vo_x11 and vo_dga + * video mode switching code to vo_dga + +Gritsenko, Andriy N. (AG_LS) + * drop-deinterlace (dint) video filter + * muxer layer, and new MPEG-PS muxer + +Guyomarch, Rémi (rguyom) + * various fixes + * unsharp video filter + * XviD encoding support + +Hall, Julian + * black frame detection filter (vf_blackframe) + +Hammelmann, Jürgen + * TOOLS/mencvcd author + +Hertel, Christopher R. + * md5sum code used by vo_md5sum. part of uCIFS library. + +Hess, Andreas + * upgrading libdvdcss in libmpdvdkit2 + * various small bug fixes + +Hickey, Corey + * telecine/interlacing HOWTO for the MEncoder documentation + * advanced audio usage guide for the MPlayer documentation + * muxer frame buffer for MEncoder + +Hidvégi, Zoltán (Zoli) + * filmdint video filter + +Hoffmann, Jens + * additional YUV formats support + * found the big BITMAPINFOHEADER problem -> solved ASV2 pixelization + +Hoffman, Marc + * AltiVec, color space converter + * Blackfin, DSP optimizations + +Holm, David (dholm, mswitch) + * DXR3 support + +Horst, Bohdan (Nexus) + * FreeBSD support + +Hoyos, Carl Eugen (cehoyos) + * improvements to LIVE555 demuxer + +Huehner, Stefan (huehner) + * Major code cleanup patches + +Hug, Hampa + * LUT-based soft eq video filter (vf_eq2) + * .ogm demuxer endianness fixes + +Hůrka, Tomáš + * Darwin DVD support (mpdvdkit2) + * various fixes + +Isani, Sidik + * get_delay() smoothing code (-autosync) + * RTC initialization fixes + * various small fixes + +Issaris, Panagiotis (takis) + * -playlist option + * NuppelVideo support + * various fixes + +Jacobs, Aurelien + * standalone C Matroska demuxer + * DTS support + +Jelveh, Reza (timebomb) + * NSV demuxer + * seeking in Real files without index + * savage_vid VIDIX driver + * miscellaneous small fixes and improvements + * first musepack decoding patch + +Jermann, Jonas (g0th) + * manual page rewrite + * documentation + +Johansson, Anders + * old audio plugin system, some effect plugins + * new libaf interface design, implementation, plugins + +Kain, Nicholas + * strl(cpy|cat) detection and conversion + * string handling cleanups + +Kalinski, Filip (filon) + * X11 fulscreen switching fixes/cleanup + +Иван Кълвачев [Ivan Kalvachev] (iive) + * interlaced MPEG-2 support (libmpeg2) + * configfile parser fixes + * SRT subtitle dump support + * vo_svga rewrite + * various fixes and small improvements + * XvMC support (MPlayer & FFmpeg) + +Kaniewski, Wojtek + * mouse wheel support + * made the FreeType + RAW font support work together + +Kaplan, Kim Minh + * DVD and VOBsub subtitles display support + * DVD subtitles rip to VOBsub + +Kärkkäinen, Samuli + * first DVD ripping guide + +Keil, Jürgen + * patched MPlayer to work on Solaris 8 x86 + * various fixes (Win32, configure, etc) + * sun audio output driver in libao2 + * mediaLib support in libavcodec + * esd audio output driver in libao2 + +Kesterson, Robert + * yuv4mpeg video output driver + +Kinali, Attila (KotH) + * various small fixes in the X11 code + * xinerama support + * documentation + * patch application monkey, mailer daemon + +Kovriga, Gregory + * GUI drag & drop support + * GUI DVD fixes + * various small bug fixes in ASX/URL parser + +Kühling, David + * libtheora support, Ogg/Theora demuxing changes + +Küçük, Onur + * GTK2 port of the GUI + * Fix compilation in locales like TR, AZ etc. + +Kuivinen, Fredrik (ksorim) + * OSD/subtitles outside a movie for SDL + * video filter layer draft, first implementation + * VirtualDub filter support (not yet finished/committed) + +Kurshev, Nick + * memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h) + * CD-ROM tune info + * further 3DNow! optimizations into mp3lib and libac3 and FFmpeg + * first Russian documentation translation (outdated) + * radeon_vid, rage128_vid, radeonfb + * vesa video output driver + * VIDIX and libdha design, programming, Rage128/Radeon VIDIX drivers + +Kuschak, Brian + * RTP streaming support (reading) + +Kushnir, Vladimir + * patched MPlayer to work on FreeBSD x86 + +Lambley, Dave + * HTTP cookie support + +László, Gyula (Chass, Tégla) + * first fonts (mp_font1.zip) + * third and fourth homepage design & gfx + +Le Gaillart, Nicolas + * French documentation translation + * documentation updates and fixes + * 2nd half of the documentation HTML --> XML conversion + +Lénárt, Gábor (LGB) + * configure script improvements + * Makefile improvements + * preliminary DVD support (libcss) + * various X11 cleanups and fixes + * HTMLization of the documentation + +Leroy, Colin + * GUI endianness fixes + * volume control with -ao sdl + * -ovc lavc endianness fixes + * -ao pcm endianness fixes + * libdha on PowerPC Linux + * mach64 VIDIX driver endianness fixes + +Lewis, Derek (delewis) + * AIX port + * Solaris-related configure fixes + +Liljeblad, Oskar + * various OSD related patches + +Lin, Sam + * -wid (plugger) patch + +Littler, Ben (compn) + * #mplayer user wrangler (2003+) + * minor samples/bugs/win32 finder/tester + * small docs patches + +Lombard, Pierre (pl) + * new configure script + * general code maintaining, fixes, patch committing + +Madick, Puk + * KDE/GNOME2 fullscreen fix + * configparser fixes + +MakoviÄka, JindÅ™ich (henry, x0rph) + * various bug fixes + * rewrote v4l video capturing, implemented audio capturing layer + * FreeType 2 font rendering support + +Marek, Rudolf + * gtf code for -vo vesa + * NeoMagic TV out support through VESA VBE + +Megyer, László (Lez, Laaz) + * subtitle reader + * screensaver + DPMS disable for libvo + +Melanson, Mike (tmmm) + * MS Video1 codec open source implementation + * FLI demuxer, decoder + * unified ADPCM decoder (supports IMA/DVI, MS ADPCM, several others) + * FILM (.cpk) file demuxer + * RoQ file demuxer, audio/video decoder + * QT SMC decoder + * QT RLE decoder + * MS RLE decoder reimplementation + +von Merkatz, Arwed + * fontconfig font lookup support + +Merritt, Loren (pengvado) + * x264 encoding support + * x264 documentation + * some libavcodec documentation + +Mierzejewski, Dominik (Rathann) + * compiler warning fixes + * official Red Hat RPM packages + * Polish documentation translation + +Milushev, Mihail + * GIMP font generator plugin (TOOLS/subfont-gimp) + +Mistry, Nehal (Nehal) + * various audio driver fixes + +Mohari, András + * skin documentation + * various docs updates and fixes + * 1st half of the documentation HTML --> XML conversion + +Mueller, Steven + * first implementation of live changing playback speed + +Murrell, Brian J. + * black frame detection filter (vf_blackframe) + +Neundorf, Alexander + * raw DV demuxer + * demuxer packet refcounting + +Niedermayer, Michael (michaelni) + * new, GPL postprocessing code (with deinterlacing etc...) + * software scaling with MMX/MMX2/3DNow! support (swscale.c) + * various RGB/YUV bpp converters + * new, better IDCT code for libavcodec, DivX decoder speedup + * runtime CPU detection + * liba52 SSE optimization + * various encoder/decoder fixes, improvements in libavcodec, DR support + * lrintf() bugs + * many bug fixes + * patch review + * boxblur, fil, hue, il, noise, perspective, qp, rgbtest, sab, smartblur, + spp, swapuv, test video filters + +Noring, Fredrik + * -vo DGA fixes + +Ohm, Christian + * various small bug fixes + +Ötvös, Attila + * A huge pile of printf to mp_msg patches + * Various patches for Teletext + +Parrish, Joey + * various fixes + * -vo gif89a author + * GIF demuxer author + * Windows support improvements + * Cygwin installer package + +Pietrzak, Dariusz (Eyck) + * Debian packaging support (see debian/* and the documentation) + * support for vplayer subtitle format + * preliminary support for .RT subtitle format + +Plourde, Nicolas + * quartz video output driver for Mac OS X + * macosx CoreVideo output driver for Mac OS X + * Darwin VCD/SVCD support + +Poettering, Lennart + * audio driver for the Polypaudio sound server + +Poirier, Guillaume (poirierg) + * French documentation translation and synchronization + * XviD documentation + * libavcodec turbo mode + * lots of updates of MEncoder's documentation + * code fixes to support GCC-4.0 + * patch review + +Ponekker, Zoltán (Pontscho/fresh!mindworkz) + * the original configure script and Makefiles for easy compilation + * GUI system + * 3DNow! support into mp3lib and fastmemcpy.h + * various X11 driver changes, fixes (keyboard handling, fullscreen, + bpp detect, etc) + * xmga video output driver + * audio mixer (volume) support + +van Poorten, Ivo (ivop) + * multiple directory support for vo_jpeg + * vo_jpeg suboptions parser + * vo_pnm video output driver + * vo_md5sum video output driver + * af_ladspa LADSPA plugin loader + * vf_blackframe cleanup and simplification + +Ran, Lu + * Chinese documentation translation + * various VOBsub related patches + * improved seeking in RealMedia format + +Reder, Uwe + * various x11/vm/fs fixes + * subtitle/OSD control fixes + +rgselk + * Real RTSP range support + +Rune Petersen + * adapter selection support for vo_directx + +Saari, Ville + * divtc & phase video filters + +Sabbi, Nico + * DVB input support + * MPEG TS support + +Sandell, Björn + * various *BSD fixes + +Sanderson, Mark + * -vo s3fb driver + +Sauerbeck, Tilman + * TGA decoder (RLE/uncomp), -mf tga support + +Scherthan, Frank + * added OSD handling for live changing playback speed + +Schneider, Florian + * RealVideo codec libraries interface, .rm demuxer fixes + +Schoenbrunner, Oliver + * SGI audio driver + * MIPS support + +Shimon, Oded (ods15) + * multiple file support for MEncoder + * small cleanups, mostly to EDL + * -speed for MEncoder + * -edl and -hr-edl-seek for MEncoder + * -delay for MEncoder + * some changes to vf_dsize and vf_expand + +Simon, Peter + * TOOLS/wma2ogg.pl author + +Snel, Rik (rik) + * zr video output driver + * zr2 video output driver + * zrmjpeg video filter + +Sommer, Sascha (Faust3) + * DirectX VO driver + * Windows waveout AO driver + * QuickTime audio+video decoding, video encoding (using Win32 DLLs) support + * MinGW port, Cygwin fixes + * winvidix video output driver + * cvidix video output driver + * nvidia_vid VIDIX driver + * dhahelperwin for direct hardware access under Windows NT/2000/XP + +Stepanov, Evgeniy (eugeni, Azzy) + * SSA/ASS subtitle renderer + * Matroska chapter seeking + +Strasser, Alexander (beastd) + * string handling security audit + * EWMH fullscreen + * suboption parser + +Strzelecki, Kamil < esack at browarek.net > + * first version of ao_jack, using bio2jack + +Svoboda, Jiří (zar) + * AQT type subtitles support + * CRTC2 YUV support in mga_vid + * DirectFB video output driver + +Swain, Robert + * CQM support and turbo multipass mode in x264 interface + * Profile support in XviD interface + +Syrjälä, Ville + * -vo dfbmga driver (G400 DVDMax-like feature using dfb 0.9.14) + +Szecsi, Gabor + * directsound AO driver + +Tackaberry, Jason + * second DVD ripping guide + +Tam, Howell (Pigeon) + * native libcaca driver (-vo caca) + +Tlalka, Adam (atlka) + * OSD/subtitle review, fixes, optimization, UTF-8 support + * various fixes + +Tiesi, Gianluigi (Sherpya) + * AC3 passthrough support for ao_win32 + * avisynth demuxer + +Togni, Roberto (rxt) + * open source QT RPZA decoder + * open source HuffYUV decoder + * open source MSZH/ZLIB decoder + * open source QT 8BPS decoder + * mp_help-it.h updates + * Realaudio (ra) demuxer, 14_4 and 28_8 codec support + * Misc bug fixes and enhancements + * documentation + +Tresoldi, Paolo "PaulTT" (ptt) + * mplayer -endpos option + * Italian man page and console messages translations + * Italian documentation translation + +Tropea, Salvador Eduardo + * subtitle parsing/displaying related patches + +Urpala, Uoti (uau) + * A/V sync fixes + +Vajna, Miklós (VMiklos) + * TOOLS/divx2svcd author + * TOOLS/ directory documentation + +Verdejo Pinochet, Reynaldo H. (reynaldo) + * improved EDL support + * mp_msg transition / translatables to help_mp helper + * .wpl playlist support hack + * karaoke audio filter + * major code cleanups + * TOOLS/qepdvcd.sh + +Voroshilov, Vladimir + * Radio support + * Russian documentation translation + * Russian man page translation + +Wigren, Per + * bmovl - Bitmap Overlay video filter + +Witt, Derek J + * MMS network streaming patches + +Young, Alan + * fixed support of RealMedia & XAnim binary plugins on Alpha + +ZaprzaÅ‚a, Artur (zybi) + * complete font generator prog + OSD font (TOOLS/subfont-c) + +Zealey, Mark + * -vo tdfxfb driver + * -geometry window positioning code + +Ziv-Av, Matan + * vo_svga fixes, improvements + * svgalib kernel helper support for VIDIX/libdha + +Zoltán, Márk Vicián (Se7en) + * SVGAlib support in libvo + +Zores, Benjamin (ben) + * RTSP input layer in stream. + * PVR input layer for IVTV based cards. + * IVTV h/w MPEG decoder ao/vo driver. + * split of stream layer from libmpdemux to stream. + * VIDIX core and drivers. + +________________ +The codecs, libs +~~~~~~~~~~~~~~~~ + +Bellard, Fabrice + * FFmpeg/libavcodec author (open source MPEG, MJPEG, + DivX, WMA, DV etc audio/video en/decoder) + +Chappelier, Vivien and Vincent, Damien + * libFAME authors [fast MPEG-1 encoder, used by -vo mpegpes/-vo dxr3] + +Hipp, Michael + * mpglib author [not used directly but some parts are in mp3lib] + +Holtzman, Aaron + * ac3dec (and libac3) author [old AC3 audio decoder] + * the original mga_vid driver [Matrox G200/G400 YUV backend scaler] + * mpeg2dec [Fast MPEG-1/MPEG-2 video decoder, currently used in player] + +Janovetz, Jake + * remez.c author [Used to calculate audio filter coefficients] + +KabeláÄ, ZdenÄ›k (kabi) + * avifile author + * some technical help about the Win32 stuff, ASF formats and timers + +Kuznetsov, Eugene + * avifile author [AVI player library for Linux, using Win32 VfW/ACM codecs] + * technical help about AVI and ASF formats, and how to get YUV using VfW... + * DivX4Linux technical support + +Lespinasse, Michel + * large libmpeg2 changes for better speed and MPEG conformance + * liba52 author [current AC3 audio decoder] + +Podlipec, Mark + * xa_gsm.c author [MS-GSM audio codec] [from a GSM library by Jutta Degener + and Carsten Bormann] + +Project Mayo + * the OpenDivX codec authors + + +_____________________________________________________ +Their code is not used in the current player version, +but I've got some ideas or other technical help from: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Farin, Dirk + * dvdview author [MPEG-1/MPEG-2 video decoder, used in v0.5-v0.8] + +Lee, Avery + * VirtualDub author, help understanding AVI with VBR audio and + other AVI issues + +McGowan, John F. + * AVI FAQ author/collector. [site with many useful docs on codecs + and AVI format] + +Williams, Adam + * libmpeg3 (and xmovie) author [MPEG-1/MPEG-2 video decoder, used in + v0.1-v0.4] + + +___________ +Translation +~~~~~~~~~~~ + +Fargas, Marc (TeLeNiEkO) + * first Spanish documentation translation (outdated) + +Heryán, Jiří + * Czech man page and documentation translation + * some other Czech translation related work + +Krämer, Sebastian (kraymer) + * German man page translation + * German documentation translation + +Lettmaier, Kurt (k.lettmaier@onlinehome.de + * German documentation translation + +López, Juan Martin (nauj27) + * Spanish man page translation + * Spanish documentation translation + +Mizda, Gábor (Gabrov) + * Hungarian translation + +MPlayerPL - Polish MPlayer Translation Team (http://mplayerpl.emdej.com) + * WacÅ‚aw Schiller (Torinthiel) + * Kuba Misiorny (Qba) + * Åukasz Proszek (Frogu) + * Maciek Paszta (paszczi) + * Piotr Michniewski (Cobra) + * Marcin Biernat (boskicinek) + * Marek Jarycki (Emdej) + * Leszek Kaplita (Flex) + +Savchenko, Andrew + * Russian documentation translation + +Zubimendi, Andoni . + * Spanish documentation translation + + +_________ +GUI skins +~~~~~~~~~ + +unknown author + * iTunes, iTunes-mini + +Azrael + * brushedGnome + +Bekesi, Viktor (FRD) + * standard, plastic, slim + +bleachie + * bluecurve + +Burt.S. + * mplayer_red + +caparuni + * PowerPlayer + +Carpenter, Andrew + * handheld + +DogFaceMonk + * OSX-Mod + +Foucault, Charles + * QuickSilver + +funkydrummer@postmaster.co.uk + * Dushku + +ghostman + * sessene + +Gyimesi, Attila (JiM) + * JiMPlayer + +Hertroys, Alban + * disappearer + +hwsw.hu + * hwswskin + +Javipa + * new-age + +Kiss, Balint (Blint) + * Terminator3 + +krivilli + * Cyrus + +Kuehne, Andre + * tvisor + +Kuhlmann, Rüdiger + * KDE + +LUIGI + * Corelian + +michaell@uni.de + * hayraphon + +Naumov, Dan (Jago) + * moonphase + +Northam, Ryan + * OSX-Brushed + +nostrildamus + * xmmplayer + +Oyarzun Arroyo, Juan Pablo (jpoyarzun) + * changuito + +Park, DongCheon + * CornerMP, CornerMP-aqua + +Pehrson, Jurgen + * phony + +Pizurica, Nikola + * Industrial, XFce4 + +Ptak, Oliwier (aleczapka) + * mentalic, neutron + +Quiana + * QPlayer + +Riccio, Pasquale + * proton + +Schultz, Jesper + * plastik + +siTe + * OpenDoh + +Sudrien + * softgrip + +Sulmicki, Adam + * profiling and menu fixes + +Szumiela, Marcin + * divxplayer + +Tisi, Massimo + * clearplayer + +Týř, Jiří jun. + * DVDPlayer + +Vasilev, Ognian + * Orange + +Veres, Imre + * Canary + +Vesko, Radic + * Linea + +Vigvary, Balasz (Toky) + * avifile + +Weber, Andrew (Webby) + * webby, smoothwebby + +Whitmore, Gary Jr. + * krystal + +Wilamowski, Franciszek (Xenomorph) + * Abyss, Blue, Blue-small + +Zeising, Michael + * productive diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/BLACK.bmp b/iidx/bme2ac workspace djt custom songs/videos/mplayer/BLACK.bmp new file mode 100644 index 0000000..3cafcdf Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/BLACK.bmp differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/Changelog.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer/Changelog.txt new file mode 100644 index 0000000..5f6ee81 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/Changelog.txt @@ -0,0 +1,2848 @@ +MPlayer (1.0) + + rc2: "AreWeThereYet?" October 7, 2007 + (SVN revisions: MPlayer r24722, FFmpeg r10677) + + DOCS: + * console messages and XML documentation converted to UTF-8 + * Russian documentation translation finished + * Russian man page translation finished + * Chinese man page translation finished + * Chinese documentation translation started + * Documented get/set/step properties in DOCS/tech/slave.txt + + Decoders: + * Intel Music Coder audio decoding via lavc + * Monkey Audio audio decoding via lavc + * Fraps v2/v4 video decoding via lavc + * Video game codecs: 4XM audio, Electronic Arts ADPCM audio, Delphine CIN + audio and video, Interplay DPCM audio, Sierra VMD video, Tiertex SEQ + video, Westwood IMA ADPCM audio, XAN wc3 video, Id CIN video, Interplay + video, XAN ADPCM audio, Westwood SND1 audio, Feeble Files DXA video, THP + audio and video, Renderware TeXture Dictionary video, Bethesda Software + VID video via lavc + * video game codecs: XAN wc4 video via binary DLL + * libmpeg2 updated to 0.4.1 + * fixed resolution switching with libmpeg2 + * handle resolution switching for Real codecs + * FFmpeg video decoder can now handle aspect ratio changes + * AMR now handled via libamr wrapper (http://www.penguin.cz/~utx/amr) + * SIMD optimizations for mp3lib under AMD64 + + Demuxers: + * Implemented switch_video and switch_program consistently with switch_audio + (default keys are "_" and TAB, respectively). For the time being program + switching is only available in TS streams handled by demux_ts.c (not + libavformat), while video switching is also handled by demux_lavf.c and + demux_avi.c. + * audio and video switching for the AVI demuxer (video switching untested) + * GIF demuxer improvements, should work with all GIFs now + * support for VC-1 in MPEG-TS and MPEG-PS files (BD,HD)-DVD + * support for EVO demuxing + * support -noidx with libavformat demuxer + * support for channel navigation with PVR input + * text subtitles should now work with libavformat demuxer + * cleaned up TiVo demuxer + + + Streaming: + * authentication for Real RTSP streams + * near-precise seeking in dvd:// and dvdnav:// + (dvdnav:// requires libdvdnav from mphq) + * speed selection when playing dvd:// streams, to make drive quieter + * support SVQ3 and H.264 in X-QT over RTSP, now RTSP Apple keynotes work + (live555) + * SMIL playlist over Real RTSP + * support H.263-2000 over RTSP (live555) + * fix AAC-LATM over RTSP (live555) + * support AMR over RTSP (live555) + * support H.264 over RTSP (live555) + * "device" and "adevice" suboptions now work for the *BSD BT848 TV driver + * dvdnav:// now depends on MPlayer's fork of libdvdnav + * teletext support for tv:// (v4l and v4l2 only) + * radio support for *BSD BT848 + * channel scanner for tv:// + * fine tuning for tv:// + * driver autodetection for tv:// + * libnemesi RTSP/RTP support + * EOF detection for RTSP (live555) + + FFmpeg/libavcodec: + * Intel Music coder audio decoder + * Fraps v2/v4 video decoder + * H.264 decoding speedup + * Slice-based parallel H.264 decoding (-lavdopts fast:threads=N) + * native NUT demuxer updated to spec + * native NUT muxer + * NUT muxing and demuxing support via libnut + * WMA encoder + * fix MJPEG-B on big-endian systems + * lowres support for some H.264 files + * DTS/DCA audio decoder + * Atrac 3 audio decoder + * MPEG-1/2 speedups + * RoQ muxer, video and audio encoder + * QTRLE encoder + * AC-3 decoder + * Matroska muxer + * Monkey's Audio demuxer and decoder + * Flac encoder and decoder speedups + * AMV demuxer and audio/video decoder + + libmpeg2: + * iWMMXt-accelerated DCT and motion compensation for ARM processors + + Filters: + * obsolete fame filter removed + * vf_geq speed-ups + * vf_yadif green frame fixed + * fix af_pan when switching audio streams + * add audio left/right balance feature to af_pan + + MEncoder: + * write to output streams (currently only file:// and smb://) + * support -ffourcc with -of lavf + * removed B-frame warning message + * fixed bugs that would corrupt headers in the video stream when using telecining + and not patch the TFF flag correctly + + Ports: + * Complete Intel Mac support + * Hitachi SuperH (SH3) support + * Blackfin optimizations + + Drivers: + * ALSA audio output now sets the non-audio bit for AC3 passthrough even + if the user-specified default device name tries to clear it + * fixed internal VIDIX in Solaris/x86, also auto-enabled + * rework of internal VIDIX, now a fully static library with builtin drivers + * updated VIDIX ATI drivers + * Sun XVR-100 video output driver + + Others: + * monitorpixelaspect=1 is now default. Set monitoraspect=4/3 to get the old + behavior (if you have non-square pixels). + * libdvdcss updated to Subversion HEAD, now same as upstream version + * libmpdvdkit split into libdvdread and libdvdcss + * obsolete Xvid 3 support removed + * long-deprecated -vop option removed + * video stream switching + * dvdnav:// honor -alang and -slang + * support for doubleclick as input event + * -really-quiet works as expected now + * select libavformat demuxer (-lavfdopts format=) + * internal minilzo removed in favor of FFmpeg implementation, + use liblzo2 for encoding + * change GUI dependency from libpng to libavcodec + * ability to change subtitle size during playback + * ability to turn loop on/off during playback + * Apple Remote support + * libdvdread updated to 0.9.7 + * many compiler warning fixes + + + rc1try3: June 5, 2007 (unreleased) + + Security: + * stack overflow in stream_cddb.c fixed + + + rc1try2: December 31, 2006 (unreleased) + + Security: + * buffer overflow in asmrp.c fixed + + + rc1: "Codename intentionally left blank" October 22, 2006 + (SVN revisions: MPlayer r20372, FFmpeg r6767) + + DOCS: + * German documentation translation finished + * Russian documentation translation synced and almost finished + + Drivers: + * IVTV hardware MPEG audio/video decoder output + * ALSA audio output: AC3 passthrough now works even when the device name + of the digital output port has been set by the user + * bicubic OpenGL scaling works with ATI cards + * md5sum switched to the libavutil MD5 implementation + * support for libcaca 1.0 via compatibility layer + + Decoders: + * liba52 updated to 0.7.4 (slightly faster) + * SSE optimizations for mp3lib + * removed support for obsolete and non-free divx4 libraries + + Demuxers: + * audio stream switching in MPEG-TS/PS, Matroska and + streams supported by libavformat + * audio stream switching between streams with different codecs + * libavformat demuxer now honors -alang + * chapter seeking in Matroska files + * fixed seeking to absolute and percent position for libavformat demuxer + * NUT demuxer using libnut + * Matroska SimpleBlock support + + Inputs: + * split of stream layer from libmpdemux to new stream library + * PVR input for hardware MPEG encoder based cards, such as Hauppauge + WinTV PVR-150/250/350/500 AKA IVTV but also pvrusb2 and cx88 + (requires Linux >= 2.6.18 kernel, featuring native V4L2 MPEG API) + * native RTSP input (handles MPEG-TS over RTP) for generic RTSP servers + * support for seeking to chapters in dvd:// and dvdnav:// streams + * radio support (radio://) + + FFmpeg/libavcodec: + * VC-1/WMV3/WMV9 video decoder + * Vorbis decoding speedup, now default Vorbis decoder + * VMware Video decoder + * On2 VP50 and VP62 decoder + * lossless audio decoders: WavPack, TTA, Shorten + * CAVS decoder + * GXF muxer/demuxer + * MXF demuxer + * much improved FLAC encoder + * more H.264 decoding speed improvements, plus support for -lavdopts fast + * Theora decoder fixes + * preliminary Vorbis encoder + * MTV demuxer + + GUI: + * Windows version added + * drag-and-drop ignored last file + * save and load cache setting correctly + * working audio stream selection for Ogg and Matroska files + * executable names like gmplayer_old etc. will now start GUI as well + * -gui/-nogui options + * xinerama fixes, now behaves similar to MPlayer without GUI + + Filters: + * MMX-optimizations for -vf yadif + * MMX-optimizations for -vf zrmjpeg + + MEncoder: + * support of x264 encoding via libavcodec + * rewrite -x264encopts option parser to use the 264 option parser; + likely breaks 3rd party tools as the syntax of some options has changed + * removed support for obsolete and non-free divx4 libraries + + Ports: + * partial Intel Mac support, --disable-win32 --disable-mp3lib is needed + * OpenGL can now create windows > screen size under Windows + * allow filenames starting with \\ for remote paths on Windows + + Others: + * SSA/ASS subtitle renderer + * -endpos option for MPlayer + * -correct-pts option + * UTF-8 used for OSD and subtitles, some bitmap fonts will no longer work + correctly and -subcp must be set for all non-UTF-8 subtitles + * more audio-truncation fixes + * libavutil mandatory for MPlayer compilation + * more intuitive -edlout behaviour + * -nortc is now default since -rtc has disadvantages with recent kernels + + + pre8: "NeuTeam strikes back" June 11, 2006 + (SVN revisions: MPlayer r18681, FFmpeg r5466) + + Security: + * support for compilation with non-executable stack + * fix the major issues caught by Coverity's static analysis runs + + DOCS: + * environment variables documentation started + * interactive control fully documented + * improved encoding guide + * new technical encoding guide in DOCS/tech/encoding-guide.txt + which is to be merged into the existing guide + * encoding tips for x264 and XviD + * how to set up MEncoder for x264 support + * new advanced audio usage guide with surround sound instructions + * Hungarian XML documentation translation finished + * Czech documentation translation finished + * French MPlayer documentation synced + * German man page synced + * Hungarian man page synced + * Italian man page synced + * Chinese console messages synced + * misc improvements all over the place + * AIX port documentation added + * all XviD options documented + * CONFIGURATION FILES section added to the man page + * Doxygen comments added to configuration parser and OpenGL + video out driver + + Drivers: + * JACK audio output rewritten without bio2jack + * OpenAL audio output - unfinished, can only do mono output + * OpenGL video output modules support -geometry and -wid options + * for -vo gl manyfmts is now default (since it is a lot faster), use + -vo gl:nomanyfmts if it does not work for you + * streaming textures for -vo gl, much faster if supported (use -dr) + * hardware YUV to RGB conversion for -vo gl and -vo gl2, see yuv suboption + * support for custom fragment programs for -vo gl (see TOOLS/*.fp) + * support for bicubic hardware scaling in -vo gl, see lscale suboption + * use libvbe from vesautils as VESA video driver + * several fixes for the GGI video output driver + * fall back on next video output driver if vo_3dfx failed to initialize + * improved XvMC library detection (disabled by default) + * DPI (Print-Resolution) and Pixel-Aspect support in vo_jpeg + * ALSA audio output: several small fixes and improvements + * removed experimental mmap suboption from the ALSA driver + * YUY2 and back end scaling for S3 Virge chips on fbdev (-vo s3fb) + + Decoders: + * Indeo2 (RT21) support via lavc + * Fraps video decoder via binary DLL + * support for 8-bit PNGs with palette + * support for dmb1 MJPEG files with ffmjpeg + * support for musepack audio (WARNING: when seeking you might get + ear- and speaker-breaking noises). If you hear clipping, use -af volume. + * experimental speex support via libspeex + * On2 VP7 video decoder via binary DLL + * Duck/On2 TrueMotion2 (TM20) support via lavc + * support FLX and DTA extensions for flic files + * QDM2 audio decoding via lavc + * cook audio decoding via lavc + * TrueSpeech audio decoding via lavc + * CamStudio video decoder via lavc + * hwmpa pass-through MPEG audio codec + * tremor updated to libogg 1.1.2 + * PNG decoding via libavcodec + * removed native RealAudio codecs (ported to lavc) + * Zip Motion-Block Video (ZMBV) decoder via lavc and binary DLL + * support for QuickTime in24/in32/fl32 PCM audio + * internal libfaad updated to CVS 20040915+MPlayer patches + * RTJpeg decoder from lavc is preferred + * bug fix for lavc WMA v2 decoder, now all files should be playable + * -vc mpeg12 resizes the window when aspect ratio changes + * Smacker audio and video decoding via lavc + * Windows Media VC1 video decoder via binary DLL + * Flash Screen video decoder via lavc + + Demuxers: + * simultaneous audio capture/playback (-tv immediatemode=0) fixed in v4l2 + * PVR support + * AAC ADTS demuxer + * libdvdread updated to v0.9.4 + * support for some more MythTV NUV files + * modularization of demuxer code + * MPEG in GXF container support with extension-based detection + * faster MPEG and much faster GXF demuxing + * more user-friendly demuxer forcing + * MPEG Layer 1 and 2 demuxing fixed + * properly pass Vorbis extradata from Matroska container + * DVR format support + * H.264 ES high profile support + * TV channel cycling + * DVD subtitle and audio stream mappings fixed + * fixed RealAudio demuxing, now all files should have correct A/V sync + * partial support for QuickTime sound atom version 2 + * improved handling of text subs in Matroska files + * DVD subtitles disabled by default + * support sipr codec in old RealAudio files + * fixed framerate detection of interlaced H.264 in raw/PS/TS streams + * support for variable framerate Ogg/OGM files + * made demux_ogg.c work with ffvorbis decoder + * fixed playback of RealVideo in Matroska files on ppc + * added support for Vorbis in MOV/MP4 + + Streaming: + * fix streaming of RealAudio files over HTTP + * show SHOUT/Icecast metadata while playing + * ultravox (unsv://) streaming support + * stream code ported to new modular API, massive code cleanup + * bandwidth selection for Real RTSP streams (for faster stream dumps) + + FFmpeg/libavcodec: + * Snow bug fixes and speedup on x86, x86-64 and AltiVec + * MPEG-1/2/4 and H.264 decoder speedup + * Indeo2 (RT21) video decoder + * Fraps video decoder (v0 & v1, v2 not yet supported) + * Vorbis audio decoder + * RV20 fixes + * VP3 decoder fixes and speedup + * countless bug fixes all over the place + * vstrict=-1 is default, Snow, ffv1 etc. need vstrict=-2 + * skiploopfilter/skipidct/skipframe decoder options for very fast H.264 + decoding + * D-Cinema audio demuxer and decoder support + * Duck/On2 TrueMotion2 (TM20) decoder + * FLX and DTA extensions for flic + * QDM2 audio decoder + * cook audio decoder + * TrueSpeech audio decoder + * WMA2 audio decoder fixed, now all files should play correctly + * JPEG-LS decoder (unfinished) + * CamStudio video decoder + * Theora decoder + * improved MOV and QuickTime demuxer + * improved AVI muxer + * multithreaded decoding + * bitexact decoding + * DV50 encoder, decoder, muxer and demuxer + * true audio (TTA) decoder + * AIFF/AIFF-C audio format, encoding and decoding + * Creative VOC demuxing + * Zip Motion-Block Video (ZMBV) decoder + * KMVC decoder + * NuppelVideo/MythTV demuxer and RTJpeg decoder + * MP4 and MOV demuxer greatly improved to support all varieties of + currently available files + * AVS demuxer and video decoder + * American Laser Games multimedia (*.mm) playback system + * Smacker demuxer and decoder + * Flash screen Video decoder + * Trellis-optimized ADPCM audio encoder + * Major improvements to Snow quality and encoding + + GUI: + * skins now reside in a directory named 'skins', not 'Skin' + * ported to GTK2 + * long standing upside down vpotmeter bug fixed + * don't hang on unreadable skin files + * random fixes and improvements + + Filters: + * much faster version of spp filter (-vf fspp), and pp7 ("fast spp=6") + * remove_logo filter + * lavcresample now used by default (-af-adv force=0 gives old behavior) + * vf_expand and vf_dsize now support aspect and round parameters + * screenshot filter + * -af pan command line fix, now outputs the right number of channels + and accepts values < 0 or > 1. Channel order had to be changed. + * -af sinesuppress to remove a sine at a certain frequency + * negative stride support in swscale + * big-endian and AltiVec fixes and performance improvements for swscaler, + color conversions and post-processing + * -srate fixed + * hqdn3d: 2.5x faster temporal-only, 1.6x faster spatial-only + * new proof-of-concept karaoke (voice removal) filter + * motion compensating deinterlacer (-vf mcdeint) + * Yet Another DeInterlacing Filter (-vf yadif) + + MEncoder: + * audio encoding modularized + * AAC (FAAC) audio encoding + * border processing adaptive quantization in libavcodec + * encoding zones, DivX profiles support, luminance masking, + multi-threaded encoding for XviD + * raw audio muxer + * fixed various bugs in the EDL code + * x264 "turbo mode" to speed up first pass of multi-pass encoding + * x264 custom quantization matrices + * -delay allows real audio delay instead of just a delay in the header + * search for (deprecated!) frameno.avi is now disabled by default (use + -frameno-file frameno.avi to enable) + * -o is now mandatory. You can add 'o=test.avi' in ~/.mplayer/mencoder + to get the old behavior back. + * In multiple file encoding, either all or no files must have audio. Use + -nosound to force. + * support for VBR MP2 encoding in toolame + * twolame support + * libavformat muxers support + * VBR audio in MPEG support + * muxer_mpeg: added an experimental film2pal teleciner and fixed previous + bugs that could lead to desync and to wrong TFF/RFF flags being set + * rewritten muxer_mpeg.c: buffering and timing constraints will always + be respected, provided that the muxrate is big enough + + Ports: + * improved timer function on Mac OS X + * New Mac OS X "macosx" video output driver. Supported on OS X 10.4 + and 10.3 with QuickTime 7 (requires QuickTime 7 SDK to build on 10.3) + * Mac OS X 10.4 (Tiger) fixes + * macosx audio output driver fixes + * preliminary support for Intel Macs + * support for playing DVDs copied to harddisk on Cygwin + * DragonFly BSD support + * liba52 ASM optimizations ported to AMD64 + * configure check and compiler optimizations for VIA C3, C3-2 and Pentium-M + * configure check and compiler optimizations for AMD-64 extended + * configure can now run with cross compiling, new configure option + --enable-cross-compile + * -(no)border option to get a bordered/borderless window on Windows + * Experimental AIX support + * AltiVec support fixes + * POWER5 support + * OpenGL output ported to Windows + * FreeBSD default DVD device added + * MIPS64 support + * Darwin portability fixes + * improved Debian packaging + * improved Win32 multi-monitor support + * Sun's mediaLib disabled by default on Solaris (broken and non-optimal) + * VP6 and WMVA binary codecs should now work also under FreeBSD 6 + + Others: + * Audio/Video synchronisation fixes + * enabled hinting for TrueType fonts + * support for file:// syntax + * -fb option removed, use the device suboption of -vo fbdev/fbdev2 instead + * full gcc 4 support + * TOOLS/vobshift.py: vobsub time-adjust tool + * TOOLS/psnr-video.sh: computes PSNR between two existing video files + * fixed auto-insertion of lavc encoder (for DXR2/3 and DVB) + * new option: -idle, to make MPlayer wait for input commands when + done playing all files + * lots of new slave commands (check DOCS/tech/slave.txt) + * lots of new information provided by the -identify option + * fixed ugly looking OSD with -vo gl2 and MMX + * support for OSD localization + * -rawaudio/-rawvideo requires -demuxer rawaudio/-demuxer rawvideo + * libdvdcss updated to 1.2.9 + * ~/.dvdcss is used instead of ~/.mplayer/DVDKeys for cached CSS keys + * libcdio support for CD playback + * new option -msglevel to directly control the verbosity of MPlayer modules + * -verbose option removed, use -v or "-msglevel all" instead + * -edl is now per-file in MPlayer + * new input command prefixes, "pausing_keep" and "pausing_toggle" which + alter pausing state immediately after command + * environment variable MPLAYER_VERBOSE controls verbosity before the + command line is parsed + * environment variable MPLAYER_HOME controls location where + configuration files are searched for + * memleak fixes all over the code + * TOOLS/aconvert: allows MEncoder to encode from an audio-only file + * TOOLS/3*m_convert: D-Cinema audio and video conversion program + * TOOLS/qepdvcd.sh: anything supported to VCD/SVCD PAL/NTSC + * TOOLS/encode2mpeglight: MPEG format encoding tool using only MEncoder + * allow multiple -help clauses on the command line + * console "OSD" for audio-only files + * show total time when playing audio-only files + * support for .wpl playlists + * support for ncurses as termcap library provider + * parallel make fixed + * (improved) support for shared libav* libraries + * playback/encoding profiles support + * new property API + * new -monitorpixelaspect option to determine monitor aspect from + screen resolution + + + pre7try3: February 15, 2006 (unreleased) + + Security: + * heap overflow in demuxer.h fixed + + + pre7try2: August 26, 2005 + + Security: + * heap overflow in PCM audio decoder fixed + + + pre7: "PatentCounter" April 16, 2005 + + Security: + * heap overflow in Real RTSP streaming code fixed + * buffer overflow in MMST streaming code fixed + + + DOCS: + * Czech documentation translation in progress + * German man page almost synced + * slave mode command documentation finished + * TOOLS documented in TOOLS/README + * audio filter documentation moved to the man page and updated + * all audio filters documented + * improved encoding guide + * preliminary documentation for Snow codec in DOCS/tech/snow.txt + * misc updates and fixes all over the place + + Ports: + * DirectX video output fixed on Windows95 + * DirectX video output now supports 256 color mode + * audio device selection support for dsound audio output driver + * --enable-macosx-bundle, use config directory in the appwrapper on OS X + * Sun audio output cleanup + * x86_64 support fixes + * OpenBSD support in libdha + * VIDIX support for more Radeon 9200 models + + Drivers: + * fixed ontop event for some window managers + * audio output layer cleanup + * unified colorkey handling code + * vo_xvmc panscan fix + * fixed some X11 crashes + * OSD fixes in various video output drivers + + Decoders: + * TWinVQ decoder via binary DLL + * integrated Tremor decoder for Ogg/Vorbis + * fixed decoding of stereo alaw files + * preload QT DLLs to work around problems with their hardcoded paths + * support for Real 10 RV30/40 Linux binary codec (fixes some RV40 files) + * expose support for 422P and 444P raw formats + * 32 bit RGB support in binary TSCC decoder + * dropped support of old FAAD2 versions (<= 1.1) + * support for Real 10 cook Linux binary codec (decodes cook5.1) + * improved NV12/NV21 support + * support for 32 bit float and extended WAV files + * prefer native RealAudio 1.0 / 2.0 decoder over binary decoders + * support for multichannel WAV files + * ALAC (QuickTime lossless audio) support via lavc + * WNV1 support via lavc + * AASC (Autoderk RLE video) support via lavc + * LOCO video support via lavc + * fixed Layer 1 stereo playback via mp3lib + * VMnc (VMware video) decoder via binary DLL + * AMR NB/WB support via libavcodec and external reference decoders + * ADTS AAC support + + Demuxers: + * vqf demuxer + * seeking in MPEG-ES fixed + * support for Real multirate files + * framerate autodetection for MPEG-4 and H.264 video in ES and TS streams + * MP3 in Real files + * more user-friendly info about audio and subtitle tracks in Ogg files + * avisynth demuxer + * Multichannel MP3 in MP4 files support (MP3on4) + * some classes of nonworking 14.4/28.8 RealAudio files fixed + * added code to autodetect and demux MPEG audio layers 1 and 2 + * demux AC3 audio files using libavformat by default + * online audio stream switching in the MPEG and Matroska demuxers + * 3GP demuxing support + * DVB updates and ATSC tuner support + * AVC in Matroska support + * SWF and FLV support via libavformat + * use proper Vorbis fourcc + + Streaming: + * stream selection and bandwidth support for MMS over HTTP + * fall back on HTTP if connection refused on pnm:// + * support for UDP streaming (udp://) + * support for vstream TiVo streams (tivo://) + * EOF detect and bugfixes in pnm:// streams + + FFmpeg/libavcodec: + * RV20 fixes + * many H.264 fixes + * B-frames in H.264, H.264 weighted prediction support + * a lot of integer overflow and pointer fixes + * 32 bit RGB support in TSCC + * multichannel MP3 decoder (MP3on4) + * 3g2 support + * ALAC audio decoder + * LOCO video decoder + * WNV1 video decoder + * shorten audio decoder and demuxer + * AASC video decoder + * AMR NB/WB support via external reference decoders + * significantly faster Snow decoding + * experimental ratecontrol for Snow + * countless bug fixes all over the place + + GUI: + * half size event implemented and added to the menu + * ESD configuration dialog and software volume control option + * memleaks fixed + + Filters: + * big cleanup of audio filter layer + * faster af_format for most common cases + * float handling in the audio filter layer finally fixed + * obsolete audio plugins finally removed + * updated HRTF filter + * center channel adding filter + * soft-telecined input support in pullup improved + + MEncoder: + * new experimental MPEG muxer, compatible with DVD and (S)VCD + * multiple file support + * -speed support (framerate conversion with speedup/slowdown) + * EDL support + * low bitrate mp3lame encoding fix + * MJPEG encoding fix + * NUV endianness fix (makes old NUV files unplayable) + * experimental libavformat muxer + * mp3lame CBR encoding fix + * 35% faster turbo mode for 1st pass + + Others: + * -z option replaced by -vo png suboption + * icc fix in the Win32 loader + * crash with Turkish locale fixed + * several memleak fixes + * -aa* options are replaced by -vo aa suboptions + * excessive verbosity reduced + * RTC support for *BSD + * non-UTF-8 external subtitles with Matroska fixed + * gcc 4 fixes + * partial NX (noexec bit) support + * support libsmbclient with SSL + * put changed notices into all imported files for GPL 2a compliance + + + pre6: "X-mas present" December 23, 2004 + + DOCS: + * finally all options are documented + * man page completely reviewed for spelling, wording and clarity + * all audio output driver suboptions documented + * all video output driver suboptions documented + * audio filters section added to the man page + * XviD documentation completed + * French man page in sync again + * German man page updated + * new Czech (complete) and Swedish man page translations + * fixes and updates in various places + + Ports: + * full x86_64 support + * -rootwin, -panscan support in the quartz video output driver + * key repetition and aspect fixed in the quartz video output driver + * "Movie" menu for quartz video output driver with zoom options & preset + * fs_res quartz video output driver suboption chooses fullscreen resolution + * VCD support for Darwin (Mac OS X) + * Mac OS X Finder startup argument support + * support for Real (Helix) codecs on Mac OS X (working this time) + * fix for stdin input and slave mode on MinGW + * support for -rootwin, -colorkey, -wid in the DirectX video output driver + * improved monitor selection in the DirectX video output driver + * new DirectSound audio output driver + * mouse support in Windows + * support for ZetaOS (mostly working) + + Drivers: + * fixes in the VESA and GGI video output drivers + * -jpeg removed in favor of -vo jpeg suboptions + * jpeg video output driver now supports output to multiple directories + * improvements for the Blinkenlights video output driver ;-) + * OpenGL video output driver colorformat fixes (with manyfmts suboption) + * aspect, panscan, hardware OSD support in the OpenGL video output driver + * new pnm and md5sum video output drivers, replacing pgm and md5 + * yuv4mpeg video output now has a file= suboption, can be used with + -fixed-vo to concatenate files having same width, height and fps + * JACK audio output driver updated to bio2jack API changes + * alsa9 and alsa1x replaced by alsa audio output driver + * ALSA audio output driver always uses specified device, even for hwac3 + * support for mixer channel selection in the ALSA audio output driver + * audio output driver for the polypaudio sound server + * VIDIX Cyberblade TV-out fixed + * VIDIX I420 support for Cyberblade and mga + * VIDIX Radeon support on big-endian systems, other Radeon fixes + * VIDIX Radeon R200 QM (Radeon 9100) support + * CLE266 VIDIX driver + * experimental SAVAGE VIDIX driver + + Decoders: + * "experimental" support for 20 and 24 bit LPCM (DVD-Audio) + * libmpeg2 updated to 0.4.0b + * libfaad2 updated to 2.1beta CVS snapshot + * DTS decoding via libavcodec + * Windows Media Audio 9 Voice support via binary DLL + * Windows Media Video 9 Advanced support via binary DLL + * Windows Media Screen Codec 2 support via binary DLL + * Windows Media Image Codec support via binary DLL + * Windows Media Image 2 Codec support via binary DLL + * VDOWave video support via binary DLL + * Miro VideoXL video support via libavcodec + * Creative ADPCM audio support via libavcodec or binary DLL + * IBM Ultimotion video support via libavcodec + * Micronas Speech codec support via binary DLL + * H.261 video codec support via libavcodec + * TechSmith Camtasia video codec support via libavcodec + * sonic audio codec support via libavcodec + * Snow video codec support via libavcodec + * QuickDraw video support via libavcodec + * Cinepak, CYUV and RoQ audio/video moved to FFmpeg + * Vianet Lsvx video support via binary DLL + + Demuxers: + * fix -nosound and -novideo for NSV + * subtitle switching and language code displaying for Matroska + * support for the .vp5 file format (AVI variant) + * seeking in audio-only ASF files fixed + * improved MP3 detection + * support for AVC in .mp4 files + * support for raw H.261 files via libavformat + * improved seeking precision in MPEG files + * better subtitle language code handling for MKV files + * support DVHS files and H.264 over MPEG-TS + * display length and position (in the seekbar) for MOV files + * raw video in MOV files playback improved + + Streaming: + * -cache-min and -cache-prefill options added + * compilation fix for newer LIVE.COM versions + * make ASF without ECC work + * support for MMS on non-standard port + * EOF detected in Real RTSP streams + + FFmpeg/libavcodec: + * reduced resolution decoding with the lowres option + * new experimental wavelet-based Snow video codec + * new sonic audio codec + * TechSmith Camtasia video decoder + * IBM Ultimotion video decoder + * QuickDraw video decoder + * Creative ADPCM decoder + * Miro VideoXL decoder + * Sierra online audio files demuxer and decoder + * QPEG video decoder + * Electronic Arts Game Multimedia format demuxer + * H.261 fixes, H.261 encoder + * fix VIS accelerated code + * DTS support via libdts + * many DV fixes, seek in raw DV files + * support AAC in MOV files + * RV10, RV20 fixes + * RV20 encoding + * AVI demuxer cleanup, palette change support + * iTunes metadata support + * HuffYUV fixes (endianness, RGB32 predictor, median encoding, interlacing) + * ffvhuff (enhanced HuffYUV codec) + * SSE optimizations for 4x4 compare function + * epzs motion search enhancements + * quad tree based motion compensation + * MPEG-4 qpel MMX2/3DNow! optimizations + * H.264: lot of fixes and MMX2/3DNow! optimizations + * AVC1 (H.264 without sync word in .mp4 files) support + * H.264 qpel motion compensation + * Indeo3 grayscale decoding + * preliminary Truemotion 24 bit decoder + * avizlib encoder fixed + * trellis quantization support in H.263 + * DCT optimizations + * AltiVec support on AmigaOS4 + * adapt MMX/MMX2/SSE/3DNow! optimizations to work on x86_64 + * seeking fixes + * better and faster audio resampler + * New dc1394 grabbing interface + * preliminary decoding support for H.264 with CABAC and B-frames + * dvr-ms support in ASF demuxer + * NSV demuxer + * DVD compatible MPEG muxer + * MJPEG-B fixes + * range coder (arithmetic entropy coder) used by Snow and ffv1 + * ffv1 enhancements: signed golomb, range codes + * multi slice support for main profile H.264 streams + * as usual, lots of bug fixes and optimizations + + Filters: + * software volume control when no hardware support available, can be + controlled with the -softvol and -softvol-max parameters + * high-quality audio resampling with -af lavcresample + * cropdetect rounding parameter + * MPlayer -af help + * missing audio plugins (extrastereo, volnorm) converted to audio filters + * sine sweep generator audio filter + * hrtf audio filter to convert multichannel audio to 2 channel output + for headphones, preserving the spatiality of the sound + * big-endian fixes in rgb2rgb converter + * yuv2rgb AltiVec optimization fixes + * support for LADSPA plugins + + GUI: + * unified audio options dialog, also for ALSA + * redrawing limited, decreases CPU usage in audio-only case + * icons for the context menu + * doublesize bug fixed + * slowdown after opening the preferences panel bug fixed + * remaining messages moved to help file for translation + * slowdown after using the preferences panel fixed + + Encoding: + * x264 encoder support + * support for MP2 encoding with libtoolame + * libavcodec "turbo mode" to speed up 2-pass encoding + * support for 3-pass encode for libavcodec and x264 + * XviD encoder and decoder modules updated to API-4.1 (XviD-1.1.x) + * flush remaining frames at end of encoding process + + Others: + * -loop and -shuffle now work together + * better EDL support + * some --disable configure options finally work (mp3lib, liba52, libmpeg2) + * framestepping + * change playback speed during playback + * some crashes with binary codecs fixed + * subtitle alignment support for SAMI files + * also support Windows path separator '\' + * FriBiDi fixes for comma handling in Hebrew subtitles + * -crash-debug option to attach gdb automatically after crashes + * gcc 4 compilation fixes + * compilation fixes for many files in the TOOLS directory + * infamous "stuck mouse button" bug fixed, new -key-fifo-size option + * reduced verbosity of MPlayer's output somewhat + * -identify now prints some information about available languages + * double buffering (-double) is now default + * many memleaks fixed + + + pre5try2: December 15, 2004 + + Security: + * buffer overflow in mp3lib fixed + * heap overflow in Real RTSP streaming code fixed + * stack overflow in MMST streaming code fixed + * unnecessary BMP demuxer removed because of buffer overflows + * heap overflow in pnm streaming code fixed + + + pre5: "LinuxTag release" July 15, 2004 + + Name: + * It's "MPlayer - The Movie Player" instead of + "MPlayer - The Movie Player for Linux" now. + + Security: + * complete review of string operations, buffer overflows fixed + + DOCS: + * small additions, corrections, updates all over the place + * audio output driver section added to the man page + * several bug fixes and improvements in the MEncoder documentation + * DVD ripping guide extended and improved + * AUTHORS file massively extended + * German man page partially updated + * Hungarian XML documentation translation started + + Ports: + * encrypted DVD playback on Windows fixed (again) + * Cygwin and MinGW now accept the same -dvd-device syntax + * LIVE.COM now works under MinGW + * foundations for MinGW crosscompilation + * disabled SSE on MinGW as it caused crashes + * AC3 passthrough for ao_win32 + * improved vo_quartz (YUV, multiple screens support) + * vo_quartz made default on Mac OS X + * ao_macosx fixed and made default again on Mac OS X + * RealVideo binary codecs support on Mac OS X (still buggy) + * big-endian fixes in vf.c, vo_tga + * OpenBSD portability fixes + * OpenBSD/VAX support + * AMD64 support + + Drivers: + * support for more Radeons (9800 XT among them) in VIDIX + * Radeon related bug fixes in VIDIX + * vo_gl2 now supports GUI, fix for flickering borders in fullscreen + * support 24 and 32 bit PCM files, big-endian fixes + * ao_sdl now converts unsupported formats instead of quitting + * ENCA support + * merged ao_alsa9 and ao_alsa1x drivers into ao_alsa + * NeoMagic TV-out support through VESA + * JACK audio output driver + * vo_sdl fixes (wrong flags and screensaver disabling) + * vo_directx fixes + + Decoders: + * MSZH/ZLIB, FLI, QTRLE, RoQ video and RoQ audio support moved to FFmpeg + * FFmpeg Cinepak and CYUV decoders preferred + * audio format 0xff support (is AAC) + * "raw" audio in MOV supported + * Indeo audio (iac25) support via binary codec + * upgrade libfaad2 to the FAAD 2.0 release + * MPEG-2 chroma422/444 support + * Winnov WINX and WNV1 support via binary codec + + Demuxers: + * Ogg subtitle handling and other bug fixes + * Matroska improvements + * support seeking in Real files without -idx + * support seeking in Real files without index with -forceidx + + Streaming: + * ASF, MMST streaming fixes + * URL escaping fixed + * NSA (Nullsoft audio) streaming support + * embedded RAM playlist support + * multibyte URL support + * rtp:// now supported even with LIVE.COM compiled in + * miscellaneous bug fixes + + Filters: + * vf_softskip: frame skipping filter for MEncoder + * vf_harddup: frame duplication filter for MEncoder + * vf_pullup minor fixes and improvements + * AltiVec-optimized YUV to RGB converter + * vf_spp memory corruption fix on reallocation + + FFmpeg/libavcodec: + * MPEG-2 encoding with 8, 9, 10, 11 bit intra DC precision + * DC clipping fix, intra_dc_precision > 0 support + * Cinepak fixes and palette support + * support skipping of MB rows during decoding + * Vorbis in NUT fixed + * NUT updated to latest specification + * segfault and artifact fixes in SVQ3 decoder + * motion estimation code: overflow and chroma fixes + * change qscale -> lambda for the motion estimation + * noise preserving sum of squares comparison function in ME code + * fixed memory overwrite in truemotion decoder + * clip input motion vectors, better error tolerance on bad vectors + * FLAC decoder cleanup (partial demuxer/decoder separation) + * memalign hack for SSE/SSE2 on that alternative OS :) + * lots of AltiVec optimizations + * qscale + qprd fix + * QTrle4 support + * H.261 decoder + * coefficient saturation fix in H.263 + * H.263 MCBPC fix + * per line lowpass filter in MMX and faster C lowpass filter + * SVQ1 encoder + * as usual, lots of bug fixes and optimizations + + Others: + * fullscreen fixes for many window managers + * fix crash on original Pentiums and older + * dvd://start-end support + * netstream (mpst://) support fixed + * support comments in plaintext playlists + * loader/ dependency removed + * keepaspect option extended to all video output drivers + * WMA to Ogg conversion and simple subtitle editing script added to TOOLS + * support for more lame options + * new set of GUI icons + * memory conserving implementation of GUI potmeters + * X11 code reindented + * further gcc 3.4 support fixes + * mixer API written for changing volume through libaf + * -rtc-device option for specifying the RTC device + * desktop/menu icon added + * miscellaneous bug fixes and cleanups + * multi-threaded encoding with libavcodec + * fixed a bug with Real files introduced in pre4 + * -use-stdin renamed to -noconsolecontrols + + + pre4: "YAML Counter" Apr 28, 2004 + + Security: + * HTTP parser remote heap overflow vulnerability fixed (from 1.0pre3try2) + * Real RTSP remote buffer overflow vulnerability fixed + * buffer overflow in the Matroska demuxer + * potentially exploitable buffer overflow in CDDB TOC code + + DOCS: + * new Copyright file covers files from other projects and their licenses + * new DOCS/tech/translations.txt explains how to properly translate MPlayer + * new Japanese console message translation + * Polish translation finished + * Italian man page translation + * DVD ripping guide + * telecine/interlacing guide + * video output driver section added to the man page + * XML build system rewritten - now supports building individual languages + * miscellaneous updates all over the place + + Ports: + * better PA-RISC detection + * support for VAX (tested on VAXstation 4000/VLC) -- really, believe me! + * optimizing for specific MIPS CPUs under IRIX + * AMD64 detection under BSDs + * fbdev driver updated for Linux 2.6 + * support for ELF only OpenBSD + * optimizing for PPC 970 (aka G5) + * SDL support fixed on MinGW + * VIDIX working under Windows XP/2000 (native dhahelper) + * builds out of the box under GNU Hurd + * SSE optimizations enabled under MinGW + * SSE support under OpenBSD + * AltiVec support under NetBSD + * GCC 3.4 support (due to changed behaviour in ASM code snippets) + + Demuxers: + * Matroska containing RealVideo works better + * fixed random segfaults in VIVO + * endianness fixes in CDDA + * UYVY support in tvi/v4l2 + * tvi/bsdbt848 now working under FreeBSD 5.2-CURRENT + * tvi/bsdbt848 audio part working under NetBSD + * LIVE.COM demuxer updated to conform with latest libraries + * new, independent, C implementation of the Matroska demuxer + * fix for rare Real files + * more robust Real demuxer (can resync after errors) + * support for AAC inside Real + * MPEG Aspect code 4 fixed + * wrapper demuxer for FFMpeg's libavformat (Nut is playable this way) + * support for selecting subtitle streams with -slang inside Ogg + * much improved seeking in Ogg + * -sid/-aid/-vid start from zero in Ogg demuxer just like other demuxers + * Nullsoft streaming video (NSV) demuxer + * AVI OpenDML read and write support + + Streaming: + * SMIL playlist parser + * support for URL redirection + * support for seeking in HTTP streams + * updated LIVE.COM streaming code + * fall back on live.com RTSP after Real RTSP + * suggests -playlist if normal streaming fails + * many improvements and bug fixes in the streaming code + + Decoders: + * compilation failure without zlib in vd/lcl fixed + * removed obsoleted decoders (which were moved to libavcodec), affected: + vd/8bps, vd/msrle, vd/msvideo1, vd/rpza, vd/smc + * workaround for buggy codecs in ad/acm (support for Sharp G.726) + * fixed chroma-swapping in Hauppauge Macroblock decoder + * AltiVec-optimized resampler in liba52 + * support for VP5 and VP6 DLL decoders + * support for Alparysoft lossless video codec (through DLLs) + * support for Lead MCMW wavelet video codec (through DLLs) + * HE-AAC working through libfaad + * removed libmpflac in favor of FFmpeg's FLAC implementation + * liba52 dynamic range compression support + + Filters: + * vf_bmovl bugfixes + * vf_filmdint now handles 15fps NTSC input + * huge updates and speedup on vf_pullup + * big updates to vf_ilpack (proper interpolation and MMX optimizations) + * vf_zrmjpeg: fast MJPEG encoder using libavcodec for Zoran + * interlaced scaling support in vf_scale + * vf_kerndeint: adaptive deinterlacer + * vf_rgbtest: rgb test pattern generator for developers + * vf_qp: QP change filter + * vf_noformat: the same as vf_format but with reversed meaning + * AltiVec-optimized SWScaler + * vf_phase: phase shift fields + * vf_divtc: duplicate frame removal from deinterlaced telecined video + + Drivers: + * ao/esd behaves better over network now + * support for Radeon 9200/9600/9600 Pro/9700 in VIDIX + * -mixer support for alsa9 + * fixed OSS audio grabber module with hardware not supporting 44khz + * native ALSA 1.x support (not through 0.9 emulation) + * better multibuffer support in VIDIX nVidia driver + * pan & scan support in VIDIX nVidia driver + * support for more cards in VIDIX nVidia driver + * vo_libcaca: color ASCII art output driver + * vo_quartz: native MacOS X/Quartz video output + * support for VIDIX when ATI FireGLX drivers are used + + FFmpeg/libavcodec: + * H.263 AIC and MQ encoding support + * fixed low delay decoding + * fixed H.263+ encoding without UMV + * lots of CBR improvements + * MB type and QP visualization + * lots of code cleanup + * intra & inter dequantization split -> speedup + * fixed stereo IMA ADPCM encoding + * VBV delay setting support (MPEG-2 CBR) + * improved RV20 decoder (most known errors eliminated) + * interlaced DCT + * interlaced motion estimation + * interlaced MPEG-2 encoding + * 4MV encoding fixes + * initial interlaced MPEG-4 encoding + * improved visual quality in SVQ3 decoder + * fixed never-before-tested embedded string decoder in SVQ1 + * optimized quantization (including the trellis way) + * Sierra VMD video decoder + * MMX- and SSE2-optimized H.263 denoiser + * better SVCD compliance (encoder side) + * MMX- and MMX2-optimized interlaced DCT decision + * various cleanup, memleak and segfault fixes + * optimized (2x faster) the MPEG layer 3 decoder + * grayscale coded MJPEG decoding support + * avimszh and avizlib decoders + * "packed" XviD decoding + * fixed some bugs in RV20 B-frames decoding + * closed GOP encoding + * SSE2-optimized FDCT + * support for quantizer noise shaping + * support for EA ADPCM and SMJPEG IMA ADPCM + * QT RLE decoder + * OBMC fixes + * FLAC decoder + * better support for DivX5 + * MMX- and SSE2-optimized VP3/Theora decoding + * support for Theora alpha3 + * many H.264 improvements + * more robust MJPEG startcode search mechanism + * better WMV8 decoding + * native SPARC VIS optimizations + * native G.726 codec + + Others: + * -codecs-file option for specifying alternative codecs.conf file + * fixed some minor bugs in the GUI + * prevent sig11 when $HOME is not set + * fix some command line handling corruptions + * Swedish and Polish yes/no options in config files + * support binding F11 and F12 keys + * TOOLS/divx2svcd updated + * stricter thread code in Win32 loader (works under NetBSD) + * PJS subtitle support (was: dunnowhat) + * TOOLS/avifix: simple tool to fix chunk sizes in AVI files + * proper extraheader handling when libavcodec is used in MEncoder + * AVI OpenDML read and write support + * AVI VPRP (video property) read and write support + * fixed long standing lame quality option off-by-one bug in MEncoder + * MPL2 subtitle support + * less verbosity in Win32 loader and other places + + + pre3try2: security fix release Mar 3, 2004 + + Security: + * HTTP parser remote heap overflow vulnerability fixed + + + pre3: "The Real Counter" Dec 9, 2003 + + DOCS: + * all MPlayer and MEncoder options documented + * all FFmpeg/libavcodec options documented + * Support for building incomplete XML documentation + * Support for building all-in-one HTML docs + * HTML documentation obsoleted + * English, Polish and French HTML documentation removed + * Spanish documentation translation finished + * Macedonian runtime output translation added + * small improvements and bug fixes all over the place + + Ports: + * fixed compilation of Matroska on MinGW/Cygwin + * support for detecting non-Intel CPUs under Cygwin + * sub autoloading under Windows + * removed pthread dependency (out of the box compilation on NetBSD) + * more 64 bit fixes + * a lot of Mac OS X fixes + * prefer TOOLS/cpuinfo over linuxemu's /proc/cpuinfo under FreeBSD/x86 + * Darwin XMMS libs supported + * support newer Darwin versions in AltiVec detection code + * support for newer Apple GCCs + + Codecs and demuxers: + * better support for (buggy) MEncoder created streams in libmpeg2 + * MPEG-TS demuxer updates + * fixed the MPEG muxer + * fixed tons of bugs in MMS streaming + * user settable HTTP user-agent field + * improved (now working) seeking with support for growing RealMedia files + * saveable and loadable index files (workaround for formats not + supporting files over 2GB) + * Ultimotion VfW decoder + * support for MMS streams with UTF urls + * big DVB demuxer update + * fixed MOV demuxer to always read ImageDesc (fixes ffsvq3 bugs) + * fixed an old bug in AVI/Waveformatex size calculation + * XviD API-4 (1.0 beta2) support + * improved FLAC-in-Ogg support + * Matroska: better AC3 detection + * Matroska: VOBsubs, MP2, FLAC, AAC and HE-AAC support + * improved detection of Real RTSP through URL analysis + * fixed stereo 16 bit TWOS + * fixed MPNG when using BGR24 images + * control functions in Ogg demuxer + * HTTP cookies support + * LML-M4 MPEG-4 capture card raw stream format support + + Filters: + * some fixes in the delogo filter + * optimized eq2 filter + * weighted gamma support in the eq2 filter + * new filters: hue, spp, fil, yuvcsp + * alternative postprocessing filter (spp) + * big scale filter updates + * zrmjpeg filter, a kick-ass MJPEG encoder using FFmpeg/libavcodec + * filmdint: new inverse telecine filter, heavily MMX- and 3DNow!-optimized + + FFmpeg/libavcodec: + * Lagrange multipliers instead of qscale, encoding quality much improved + * fixed an old bug in MPlayer's support code + * support wider range of VOLs in H.263 + * direct rendering support in MJPEG + * massive MLib optimizations + * more VQA files supported + * Theora support + * Sunplus JPEG (SP5X) support + * H.263 GOB fixes + * massive cleanups + * reduced memory footprint (!) + * fixed decoding if aspect ratio changes + * MMX2 optimizations in HuffYUV + * lots of bugs squashed in HuffYUV + * long standing decoding errors after 'first frame is not keyframe' fixed + * CRI ADX support + * XA ADPCM support + * fixed files with odd dimensions on PPC + * optimized MPEG-2 bitstream parsing + * better interlacing framework + * support for IBM's XLC compiler + * support for SAR (sample aspect ratio) + * floating point AAN DCT + * dynamically alloc big data fields (lower memory usage in most cases!) + * fixed stereo IMA-ADPCM encoding + * inline vs always_inline - some speedups + * MMX2-optimized FDCT + * accurate 2-4-8 DCT + * much faster DV encoding (beats libdv) + * support Cinepak files with funky (not divisible by 4) resolutions + * AltiVec-optimized FDCT + * XvMC speedups + * initial ZyGoVideo decoding + * RGB support in FFV1 + * new Palette API, all codecs updated + * Noise reduction of DCT coefficients + * "av_log" logging API + * support for buffer hints from codecs + * BGR24, RGB555 and PAL8 image formats + * 8BPS, MS RLE, MS Video1, QT RPZA, QT SMC, FLIC and TrueMotion1 decoders + * 16x8 MV visualisation support + * H.263 overlapped block motion compensation (OBMC), 4MV support + * H.263 alternative inter vlc support + * H.263 deblocking filter (MMX-optimized) + * H.263 modified quantization support + * H.263 slice structured mode support + * Real RV20 decoder (with B-frame support) + + Drivers: + * VIDIX equalizer support in fbdev, svga and vesa + * VIDIX colorkeying support in fbdev, svga and vesa + * obsoleted option: -fb + * new SiS 650/651/740/etc VIDIX driver + * safer vo_directx direct rendering + * massive nvidia_vid updates + * gl2 updates + * ggi now supports non-directbuffer rendering and slices + * tdfxfb fixed on gcc 3.x + * dfbmga updated, G200 support + * colorkeying can be disabled + * Radeon 9800 (R350) support in VIDIX + * proper fix for buffer size workarounds in vo_zr + * new vo_zr2 driver, which uses the advantages of the filter layer + * fixed vo_vesa when used together with pthread + * runtime stay-on-top functionality (in almost all output drivers) + * ALSA 1.x support + + SWScaler: + * updated MLib (Sun VIS) support + * more accurate filters (rounding fixes) + * MMX-optimized UYVY output + * eliminated chroma scaling bugs + + Others: + * fixed aspect and geometry + * fixed compilation when libavcodec is missing (although it's a bad idea) + * MTRR detection added to TOOLS/cpuinfo + * FAAD detection in configure fixed/improved + * improved FLAC configure detection + * GUI file selector updated for newer formats + * Fontconfig support + * proper VOBsub seeking support + * removed oldskool libcss support (nobody uses it, it has drawbacks and + possible security implications) + + MEncoder: + * FFmpeg/libavcodec audio encoding support + * exit if there's no video stream (avoids unexpected segfaults) + * huge bug fixed (missing InitTimer call), screwed up timers in some cases + * rawyuv (i420) 'encoder' + + + pre2: Oct 5, 2003 + + Security: + * remotely exploitable buffer overflow in the ASF streaming code fixed + + DOCS: + * Spanish and Russian translations almost finished + * French, Hungarian, Polish translations updated + * New Romanian translation started + * numerous sections updated + + Ports: + * initial Amiga/MorphOS (through GeekGadgets) support + * FreeBSD 5.x (libkse/libthr) support in Win32 DLL loader + * finally fixed the compilation on non-MVI capable Alpha CPUs + * better AltiVec detection in configure + * OSD menu now works on MinGW + * slave mode, VOBsub and MEncoder support on Windows + * MinGW 3.1.0 supports MPlayer out of the box! + * VIDIX and libdha ported to Windows + * SDL on IRIX support + * vo_gl2 video output ported to Windows + + Codecs and demuxers: + * support for QuickTime version 6.3 DLLs + * fixed some bugs in imported FAAD + * disabled internal FAAD when using buggy GCC + * --enable-externalfaad option to force using external FAAD library + * imaadpcm bug fixed + * ViVD v2 codec support (DLL only) + * QuickTime codecs support inside Matroska + * improved seeking inside Matroska + * some bugs with DMO codecs have been fixed + * fix for MOV files with bogus user data length + * fixed some demuxers which read after EOF + * better RTP synchronisation + * FLAC support through imported libmpflac + + Filters: + * new delogo filter (for removing TV channel logos) + * presets support in swscaler filter + * new audio filter export, for supporting visual effect applications + * correct select handling in bmovl filter + + FFmpeg/libavcodec: + * better DivX/XviD bug detection code + * Id RoQ decoder + * Interplay MVE decoder + * WC3/Xan video decoder + * Xan DPCM, DK3 & DK4 ADPCM audio decoders + * detect old XviD with fourcc=DIVX + * vp3 decoder fixes + * improved the Alpha optimizations + * x86 optimizations are threadsafe now + * settable scene change threshold + * better MPEG-1/MPEG-2 conformance encoder + * quality improvement for high bitrate videos with trellis quantization + * indeo3 decoder fixed + * new options: mv0, cbp + * DV video encoder + * MPEG-1 now works with Trellis quantization + + Faad2: + * synced to latest CVS + * HE_AAC profile added + * SBR QMF improvements + * DRM updates + * Covariance speedup + * reduced memory usage + * overall cleanups and fixes + + Drivers: + * VIDIX driver for nVidia cards + * directfb2 fixed for latest directfb + * smoother audio playback with alsa9 + * fullscreen and geometry support in directx + * fullscreen support with OpenGL drivers + * OSD fixed with svga + * new cvidix and winvidix drivers + * user settable colorkey + + Others: + * several leak fixes + * selecting optimizations for PPC 7455 CPU + * CPU detection code now measures speed on x86 + * unrarlib cleaned up a bit + * updated the list of known x86 CPUs (including Opteron!) + * subtitle alignment and smart line splitting options + + + pre1: "Development" on the beach Sept 1, 2003 + NOTE: the MPlayer 'main' branch was forked at the time of 0.90-rc4, so + 0.90-rc5 (and later 0.90 releases) changes are independent! + (it also means that there are main-only and 0_90-only changes) + + DOCS: + * DOCS/Language/ dirs renamed to DOCS/id, English files moved to DOCS/en + * HTML --> XML format conversion (English, Russian and French for now) + * new Spanish DOCS translation + * man page restructured, options ordered + * Finally merged libavc-option.txt into the man page. + * slave mode commands moved from the man page to DOCS/tech/ + * traditional Chinese help file added + * massive help file updates, most languages are up to date now + * new and improved Windows port section with Cygwin and MinGW subsections + * almost all options documented + * fixes and small updates all over the place + + Big/Structural changes: + * linux/ dir renamed to osdep/ + * postproc/postproc* files moved to libavcodec + * old libmpeg2 replaced with patched version of the 0.3.1 release + * docs priority & installation (--language=ab,cd,ef,all and so on) + * yuv2rgb conversion removed from most vo drivers (like fbdev, gif89, etc) + * reverse-order -vop option obsoleted by -vf, big config layer changes + * stream layer "cleanup", -dvd -> dvd:// etc + * autosub fuzziness, it tries to load all subs with similar filenames + * removed the whole old config reader, leaving only the newer one + (no backward compatibilty!) + + Ports: + * HP-UX fixes + * Ported to Darwin / Mac OS X (with extra accurate Darwin timers) + * Ported to Win32/MinGW (including network, timers, getch, etc) + * Win32 codecs DLL support on Win32 (Cygwin and MinGW) + * fixed mpdvdkit on Cygwin and MinGW + * Lots of PPC (including AltiVec) optimizations + * Some ARM fixes + * Alpha fixes (especially non-gcc3 support) + * Initial Hitachi SuperH support (SH3/SH4) + + Codecs/demuxers support: + * RealAudio Win32 DLLs support + * various RealAudio/RealVideo fixes, including WxH bugs, Sipr, etc + * various RealMedia a-v sync fixes + * RealAudio V4 demuxer + * RealAudio 14_4 and 28_8 codecs support (both binary DLLs and native code) + * RealMedia rtsp:// support (independent from the live.com RTSP stuff!) + * Matroska demuxer (C++ version) + * demuxer: enabling MPEG-4-ES autodetection, H.264-ES support + * WAV extradata parsing (for truespeech, atrac3, etc) + * MPEG-TS (Transport Stream) and TIVO demuxers + * DVB (Digital Video Broadcasting) input driver + * hwac3: DTS passthru support + * new filters: down3dright, detc, telecine, tfields, ilpack, ivtc, dsize, + tinterlace, pullup (MMX-optimized!), framestep, tile + * vf layer: slices support (crop, expand, swscale only) + * vf scale aspect fixes + * swscaler: cleanup & API change, yv12 -> yuy2 in alpha asm, + -fPIC compileable + * swscaler: brightness/cont/sat. and different YUV matrices support + * NUV encoding + * SGI image files decoding (-mf) + * Theora video (using libtheora/libogg) support + * DivX.com 5.0.5 libs support + * support for latest XviD en/decoder features + * decoder for Hauppauge PVR 250/350 MB-YUV format (fourcc HM12) + * support for Vanguard's Win32 H.264 etc codecs + * Video for Linux 1: various bugfixes, video eq support + * Video for Linux 2 support + * TV support: kick-ass image format handling + * mp3lib: moved the assembly sources into gcc inline assembly (c) + * mp3lib: sync with mpg123 0.59s-pre + * mp3lib: final layer-1 support + * mp3lib: skip trashed first MP3 frame, fixes many buggy/misdetected files + * imported a working FAAD version + * 8BPS (Planar RGB) support + * working DVD (libmpdvdkit) support for Cygwin/MinGW + + FFmpeg/libavcodec: + * libavcodec: static,const,compiler warning cleanup, UINTX -> uintx_t + * old HuffYUV v1 support + * PAL 4:1:1 SMPTE 314M DV streams support, NTSC DV last MB column fix + * fixing padding bug autodetection for some rare files + * DspContext.(i)dct_* bitexact cleanup + * user settable quantizer bias + * MPEG-1 slice encoding support + * MSMPEG4 2-pass support + * H.264 video decoding + * Indeo 3 video decoding + * VP3 video decoder (buggy somtimes) + * Sorenson 3 (SVQ3) video decoder (it's actually a H.264 variant) + * 3IV1 (3ivx v1) decoding + * ASV1 (ASUS Video v1) and ASV2 (ASUS Video v2) en/decoding + * Improved SVQ1 decoding (using FFmpeg VLC functions) + * truncated unary binarization, unary k-th order exp golomb binarization :) + * FFV1: lossless YUV codec, compresses a lot better than HuffYUV, but slower + * lossless MJPEG en/decoding, pegasus "pseudo yuv" (=RCT) decoding + * ATI VCR1 and VCR2 decoding + * full featured SH4 optimizations + * ARM-optimized simple_idct + * MPEG-2 encoding + * PSX MDEC decoder + * user settable quantization matrices + + Drivers: + * x11_common: fix detection of metacity + * x11_common: 10l fix in original layer detection code + * x11_common: extended fstype config options + * x11_common: smooth window moving + * tdfx_vid driver (3dfx cards overlay with AGP support) + * vo_xover: general X11 overlay driver, currently only tdfx_vid uses it + * mga_vid: various fixes, 16MB G400 detection, support for multiple cards + * new svgalib vo driver + * vo_directfb2: triple buffering support, configuration sys changed, fixes + * OpenGL driver cleanups/fixes (both vo_gl and vo_gl2) + * vo_fbdev cleanup/partial rewrite, now with real direct rendering + * vo_xvmc: new driver featuring XvMC (HW MC/IDCT) acceleration + * new TGA output driver + * new vo_fbdev2 (written from scratch) + + Others: + * gcc can now detect badly called mp_msg()s + * many config/cmdline parsing fixes (some of them were at least 100000l bugs) + * configure: enable VIDIX for PPC + * configure: full featured PPC optimizations, rewritten architecture handling + * spudec.c: Fix "invalid fragment" handling, Improved subtitle queueing + * network streaming layer: IPv6 support + * FTP support + * playtree parsing speedup :) + * various URL parsing fixes + * Crash on broken config files finally fixed! + * GUI: PPC (reverse byteorder) fixes + * GUI: revert to 'default' skin if configured skin failed + * TOOLS/plotpsnr.pl: PSNR plotting tool using gnuplot + * DOCS/tech/mpcf.txt: MPCF/NUT draft/specification + * TVout/matroxtv: various improvements + * spelling/grammar fixes in numerous files + + +MPlayer (0.90) + + rc4: "FlameCounter" Feb 9, 2003 + + DOCS: + * some clarifications and updates in the English DOCS + * massive translation and help-file updates + + Fixes: + * -ac hwac3 fixed (was broken in rc3) + * vo_svga: 4bp & 8bpp fixes + * various GUI fixes, including some critical bugs + * rage128 VIDIX PPC fixes + * libmenu: one crash fixed, some cleanup + * fixed ./configure --cc="ccache gcc" + * -loop fixes, now -loop 2 plays a file twice :) + * (mirrored) OSD volume symbol fixed (|\ -> /|) + * 32bpp QT-RLE support + * AltiVec on non-Darwin systems support + * QuickTime reference file support fixes + * mp3lib: layer-2 decoding fixes + * updates to extension->demuxer mapping table + * libavcodec: DivX 5.03 decoding fix + * ao_oss: limited channels handling fixed + * fixed OGM subtitles and iconv + * fixed -subcp option with unicode truetype fonts + * -mf: type detection (based on extension), better defaults + * vo_xv: -fixed-vo support fixed (fullscreen switching) + * Ogg-in-AVI (audio format 0xFFFE) demuxing fixed + * vorbis decoding fixed (outer loop cleanup) + * swscaler: 4bpp depth 1 pixel/byte format support for -vo svga + * missing error message in command line parser for missing parameters + * swscaler: YVU9->YV12 fixes + * -ao mpegpes + -ac hwac3 fixed + * -ao pcm bogus WAV header fixed + * -vo x11 + -wid fixed + * auto-insert the 'palette' filter if needed, support fixed in filters + * sig11 when playing second audio-only file fixed + * configure: detection of CDDA, nas, i18n, svgalib, FAAD2, lame fixed + * -af/-af-adv support in MEncoder fixed + * libmpdvdkit2: upgraded to use libdvdcss 1.2.5 + + Features: + * raw video support (-rawvideo, similar to -rawaudio) + * experimental MPEG-4-ES support (enable with -demuxer 27 -fps xxx) + * new video filter: field (cheap deinterlacer) + * DVD/VOBsub improvements: positioning, optional gaussian blur scaler + * vf_bmovl: 400% speedup :) + * libavcodec: native DV audio decoder + * GIF demuxer (for animated GIFs) + * new noise removal filter: -vop denoise3d + * per-channel gamma and MMX-opt'ed bri/cont/saturation support in -vop eq2 + * live.com lib support cleanup, support for more stream types + * playtree imported into the GUI instead of the GUI's own playlist hack + * support for the XviD and DivX4/5Linux libraries at the same time + * -fstype option: override priority/layer of the fullscreen switch methods + * libavcodec: some B-frame related encoding failures/crashes fixed + + + rc3: "BugfixCounter" Jan 19, 2003 + + DOCS: + * English man page & HTML docs updates + * audio filter documentation + * help_diff.sh doesn't depend on bash any more + * Hungarian, French, Italian, German, Polish(?) docs synced + + Important fixes: + * X11 fullscreen switching (yes, again...) rewritten, some X11 code cleanup + * Voxware and QuickTime DLLs finally work (was broken in some contexts) + * VIDIX Radeon support cleanup, should really solve the pink screen bugs + * Cygwin: -vo directx crashes and garbled picture with some files fixed + * OGM/Ogg seeking (broken frames) fixed, subtitle fixes, XCD support + * libaf: big (audio filter layer) updates, floating point support, speedup + * ffwma2 fixed (better error resilience) + * SPU queueing - fixes missing or early disappearing DVD subtitles + * the mysterious DVD audio delay (150-300ms) fixed + * extension-based file format detection fixed the MP3 vs. MPEG-PS conflict + * cache2 keeps buffer for non-seekable media, fixes QuickTime streaming + + Fixes: + * mp3lib CPU detection part cleanup, 'decwin' linker problem fixed + * various cddb:// fixes, support of NetBSD 1.6 + * libmpdvdkit2: Fix DVD authentication on Solaris 9 + * libmpdvdkit2: libdvdcss upgraded to 1.2.4 (keeping the key cache patch) + * libmpdvdkit2: fixed decryption from multiple VOB files (hdd or Darwin) + * -ao arts, -ao oss: Fix 8-bit sound support + * -vop expand + FFmpeg codecs conflicts solved, some other -vop bugs fixed + * -ac ffmp2 with MPEG files (sig11) fixed + * QT Qclp audio codec initialization fixed + * exit codes cleanup (0 for quit/eof, 1 for error) + * -ao win32 sync problems solved, -autosync 100 is still recommended + * -vo gif89a uninit sig11 fixed + * the usual compiler warning fixes :) + * use -pphelp instead of -vop pp=help + * various big-endian fixes + * 16bpp packed YUV fixes in crop, mirror, rotate filters + * some -fixed-vo and vo_preinit fixes, -vo sdl, xmga, mga should work... + * various Solaris compatibility fixes (should work out of the box) + * mms:// port fixes, tries 1755 if 80 failed + * libavcodec: various ME fixes, B-frames fixes, WMV2 slice decoding fixes + * -ao alsa9 audio-file playback high CPU usage fixed + * libaf updates, 2-pass initialization to get better filter path + * better detection of playlists, support for [Reference]-style format + * handle QuickTime reference media files as playlist + * cddb:// & cdda:// CD-ROM device name fixes on Linux and *BSD + + Features: + * -ao esd: new EsounD audio driver + * -vo dxr3: new NORM option + * XAnim & RealPlayer binary Codecs working on PPC + * Radeon 9000 support in VIDIX, colorkey restoring for all Radeons + * initial PPC (big-endian) support in VIDIX Rage128 driver + * pnm:// streaming support (ported from xine) + * muxer layer: MEncoder can now write MPEG-PS format, too (EXPERIMENTAL!) + * libavcodec: WMV2 decoder (buggy/untested) + * DVB "HEAD" (aka. NEWSTRUCT) drivers support + * subtitle background bounding-box support (optional grey-level & opacity) + * libaf: 3 new filters: panning, compressor/limiter and a noise gate + * per-mediafile config file support (for file-specific options) + * iconv (codepage conversion) support for OGM (Ogg) subtitles + * v4l: user friendly channel tuning + * freetype & old-style RAW font support usable (compilable) at the same time + * vo_directfb2, vo_dfbmga: DirectFB 0.9.16 support + * libavcodec: motion estimation pre pass, qpel encoding, trellis quantization + * libavcodec, liba52, mp3lib: AltiVec optimizations + * keep window aspect ratio at resizing (x11, xv), requires WM support + * -geometry option, also accepts X11 syntax + * real .bin+.cue (S)VCD images support (-vcd 2 -cuefile xxx.cue) + * postprocess: YUV 411/422/444 support, stride fixes + * jumping of overlapping subs fixed, sorting is automatic, iconv fixes + * MPEG-2 telecine detection and automatic inverse telecine (MPlayer only) + + GUI: + * correct GTK widget destroy event handler + * fullscreen switching fixed (sync with x11_common) + * fix GTK submenu + * new font render engine + * added persistant history patch + * SDL Audio configure window + * add overlapping to preferences + * add playbar for subwindow + * add vertical potmeter for skin + * fixed 'single pixel bug' + * fixed some possible crashes + + + rc2: Dec 24, 2002 + General: + * DOCS/tech/encoding-tips.txt and tech/directfb.txt + * some DOCS corrections/updates/sync/HTML fixes + * GUI: fixed three submenu bugs and several other problems + * more compiler warning fixes + * NetBSD: CPU SSE/SSE2 detection & VCD reading fixes + * fixed possible v4l capturing crash + * merged the EDL 0.5 patch - using & creating edit-lists (runtime cut&skip) + * subtitle alignment changeable: top/bottom/middle (key 'i') + * -slang support for VOBsub files + + VO: + * X11 fullscreen switching code changed again (esp. for GNOME2/KDE 3.1) + * VIDIX: svgalib kernelhelper support (as libdha alternative) + * VIDIX driver for trident cyberblade card + * VIDIX: 8 pixel shift & pink window bugs fixed in the RADEON driver + * new, rewritten version of vo_svga (VIDIX support etc) and vo_gif89 + * yuv4mpeg vs. framedrop/frameskip fixed + + Codecs: + * libavcodec: fixed possible 20% speedloss bug + * support for the experimental (and buggy) dev-api-3 XviD CVS branch + * fall back on built-in codecs.conf if no compatible external file found + * experimental Sorenson 1/3 encoding (using QuickTime DLLs) + * more accurate video bitrate calculation for AVI files + * presets support for libmp3lame encoding + * CDDA seeking fixed + * Win32/RealPlayer codecs DLL & 64bit Alpha Linux RealPlayer codecs support + * XMMS Input plugins (demuxer & codec) support + * Fixed a bug in MMX-optimized mp3lib (triggered by OpenBSD). + + + rc1: "CodecCounter" Dec 7, 2002 + Docs: + * new French translation + * IRIX section + * various updates (both English & Hungarian) + + Codecs: + * new codec pack download page (there are several packs for various IFs) + * Win32/QuickTime codec plugin DLL support -> SVQ3 + QDMC/QDM2/Qclp !!! + * Win32/DMO codec DLL interface support -> Windows Media Audio/Video 9 !!! + * MJPEG 2000 support (using Morgan & Imagepower VfW DLLs) + * libavcodec: optimized HuffYUV en/decoder, with experimental YV12 support + * libavcodec: MJPEG-B support (need more samples) + * more xvidencopts + * VorbisGain tag support, tremor (fast vorbis decoder lib) support + * BIG libavcodec messups & codmetics & cleanups & API changes & fixes + * dynamic plugin support for libmpcodecs (for future binary codec releases) + + GUI: + * general code cleanup, more robust GTK code + * preferences: screensaver, Autosync settings + * cache=4 fixed (caused jerky/lagging/slow playback with gmplayer) + + Others: + * new config/cmdline parser code (optional) + * OSD menu system (preferences, shell, file selector, etc) + * libaf: runtime cpudetection, volume, equalizer, better format conversion + * subtitle overlapping can be disabled, added subtitle sorting + * subtitle dump to JACOsub and SAMI formats + * displays URLs from 'Reference Media' type MOV files, dump generic data + * find best (longest) streams in MOV files (twotowers...) + * get position/length function in demuxers - for slavemode & -identify + * -ao alsa9 surround fixes, 8-bit PCM fixed + * -vo dfbmga: -dr support, fixed OSD flickering + * -stop-xscreensaver fixed, support for KDE screensaver, too + * More compiler warning fixes + * AltiVec (G4) support + + + pre10: "BirthdayCounter" Nov 11, 2002 + Docs: + * DVD auth, VCD sections extended (DOCS/cd-dvd.html) + * unified *BSD sections, extended Cygwin + + Fixes: + * LIRC error message (Error while reading cmd fd X : Success) fixed + * playback of some (streamed?) DivX files starting with non-I-frames fixed + * -vo png fixed (removed builtin YV12 support, removed OSD) + * some MP3 playback/seek segfaults fixed + * VIDIX Mach64 colorkey on PPC fixed + * -ao sdl now handles "featureless" soundcards + * -vo zr fixes + * fixed sig11 if vo init failed + * various DXR2 and DXR3 fixes + * v4l buffering fixed + * fixed multiple reads caused by byteswapping macro (mjpeg.c, mach64_vid.c) + * cleanup of postprocessing code - now it's threadsafe and can be shared + * ported to GNU/Hurd + * cleanup of AVI pts (timestamp) handling - no more BPS hack in mplayer.c + * small cleanup of A-V sync code - using relative instead of absolute timers + * GUI code cleanup, obsolete files/dirs removed + * various small bug fixes, endianness fixes + * MEncoder: -pass option removed, use -divx4opts pass=N / -lavcopts vpass=N + * MEncoder: "ff_rate_estimate_qscale: Assertion `q>0.0' failed" fixed! + * MEncoder: -ovc xvid fixes, cleanup, enhancements + * screensaver/dpms re-enabling fixed + * RealVideo demuxer fixes - ASF-style stream detection method + + Features: + * -ao win32 (for Windows port) + * libavcodec: native WMA v1/v2 (aka DivX audio) decoder + * hw-accelerated video eq for -vo x11 and gl2, using DirectColor colormap + * overlapping subtitles support, jacosub (*.js) format support + * -vo dxr3 got a new syncengine, ':sync', also added native overlay support, + activate with ':overlay', read the manual for more info on how to set up + * QDMC/QDM2/MACE audio codec support, using QuickTime 5 Win32 DLLs (libwine!) + * libavcodec: various MJPEG decoding fixes - now it decodes all sample files! + * mencvcd updates, sox/toolame support, etc + * -vo dfbmga - play video on Matrox G400's second head using directfb 0.9.14 + * RealAudio ATRC (sony atrac3) audio support (using binary plugin) + + Filters: + * -af/-af-adv options cleanup + * now auto-inserting -vop lavc for MPEG-only vo's + * video filter API documented :) + * better deblocking filter (-vop pp), pp/npp syntax changed! + * -vop 2xsai - 2x scaler for drawn images (low-color cartoon animations) + * -vop unsharp - a sharp/blur filter, nice, but very slow + * -vop il - (de)interleave fields + * -vop swapuv - guess what :) + * -vop boxblur - box blur... + * -vop perpective + * -vop sab + * -vop smartblur + + + pre9: Oct 24, 2002 + Docs: + * man page rewritten again :))) + * man page updated to latest options, including lavc options + * Chinese docs translation added + * Hungarian translation is (was? :)) up-to-date again + + Cleanup: + * divx4_vbr.c is now really GPL - with the permission of the DivX.com guys! + * cyuv decoder restructuring, now supports planar YUV formats, too + * removed obsolete variables, like has_audio, has_video, allow_dshow, fifo + * help_mp-XX.h files moved to help/ subdirectory, removed obsolete entries + * the obsolete 0x1ff eof hack removed from MPEG-ES demuxer and decoders + * stheaders.h cleanup, removed unneeded wine includes from MPlayer core + * tons of compiler warning fixes, including some 10l ones + * mga/xmga vo shared code, vesa and svga drivers cleanup + * major vo drivers are now -fixed-vo compliant: x11, xv, xvidix, xmga, gl2 + * libmpdemux option handling cleanup - now it's MPlayer-independent again + * removed fork() from LIRC input module + * libfame removed from main tree/release - libavcodec is faster, better etc. + + Fixes: + * Some fullscreen switching fixes, including Metacity vs KDE 3.1 + * Many GUI bug fixes + * -vo DGA fixes, cleanup + * -dvdkey sig11 fixed + * K6-III's 3dnowex vs mmxext sigill fixed in mp3lib + * -vo gif89, jpeg U-V swapping fixed + * RTC setup fixes, more verbose messages, hints + * MEncoder: demuxer/codec uninit order fixed (solves some sig11) + * various v4l and ALSA capturing fixes + * demux_mov: fixed crash with MPEG-4 on SPARC, decoding on big-endian + * various NAS ao fixes + * libvo: optional stride support for packed YUV / RGB formats + * MEncoder: set keyframe flag on audio packets, fixes Windows seeking + * loader: fixed 2 10l bugs, ATI VCR2 DLL now works. using new style CS code. + * demux_avi: always use block counter even if dwSampleSize!=0, fixes samples + * SPU decoder (DVD/VOBsubs): fixed 2 major bugs causing lost subtitles + * various memory leak fixes (valgrind rulez :) + * fixed RealAudio SIPR(O) codec (the wrapper didn't find the dspr.so.6) + * mms:// audio (radio) streaming fixed + * DVB: -vop lavc=bitrate is working again + * various big-endian fixes + + Features: + * new audio filter layer (libaf) - automatic samplerate conversion + * experimental -vo directx driver for Cygwin build + * unrarlib included for rar'ed VOBsubs + * native XviD encoding (-ovc xvid) interface for MEncoder + * new softeq filter with gamma support: -vop eq2 + * -ao/-vo accepts list of drivers and can fall back on one, like -ac/-vc + * audio/video codec selection (-ac/-afm) rewritten, now uses codec/fm list + * get_delay() smoothing (-autosync) - should help buggy sound drivers + * smb:// URL support (disabled by default, ./configure part not yet done!) + * support for 1/4/8bpp raw video (requires -vop palette / -vop 1bpp) + * support for QuickTime alaw/agsm audio codecs, 3IV2, 3VID video codecs + * swscale can now output YUY2 format, upscaled (default), unscaled (-sws 0) + * VIDIX with LinuxPPC support (Mach64 is confirmed to work) + * GUI: cache, autoq settings, start in fullscreen, toggle button in menu + * New video filter to overlay images over video: -vop bmovl + + Libavcodec: + * RV10 codec cleanup (2nd level demuxer moved to demuxer layer) + * MPEG-4 interlaced DCT _en_coding support + * luma masking support (encoding) + * runtime selectable IDCT algo + * faster MPEG-1/2 decoder + * DV decoding (both PAL and NTSC) + * MPEG-1 2-pass encoding support + * better/cleaner error resilience (done in a 2nd pass after decoding) + * H.263/MPEG-4 out of order slice decoding + * -lavdopts bug= reworked, now uses flags, autodetects most of them + * complete MPEG-4 GMC decoding support + + + pre8: Sep 18, 2002 + Docs: + * man page rewritten, now has better indenting, and can be converted to HTML + * AUTHORS, MAINTAINERS converted back to separate text files, and updated. + * ChangeLog file is included again (was removed after 0.18) + * some new tech docs on libmpcodecs, updates/fixes in others, manpage.txt + * more updates in translation files (help_mp-XX.h) + * removed obsolete/unused entries from help_mp-en.h + + Cleanup: + * XAnim interface merged & fixed, now uses mpi and supports direct rendering + * cleanup of libmpdemux stream layer, especially of TV and MF parts + * more unused files removed: vo_fsdga, vo_odivx, vd_rle, timer.c, ttf_load + + Fixes: + * the http:// infinite memleak bug has been fixed, some WMS9 mms:// fixes + * various SPARC/Sun, HP-UX and NetBSD/OpenBSD portability fixes + * -vop palette fixes, CRAM and QPEG colors are OK now + * demuxer fixed for >2GB nuppelvideo files + * MEncoder: -ss fixed for 3-pass encoding + * gui.conf locale bug fixed (again... hope this time it's OK) + * X11 fullscreen switching fixed, when d_width == screenwidth + * MOV files edit-list handling fixed - solved 'short read' issue + + Features: + * new demuxer for .PVA files (file format of TV/DVB apps on Win32) + * -mf now supports TGA (24/32bpp uncompressed/rle) images + * libavcodec: support for interlaced MPEG-4 _de_coding + * libavcodec: aspect ratio encoding support (MPEG-4, MJPEG, H.263?) + * Win32 DLL loader merged/synced with avifile CVS + + + pre7: Sep 5, 2002 + Cleanup: + * libvo2, old input code & sis_vid removed, other code cleanups + * tons of compiler warning fixes, some configure/Makefile improvements + * more messages are translated, many translations updated + * docs review continued, HTML cleanups + * option -vfm/-afm now uses names instead of numbers, driver IDs removed + + Code: + * vfw/vfwex cleanup, support for runtime csp queries, 8bpp support + * new native mszh/zlib codec + * libavcodec: 2-pass control code rewritten, now everything is customizable + * libavcodec: MPEG-4/XviD en/decoding support improved, rv10 decoding fixes + * various RealVideo demuxer and video codec fixes, sipr audio support + * new video filters: soft eq (brightness), halfpack (deinterlacer), film noise + * OGM subtitles support + * optional freetype 2.1+ support for runtime-scalable .ttf font rendering + * various networking and mms:// fixes, live.com support improved + * various v4l video capturing and audio capturing fixes, audio input layer + * libmpdvdkit2 - based on libdvdcss 1.2.2 + libdvdread 0.9.3 + key cache + * alsa: iec958-init completely rewritten - better SP/DIF AC3 support + + GUI: + * gui.conf locale bug fixed (hopefully) + * preferences menu extended, runtime subtitle loading support + * drag'n'drop support + + + pre6: Aug 6, 2002 + * WMV1, Sorenson v1 (SVQ1) and RealPlayer 8.0 (RV20/30, Cook) codecs support + * libavcodec M1 direct rendering + * IPB support with Xv + * libavcodec improvements, bugfixes (encoder and decoder side) + * Raw DV demuxer + * libdv-based DV audio/video decoder + * Various MOV/MP4, RM and ASF/WMV demuxer bugfixes, improvements + * Detection of AVI files which needs -ni + * workaround for some Nandub bugs + * Support for live.com RTP/RTSP streaming libraries + * Support to rip DVD subs in VOBsub format + * bug fixes of mpsub/srt converter + * Closed Captioning (ASCII subs on RC1 DVDs) support + * Massive directfb updates + * VIDIX fixes/updates, including fixes of all known Radeon bugs + * dithered 1/4/8 bpp support with -vo svga (EGA rulez:)) + * alsa9 fixes/improvements + * native ARTS driver + * various endianness and 64-bit fixes (including MEncoder and -ao pcm) + * many small compatibility/portability fixes (better Cygwin, Darwin support) + * GUI fixes (playlist, audio/video equalizer, preferences) + * Skins (fixed many small glitches, a few new skins) + * 'mencvcd' script (creating VCD/SVCD with MEncoder) + * HTML DOCS updates + * man page & README restructured (again :)) + + + pre5: Jun 8, 2002 + Documentation: + * a lot of fixes, updates, cleanups + * new README containing quick install guide + * tech level docs on libavcodec encoding options + * HTML doc is now IE 6.0.2600 compatible! :))) + + Code changes: + * subreader (ASCII subtitle file parser) fixes + * spudec (VOBsub) cleanup/fixes + * new (faster, better) scaler + * bbox support + * mmst:// streaming support + * OGM (Ogg) audio/video stream selection + * native Micro$oft MPEG4v1 (MPG4) codec, error concealement for all MPEG-4s + * various libavcodec encoding improvements + * MPEG-1 && -vo x11 crash fixed when movie's height%16!=0 + * raw (uncompressed) video fixed (AVI & MOV) + * flickering/blocking fixed for old VfW codecs (indeo3, cinepak etc) + * introduced codecs.conf versioning to avoid problems caused by too old conf + + Display: + * some more X11 cleanup, icewm fullscreen fixes, -vo gl/gl2 fixed + * xscreensaver disabling support (optional, disabled by default) + * pan&scan support in xv, xmga, xvidix + * Xv YV12 stride problems fixed when width%8!=0 + * VIDIX Rage128/Radeon driver synced with MPlayerXP, various xvidix fixes + * DVB A/V sync fixes, libfame updated to 0.9.0 + * native -ao arts driver + * AC3 passthrough support for -ao alsa9 + * -ao nas fixed + + Miscellaneous fixes: + * GUI: VCD and URL support, some bugs fixed + * some cleanup of messages (less debug stuff) printed by MPlayer + * gcc 3.1 support + * various portability fixes (Cygwin, Darwin, 64bit SPARC/Alpha) + + + pre4: May 13, 2002 + * X11 fullscreen toggle fixes with many window managers, multifile playback + * DXR2 support + * Output into animated GIF + * "cropdetect" video filter to autodetect necessary cropsize + * libavcodec marked as default encoder for MEncoder + * man page rewrite + * a lot of other fixes + + + pre3: May 3, 2002 + * 3DNow! optimization of AC3 4ch downmix fixed, optimizations re-enabled + * DGA error/fail after 1 second of playing fixed + * big A-V desync for some AVI files fixed + * image distortions when seeking in some MPEG files fixed + * libmpdvdkit + gcc 3.x issue solved (our CFLAGS triggered a gcc3 bug...) + * GUI aspect ratio and fullscreen switch fixes, cleanups + * low-PS WMV playback fixed + * Mac OS X (Darwin) port? + * buggy v4l audio grabbing disabled, we cannot fix, but patches are welcomed! + * various MJPEG improvements in libavcodec + + + pre2: Apr 30, 2002 + * hwac3 fixes (try AFMT_AC3 first), big-endian fixes for PCM audio + * 2-pass encoding with libavcodec (-lavcopts vpass=x), B-frames support + * faster Ogg seeking (use -forceidx for slow but accurate one) + * audio-only with GUI fixed + * -rootwin fixed for x11, xv, xmga, xvidix + * aspect ratio fix for ffmpeg12 + * MPEG-ES detection fixed + * runtime cpudetect disabled by default + * support for many new Win32 codecs, including mss1, tm20, ucod, truespeech + * DivX audio dll sig11 with glibc 2.1.(2|3) fixed + * libmpdvdkit - patched kit of DVD libraries (enabled for Linux+FreeBSD) + * man pages updated + * 'f' (fullscreen switch) fixed for some WMs, still has problems + * various FreeBSD and OpenBSD portability patches + * options -xy,-zoom,-flip usable with MEncoder, too, -xy keeps aspect + * -vop lavc, using new fast best libavcodec for realtime MPEG-1 transcoding + * fixed GTK GUI crash with --disable-mencoder + * no more black VOBsub subtitles :) + + + pre1: Apr 21, 2002 + * 100% GPL - yeah, so what? + * runtime CPU detection - x86 MPlayer binary can run on "any" other x86 CPU + * video filter layer - with numerous plugins (crop, expand, etc) + * view or encode DVD/VOBsub and/or text subtitles into the output AVI + * preliminary dvdnav support (experimental) + * direct rendering - can't be used with libavcodec yet, sorry + * display subtitles under the image, on black bands + * FFmpeg (included) now supports decoding MPEG4v2 (MP42) and DivX 5.0 files + * greatly enhanced MPEG-4 encoder (libavcodec) + * audio-only (WAV/MP3/WMA/Ogg) file playback (console only) + * playing/encoding audio from separate WAV/MP3 file + * support for more file formats, including the new and very popular Ogg + * multiple file playback from console, including various playlist formats + * and of course, faster than ever... :) + + +MPlayer (0.60) "The RTFMCounter": Jan 2, 2002 + + release: + * minor bug fixes for RealMedia/nuppelvideo demuxers + * docs updates + * help file translation updates + + + pre2: Dec 29, 2002 + * build fixes (install codecs.conf) + * DVD subtitles improved (stability and pts fixes) + * new options: -alang, -vlang, -rootwin, -npp ... (rtfm) + * DXR3 fixes + * AC3 passthrough fix + * docs updates + * make install + + + pre1: Dec 25, 2002 + * new file formats (MOV, FLI/FLC, VIVO, RealMedia, NuppelVideo, yuv4mpeg, + yuv4mpeg2) + * more native codecs (CRAM, CVID, FLI, generic ADPCM (and IMA) decoder, + g723, XAnim) + * MEncoder (a tool for encoding video to DivX4+MP3) + * rewritten configure script (better autodetection, cleaner messages) + * MMX/SSE optimizations + * faster postprocessing filter, syntax change (deinterlacing support) + * DirectShow code in C + * software YV12 scaling + * aspect ratio fixes + * input cache for smoother network/DVD playback + * GUI fixes and new skins + * DVD subtitles + * playing in root window (-rootwin) + * liba52 + * audio filters (surround, 5.1, up/downsample, etc) + * new homepage design + * grabbing from TV through v4l + * hardware MPEG decoder support (DXR3, Siemens DVB) + + + +MPlayer (0.50) "The Faszom(C)ounter": Oct 8, 2001 + + release: + * documentation updates + * non-Linux build fixes + + + prex 1-3: Sep 28 2001 - Oct 5 2001 + * some pre-beta nationalization support + * HTMLized documentation, split in sections + * a lot of bug fixing + * new AAlib driver (independent of SDL, SUB/OSD support) + * DivX DirectShow equalizer over keyboard + * dynamic setting of DivX postprocessing quality (-autoq) + * updated FAQ section on the homepage + + + +MPlayer (0.18) "The BugCounter": (0.18 only consisted of prereleases) + + pre 1-5: Jun 26 2001 - Jul 9 2001 + * mp3lib even more optimized for 3DNow!/MMX + * GGI driver + * ICCCM patch + + * skin support + * GUI support + + * libao2 (null, oss, alsa, sdl) introduced + * ASF seeking fixed + * option to force audio playback samplerate (-srate) + * framedropping for MPEG files as well + * X11 driver works on remote display (without SHM) + * A-V sync for AVI files fixed (both -bps and -nobps) + + + +MPlayer v0.17a "IdegCounter++": Apr 27 2001 + - first 0.17 release failed - buggy files outdated docs etc :( + it's (hopefully) fixed now. + + + +MPlayer v0.17 "IdegCounter": Apr 27, 2001 + * DVD playing (libcss) + * OSD and subtitles with antialiased fonts + * new Win32 codecs (WMV1,AP42,ASV2 etc) + * new VO drivers (SVGAlib,fbdev,DGA,SDL etc) + * source cleanup, most part of the code rewritten + +* jumped to 0.17 * (why 17? oh. chass just got a new 17" monitor :)) + + - faster memcpy() routine (MMX/3DNow!/SSE-optimized) + - new stream selection code (autodetected) + - pre-devel-alpha DVD code (libcss) + - subtitle code 100% (perfected timing code) + - new output drivers (SVGAlib, FBdev) + + + +MPlayer v0.11-pre27-CVS: + - updated libmpeg2 source to libmpeg2-0.2.1-CVS version + - updated OpenDivX encore/decore to 4.0 alpha48 + - cmdline/configfile handler by szabi + - added DirectShow support (now DivX-only) + - bugfix: stream.c/stream_new() uninitialized variables + + + +MPlayer v0.11-pre26-CVS: + - updated libmpeg2 source to libmpeg2-0.2.0 version + - small fixes + + + +MPlayer v0.11-pre25-CVS: yeah, we moved to SourceForge CVS! + - DOCS updated (email address changed from arpi@* -> maillist) + - LIRC fix, mplayer_lirc changed back to mplayer [Andreas Ackermann] + - stream.c: unsigned int fixes, required for some strange ASF files + - asfheader.c: using w=h=b=1 for audio_concealment_none + - VCD-related stuff moved from stream.c to vcd_read.c + - added DGA driver by Andreas Ackermann + - added debian/ subdir for the Debian package makers... see DOCS/DEBIAN + - new Makefile/dependency system + - added check_events() to libvo, X11 stuff moved to x11_common.c + + + +MPlayer v0.11-pre24: Feb 19, 2001 + small fixes again :( + - DOCS/LIRC changed: users *must* enable lirc support manually, it is + not autodetected yet. (./configure --enable-lirc) + - the {prefix} bug fixed by Gabucino + - added man page by Gabucino + - man page -vo fixes by A'rpi + + + +MPlayer v0.11-pre23: Feb 18, 2001 + lirc support, text updates, mailinglists + - added "-ni" option to force usage of the non-interleaved AVI parser + - DOCS/* updated by Gabucino + - new homepage by Gabucino + - MPlayer-users & announce mailing lists by Dariusz Pietrzak (see README) + - LIRC support by Andreas Ackermann (see DOCS/LIRC) + enable with ./configure --enable-lirc + TODO: ./configure should detect LIRC installed and better Makefile handling + - added AVI_NINI parser for broken (no index) non-interleaved files + + + +MPlayer v0.11-pre22: Feb 16, 2001 + last fixes, release is coming soon! + - non-interleaved AVI EOF bug fixed [thanks to DC-1 for help] + - "You" strings in Makefile after make dep bug fixed... [thx to DC-1] + - SDL disabled by default. You have to ./configure --enable-sdl to enable. + - homepage updated by Gabucino + - homepage updated by A'rpi + - FAQ updated by A'rpi + +fork() -> 0.12pre1 + + + +MPlayer v0.11-pre21: Feb 12, 2001 + MPEG-1 pp, stereo fix + - "Skip chunk xxxx" messages moved from -v to -v -v -v debug level... + [thanks to Christoph H. Lampert] + - DivX postprocess filter works for MPEG-1 files, too! (-divxq 1/3/7/31) + - MPEG layer-2 audio fixed - it's stereo again!!! + - audio select() detection: if detected audio buffer size == 0, then + exit with message "Recompile mplayer with #undef HAVE_AUDIO_SELECT !"... + - syncfb driver added to the source tree, under drivers/ + (it's very similar to mga_vid, but has syncronization to screen and + de-interlace features) + - draw_slice in syncfb finished for G400 cards (plays MPEG-1/2, OpenDivX) + (de-interlacing has been disabled, because it's buggy now) + + +MPlayer v0.11-pre20: Feb 11, 2001 + NI-AVI support, small fixes & patches... + - ASF parser: flag 0x40 (explicit packet size) implemented [Marvin] + - new option to select DSP device: -dsp (default: /dev/dsp) [Pontscho] + - option -o changed to -vo + - ./configure: applied patches [LGB,Ian Kumlien,Magnus Pfeffer] + - AVI chunk_id->ds mapper moved to demux_avi_select_stream() + - added non-interleaved AVI parser + - added non-interleaved AVI detection (if a_pos-v_pos distance > 1MB) + + + +MPlayer v0.11-pre19: Feb 9, 2001 + small fixes... + - vo_xmga.c: G200 draw_slice fixed + xmga + mga: common part (draw_frame & draw_slice) moved to mga_common.c + - some independent code (asfinfo.c and GL-test) moved to the new TOOLS subdir + - movinfo.c added to TOOLS (small util to dump MOV file structure) + - AVI & ASF stream id detection changed: now using IDs from the header + (but still can be overriden by -aid or -vid) [Christoph H. Lampert] + - native MS-GSM audio codec ported from avifile source (-afm 6) + [thanks for the testfile to Christoph H. Lampert] + - README updated (input & codec lists) + - implemented ASF audio descrambling [Dirk Vornheder & Einon] + -> that weird_al_yankovic ASF is not so weird now :) + - AUTHORS file changed + + + +MPlayer v0.11-pre18: Feb 7, 2001 + patch release :) + - skip broken ASF fragments (for better seeking) + - seeking code cleanup in sources (now it's in a switch(){}) + - opendivx encoding bitrate option changed from -divxq to -br + (for the DivX -> DivX re-encoding) + - TO DO section moved to file TODO + - applied ./configure and Makefile changes patch from LGB + - libvo function changes by Pontscho: x11 (with -fs), xmga (bugfixed!) + - libvo: driver sources renamed from video_out_*.c -> vo_*.c + - libvo: added uninit() function to drivers + - libvo: fork()'ed X11 eventhandler for x11 and xmga drivers [me & Pontscho] + (gl and xv version is coming soon!) + - libvo: sdl driver now closes SDL at QUIT... + - small English fixes (docs & messages) [Balazs Tibor] + + + +MPlayer v0.11-pre17: Feb 4, 2001 + fixes + - ASF "missing video stream" fixed (stream id & 0x7F) [Christoph H. Lampert] + - added GL-test directory, it contains source and compiler script of a + very simple open-gl texture updating (glTexSubImage) test program. + if it runs well, then mplayer -o gl should work, too. + it works on G400+Utah-GLX, but segfaults in the G400 driver of X 4.0.2/DRI. + try it with different cards/drivers, and please report me the results. + - benchmarking in gltest.c: calculate fps and process times + - ASF seeking v0.01-pre0.1 :) + + + +MPlayer v0.11-pre16: Feb 4, 2001 + ACM fixed + - Win32/ACM audio codec fixed (most important for ASF with DivX audio): + There was an output buffer size problem with the Win32/ACM audio codec + at low bitrates (usually used for ASF files with DivX audio) + Input and output buffer sizes are now queryed, problem solved :) + - SDL support compiling hint by Michael Durller added to the FAQ + - opendivx support in ASF files [Gérard Lantau] + - ./configure & Makefiles patch by Aaron Hope applied. + (adds --with-win32libdir and fixes --with-x11libdir) + - ./configure fixed, now it defaults to /usr/lib/win32 if detection failed + + + +MPlayer v0.11-pre15: Feb 2, 2001 + ASF sync fixed + - ASF parser: now supports other than 0x5D segments [Dirk Vornheder] + - new ASF PTS reading: sync works now, including fps... + (-fps no longer required!) [thanks again to Eugene Kuznetsov for docs!] + + + +MPlayer v0.11-pre14: Feb 1, 2001 + small fixes, ASF sync v0.1 :) + - version number incremented :))) + - libvo / Xv driver swapped red-blue fixed + - ASF timestamps implemented - now ASF A-V should be in sync if you + specify the correct fps at commandline (-fps), +-1 fps allowed... + [i haven't yet found method to get fps out from ASF headers :(((] + - some error and consistency checking into demux_asf + if you see many warning! messages playing an ASF file, then contact + me and upload the file (first 1MB is enough if it represents the problem) + Don't forget: there is no public doc about the ASF file format, so + everything we know is suspected and can be wrong... without your help + we will never have a working ASF player... + - ASF fragment offset checks disabled for grouping... + + + +MPlayer v0.11-pre13: Jan 31, 2001 + libvo changes, MPEG bitrate, VCD fix, ASF grouping + - libvo: draw_slice() interface changed, now it has src stride[3] and + destination rect dimension (w,h,x,y) + It's able to blit whole frames, not only 16-pixel slices... + - libmpeg2 and opendivx codec changed to use new draw_slice() + -> opendivx extra 64-pixel width band at right disappeared! + - MPEG bitrate fix: if picture->bitrate==0x3FFFF (means "unspecified" ?) + then using standard VCD bitrate (75*2324 bytes/sec) + -> fixed seeking for those MPEGs with "16MBit/s" bitrate... + - drivers/sis_vid: video4linux interface disabled + - broken VCD playing fixed: stream_reset shouldn't seek to 0x0... + [bugreport: Kang Sun] + - asf_parser: grouping implemented! [test file provided by Gabucino :))] + + + +MPlayer v0.11-pre12: Jan 30, 2001 + ./configure fixes, improved odivx-encoding, streaming fixes + - ./configure: use /tmp/main$$.c instead of /tmp.main.c, and + remove file after tests [SaPe] + - ./configure: trying the gcc optimize options and fall back on 'pentium' + if it fails (useful for people with old gcc and new CPU :)) + - removed -fomit-frame-pointer from OPTFLAGS at config.mak + - version number incremented [Gabucino] + - odivx encoder fix: allow long (longer than xxxx.avi) destination filenames + (sizeof() changed to strlen()...) [Gabucino] + - AVI writer - overwrite disabled (exits with error message if destination + file already exists...) [Gabucino] + - use -divxq to set encoding bitrate (in bits (not kbits!) default: 780000) + - no audio decoding if -encode option is used + - audio streaming disabled if -nosound specified (setting audio_id to -2) + - fast MPEG-ES detection (doesn't read the whole MPEG-PS file) + - compile-time option to disable using soundcard driver's select() + (required for some people with buggy/pre-alpha/etc sound driver...) + + + +MPlayer v0.11-pre11: Jan 29, 2001 + streaming fixes, ASF support pre, indeo5 fix + - asf/asfinfo.c improved: now dumps streams to files - needs testing! + (it's ready to be converted to ASF demuxer and integrated into MPlayer) + - stream.c / stream_reset() fix: now really seeks back to position 0! + - ASF file format detection added (no ASF reading yet!!!) + - ASF demultiplexer added, changes in demuxer.c to handle fragmented packets + > it plays ASF video well, but still has problems with DivX/WMA audio. :((( + - indeo 5 playing fixed (removed ICDECOMPRESS_UPDATE from flags) + - xmga resizing problems with some window managers, so default order is + changed xmga,xma... to mga,xmga,... + - found gcc bug: compiling MPlayer with flags + OPTFLAGS=-O -g -march=i686 -mcpu=i686 -pipe -fomit-frame-pointer -ffast-math + causes image sizes negating -> mga_vid kernel driver Oops... :((( + - runaway.bride.sample.avi seeking segfault discovered: AC3 resync fails :( + - improved signal handling: module name is now printed. audio_resync added. + - RGB opendivx encoding implemented, now AVI->opendivx is possible. + + +MPlayer v0.11-pre10: Jan 22, 2001 + OpenDivX encoding, streaming fixes, AVI seek fixes + - new libvo driver: odivx (OpenDivX File Writer) + - AVI file writing support, new option: -encode filename + to encode an MPEG/VOB/VCD to opendivx: + mplayer file1.mpg -encode file2.avi -o odivx -nosound + (sound encoding/copying is not yet supported) + - libvo: default driver priority changed to: xmga,mga,syncfb,3dfx,xv,x11,gl + - AVI writer: index support + - small fixes in AVI writer to be compliant (adjusted chunk/list lengths) + - demuxer.c: stream buffering fixes: + - missing {} in mplayer.c occurring audio reads when has_audio=0 + - reordered packet reader and pack count checks -> no more unwanted EOF + - added 4MB buffer memory usage limit to demuxed streams + - CPU flags in ./configure changed: + k7 -> k6 (current stable gcc doesn't support k7) + 386,486 -> i386,i486 [Balazs Tibor] + - demux_avi: index check now accepts (raw.len+1)==idx.len [Balazs Tibor] + - FAQ added + + ** Now we are done with planned features & urgent fixes, ** + ** it's time for final testing and then the 0.11 release!! ** + + + +MPlayer v0.11-pre9: Jan 18, 2001 + OpenDivX fixes,speedup + - solved OpenDivX width problem (stride=width+(Quality?0:64)) + now -divxq 0 works, and 0 is the default + - libvo call moved out from my_convert_yuv() so it can be measured (CPU %) + - IDCT code ported from libmpeg2 -> much faster OpenDivX decoding + + + +MPlayer v0.11-pre8: Jan 18, 2001 + SDL fixes, OpenDivX support + - added -I/usr/X11R6/include to libvo CFLAGS + - (removed later: applied libvo SDL driver fixes by Jeffrey Boser) + - OpenDivX support, initial hack, maybe not working for you... + (I need testfiles, I have only one) + use -divxq option to adjust quality (1..29 works), 1=default + + + +MPlayer v0.11-pre7: Jan 14, 2001 + SDL support + - ported SDL driver from mpeg2dec/libvo (current CVS) + (it's slower than internal X11 driver, but supports software scaling!) + - fixed SDL driver to support -fs and pass keyboard events + - SDL driver changed to support YV12 and YUY2 formats instead of IYUV + (now works with DivX files, too) + - 'q' (Quit) disabled in SDL fullscreen mode (because it's impossible + to restore screen before exiting so it gets into an unusable state now) + + + +MPlayer v0.11-pre6: Jan 14, 2001 + audio fix + - fixed video_out_xv.c compilation problems [bugreport: Kalle Mellerup] + - modified audio playing: always keep buffer (both internal and card's) + filled using select() -> -alsa audio delays should be fixed. + - updated DOCS/AUTHORS and DOCS/README + + + +MPlayer v0.11-pre5: Jan 12, 2001 + xmmp audio support, applied Pontscho's libvo patch + - xmmp audio driver support by Arthur Kleer + - new video_out driver by Pontscho: xmga (Matrox G200/G400 only!) + It does same under X 3.3.x what Xv extension does under X 4.0.x! + (you will have a moveable/resizeable window but see a YUV video + overlay in it using color keying) + - added keyboard event support in X11 windows [Pontscho] + (using mplayer_[put|get]_key() in codecctrl.c) + + + +MPlayer v0.11-pre4: Jan 6, 2001 + x11 driver fixes, 15/16bpp support + - version in version.h fixed :))) [Pontscho] + - inttypes.h moved to DOCS/ (copy back to the root if you need it) + - depth calculation in vo_init() changed (Pontscho's version couldn't + differenciate between 15 and 16bpp) + - x11 driver now uses vo_init() instead of get_depth() + - yuv2mmx: 15bpp not really supported -> removed from list, now + conversion is done (well) by the C code -> MPEG play in 15bpp works! + - AVI playing support added in 15bpp (memcpy) + - AVI playing support added in 16bpp (C 15->16 converter by me) + - AVI playing support added in 16bpp (MMX 15->16 converter by Strepto) + - libvo/x11: yuv2rgb used MMX code on non-MMX CPUs, too!!! fixed... + - all x11 modes tested (and MPEG/24bpp byteorder fixed): + MPEG: AVI/VfW: + 15bpp C convert memcpy + 16bpp MMX/C convert MMX/C convert + 24bpp C convert memcpy + 32bpp MMX/C convert memcpy / C conv. + => now all the movie types are viewable using the -o x11 driver! + + + +MPlayer v0.11-pre3: Jan 5, 2001 + MPEG fixes, fullscreen support + - vertical.mpg serious libvo (x11,gl) segfaults fixed: + yuv2rgb_mmx requires one more lines that vertical image size... + fixed (allocating memory for width*(height+1)). [bug report: Gabucino] + - Pontscho's fullscreen patch applied! + Using option -fs will maximize window size (for all resizeable drivers + including mga!) and disable window decorations (x11,Xv,gl only) + - simple inttypes.h included for libc5 (and glibc2.0, too?) users + - homepage updates (links changed ftp->http) + + + +MPlayer v0.11-pre2: Jan 4, 2001 + better user messages, MP3 codec selection, demuxer changes + - w32codec.zip restored at the FTP site (somehow it got damaged...) + - added version.h, and used its content everywhere + - 'premature end-of-file' problem fixed: freeing audio buffers and + setting d_audio->id=-2 if has_audio==0 [bugreport by Dmitri Pogosyan] + - some more messages added if verbose>=1 + - demuxer.c: error message printed if A or V chunk buffer is full + 'mplayer test.avi -aid -2' still not works without option '-nosound' + - adding new config.h option to set default MP3 audio codec (mpg123/l3codeca) + ./configure selects mp3lib only if you have 3DNow! [idea: Gabucino] + - automatic fall back on mp3lib/mpg123 if l3codeca.acm can't be loaded/inited + + + +MPlayer v0.11-pre1: + AVI sync fixes + - AVI audio seeking improvements: now using nBlockAlign value to seek + inside the chunk, so DivX audio works without big delays!!! + - AVI PTS calculation modified: counting video PTS when skip_video_frames>0 + so new audio PTS values will be correct. Solved many sync probs! + - A-V sync with AVI files fixed! + Now only the Desperado-trailer has 1.0 sec delay after seeking. + - fixed AVI sync in -bps mode, too! :) (perfect except that Desperado AVI) + + + +MPlayer v0.10: Jan 1, 2001 "The new year" release! + - testing + - docs changed + - it's time to release and remove the old buggy 0.09 version... + - release!!! + + + +MPlayer v0.10-pre8: libvo/x11 changes + - libvo: x11/xv driver split into x11 and xv drivers + - libvo: DUMMY_VO_FUNC removed from driver sources + - libvo: default driver order changed, because some users with software-only + OpenGL thought that this 'slow' player can only play at 1-3fps :) + + + +MPlayer v0.10-pre7: Dec 31, 2000 + libmpeg2 interface changes, display size/area changes, AVI fixes + - libmpeg2/decode.c modified: + - removed unused OMS and mpeg2dec stuff + - decode_data rewritten, now works like parse_es.c + => doesn't copy any data -> faster and less memory usage + - mplayer.c sends code 0x1FF after every frame, so libmpeg2 knows + when to display it + - mplayer.c: in_frame flag fixes, didn't work well with MPEG-2 streams + (because there is a 0x1B2 chunk between 0x100 and 0x101) + - 'picture' changed from static to shmem-allocated + -> better picture after codec restart (tested with JapAd.mpg) + -> keep information of the header changes (after init) + - MPEG image size changed, now only the real part of frame is displayed + (no more green stripe at the bottom) + - picture struct: new fields: display_picture_width/height + - image buffer allocation (shmem) is done by decode.c instead of libvo + - new option: -xy (resize both x/y direction) + if value<=8 -> x_scale = y_scale = value + else -> x_size=value y_size=aspectratio*x_size + - mplayer.c: video output moved out from AVI/MPG init sections and + now it's common code (added movie_size_x/y variables and out_fmt global) + - new keys: + ESC => quit + + and - => adjust audio delay +- 0.1 second + k => kill/restart the MPEG codec process (for testing) + - codec control interface changed: wait for syncword after (re)start + to avoid receiving old frames => it's stable again! + - removed (now unused) allocate/free image buffer code from libvo + - mplayer: new internal variable for video format: has_video + 0 = none (unused yet) + 1 = MPEG-1/2 video + 2 = Win32/VfW video codec + - config.h has defaults for bps-based AVI sync and ALSA timer code options: + #undef AVI_SYNC_BPS => now it's disabled by default!!! use -bps to enable + #define ALSA_TIMER => now it's enabled by default!!! use -noalsa to dis. + - help updated + - prints max compressed framesize at exit (both AVI & MPEG) + - AVI audio seeking fixed: some ACM codecs (DivX audio and ms-adpcm) + can't seek inside a chunk, they are only able to play whole chunks. + Current audio seeking has changed to seek inside the chunk only if the + codec supports it (only internal codecs and ACM/MP3 allows it). + - AVI: audio delay correction if seeking inside the chunk is not possible + + + +MPlayer v0.10-pre6: Dec 24, 2000 "Xmas edition" + MPEG signal & EOF fixes + - ./configure: k6_mtrr (2.4.test11+) added [Pontscho] + - `term destroys if mplayer (MPG) called from mc.ext` bug fixed: + added sighandler to the 3rd process (MPEG codec) to avoid sig. recursion + - better output at exit (handled now by exit_player()) + - MPEG EOF problem (codec restart) fixed: added EOF detection to parse_es.c + - internal flag 'current_module' added to get more info at segfaults + (contains module number where the segfault occurred) + - audio detection changed: using afm=4 (Win32/ACM) for MP3 audio (AVI files) + (you MUST have l3codeca.acm at /usr/lib/win32, or you have to use '-afm 1') + + + +MPlayer v0.10-pre5: Dec 22, 2000 + flipping fixed + - AVI image flipping reworked: + - new flag: avi_header.flipped, TRUE if upside-down + - image flipping code removed/disabled from libvo modules + - duplicate flip_page() calls removed (overload with x11 and mga) + - aLaw audio codec (AVI id 0x06) added (uses code from XAnim source) + + + +MPlayer v0.10-pre4: + test release, small fixes + - video_out driver <-> codec incompatibility message changed + - fixed the config.format bug in drivers/mga_vid_test, so it works again! + [thanks to David Whysong] + - libmpeg2 upgraded + + + +MPlayer v0.10-pre3: Dec 10, 2000 + test release, verbose mode, new docs + - new option: -v = increment verbosity level + (debug printf's changed to verbose level-dependent) + - default level: 0, only some informal output + - init debug: 1, some basic debug infos, AVI header, function values + - player debug: 2, print AVI indexes, chunk inputs, more debug infos + - parser debug: 3, prints everything related to input parsers + to increment verbose level, use multiple -v options (-v -v -v for level 3) + - bitrate calculation for AVI files + - README rewritten, added Troubleshooting and Bugreports sections + - TVout directory added (only the scripts) + + + +MPlayer v0.10-pre2: Dec 8, 2000 + bugfix test release, bps-sync enabled + - AVI: supporting both 0-based and movi-based index types (autodetect) + - AVI: tested with VBR audio: plays well with -mc 0 option, seek doesn't + work yet [thanks to Alan Chen for testfile] + - AVI: A-V sync to avg. byte/sec implemented (again) and enabled by default + (disable with -nobps if you want) + - ./configire: 3rd name ('kni') of the P3 added. Where is the compatibility? + - useless '\' removed from libac3/Makefile [Otvos Ferenc] + + + +MPlayer v0.10-pre1: Dec 5, 2000 + test release, players merged!!! + - avip and mpegp have been merged to a single binary called 'mplayer' + - file type detection (AVI/MPEG-PS/MPEG-ES/Other) + - no redundant code (common code for common jobs) + - big format-dependent codes moved to functions (separated files) + - better error messages, removed some debug stuff, code cleanups + - old libmpeg2 version removed from source tree + - help texts merged (help_avi+help_mpg -> help_mp) + - new options: -x -y = scale image (if selected driver supports) + if value<=8 then image size will be multiplied by value, otherwise + image size will be scaled to pixels. + For example: + 2x ZOOM: mplayer -x 2 -y 2 test.mpg + 800x600: mplayer -x 800 -y 600 test.mpg + [default values are still configurable at compile-time, see config.h] + - TV project (not finished) codebase added (see tvision.c, or: make tvision) + + + +MPlayer v0.09: Dec 5, 2000 + Beta release [same as 0.09-pre3] + - version changed in the files + - docs updated + + + +MPlayer v0.09-pre3: Dec 3, 2000 + bugfix test-release, X11 support testing + - fixed the if [ -z $pparam ] bug in ./configure [Christian Birchinger] + - many changes in AVI seek code, resulting in near-perfect seeking now! + current method calculates absolute audio position, so with VBR audio it + doesn't work yet... + - avip: Xv support (YUY2 image format) + - avip: X11 support (24 & 32 bpp only, BGR format) + I need a very fast 15->16bpp converter for 16bpp support... anyone helps? + + + +MPlayer v0.09-pre2: + bugfix test-release + - removed unnecessary code from libmpeg2/header.c + Walken told me that standard MPG/VOB streams must NOT use framerate + and bitrate extension... and the ext. id check is done by the caller. + - CRC support to mp3lib's MPEG audio layer-2 decoder + thanks for bug report & test file to Samson + + + +MPlayer v0.09-pre1: Dec 1, 2000 + bugfix test-release + - imported new libmpeg2 files (under testing...) + - GL renderer flickering bug fixed (MMX missing emms() between yuv2rgb and + glTexSubImage(), bug triggered by new Utah-GLX code) + [thanks to Christian Birchinger] + + + +MPlayer v0.08: Nov 27, 2000 + Index support, AVI seeking, DLL loader fix, compilation fixes + - Added support for chunk index usage (disable with -noidx option) + - Removed code optimization flags from loader/Makefile because + it segfaults if compiled optimized (it does some hacks with + pointers, maybe the reordered code confuses it) + - added new tool called aviparse (read and check AVI file structure) + - indexed and raw chunk info comparing, bad chunks dropped + - termcap usage is optional (for those Debian users without termcap) + - #if HAVE_* fixed (to #ifdef HAVE_*) + - ./configure supports new /proc/cpuinfo (2.4.0-test11) + - sse is called 'sse' again + - 'flags' field renamed to 'features' + - Xv benchmark results added to DOCS/SPEED + - AVI seeking (and other goodies, pause etc) implemented + no PTS resync after seek yet. + - default video_out driver changed from 'mga' to the first available driver + new driver priority: mga_vid, opengl, x11 + + + +MPlayer v0.07: Nov 21, 2000 + Easier compile + - Added Pontscho's ./configure script (it's modified a lot) + - Updated makefiles, and tested a lot :) + - Updated DOCS/INSTALL + + + +MPlayer v0.06: Nov 20, 2000 + Better codec selection + - AVI audio&video codec selection moved to new codecs.c file, + loader/driver.c and loader/afl.c modified for this + - YUV support fixed, codecs.c setup flags to handle YUV properly + YUV works fine with DivX, MPEG-4, cvid, and upside-down iv50 + - DOCS/INSTALL updated + - DOCS/SPEED updated, DivX benchmarks added + + + +MPlayer v0.05: Nov 18, 2000 + Merged with MPEGplayer 0.90pre6, first public release of AVI player + - code merged with mpegplayer, new Makefile, some small modifications + - docs updated and moved to DOCS + + + +MPlayer v0.04: Nov 17, 2000 + YUV (YUY2) support with DivX 3.11 DLL, some code cleanup, preview-release + + + +MPlayer v0.03: Nov 14, 2000 + + + +MPlayer v0.01: Nov 11, 2000 + first preview version based on new MPEGplayer's codebase. + it contains the Win32 loader from avifile, and can decode DivX 3.11 video. + + + +mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000 + MPEG codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel + Lespinasse. It's great, optimized very fast C code with perfect + image quality and 100% MPEG standard conformance. + + + +mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000 + MPEG codec replaced with DVDview by Dirk Farin, it was great + stuff, but it was slow and was written in C++ (I hate C++!!!) + + + +mpg12play v0.1-v0.3: Sep 22-25, 2000 + The first try, hacked together in half an hour! I've used libmpeg3 + from www.heroinewarrior.com up to the version 0.3, but there were + image quality and speed problems with it. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/Copyright.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer/Copyright.txt new file mode 100644 index 0000000..64b8a0a --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/Copyright.txt @@ -0,0 +1,152 @@ +MPlayer was originally written by Ãrpád Gereöffy and has been extended and +worked on by many more since then, see the AUTHORS file for an (incomplete) +list. You are free to use it under the terms of the GNU General Public License, +as described in the LICENSE file. + +MPlayer as a whole is copyrighted by the MPlayer team. Individual copyright +notices can be found in the file headers. Furthermore, MPlayer includes code +from several external sources: + +Name: FFmpeg +Version: Subversion HEAD +Homepage: http://www.ffmpeg.org +Directory: libavcodec, libavformat, libavutil, libpostproc +Copyright: Many, see individual files for copyright notices. +License: GNU Lesser General Public License, some parts GNU General Public + License, GNU General Public License when combined + +Name: FAAD2 +Version: 2.1 beta (20040915 CVS snapshot) + fixes and portability patches +Homepage: http://www.audiocoding.com +Directory: libfaad2 +Copyright: 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com +License: GNU General Public License + +Name: GSM 06.10 library +Version: patchlevel 10 +Homepage: http://kbs.cs.tu-berlin.de/~jutta/toast.html +Directory: libmpcodecs/native/ +Copyright: 1992 by Jutta Degener and Carsten Bormann, TU Berlin +License: permissive, see libmpcodecs/native/xa_gsm.c + + +Name: liba52 +Version: 0.7.4 + patches +Homepage: http://liba52.sourceforge.net/ +Directory: liba52 +Copyright: 1999-2000 Aaron Holtzman + 2000-2001 Michel Lespinasse + 2000 Yuqing Deng + 2002 Nick Kurshev + 2004 Romain Dolbeau +License: GNU General Public License + +Name: libdvdcss +Version: Subversion r207 (post 1.2.9 release) +Homepage: http://developers.videolan.org/libdvdcss/ +Directory: libdvdcss +Copyright: 1998-2006 VideoLAN +License: GNU General Public License + +Name: libdvdread +Version: 0.9.7 + patches +Homepage: http://www.dtek.chalmers.se/groups/dvd/development.shtml +Directory: dvdread +Copyright: 1998, 1999 Eric Smith + 1999 Christian Wolff for convergence integrated media + 2000-2001 Billy Biggs , + 2001-2002 Samuel Hocevar , + 2000-2003 Björn Englund , + 2000-2003 HÃ¥kan Hjort +License: GNU General Public License + +Name: libmpeg2 +Version: 0.4.1 + patches +Homepage: http://libmpeg2.sourceforge.net/ +Directory: libmpeg2 +Copyright: 1999-2000 Aaron Holtzman + 2000-2003 Michel Lespinasse + 2002-2003 Falk Hueffner + 2003 David S. Miller + 2003 Regis Duchesne + 2003 Peter Gubanov +License: GNU General Public License + +Name: mpg123 +Version: 0.59s + significant changes +Homepage: http://www.mpg123.de/ +Directory: mp3lib +Copyright: 1995-1999 by Michael Hipp + 2004 Romain Dolbeau + 2006 Zuxy Meng +License: GNU General Public License + +Name: librtsp +Version: xine CVS 2003/04/10 + patches +Homepage: http://www.xinehq.de +Directory: stream/librtsp/ +Copyright: 2000-2002 the xine project +License: GNU General Public License + +Name: realrtsp +Version: xine CVS 2003/04/17 + patches +Homepage: http://www.xinehq.de +Directory: stream/realrtsp/ +Copyright: 2002 the xine project +License: GNU General Public License + +Name: pnm protocol implementation +Version: xine CVS 2002/12/26 + patches +Homepage: http://www.xinehq.de +Directory: stream/pnm.[ch] +Copyright: 2000-2002 the xine project +License: GNU General Public License + +Name: id3edit +Version: 1.9 + patches +Homepage: http://id3edit.sourceforge.net/ +Directory: libmpdemux/genres.h +Copyright: 2001 Jason Carter +License: GNU General Public License + +Name: unrarlib +Version: 0.4.0 + patches +Homepage: http://www.unrarlib.org/ +Directory: unrarlib.[ch] +Copyright: 2000-2002 Christian Scheurer (www.ChristianScheurer.ch) + 2000-2002 by Johannes Winkelmann (jw@tks6.net) +License: GNU General Public License / UniquE RAR File Library License + +Name: FreeSDP +Version: 0.4.1 +Homepage: https://savannah.nongnu.org/projects/freesdp/ +Directory: stream/freesdp/ +Copyright: 2001-2003 Federico Montesino Pouzols +License: GNU General Public License diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/LICENSE.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer/LICENSE.txt new file mode 100644 index 0000000..1d1d526 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/LICENSE.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/README.txt b/iidx/bme2ac workspace djt custom songs/videos/mplayer/README.txt new file mode 100644 index 0000000..5ba1120 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/README.txt @@ -0,0 +1,119 @@ +Welcome to the Windows version of MPlayer - the movie player +(http://www.mplayerhq.hu/). + +The bottom of this file has a list of keyboard shortcuts to control MPlayer. +A complete list of command line parameters is in man_page.html. More +documentation is in the docs/ directory. Start reading at index.html or +skip right to windows.html for Windows-specific information. Note that +while most of the documentation is written with the Unix version in mind +most things are valid for Windows as well. + + +The files in this package: +mplayer.exe - the main executable +mencoder.exe - a full-featured video encoder +vfw2menc.exe - a tool used to configure VfW codecs, please look at + docs/menc-feat-video-for-windows.html +man_page.html - usage and command line options +AUTHORS.txt - (incomplete) authors list +Changelog.txt - a list of the most important changes between versions +Copyright.txt - copyright information for imported libraries +LICENSE.txt - a copy of the GNU General Public License (GNU GPL) +README.txt - this document +codecs/ - binary codecs (Real, QuickTime etc.) directory; + You can download some codecs from our downlad page: + http://www.mplayerhq.hu/design7/dload.html + +mplayer/config - configuration file with adjustable options +mplayer/input.conf - keybinding configuration file + +This package comes with a trimmed-down (latin characters only) version of +the Bandal font in the file mplayer/subfont.txt. The font is copyright +2006 by Ho-Seok Ee and available und under the terms +of the Artistic license. The Artistic license can be found at +http://www.opensource.org/licenses/artistic-license.php. + + +A list of Windows frontends for MPlayer can be found at +http://www.mplayerhq.hu/homepage/design7/projects.html#windows + +A mailing list for Windows-related questions is at +http://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin + + +KEYBOARD CONTROL + +general control + <- and -> + Seek backward/forward 10 seconds. + up and down + Seek backward/forward 1 minute. + pgup and pgdown + Seek backward/forward 10 minutes. + [ and ] + Decreases/increases current playback speed by 10%. + { and } + Halves/doubles current playback speed. + Backspace + Reset playback speed to normal. + < and > + backward/forward in playlist + HOME and END + next/previous playtree entry in the parent list + INS and DEL + next/previous alternative source (ASX playlist only) + p / SPACE + Pause movie (pressing again unpauses). + . + Step forward. Pressing once will pause movie, every + consecutive press will play one frame and then go into + pause mode again (any other key unpauses). + q / ESC + Stop playing and quit. + + and - + Adjust audio delay by +/- 0.1 seconds. + / and * + Decrease/increase volume. + 9 and 0 + Decrease/increase volume. + m + Mute sound. + f + Toggle fullscreen (also see -fs). + T + Toggle stay-on-top (also see -ontop). + w and e + Decrease/increase pan-and-scan range. + o + Toggle OSD states: none / seek / seek + timer / seek + + timer + total time. + d + Toggle frame dropping states: none / skip display / skip + decoding (see -framedrop and -hardframedrop). + v + Toggle subtitle visibility. + b / j + Cycle through the available subtitles. + F + Toggle displaying "forced subtitles". + a + Toggle subtitle aligment: top/middle/bottom. + z and x + Adjust subtitle delay by +/- 0.1 seconds. + r and t + Move subtitles up/down. + i + Set EDL mark. + +(The following keys are valid only when using a hardware accelerated +video output (xv, (x)vidix, (x)mga, etc), or the software equalizer +filter (-vf eq or -vf eq2). + + 1 and 2 + Adjust contrast. + 3 and 4 + Adjust brightness. + 5 and 6 + Adjust hue. + 7 and 8 + Adjust saturation. diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.c b/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.c new file mode 100644 index 0000000..0f7b76c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.c @@ -0,0 +1,644 @@ +//bme2picseq by ryuuou +//looks up the picture references in .bme files and outputa a sequence of pictures +//those pictures can be used as a base for a 30.00fps movie for IIDX AC + +//LOTS of code reuse from bme2ac + +#include "common.h" + +#define BMS_BPM_CUST 8 +#define BMS_BPM 3 +#define BMS_STOP 9 +#define BMS_MSIZE 2 +#define BMS_BGA 4 +#define BMS_LAYER 7 + +#define ONE_TYPE_BPM 4 +#define ONE_STOP 0xF +#define ONE_BGA 0x11 +#define ONE_LAYER 0x12 + +typedef struct +{ + int length; + byte* data; + float bpmchange[MAXWAVS]; + int bpmchangecount; + float* msize; + int mcount; + float bpm; + int stopcount; + float stops[MAXWAVS]; + + unsigned char picnames[MAXWAVS+1][64]; + int numpics; + byte *picdata[MAXWAVS+1]; + int piclen[MAXWAVS+1]; + int layer; +} bmsfile; + +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; + + void *prev; + void *next; +} event; + + +event *onechart; +bmsfile *bms; + +void add_event(event ev) +{ + event *temp, *ev_n; + + if(!onechart) + { + onechart = malloc(sizeof(event)); + memcpy(onechart, &ev, sizeof(event)); + onechart->prev = onechart->next = NULL; + return; + } + + temp = onechart; + + while(temp->next != NULL && temp->time <= ev.time) + { + temp = temp->next; + } + + ev_n = malloc(sizeof(event)); + memcpy(ev_n, &ev, sizeof(event)); + + if(temp->time <= ev.time) + { + if(temp->next) + ((event*)temp->next)->prev = ev_n; + + ev_n->next = temp->next; + temp->next = ev_n; + + ev_n->prev = temp; + + } + else + { + if(temp->prev) + ((event*)temp->prev)->next = ev_n; + else + onechart = ev_n; + + ev_n->next = temp; + ev_n->prev = temp->prev; + + temp->prev = ev_n; + } +} + + +void parsebms() +{ + int i,j,k,l; + char *data; + event bpmev; + int measure, channel; + byte measure_c[4]; + + measure_c[3] = '\n'; + + printf("parsing bms..."); + + data = bms->data; + + for(k = 0; k < bms->length - 5; k++) + { + if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] == ' ') + { + k += 5; + sscanf((const char*)(data+k), "%f", &(bms->bpm)); + printf("%.2fbpm...", bms->bpm); + + if(bms->bpm-(int)bms->bpm < 0.01 && !(bms->bpm > 655.35)) + { + bpmev.data1 = 1; + bpmev.data2 = (unsigned short int)(bms->bpm); + } + else + { + bpmev.data1 = 100; + bpmev.data2 = (unsigned short int)bms->bpm*100; + } + bpmev.time = 0; + bpmev.type = ONE_TYPE_BPM; + add_event(bpmev); + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] != ' ') + { + j = strtoi(data+k+4) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->bpmchange[j])); + bms->bpmchangecount++; + } + else if(data[k] == '#' && data[k+1] == 'S' && data[k+2] == 'T' && data[k+3] == 'O' && data[k+4] == 'P') + { + j = strtoi(data+k+5) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->stops[j])); + bms->stopcount++; + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'M' && data[k+3] == 'P') + { + l = 0; + j = strtoi(data+k+4); + k += 7; + while((data[k+l] != '\n') && (data[k+l] != '\r') && k+l < bms->length) + l++; + + memcpy(bms->picnames[j], data+k, l); + + bms->numpics++; + } + if(data[k] == '#' && data[k+6] == ':') + { + measure_c[0] = data[k+1]; + measure_c[1] = data[k+2]; + measure_c[2] = data[k+3]; + sscanf(measure_c, "%d", &measure); + + if(measure > bms->mcount) bms->mcount = measure; + } + } + + bms->msize = malloc(sizeof(float)*(bms->mcount+1)); + + for(j = 0; j <= bms->mcount; j++) + bms->msize[j] = 1.; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + sscanf(data+j+4, "%d", &channel); + if(channel == BMS_MSIZE) + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf((const char*)(data+j+7), "%f", &(bms->msize[measure])); + } + } + } +} + + +int convert_to_1_events() +{ + int i,j,k; + char measure_c[4]; + int measure,channel; + float mtime; + int notecount; + int denom, nume; + + byte ev_type; + float ev_time; + byte ev_data1; + int bms_ev; + int count; + event temp; + + unsigned short int ev_data2; + + char *data; + + measure_c[3] = '\0'; + + temp.next = temp.prev = NULL; + + printf("building image chain...\n"); + + data = bms->data; + count = 0; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf(data+j+4, "%d", &channel); + + ev_data1 = 0; + ev_data2 = 0; + ev_time = 0; + ev_type = 0; + switch(channel) + { + case BMS_BPM: + case BMS_BPM_CUST: + ev_type = ONE_TYPE_BPM; + break; + + case BMS_STOP: + ev_type = ONE_STOP; + break; + + case BMS_BGA: + ev_type = ONE_BGA; + break; + + case BMS_LAYER: + ev_type = ONE_LAYER; + break; + + default: + continue; + } + + mtime = 0; + for(k = 0; k < measure; k++) + mtime += bms->msize[k]; + + denom = 0; + for(k = j+7; (data[k] != '\n') && (data[k] != '\r') && (data[k] != '#') && (k<=bms->length); k+=2) + denom++; + + k = j + 7; + nume = 0; + + for(k = j+7; nume < denom; k+=2) + { + ev_time = mtime + ((float)nume/(float)denom)*bms->msize[measure]; + ev_time *= 4. * 60. * 1000./ bms->bpm; + nume++; + + bms_ev = strtoi(data+k); + + if(!bms_ev) + continue; + + if(channel == BMS_BPM_CUST) + { + if(bms->bpmchange[bms_ev-1] - (int)bms->bpmchange[bms_ev-1] < 0.01 && !(bms->bpmchange[bms_ev-1] > 655.35)) + { + ev_data1 = 1; + ev_data2 = (unsigned short int)(bms->bpmchange[bms_ev-1]); + } + else + { + ev_data1 = 100; + ev_data2 = (unsigned short int)bms->bpmchange[bms_ev-1]*100; + } + } + else if(channel == BMS_BPM) + { + ev_data1 = 1; + ev_data2 = (unsigned short)strtoi_h(data+k); + } + else if(channel == BMS_STOP) + { + ev_data2 = (unsigned short)strtoi(data+k) - 1; + } + else if(channel == BMS_BGA) + { + count++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + else if(channel == BMS_LAYER) + { + count++; + bms->layer++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + + temp.time = ev_time; + temp.type = ev_type; + temp.data1 = ev_data1; + temp.data2 = ev_data2; + + add_event(temp); + } + } + } + return count; +} + +void adjust_bpm() +{ + int i; + + float oldbpm = 0; + float newbpm = 0; + int stime = 0; + int tdiff = 0; + event *temp; + event help; + event *tadjust; + + temp = onechart; + + oldbpm = bms->bpm; + + do + { + if(temp->type == ONE_TYPE_BPM) + { + newbpm = temp->data2 / temp->data1; + stime = temp->time; + + if(oldbpm == newbpm) + continue; + + tadjust = temp; + + while(tadjust = tadjust->next) + { + tdiff = tadjust->time - stime; + tdiff = (int)roundf((float)tdiff * oldbpm / newbpm); + tadjust->time = stime + tdiff; + } + + oldbpm = newbpm; + } + } + while(temp = temp->next); +} + +void add_stop_events() +{ + int i; + + float bpm; + + float tdiff = 0; + event *temp; + event *helper; + event bpm_help; + + temp = onechart; + + bpm = bms->bpm; + + do + { + if(temp->type == ONE_STOP) + { + helper = onechart; + do + { + if(helper->type == ONE_TYPE_BPM) + { + bpm = (float)helper->data2 / (float)helper->data1; + } + } while((helper = helper->next) && (helper->time <= temp->time)); + + tdiff = bms->stops[temp->data2] / 192.; + tdiff = tdiff * 4. * 60. * 1000. / bpm; + + helper = temp->next; + + do + { + if(helper->time > temp->time) + helper->time += tdiff; + } + while(helper = helper->next); + } + } + while(temp = temp->next); +} + + + +int load_pics() +{ + int i, fail=0; + FILE *f; + + printf("loading picture files..."); + + strcpy(bms->picnames[MAXWAVS], "BLACK.bmp"); + bms->numpics++; + + for(i = 0; i <= MAXWAVS; i++) + { + if(!(bms->picnames[i][0])) continue; + f = fopen(bms->picnames[i], "rb"); + if(f == NULL) + { + if(!fail) + printf("failed to load pictures:\n"); + fail++; + printf("%s ", bms->picnames[i]); + continue; + } + + fseek(f, 0, SEEK_END); + bms->piclen[i] = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + bms->picdata[i] = malloc(bms->piclen[i]); + + fread(bms->picdata[i],bms->piclen[i], 1, f); + fclose(f); + bms->piclen[MAXWAVS] = bms->piclen[i]; + } + if(fail) + printf("\nout of %d pictures, %d were not found\n", bms->numpics, fail); + else + printf("all pictures loaded successfully\n"); + + return fail; +} + +void blitbmp(byte* dest, int index, int layer) +{ + int h,w; + int i, k; + int rsize; + byte rs,gs,bs; + byte *sline, *dline; + byte *rd,*gd,*bd; + int offsetw, offseth; + + byte *data; + + if(!bms->piclen[index]) + return; + + data = bms->picdata[index]; + h = *((int*)(data+22)); + w = *((int*)(data+18)); + rsize = w*3; + if(rsize%4) + rsize += 4-(rsize%4); + + data += *((int*)(data+10)); + + dest += *((int*)(dest+10)); + + offsetw = (256 - w) / 2; + offseth = 256 - h; + + for(i = 0; i < h; i++) + { + sline = data + i*rsize; + dline = dest + ((offseth+i)*256 + offsetw)*3; + + if(!layer) + { + memcpy(dline, sline, w*3); + } + else + { + for(k = 0; k < 3*w; k+=3) + { + rs = *(sline+k); + gs = *(sline+k+1); + bs = *(sline+k+2); + + rd = dline+k; + gd = dline+k+1; + bd = dline+k+2; + + if(rs != 0 && gs != 0 && bs != 0) + { + *rd = rs; + *gd = gs; + *bd = bs; + } + } + } + } + +} + +void write_seq() +{ + unsigned char filename[32]; + FILE *out; + event *temp; + int i,k,off; + float time; + int maxtime; + int index; + byte *buf; + byte *data; + + temp = onechart; + + buf = malloc(bms->piclen[MAXWAVS]); + + do + { + if(temp->type == ONE_BGA) + maxtime = temp->time + 40; + } + while(temp = temp->next); + + time = -6.*1000./30. - 0.005; + + index = MAXWAVS; + for(i = 0; time < maxtime; i++) + { + memcpy(buf, bms->picdata[MAXWAVS], bms->piclen[MAXWAVS]); + + temp = onechart; + do + { + if(temp->type == ONE_BGA) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + blitbmp(buf, index, 0); + + if(bms->layer) + { + temp = onechart; + do + { + if(temp->type == ONE_LAYER) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + if(index != MAXWAVS) + blitbmp(buf, index, 1); + } + + sprintf(filename, "BMEIMGSEQ_%05d.bmp", i); + out = fopen(filename, "wb"); + fwrite(buf, bms->piclen[MAXWAVS], 1, out); + fclose(out); + + time += 1000./30.; + } + +} + +int main(int argc, const char* argv[]) +{ + FILE *f; + + //printf("bme2picseq v0.1 by ryuuou\n\tProduces a 30fps series of pictures from bme files"); + + + if(argc < 2) + { + printf("USAGE: bme2picseq \n"); + + return 0; + } + + f = fopen(argv[1], "rb"); + + if(f == NULL) + { + printf("file not found: %s\n", argv[1]); + + //return 0; + } + + printf("processing %s...", argv[1]); + bms = malloc(sizeof(bmsfile)); + memset(bms, 0, sizeof(bmsfile)); + + fseek(f, 0, SEEK_END); + bms->length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + bms->data = malloc(bms->length); + fread(bms->data, bms->length, 1, f); + fclose(f); + + parsebms(); + + load_pics(); + if(!convert_to_1_events()) + { + printf("no video event, aborting\n"); + return 0; + } + adjust_bpm(); + add_stop_events(); + + write_seq(); + + printf("done.\n"); + //getchar(); + return 0; +} + diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.exe new file mode 100644 index 0000000..15429cc Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/bme2picseq.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/common.h b/iidx/bme2ac workspace djt custom songs/videos/mplayer/common.h new file mode 100644 index 0000000..0f87b20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/common.h @@ -0,0 +1,77 @@ +//common.h + + +#include +#include +#include +#include + + +#define MAXWAVS (36*36-1) //wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define CHARTCOUNT 7 //beginner + (normal,hyper,another times two), what about kaiden in gold cs? + +#define PNEWLINE printf("\n") //used too often + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) //rounds (a) up to the next mod 8 int + +typedef unsigned char byte; + +//chartorder inside .1 file: h7, n7, a7, b, h14, n14, a14 +const char *BMENAMES[] = { "h7.bme", "n7.bme", "a7.bme", "b.bme", "h14.bme", "n14.bme", "a14.bme" }; //we use constant filenames here for ease of coding/use +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int style; //produce files for this iidx version; 0 == Troopers, 1 == GOLD, 2 == DistorteD and Happy Sky +float factor; //us this factor to strech .1 event time indices (based on version); 1 for Troopers, FPS/1000 for everything else + + +//helper functions for BME numbering weirdness; +//converts a number to a 01-ZZ style string and places that in the first two bytes of str +void itostr(char *str, int i) +{ + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; +} + +//the above in inverse; convert a BME-style numbering to int. +//stupidly tries to convert the first two bytes of *str +int strtoi(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 36*a + b; + + return i; +} + + +//does the same as the above but converts from hex instead +int strtoi_h(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 16*a + b; + + return i; +} diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aalib.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aalib.html new file mode 100644 index 0000000..216168c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aalib.html @@ -0,0 +1,65 @@ +8.11. AAlib – text mode displaying

8.11. AAlib – text mode displaying

+AAlib is a library for displaying graphics in text mode, using powerful +ASCII renderer. There are lots of programs already +supporting it, like Doom, Quake, etc. MPlayer +contains a very usable driver for it. If ./configure +detects aalib installed, the aalib libvo driver will be built. +

+You can use some keys in the AA Window to change rendering options: +

KeyAction
1 + decrease contrast +
2 + increase contrast +
3 + decrease brightness +
4 + increase brightness +
5 + switch fast rendering on/off +
6 + set dithering mode (none, error distribution, Floyd Steinberg) +
7 + invert image +
8 + toggles between aa and MPlayer control +

The following command line options can be used:

-aaosdcolor=V

+ change OSD color +

-aasubcolor=V

+ Change subtitle color +

+ where V can be: + 0 (normal), + 1 (dark), + 2 (bold), + 3 (bold font), + 4 (reverse), + 5 (special). +

AAlib itself provides a large sum of options. Here are some +important:

-aadriver

+ Set recommended aa driver (X11, curses, Linux). +

-aaextended

+ Use all 256 characters. +

-aaeight

+ Use eight bit ASCII. +

-aahelp

+ Prints out all aalib options. +

Note

+The rendering is very CPU intensive, especially when using AA-on-X +(using aalib on X), and it's least CPU intensive on standard, +non-framebuffer console. Use SVGATextMode to set up a big textmode, +then enjoy! (secondary head Hercules cards rock :)) (but IMHO you +can use -vf 1bpp option to get graphics on hgafb:) +

+Use the -framedrop option if your computer isn't fast +enough to render all frames! +

+Playing on terminal you'll get better speed and quality using the Linux +driver, not curses (-aadriver linux). But therefore you +need write access on +/dev/vcsa<terminal>! +That isn't autodetected by aalib, but vo_aa tries to find the best mode. +See http://aa-project.sf.net/tune for further +tuning issues. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/advaudio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/advaudio.html new file mode 100644 index 0000000..1358e09 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/advaudio.html @@ -0,0 +1,390 @@ +3.6. Advanced audio

3.6. Advanced audio

3.6.1. Surround/Multichannel playback

3.6.1.1. DVDs

+Most DVDs and many other files include surround sound. +MPlayer supports surround playback but does not +enable it by default because stereo equipment is by far more common. To play a +file that has more than two channels of audio use -channels. +For example, to play a DVD with 5.1 audio: +

mplayer dvd://1 -channels 6

+Note that despite the name "5.1" there are actually six discrete channels. +If you have surround sound equipment it is safe to put the +channels option in your MPlayer +configuration file ~/.mplayer/config. For example, to make +quadraphonic playback the default, add this line: +

channels=4

+MPlayer will then output audio in four channels when +all four channels are available. +

3.6.1.2. Playing stereo files to four speakers

+MPlayer does not duplicate any channels by default, +and neither do most audio drivers. If you want to do that manually: +

mplayer filename -af channels=2:2:0:1:0:0

+See the section on +channel copying for an +explanation. +

3.6.1.3. AC-3/DTS Passthrough

+DVDs usually have surround audio encoded in AC-3 (Dolby Digital) or DTS +(Digital Theater System) format. Some modern audio equipment is capable of +decoding these formats internally. MPlayer can be +configured to relay the audio data without decoding it. This will only work if +you have a S/PDIF (Sony/Philips Digital Interface) jack in your sound card. +

+If your audio equipment can decode both AC-3 and DTS, you can safely enable +passthrough for both formats. Otherwise, enable passthrough for only the format +your equipment supports. +

To enable passthrough on the command line:

  • + For AC-3 only, use -ac hwac3 +

  • + For DTS only, use -ac hwdts +

  • + For both AC-3 and DTS, use -afm hwac3 +

To enable passthrough in the MPlayer + configuration file:

  • + For AC-3 only, use ac=hwac3, +

  • + For DTS only, use ac=hwdts, +

  • + For both AC-3 and DTS, use afm=hwac3 +

+Note that there is a comma (",") at the end of +ac=hwac3, and ac=hwdts,. This will make +MPlayer fall back on the codecs it normally uses when +playing a file that does not have AC-3 or DTS audio. +afm=hwac3 does not need a comma; +MPlayer will fall back anyway when an audio family +is specified. +

3.6.1.4. MPEG audio Passthrough

+Digital TV transmissions (such as DVB and ATSC) and some DVDs usually have +MPEG audio streams (in particular MP2). +Some MPEG hardware decoders such as full-featured DVB cards and DXR2 +adapters can natively decode this format. +MPlayer can be configured to relay the audio data +without decoding it. +

+To use this codec: +

 mplayer -ac hwmpa 

+

3.6.1.5. Matrix-encoded audio

+***TODO*** +

+This section has yet to be written and cannot be completed until somebody +provides sample files for us to test. If you have any matrix-encoded audio +files, know where to find some, or have any information that could be helpful, +please send a message to the +MPlayer-DOCS +mailing list. Put "[matrix-encoded audio]" in the subject line. +

+If no files or further information are forthcoming this section will be dropped. +

+Good links: +

+

3.6.1.6. Surround emulation in headphones

+MPlayer includes an HRTF (Head Related Transfer +Function) filter based on an +MIT project +wherein measurements were taken from microphones mounted on a dummy human head. +

+Although it is not possible to exactly imitate a surround system, +MPlayer's HRTF filter does provide more spatially +immersive audio in 2-channel headphones. Regular downmixing simply combines all +the channels into two; besides combining the channels, hrtf +generates subtle echoes, increases the stereo separation slightly, and alters +the volume of some frequencies. Whether HRTF sounds better may be dependent on +the source audio and a matter of personal taste, but it is definitely worth +trying out. +

+To play a DVD with HRTF: +

mplayer dvd://1 -channels 6 -af hrtf

+

+hrtf only works well with 5 or 6 channels. Also, +hrtf requires 48 kHz audio. DVD audio is already 48 kHz, but if +you have a file with a different sampling rate that you want to play using +hrtf you must resample it: +

+mplayer filename -channels 6 -af resample=48000,hrtf
+

+

3.6.1.7. Troubleshooting

+If you do not hear any sound out of your surround channels, check your mixer +settings with a mixer program such as alsamixer; +audio outputs are often muted and set to zero volume by default. +

3.6.2. Channel manipulation

3.6.2.1. General information

+Unfortunately, there is no standard for how channels are ordered. The orders +listed below are those of AC-3 and are fairly typical; try them and see if your +source matches. Channels are numbered starting with 0. + +

mono

  1. center

+ +

stereo

  1. left

  2. right

+ +

quadraphonic

  1. left front

  2. right front

  3. left rear

  4. right rear

+ +

surround 4.0

  1. left front

  2. right front

  3. center rear

  4. center front

+ +

surround 5.0

  1. left front

  2. right front

  3. left rear

  4. right rear

  5. center front

+ +

surround 5.1

  1. left front

  2. right front

  3. left rear

  4. right rear

  5. center front

  6. subwoofer

+

+The -channels option is used to request the number of +channels from the audio decoder. Some audio codecs use the number of specified +channels to decide if downmixing the source is necessary. Note that this does +not always affect the number of output channels. For example, using +-channels 4 to play a stereo MP3 file will still result in +2-channel output since the MP3 codec will not produce the extra channels. +

+The channels audio filter can be used to create or remove +channels and is useful for controlling the number of channels sent to the sound +card. See the following sections for more information on channel manipulation. +

3.6.2.2. Playing mono with two speakers

+Mono sounds a lot better when played through two speakers - especially when +using headphones. Audio files that truly have one channel are automatically +played through two speakers; unfortunately, most files with mono sound are +actually encoded as stereo with one channel silent. The easiest and most +foolproof way to make both speakers output the same audio is the +extrastereo filter: +

mplayer filename -af extrastereo=0

+

+This averages both channels, resulting in both channels being half as loud as +the original. The next sections have examples of other ways to do this without a +volume decrease, but they are more complex and require different options +depending on which channel to keep. If you really need to maintain the volume, +it may be easier to experiment with the volume filter and find +the right value. For example: +

+mplayer filename -af extrastereo=0,volume=5
+

+

3.6.2.3. Channel copying/moving

+The channels filter can move any or all channels. +Setting up all the suboptions for the channels +filter can be complicated and takes a little care. + +

  1. + Decide how many output channels you need. This is the first suboption. +

  2. + Count how many channel moves you will do. This is the second suboption. Each + channel can be moved to several different channels at the same time, but keep + in mind that when a channel is moved (even if to only one destination) the + source channel will be empty unless another channel is moved into it. To copy + a channel, keeping the source the same, simply move the channel into both the + destination and the source. For example: +

    +channel 2 --> channel 3
    +channel 2 --> channel 2

    +

  3. + Write out the channel copies as pairs of suboptions. Note that the first + channel is 0, the second is 1, etc. The order of these suboptions does not + matter as long as they are properly grouped into + source:destination pairs. +

+

Example: one channel in two speakers

+Here is an example of another way to play one channel in both speakers. Suppose +for this example that the left channel should be played and the right channel +discarded. Following the steps above: +

  1. + In order to provide an output channel for each of the two speakers, the first + suboption must be "2". +

  2. + The left channel needs to be moved to the right channel, and also must be + moved to itself so it won't be empty. This is a total of two moves, making + the second suboption "2" as well. +

  3. + To move the left channel (channel 0) into the right channel (channel 1), the + suboption pair is "0:1", "0:0" moves the left channel onto itself. +

+Putting that all together gives: +

+mplayer filename -af channels=2:2:0:1:0:0
+

+

+The advantage this example has over extrastereo is that the +volume of each output channel is the same as the input channel. The disadvantage +is that the suboptions must be changed to "2:2:1:0:1:1" when the desired audio +is in the right channel. Also, it is more difficult to remember and type. +

Example: left channel in two speakers shortcut

+There is actually a much easier way to use the channels filter +for playing the left channel in both speakers: +

mplayer filename -af channels=1

+The second channel is discarded and, with no further suboptions, the single +remaining channel is left alone. Sound card drivers automatically play +single-channel audio in both speakers. This only works when the desired channel +is on the left. +

Example: duplicate front channels to the rear

+Another common operation is to duplicate the front channels and play them back +on the rear speakers of a quadraphonic setup. +

  1. + There should be four output channels. The first suboption is "4". +

  2. + Each of the two front channels needs to be moved to the corresponding rear + channel and also to itself. This is four moves, so the second suboption is "4". +

  3. + The left front (channel 0) needs to moved to the left rear (channel 2): + "0:2". The left front also needs to be moved to itself: "0:0". The right + front (channel 1) is moved to the right rear (channel 3): "1:3", and also to + itself: "1:1". +

+Combine all the suboptions to get: +

+mplayer filename -af channels=4:4:0:2:0:0:1:3:1:1
+

+

3.6.2.4. Channel mixing

+The pan filter can mix channels in user-specified proportions. +This allows for everything the channels filter can do and +more. Unfortunately, the suboptions are much more complicated. +

  1. + Decide how many channels to work with. You may need to specify this with + -channels and/or -af channels. + Later examples will show when to use which. +

  2. + Decide how many channels to feed into pan (further decoded + channels are discarded). This is the first suboption, and it also controls how + many channels to employ for output. +

  3. + The remaining suboptions specify how much of each channel gets mixed into each + other channel. This is the complicated part. To break the task down, split the + suboptions into several sets, one set for each output channel. Each suboption + within a set corresponds to an input channel. The number you specify will be + the percentage of the input channel that gets mixed into the output channel. +

    + pan accepts values from 0 to 512, yielding 0% to 51200% of + the original volume. Be careful when using values greater than 1. Not only + can this give you very high volume, but if you exceed the sample range of + your sound card you may hear painful pops and clicks. If you want you can + follow pan with ,volume to enable clipping, + but it is best to keep the values of pan low enough that + clipping is not necessary. +

+

Example: one channel in two speakers

+Here is yet another example for playing the left channel in two speakers. Follow +the steps above: +

  1. + pan should output two channels, so the first + suboption is "2". +

  2. + Since we have two input channels, there will be two sets of suboptions. + Since there are also two output channels, + there will be two suboptions per set. + The left channel from the file should go with full volume to + the new left and the right channels. + Thus the first set of suboptions is "1:1". + The right channel should be discarded, so the second would be "0:0". + Any 0 values at the end can be left out, but for ease of + understanding we will keep them. +

+Putting those options together gives: +

mplayer filename -af pan=2:1:1:0:0

+If the right channel is desired instead of the left, the suboptions to +pan will be "2:0:0:1:1". +

Example: left channel in two speakers shortcut

+As with channels, there is a shortcut that only works with the +left channel: +

mplayer filename -af pan=1:1

+Since pan has only one channel of input (the other channel is +discarded), there is only one set with one suboption, which specifies that the +only channel gets 100% of itself. +

Example: downmixing 6-channel PCM

+MPlayer's decoder for 6-channel PCM is not capable of +downmixing. Here is a way to downmix PCM using pan: +

  1. + The number of output channels is 2, so the first suboption is "2". +

  2. + With six input channels there will be six sets of options. Fortunately, + since we only care about the output of the first two channels, we only need to + make two sets; the remaining four sets can be omitted. Beware that not all + multichannel audio files have the same channel order! This example + demonstrates downmixing a file with the same channels as AC-3 5.1: +

    +0 - front left
    +1 - front right
    +2 - rear left
    +3 - rear right
    +4 - center front
    +5 - subwoofer

    + The first set of suboptions lists the percentages of the original volume, in + order, which each output channel should receive from the + front left channel: "1:0". + The front right channel should go into the right output: "0:1". + The same for the rear channels: "1:0" and "0:1". + The center channel goes into both output channels with half volume: + "0.5:0.5", and the subwoofer goes into both with full volume: "1:1". +

+Put all that together, for: +

+mplayer 6-channel.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
+

+The percentages listed above are only a rough example. Feel free to tweak them. +

Example: Playing 5.1 audio on big speakers without a subwoofer

+If you have a huge pair of front speakers you may not want to waste any money on +buying a subwoofer for a complete 5.1 sound system. If you use +-channels 5 to request that liba52 decode 5.1 audio in 5.0, +the subwoofer channel is simply discarded. If you want to distribute the +subwoofer channel yourself you need to downmix manually with +pan: +

  1. + Since pan needs to examine all six channels, specify + -channels 6 so liba52 decodes them all. +

  2. + pan outputs to only five channels, the first suboption is 5. +

  3. + Six input channels and five output channels means six sets of five suboptions. +

    • + The left front channel only replicates onto itself: + "1:0:0:0:0" +

    • + Same for the right front channel: + "0:1:0:0:0" +

    • + Same for the left rear channel: + "0:0:1:0:0" +

    • + And also the same for the right rear channel: + "0:0:0:1:0" +

    • + Center front, too: + "0:0:0:0:1" +

    • + And now we have to decide what to do with the subwoofer, + e.g. half into front right and front left: + "0.5:0.5:0:0:0" +

    +

+Combine all those options to get: +

+mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
+

+

3.6.3. Software Volume adjustment

+Some audio tracks are too quiet to be heard comfortably without amplification. +This becomes a problem when your audio equipment cannot amplify the signal for +you. The -softvol option directs +MPlayer to use an internal mixer. You can then use +the volume adjustment keys (by default 9 and +0) to reach much higher volume levels. Note that this does not +bypass your sound card's mixer; MPlayer only +amplifies the signal before sending it to your sound card. +The following example is a good start: +

+mplayer quiet-file -softvol -softvol-max 300
+

+The -softvol-max option specifies the maximum allowable output +volume as a percentage of the +original volume. For example, -softvol-max 200 would allow the +volume to be adjusted up to twice its original level. +It is safe to specify a large value with +-softvol-max; the higher volume will not be used until you +use the volume adjustment keys. The only disadvantage of a large value is that, +since MPlayer adjusts volume by a percentage of the +maximum, you will not have as precise control when using the volume adjustment +keys. Use a lower value with -softvol-max and/or specify +-volstep 1 if you need higher precision. +

+The -softvol option works by controlling the +volume audio filter. If you want to play a file at a certain +volume from the beginning you can specify volume manually: +

mplayer quiet-file -af volume=10

+This will play the file with a ten decibel gain. Be careful when using the +volume filter - you could easily hurt your ears if you use +too high a value. Start low and work your way up gradually until you get a feel +for how much adjustment is required. Also, if you specify excessively high +values, volume may need to clip the signal to avoid sending +your sound card data that is outside the allowable range; this will result in +distorted audio. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aspect.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aspect.html new file mode 100644 index 0000000..7b749d3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/aspect.html @@ -0,0 +1,27 @@ +13.10. Preserving aspect ratio

13.10. Preserving aspect ratio

+DVDs and SVCDs (i.e. MPEG-1/2) files contain an aspect ratio value, which +describes how the player should scale the video stream, so humans will not +have egg heads (ex.: 480x480 + 4:3 = 640x480). However when encoding to AVI +(DivX) files, you have to be aware that AVI headers do not store this value. +Rescaling the movie is disgusting and time consuming, there has to be a better +way! +

There is

+MPEG-4 has a unique feature: the video stream can contain its needed aspect +ratio. Yes, just like MPEG-1/2 (DVD, SVCD) and H.263 files. Regretfully, there +are few video players apart from MPlayer that +support this MPEG-4 attribute. +

+This feature can be used only with +libavcodec's +mpeg4 codec. Keep in mind: although +MPlayer will correctly play the created file, +other players may use the wrong aspect ratio. +

+You seriously should crop the black bands over and below the movie image. +See the man page for the usage of the cropdetect and +crop filters. +

+Usage +

mencoder sample-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
+    -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o output.avi

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-codecs.html new file mode 100644 index 0000000..c8783e2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-codecs.html @@ -0,0 +1,120 @@ +7.2. Audio codecs

7.2. Audio codecs

The most important audio codecs above all:

  • + MPEG layer 1/2/3 (MP1/2/3) audio (native + code, with MMX/SSE/3DNow! optimization) +

  • + Windows Media Audio 7 and 8 (AKA WMAv1 and WMAv2) + (native code, with + libavcodec) +

  • + Windows Media Audio 9 (WMAv3) (using DMO DLL) +

  • + AC-3 Dolby audio (native code, with + MMX/SSE/3DNow! optimization) +

  • + AC-3 passing through sound card hardware +

  • + AAC +

  • + Ogg Vorbis audio codec (native library) +

  • + RealAudio: DNET (low bitrate AC-3), Cook, Sipro and ATRAC3 +

  • + QuickTime: Qualcomm and QDesign audio codecs +

  • + VIVO audio (g723, Vivo Siren) +

  • + Voxware audio (using DirectShow DLL) +

  • + alaw and ulaw, various gsm, adpcm and pcm formats and other simple old + audio codecs +

  • + Adaptive Multi-Rate (AMR) speech codecs +

7.2.1. Software AC-3 decoding

+This is the default decoder used for files with AC-3 audio. +

+The AC-3 decoder can create audio output mixes for 2, 4, or 6 speakers. +When configured for 6 speakers, this decoder provides separate output of +all the AC-3 channels to the sound driver, allowing for full "surround +sound" experience without the external AC-3 decoder required to use the +hwac3 codec. +

+Use the -channels option to select the number of output +channels. Use -channels 2 for a stereo downmix. For a 4 +channel downmix (Left Front, Right Front, Left Surround and Right Surround +outputs), use -channels 4. In this case, any center +channel will be mixed equally to the front channels. +-channels 6 will output all the AC-3 channels as they are +encoded - in the order Left, Right, Left Surround, Right Surround, Center and +LFE. +

+The default number of output channels is 2. +

+To use more than 2 output channels, you will need to use OSS, and have a +sound card that supports the appropriate number of output channels via the +SNDCTL_DSP_CHANNELS ioctl. An example of a suitable driver is emu10k1 +(used by Soundblaster Live! cards) from August 2001 or newer (ALSA CVS is +also supposed to work). +

7.2.2. Hardware AC-3 decoding

+You need an AC-3 capable sound card, with digital out (S/PDIF). The card's +driver must properly support the AFMT_AC3 format (C-Media does). Connect +your AC-3 decoder to the S/PDIF output, and use the -ac +hwac3 option. It is experimental but known to work with C-Media +cards and Soundblaster Live! + ALSA (but not OSS) drivers and DXR3/Hollywood+ +MPEG decoder cards. +

7.2.3. libmad support

+libmad +is a multiplatform, integer (internally 24bit PCM) only +MPEG audio decoding library. It does not handle broken files well, and it +sometimes has problems with seeking, but it may perform better on FPU-less +(such as ARM) +platform than mp3lib. +

+If you have a proper installation of +libmad, +./configure will notice and support for MPEG audio +decoding via libmad will be built +automatically. +

7.2.4. Hardware MPEG audio codec

+This codec (selected by -ac hwmpa) passes through MPEG audio +packets to hardware decoders, such as the ones found in full-featured DVB cards +and DXR2 adapters. +Don't use it in combination with any other audio output device +(such as OSS and ALSA) that isn't able to decode it (you will hear +only white noise). +

7.2.5. AAC codec

+AAC (Advanced Audio Coding) is an audio codec sometimes found in MOV and MP4 +files. An open source decoder called FAAD is available from +http://www.audiocoding.com. +MPlayer includes a CVS snapshot of libfaad 2.1 +beta, so you do not need to get it separately. +

+If you use gcc 3.2 which fails to compile our internal FAAD or want to use +the external library for some other reason, download the library from the +download page +and pass --enable-faad-external +to ./configure. +You do not need all of faad2 to decode AAC files, libfaad is enough. Build +it like this: +

+cd faad2/
+sh bootstrap
+./configure
+cd libfaad
+make
+make install
+

+Binaries are not available from audiocoding.com, but you can (apt-)get Debian +packages from +Christian Marillat's homepage, +Mandrake/Mandriva RPMs from the P.L.F +and Fedora RPMs from Livna. +

7.2.6. AMR codecs

+Adaptive Multi-Rate speech codec is used in third generation (3G) mobile +phones. +Reference implementation is available from +The 3rd Generation Partnership Project +(free for private use). +To enable support, download and install support libraries for +AMR-NB and AMR-WB +following the instructions on that page. Recompile MPlayer afterwards. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-formats.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-formats.html new file mode 100644 index 0000000..c66a205 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio-formats.html @@ -0,0 +1,38 @@ +6.2. Audio formats

6.2. Audio formats

+MPlayer is a movie +and not a media player, although it can play +some audio file formats (they are listed in the sections below). This is not +a recommended usage of MPlayer, you better use XMMS. +

6.2.1. MP3 files

+You may have problems playing certain MP3 files that +MPlayer will misdetect as MPEGs and play +incorrectly or not at all. This cannot be fixed without dropping support +for certain broken MPEG files and thus will remain like this for the +foreseeable future. The -demuxer flag described in the +man page may help you in these cases. +

6.2.2. OGG/OGM files (Vorbis)

+Requires properly installed +libogg and +libvorbis. +

6.2.3. CD audio

+MPlayer can use cdparanoia +to play CDDA (Audio CD). The scope of this section does not contain enumerating +cdparanoia's features. +

+See the man page's -cdda option which can be used to pass +options to cdparanoia. +

6.2.4. XMMS

+MPlayer can use XMMS input +plugins to play many file formats. There are plugins for SNES game tunes, SID +tunes (from Commodore 64), many Amiga formats, .xm, .it, VQF, musepack, Bonk, +shorten and many others. You can find them at the +XMMS input plugin page. +

+For this feature you need to have XMMS and compile +MPlayer with +./configure --enable-xmms. +If that does not work, you might need to set the XMMS +plugin and library path explicitly by way of the +--with-xmmsplugindir and --with-xmmslibdir +options. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio.html new file mode 100644 index 0000000..d911d49 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/audio.html @@ -0,0 +1 @@ +Chapter 9. Audio output devices

Chapter 9. Audio output devices

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bsd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bsd.html new file mode 100644 index 0000000..01c51a0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bsd.html @@ -0,0 +1,31 @@ +12.2. *BSD

12.2. *BSD

+MPlayer runs on all known BSD flavors. +There are ports/pkgsrc/fink/etc versions of MPlayer +available that are probably easier to use than our raw sources. +

+To build MPlayer you will need GNU make +(gmake - native BSD make will not work) and a recent version of binutils. +

+If MPlayer complains about not finding +/dev/cdrom or /dev/dvd, +create an appropriate symbolic link: +

ln -s /dev/your_cdrom_device /dev/cdrom

+

+To use Win32 DLLs with MPlayer you will need to +re-compile the kernel with "option USER_LDT" +(unless you run FreeBSD-CURRENT, +where this is the default). +

12.2.1. FreeBSD

+If your CPU has SSE, recompile your kernel with +"options CPU_ENABLE_SSE" (FreeBSD-STABLE or kernel +patches required). +

12.2.2. OpenBSD

+Due to limitations in different versions of gas (relocation vs MMX), you +will need to compile in two steps: First make sure that the non-native as +is first in your $PATH and do a gmake -k, then +make sure that the native version is used and do gmake. +

+As of OpenBSD 3.4 the hack above is no longer needed. +

12.2.3. Darwin

+See the Mac OS section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports.html new file mode 100644 index 0000000..0755ee6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports.html @@ -0,0 +1,10 @@ +Appendix A. How to report bugs

Appendix A. How to report bugs

+Good bug reports are a very valuable contribution to the development of any +software project. But just like writing good software, good problem reports +involve some work. Please realize that most developers are extremely busy and +receive obscene amounts of email. So while your feedback is crucial in improving +MPlayer and very much appreciated, please understand +that you have to provide all of the information +we request and follow the instructions in this document closely. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_advusers.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_advusers.html new file mode 100644 index 0000000..b2911ce --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_advusers.html @@ -0,0 +1,15 @@ +A.7. I know what I am doing...

A.7. I know what I am doing...

+If you created a proper bug report following the steps above and you are +confident it is a bug in MPlayer, not a compiler +problem or broken file, you have already read the documentation and you could +not find a solution, your sound drivers are OK, then you might want to +subscribe to the MPlayer-advusers list and send your bug report there to get +a better and faster answer. +

+Please be advised that if you post newbie questions or questions answered in the +manual there, you will be ignored or flamed instead of getting an appropriate +answer. So do not flame us and subscribe to -advusers only if you really know +what you are doing and feel like being an advanced +MPlayer user or developer. If you meet these +criteria it should not be difficult to find out how to subscribe... +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_fix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_fix.html new file mode 100644 index 0000000..cb098b3 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_fix.html @@ -0,0 +1,9 @@ +A.2. How to fix bugs

A.2. How to fix bugs

+If you feel have the necessary skills you are invited to have a go at fixing the +bug yourself. Or maybe you already did that? Please read +this short document to find out how +to get your code included in MPlayer. The people on +the +MPlayer-dev-eng +mailing list will assist you if you have questions. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_regression_test.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_regression_test.html new file mode 100644 index 0000000..414f32f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_regression_test.html @@ -0,0 +1,64 @@ +A.3. How to do regression testing using Subversion

A.3. How to do regression testing using Subversion

+A problem that can happen sometimes is 'it used to work before, now it +doesn't anymore...'. +Here is a step by step procedure to try to pinpoint when the problem +occurred. This is not for casual users. +

+First, you'd need to fetch MPlayer's source tree from Subversion. +Instructions can be found in the +Subversion section of the download page. +

+You will have now in the mplayer/ directory an image of the Subversion tree, on +the client side. +Now update this image to the date you want: +

+cd mplayer/
+svn update -r {"2004-08-23"}
+

+The date format is YYYY-MM-DD HH:MM:SS. +Using this date format ensure that you will be able to extract patches +according to the date at which they were committed, as in the +MPlayer-cvslog archive. +

+Now proceed as for a normal update: +

+./configure
+make
+

+

+If any non-programmer reads this, the fastest method to get at the point +where the problem occurred is to use a binary search — that is, +search the date of the breakage by repeatedly dividing the search +interval in half. +For example, if the problem occurred in 2003, start at mid-year, then ask +"Is the problem already here?". +If yes, go back to the first of April; if not, go to the first of October, +and so on. +

+If you have lot of free hard disk space (a full compile currently takes +100 MB, and around 300-350 MB if debugging symbols are enabled), copy the +oldest known working version before updating it; this will save time if +you need to go back. +(It is usually necessary to run 'make distclean' before recompiling an +earlier version, so if you do not make a backup copy of your original +source tree, you will have to recompile everything in it when you come +back to the present.) +

+When you have found the day where the problem happened, continue the search +using the mplayer-cvslog archive (sorted by date) and a more precise svn +update including hour, minute and second: +

+svn update -r {"2004-08-23 15:17:25"}
+

+This will allow you to easily find the exact patch that did it. +

+If you find the patch that is the cause of the problem, you have almost won; +report about it to the +MPlayer Bugzilla or +subscribe to +MPlayer-users +and post it there. +There is a chance that the author will jump in to suggest a fix. +You may also look hard at the patch until it is coerced to reveal where +the bug is :-). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_report.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_report.html new file mode 100644 index 0000000..f915581 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_report.html @@ -0,0 +1,40 @@ +A.4. How to report bugs

A.4. How to report bugs

+First of all please try the latest Subversion version of +MPlayer +as your bug might already be fixed there. Development moves extremely fast, +most problems in official releases are reported within days or even hours, +so please use only Subversion to report bugs. +This includes binary packages of MPlayer. +Subversion instructions can be found at the bottom of +this page or in +the README. If this did not help please refer to the list of +known bugs and the rest of the documentation. +If your problem is not known or not solvable by our instructions, +then please report the bug. +

+Please do not send bug reports privately to individual developers. This is +community work and thus there might be several people interested in it. +Sometimes other users already experienced your troubles and know how to +circumvent a problem even if it is a bug in MPlayer +code. +

+Please describe your problem in as much detail as possible. Do a little +detective work to narrow down the circumstances under which the problem occurs. +Does the bug only show up in certain situations? Is it specific to certain +files or file types? Does it occur with only one codec or is it codec +independent? Can you reproduce it with all output drivers? The more information +you provide the better are our chances at fixing your problem. Please do not +forget to also include the valuable information requested below, we will be +unable to properly diagnose your problem otherwise. +

+An excellent and well written guide to asking questions in public forums is +How To Ask Questions The Smart Way +by Eric S. Raymond. +There is another called +How to Report Bugs Effectively +by Simon Tatham. +If you follow these guidelines you should be able to get help. But please +understand that we all follow the mailing lists voluntarily in our free time. We +are very busy and cannot guarantee that you will get a solution for your problem +or even an answer. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_security.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_security.html new file mode 100644 index 0000000..b11cd09 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_security.html @@ -0,0 +1,11 @@ +A.1. Report security releated bugs

A.1. Report security releated bugs

+In case you have found an exploitable bug and you would like to do the +right thing and let us fix it before you disclose it, we would be happy +to get your security advisory at +security@mplayerhq.hu. +Please add [SECURITY] or [ADVISORY] in the subject. +Be sure that your report contains complete and detailed analysis of the bug. +Sending a fix is highly appreciated. +Please don't delay your report to write proof-of-concept exploit, you can +send that one with another mail. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_what.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_what.html new file mode 100644 index 0000000..98f5c20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_what.html @@ -0,0 +1,130 @@ +A.6. What to report

A.6. What to report

+You may need to include log, configuration or sample files in your bug report. +If some of them are quite big then it is better to upload them to our +FTP server in a +compressed format (gzip and bzip2 preferred) and include only the path and file +name in your bug report. Our mailing lists have a message size limit of 80k, if +you have something bigger you have to compress or upload it. +

A.6.1. System Information

+

  • + Your Linux distribution or operating system and version e.g.: +

    • Red Hat 7.1

    • Slackware 7.0 + devel packs from 7.1 ...

    +

  • + kernel version: +

    uname -a

    +

  • + libc version: +

    ls -l /lib/libc[.-]*

    +

  • + gcc and ld versions: +

    +gcc -v
    +ld -v

    +

  • + binutils version: +

    as --version

    +

  • + If you have problems with fullscreen mode: +

    • Window manager type and version

    +

  • + If you have problems with XVIDIX: +

    • + X colour depth: +

      xdpyinfo | grep "depth of root"

      +

    +

  • + If only the GUI is buggy: +

    • GTK version

    • GLIB version

    • GUI situation in which the bug occurs

    +

+

A.6.2. Hardware and drivers

+

  • + CPU info (this works on Linux only): +

    cat /proc/cpuinfo

    +

  • + Video card manufacturer and model, e.g.: +

    • ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM

    • Matrox G400 DH 32MB SGRAM

    +

  • + Video driver type & version, e.g.: +

    • X built-in driver

    • nVidia 0.9.623

    • Utah-GLX CVS 2001-02-17

    • DRI from X 4.0.3

    +

  • + Sound card type & driver, e.g.: +

    • Creative SBLive! Gold with OSS driver from oss.creative.com

    • Creative SB16 with kernel OSS drivers

    • GUS PnP with ALSA OSS emulation

    +

  • + If in doubt include lspci -vv output on Linux systems. +

+

A.6.3. Configure problems

+If you get errors while running ./configure, or autodetection +of something fails, read configure.log. You may find the +answer there, for example multiple versions of the same library mixed on your +system, or you forgot to install the development package (those with the -dev +suffix). If you think there is a bug, include configure.log +in your bug report. +

A.6.4. Compilation problems

+Please include these files: +

  • config.h

  • config.mak

+

A.6.5. Playback problems

+Please include the output of MPlayer at verbosity +level 1, but remember to +not truncate the output when +you paste it into your mail. The developers need all of the messages to properly +diagnose a problem. You can direct the output into a file like this: +

+mplayer -v options filename > mplayer.log 2>&1
+

+

+If your problem is specific to one or more files, +then please upload the offender(s) to: +ftp://upload.mplayerhq.hu/MPlayer/incoming/ +

+Also upload a small text file having the same base name as your file with a .txt +extension. Describe the problem you are having with the particular file there +and include your email address as well as the output of +MPlayer at verbosity level 1. +Usually the first 1-5 MB of a file are enough to reproduce +the problem, but to be sure we ask you to: +

+dd if=yourfile of=smallfile bs=1024k count=5
+

+It will take the first five megabytes of +'your-file' and write it to +'small-file'. Then try again on +this small file and if the bug still shows up your sample is sufficient for us. +Please do not ever send such files via mail! +Upload it, and send only the path/filename of the file on the FTP-server. If the +file is accessible on the net, then sending the +exact URL is sufficient. +

A.6.6. Crashes

+You have to run MPlayer inside gdb +and send us the complete output or if you have a core dump +of the crash you can extract useful information from the Core file. Here's how: +

A.6.6.1. How to conserve information about a reproducible crash

+Recompile MPlayer with debugging code enabled: +

+./configure --enable-debug=3
+make
+

+and then run MPlayer within gdb using: +

gdb ./mplayer

+You are now within gdb. Type: +

+run -v options-to-mplayer filename
+

+and reproduce your crash. As soon as you did it, gdb will return you to the +command line prompt where you have to enter +

+bt
+disass $pc-32 $pc+32
+info all-registers
+

+

A.6.6.2. How to extract meaningful information from a core dump

+Create the following command file: +

+bt
+disass $pc-32 $pc+32
+info all-registers
+

+Then simply execute this command: +

+gdb mplayer --core=core -batch --command=command_file > mplayer.bug
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_where.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_where.html new file mode 100644 index 0000000..5a76f28 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugreports_where.html @@ -0,0 +1,20 @@ +A.5. Where to report bugs

A.5. Where to report bugs

+Subscribe to the MPlayer-users mailing list: +http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users +and send your bug report to +mailto:mplayer-users@mplayerhq.hu where you can discuss it. +

+If you prefer, you can use our brand-new +Bugzilla instead. +

+The language of this list is English. +Please follow the standard +Netiquette Guidelines +and do not send HTML mail to any of our +mailing lists. You will only get ignored or +banned. If you do not know what HTML mail is or why it is evil, read this +fine document. +It explains all the details and has instructions for turning HTML off. Also +note that we will not individually CC (carbon-copy) people so it is a good idea +to subscribe to actually receive your answer. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-audio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-audio.html new file mode 100644 index 0000000..40a6d99 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-audio.html @@ -0,0 +1,55 @@ +B.2. Various A-V sync and other audio problems

B.2. Various A-V sync and other audio problems

B.2.1. General audio delay or jerky sound + (exists with all or many files)

  • + most common: buggy audio driver! - try to use different drivers, try ALSA OSS + emulation with -ao oss, also try -ao sdl, + sometimes it helps. If your file plays fine with -nosound, + then you can be sure it's sound card (driver) problem. +

  • audio buffer problems (buffer size badly detected)

    + Workaround: MPlayer's -abs option +

  • + samplerate problems - maybe your card doesn't support the samplerate used in + your files - try the resampling filter (-af resample=...) +

  • slow machine (CPU or VGA)

    + try with -vo null, if it plays well, then you have slow + VGA card/driver +

    + Workaround: buy a faster card or read this documentation about how to speed up +

    Also try -framedrop

B.2.2. Audio delay/de-sync specific to one or a few files

  • bad file

    + Workaround: +

    • + -ni or -nobps option + (for non-interleaved or bad files) +

      and/or

    • + -mc 0 + (required for files with badly interleaved VBR audio) +

      and/or

    • + -delay or +/- + keys at runtime to adjust delay +

    + If none of these help, please upload the file, we'll check (and fix). +

  • your sound card doesn't support 48kHz playback

    + Workaround: buy a better sound card... or try to decrease fps by 10% + (use -fps 27 for a 30fps movie) or use the resample filter +

  • + slow machine (if A-V is not around 0, + and the last number in the status line increasing) +

    Workaround: -framedrop

B.2.3. No sound at all

  • your file uses an unsupported audio codec

    + Solution: read the documentation and help us adding support for it +

B.2.4. No picture at all (just plain grey/green window)

  • your file uses an unsupported video codec

    + Solution: read the documentation and help us adding support for it +

  • + auto-selected codec can't decode the file, try to select another using + -vc or -vfm options +

B.2.5. Video-out problems

+First note that the options -fs, -vm and +-zoom are not supported by all drivers. Plus, not all +drivers support scaling/zooming in hardware. +

OSD/sub flickering.  +

  • x11 driver: sorry, it can't be fixed now

  • xv driver: use -double option

+

Green image using mga_vid + (-vo mga / -vo xmga).  +

  • + mga_vid misdetected your card's RAM amount, reload it using + mga_ram_size option. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-special.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-special.html new file mode 100644 index 0000000..33cbae7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs-special.html @@ -0,0 +1,12 @@ +B.1. Special system/CPU-specific bugs/problems

B.1. Special system/CPU-specific bugs/problems

  • SIGILL (signal 4) on P3 using 2.2.x kernels:

    Problem: kernel 2.2.x doesn't have proper (working) SSE support

    Solution: upgrade kernel to 2.4.x

    Workaround: ./configure --disable-sse

  • General SIGILL (signal 4):

    + Problem: you compiled and run MPlayer on + different machines (for example compiled on P3 and running on Celeron) +

    + Solution: compile MPlayer on the same machine + where you will use it! +

    + Workaround: You can forget all this by configuring with the + --enable-runtime-cpudetection option or you can + disable particular CPU instruction sets with more specific options (like + --disable-mmx, --disable-3dnow, etc). +

  • Crashes when dumping streams:

    Problem: core dump

    Solution: Don't panic. Make sure you know where your towel is.

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs.html new file mode 100644 index 0000000..af23765 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/bugs.html @@ -0,0 +1,2 @@ +Appendix B. Known bugs diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/caca.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/caca.html new file mode 100644 index 0000000..53fb3c0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/caca.html @@ -0,0 +1,47 @@ +8.12.  libcaca – Color ASCII Art library

8.12.  +libcaca – Color ASCII Art library +

+The libcaca +library is a graphics library that outputs text instead of pixels, so that it +can work on older video cards or text terminals. It is not unlike the famous +AAlib library. +libcaca needs a terminal to work, thus +it should work on all Unix systems (including Mac OS X) using either the +slang library or the +ncurses library, on DOS using the +conio.h library, and on Windows systems +using either slang or +ncurses (through Cygwin emulation) or +conio.h. If +./configure +detects libcaca, the caca libvo driver +will be built. +

The differences with AAlib are + the following:

  • + 16 available colors for character output (256 color pairs) +

  • + color image dithering +

But libcaca also has the + following limitations:

  • + no support for brightness, contrast, gamma +

+You can use some keys in the caca window to change rendering options: +

KeyAction
d + Toggle libcaca dithering methods. +
a + Toggle libcaca antialiasing. +
b + Toggle libcaca background. +

libcaca will also look for + certain environment variables:

CACA_DRIVER

+ Set recommended caca driver. e.g. ncurses, slang, x11. +

CACA_GEOMETRY (X11 only)

+ Specifies the number of rows and columns. e.g. 128x50. +

CACA_FONT (X11 only)

+ Specifies the font to use. e.g. fixed, nexus. +

+Use the -framedrop option if your computer is not fast +enough to render all frames. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/cd-dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/cd-dvd.html new file mode 100644 index 0000000..ed87cc9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/cd-dvd.html @@ -0,0 +1 @@ +Chapter 4. CD/DVD usage diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codec-importing.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codec-importing.html new file mode 100644 index 0000000..3d3396d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codec-importing.html @@ -0,0 +1,92 @@ +7.3. Win32 codecs importing HOWTO

7.3. Win32 codecs importing HOWTO

7.3.1. VFW codecs

+VFW (Video for Windows) is the old Video API for Windows. Its codecs have +the .DLL or (rarely) .DRV +extension. If MPlayer fails at playing your AVI +with this kind of message: +

UNKNOWN video codec: HFYU (0x55594648)

+It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = +HuffYUV codec, DIV3 = DivX Low Motion, etc.). Now that you know this, you +have to find out which DLL Windows loads in order to play this file. In our +case, the system.ini contains this information in a +line that reads: +

VIDC.HFYU=huffyuv.dll

+

+So you need the huffyuv.dll file. Note that the audio +codecs are specified by the MSACM prefix: +

msacm.l3acm=L3codeca.acm

+

+This is the MP3 codec. Now that you have all the necessary information +(fourcc, codec file, sample AVI), submit your codec support request by +mail, and upload these files to the FTP site: +ftp://upload.mplayerhq.hu/MPlayer/incoming/<codecname>/ +

Note

+On Windows NT/2000/XP search for this info in the registry, +e.g. search for "VIDC.HFYU". To find out how to do this, look at +the old DirectShow method below. +

7.3.2. DirectShow codecs

+DirectShow is the newer Video API, which is even worse than its predecessor. +Things are harder with DirectShow, since +

  • + system.ini does not contain the needed information, + instead it is stored in the registry and +

  • + we need the GUID of the codec. +

+

New Method:

+Using Microsoft GraphEdit (fast) +

  1. + Get GraphEdit from either DirectX SDK or + doom9. +

  2. + Start graphedit.exe. +

  3. + From the menu select + Graph → Insert Filters. +

  4. + Expand item DirectShow Filters. +

  5. + Select the right codec name and expand item. +

  6. + In the entry DisplayName look at the text in + winged brackets after the backslash and write it down (five dash-delimited + blocks, the GUID). +

  7. + The codec binary is the file specified in the + Filename entry. +

Note

+If there is no Filename and +DisplayName contains something like +device:dmo, then it is a DMO-Codec. +

Old Method:

+Take a deep breath and start searching the registry... +

  1. + Start regedit. +

  2. + Press Ctrl+F, disable + the first two checkboxes, and enable the third. Type in the fourcc of the + codec (e.g. TM20). +

  3. + You should see a field which contains the path and the filename (e.g. + C:\WINDOWS\SYSTEM\TM20DEC.AX). +

  4. + Now that you have the file, we need the GUID. Try searching again, but + now search for the codec's name, not the fourcc. Its name can be acquired + when Media Player is playing the file, by checking + File → Properties → Advanced. + If not, you are out of luck. Try guessing (e.g. search for TrueMotion). +

  5. + If the GUID is found you should see a FriendlyName + and a CLSID field. Write down the 16 byte CLSID, + this is the GUID we need. +

Note

+If searching fails, try enabling all the checkboxes. You may have +false hits, but you may get lucky... +

+Now that you have all the necessary information (fourcc, GUID, codec file, +sample AVI), submit your codec support request by mail, and upload these files +to the FTP site: +ftp://upload.mplayerhq.hu/MPlayer/incoming/<codecname>/ +

+If you want to add a codec yourself, read +DOCS/tech/codecs.conf.txt. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codecs.html new file mode 100644 index 0000000..e289fe9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/codecs.html @@ -0,0 +1,3 @@ +Chapter 7. Codecs diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/commandline.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/commandline.html new file mode 100644 index 0000000..108c884 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/commandline.html @@ -0,0 +1,59 @@ +3.1. Command line

3.1. Command line

+MPlayer utilizes a complex playtree. It consists +of global options written as first, for example +

mplayer -vfm 5

+and options written after filenames, that apply only to the given +filename/URL/whatever, for example: +

+mplayer -vfm 5 movie1.avi movie2.avi -vfm 4
+

+

+You can group filenames/URLs together using { and +}. It is useful with option -loop: +

mplayer { 1.avi -loop 2 2.avi } -loop 3

+The above command will play files in this order: 1, 1, 2, 1, 1, 2, 1, 1, 2. +

+Playing a file: +

+mplayer [options] [path/]filename
+

+

+Another way to play a file: +

+mplayer [options] file:///uri-escaped-path
+

+

+Playing more files: +

+mplayer [default options] [path/]filename1 [options for filename1] filename2 [options for filename2] ...
+

+

+Playing VCD: +

+mplayer [options] vcd://trackno [-cdrom-device /dev/cdrom]
+

+

+Playing DVD: +

+mplayer [options] dvd://titleno [-dvd-device /dev/dvd]
+

+

+Playing from the WWW: +

+mplayer [options] http://site.com/file.asf
+

+(playlists can be used, too) +

+Playing from RTSP: +

+mplayer [options] rtsp://server.example.com/streamName
+

+

+Examples: +

+mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
+mplayer vcd://2 -cdrom-device /dev/hdc
+mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
+mplayer dvd://1 -dvd-device /dev/hdc
+mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/containers.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/containers.html new file mode 100644 index 0000000..257bfc1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/containers.html @@ -0,0 +1,23 @@ +Chapter 6. Containers

Chapter 6. Containers

+It is important to clarify a common mistake. When people see a file with a +.AVI extension, they immediately conclude that it is +not an MPEG file. That is not true. At least not entirely. Contrary to +popular belief such a file can contain MPEG-1 video. +

+You see, a codec is not the same as a +container format. +Examples of video codecs are: MPEG-1, MPEG-2, +MPEG-4 (DivX), Indeo5, 3ivx. +Examples of container formats are: +MPG, AVI, ASF. +

+In theory, you can put an OpenDivX video and MP3 audio +into an MPG container. However, most +players will not play it, since they expect MPEG-1 video and MP2 audio (unlike +AVI, MPG +does not have the necessary fields to describe its video and audio streams). +Or you might put MPEG-1 video into an AVI file. +FFmpeg and +MEncoder +can create these files. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/control.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/control.html new file mode 100644 index 0000000..04ccc44 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/control.html @@ -0,0 +1,85 @@ +3.3. Control

3.3. Control

+MPlayer has a fully configurable, command +driven, control layer which lets you control +MPlayer with keyboard, mouse, joystick or remote +control (using LIRC). See the man page for the complete list of keyboard controls. +

3.3.1. Controls configuration

+MPlayer allows you bind any key/button to any +MPlayer command using a simple config file. +The syntax consist of a key name followed by a command. The default config file location is +$HOME/.mplayer/input.conf but it can be overridden +using the -input conf option +(relative path are relative to $HOME/.mplayer). +

+You can get a full list of supported key names by running +mplayer -input keylist +and a full list of available commands by running +mplayer -input cmdlist. +

Example 3.1. A simple input control file

+##
+## MPlayer input control file
+##
+
+RIGHT seek +10
+LEFT seek -10
+- audio_delay 0.100
++ audio_delay -0.100
+q quit
+> pt_step 1
+< pt_step -1
+ENTER pt_step 1 1

3.3.2. Control from LIRC

+Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver, +an (almost) arbitrary remote control and control your Linux box with it! +More about it on the LIRC homepage. +

+If you have the LIRC package installed, configure will +autodetect it. If everything went fine, MPlayer +will print "Setting up LIRC support..." +on startup. If an error occurs it will tell you. If there is no message about +LIRC there is no support compiled in. That's it :-) +

+The application name for MPlayer is - surprise - +mplayer. You can use any MPlayer +commands and even pass more than one command by separating them with +\n. +Do not forget to enable the repeat flag in .lircrc when +it makes sense (seek, volume, etc). Here is an excerpt from a sample +.lircrc: +

+begin
+     button = VOLUME_PLUS
+     prog = mplayer
+     config = volume 1
+     repeat = 1
+end
+
+begin
+    button = VOLUME_MINUS
+    prog = mplayer
+    config = volume -1
+    repeat = 1
+end
+
+begin
+    button = CD_PLAY
+    prog = mplayer
+    config = pause
+end
+
+begin
+    button = CD_STOP
+    prog = mplayer
+    config = seek 0 1\npause
+end

+If you do not like the standard location for the lirc-config file +(~/.lircrc) use the -lircconf +filename switch to specify another +file. +

3.3.3. Slave mode

+The slave mode allows you to build simple frontends to +MPlayer. When run with the +-slave option MPlayer will +read commands separated by a newline (\n) from stdin. +The commands are documented in the +slave.txt file. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/default.css b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/default.css new file mode 100644 index 0000000..c65838e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/default.css @@ -0,0 +1,83 @@ +body { + color: black; + background: white; + + font-family: Arial, Helvetica, sans-serif; +/* + * It's a Bad Idea(tm) to use fixed font sizes. + * Uncomment it if you _really_ want + */ + font-size: 14px; +} + +div.table table, div.informaltable table { + background: #333366; + border-collapse: separate; + border: solid 1px #333366; + border-spacing: 1px; +} + +div.table th, div.informaltable th { + color: white; + background: #4488cc; + border: 0px; + padding: 2px; +} + +div.table td, div.informaltable td { + background: #fffff8; + border: 0px; + padding: 2px; +} + + +pre.screen { + padding: 4px; + background: #e0e0e0; +} + +pre.programlisting { + padding: 4px; + background: #e0e8f0; +} + +/* +span.application { +} +*/ + +span.keycap { + background: #ddd; + border: solid 1px #aaa; + white-space: nowrap; + font-family: Arial, Helvetica, sans-serif; +} + +span.guimenu, span.guisubmenu, span.guimenuitem { + background: #dddddd; +} + +tt.filename { + color: maroon; + white-space: nowrap; +} + +tt.option { + color: #066; + white-space: nowrap; +} + +div.example { + padding-left: 0.5em; + border-left: solid 2px black; +} + +div.important .title, div.caution .title, div.warning .title { + color: #c00; +} +/* +div.important, div.warning, div.caution { + padding-left: 0.5em; + border-left: solid 2px maroon; +} +*/ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dfbmga.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dfbmga.html new file mode 100644 index 0000000..5cabac0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dfbmga.html @@ -0,0 +1,20 @@ +8.17. DirectFB/Matrox (dfbmga)

8.17. DirectFB/Matrox (dfbmga)

+Please read the main DirectFB section for +general information. +

+This video output driver will enable CRTC2 (on the second head) on Matrox +G400/G450/G550 cards, displaying video +independent of the first head. +

+Ville Syrjala's has a +README +and a +HOWTO +on his homepage that explain how to make DirectFB TV output run on Matrox cards. +

Note

+the first DirectFB version with which we could get this working was +0.9.17 (it's buggy, needs that surfacemanager +patch from the URL above). Porting the CRTC2 code to +mga_vid has been planned for years, +patches are welcome. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dga.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dga.html new file mode 100644 index 0000000..88d7f61 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dga.html @@ -0,0 +1,186 @@ +8.3. DGA

8.3. DGA

PREAMBLE.  +This document tries to explain in some words what DGA is in general and +what the DGA video output driver for MPlayer +can do (and what it can't). +

WHAT IS DGA.  +DGA is short for Direct Graphics +Access and is a means for a program to bypass the X server and +directly modifying the framebuffer memory. Technically spoken this happens +by mapping the framebuffer memory into the memory range of your process. +This is allowed by the kernel only if you have superuser privileges. You +can get these either by logging in as root or by setting the SUID bit on the +MPlayer executable (not +recommended). +

+There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was +introduced with XFree 4.0.1. +

+DGA1 provides only direct framebuffer access as described above. For +switching the resolution of the video signal you have to rely on the +XVidMode extension. +

+DGA2 incorporates the features of XVidMode extension and also allows +switching the depth of the display. So you may, although basically +running a 32 bit depth X server, switch to a depth of 15 bits and vice +versa. +

+However DGA has some drawbacks. It seems it is somewhat dependent on the +graphics chip you use and on the implementation of the X server's video +driver that controls this chip. So it does not work on every system... +

INSTALLING DGA SUPPORT FOR MPLAYER.  +First make sure X loads the DGA extension, see in +/var/log/XFree86.0.log: + +

(II) Loading extension XFree86-DGA

+ +See, XFree86 4.0.x or greater is +highly recommended! +MPlayer's DGA driver is autodetected by +./configure, or you can force it +with --enable-dga. +

+If the driver couldn't switch to a smaller resolution, experiment with +options -vm (only with X 3.3.x), -fs, +-bpp, -zoom to find a video mode that +the movie fits in. There is no converter right now :( +

+Become root. DGA needs root +access to be able to write directly video memory. If you want to run it as +user, then install MPlayer SUID root: + +

+chown root /usr/local/bin/mplayer
+chmod 750 /usr/local/bin/mplayer
+chmod +s /usr/local/bin/mplayer
+

+ +Now it works as a simple user, too. +

Security risk

+This is a big security risk! +Never do this on a server or on a computer +that can be accessed by other people because they can gain root privileges +through SUID root MPlayer. +

+Now use -vo dga option, and there you go! (hope so:) You +should also try if the -vo sdl:driver=dga option works for you! +It's much faster! +

RESOLUTION SWITCHING.  +The DGA driver allows for switching the resolution of the output signal. +This avoids the need for doing (slow) software scaling and at the same time +provides a fullscreen image. Ideally it would switch to the exact +resolution (except for honoring aspect ratio) of the video data, but the X +server only allows switching to resolutions predefined in +/etc/X11/XF86Config +(/etc/X11/XF86Config-4 for XFree 4.X.X respectively). +Those are defined by so-called modelines and depend on +the capabilities of your video hardware. The X server scans this config +file on startup and disables the modelines not suitable for your hardware. +You can find out which modes survive with the X11 log file. It can be found +at: /var/log/XFree86.0.log. +

+These entries are known to work fine with a Riva128 chip, using the nv.o X +server driver module. +

+Section "Modes"
+  Identifier "Modes[0]"
+  Modeline "800x600"  40     800 840 968 1056  600 601 605 628
+  Modeline "712x600"  35.0   712 740 850 900   400 410 412 425
+  Modeline "640x480"  25.175 640 664 760 800   480 491 493 525
+  Modeline "400x300"  20     400 416 480 528   300 301 303 314 Doublescan
+  Modeline "352x288"  25.10  352 368 416 432   288 296 290 310
+  Modeline "352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
+  Modeline "320x240"  12.588 320 336 384 400   240 245 246 262 Doublescan
+EndSection
+

DGA & MPLAYER.  +DGA is used in two places with MPlayer: The SDL +driver can be made to make use of it (-vo sdl:driver=dga) and +within the DGA driver (-vo dga). The above said is true +for both; in the following sections I'll explain how the DGA driver for +MPlayer works. +

FEATURES.  +The DGA driver is invoked by specifying -vo dga at the +command line. The default behavior is to switch to a resolution matching +the original resolution of the video as close as possible. It deliberately +ignores the -vm and -fs options +(enabling of video mode switching and fullscreen) - it always tries to +cover as much area of your screen as possible by switching the video mode, +thus refraining from using additional cycles of your CPU to scale the +image. If you don't like the mode it chooses you may force it to choose +the mode matching closest the resolution you specify by -x +and -y. By providing the -v option, the +DGA driver will print, among a lot of other things, a list of all +resolutions supported by your current XF86Config file. +Having DGA2 you may also force it to use a certain depth by using the +-bpp option. Valid depths are 15, 16, 24 and 32. It +depends on your hardware whether these depths are natively supported or if +a (possibly slow) conversion has to be done. +

+If you should be lucky enough to have enough offscreen memory left to +put a whole image there, the DGA driver will use double buffering, which +results in much smoother movie playback. It will tell you whether +double buffering is enabled or not. +

+Double buffering means that the next frame of your video is being drawn in +some offscreen memory while the current frame is being displayed. When the +next frame is ready, the graphics chip is just told the location in memory +of the new frame and simply fetches the data to be displayed from there. +In the meantime the other buffer in memory will be filled again with new +video data. +

+Double buffering may be switched on by using the option +-double and may be disabled with +-nodouble. Current default option is to disable +double buffering. When using the DGA driver, onscreen display (OSD) only +works with double buffering enabled. However, enabling double buffering may +result in a big speed penalty (on my K6-II+ 525 it used an additional 20% +of CPU time!) depending on the implementation of DGA for your hardware. +

SPEED ISSUES.  +Generally spoken, DGA framebuffer access should be at least as fast as +using the X11 driver with the additional benefit of getting a fullscreen +image. The percentage speed values printed by +MPlayer have to be interpreted with some care, +as for example, with the X11 driver they do not include the time used by +the X server needed for the actual drawing. Hook a terminal to a serial +line of your box and start top to see what is really +going on in your box. +

+Generally spoken, the speedup done by using DGA against 'normal' use of X11 +highly depends on your graphics card and how well the X server module for it +is optimized. +

+If you have a slow system, better use 15 or 16 bit depth since they require +only half the memory bandwidth of a 32 bit display. +

+Using a depth of 24 bit is a good idea even if your card natively just supports +32 bit depth since it transfers 25% less data compared to the 32/32 mode. +

+I've seen some AVI files be played back on a Pentium MMX 266. AMD K6-2 +CPUs might work at 400 MHZ and above. +

KNOWN BUGS.  +Well, according to some developers of XFree, DGA is quite a beast. They +tell you better not to use it. Its implementation is not always flawless +with every chipset driver for XFree out there. +

  • + With XFree 4.0.3 and nv.o there is a bug resulting + in strange colors. +

  • + ATI driver requires to switch mode back more than once after finishing + using of DGA. +

  • + Some drivers simply fail to switch back to normal resolution (use + Ctrl+Alt+Keypad + + and + Ctrl+Alt+Keypad - + to switch back manually). +

  • + Some drivers simply display strange colors. +

  • + Some drivers lie about the amount of memory they map into the process's + address space, thus vo_dga won't use double buffering (SIS?). +

  • + Some drivers seem to fail to report even a single valid mode. In this + case the DGA driver will crash telling you about a nonsense mode of + 100000x100000 or something like that. +

  • + OSD only works with double buffering enabled (else it flickers). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/directfb.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/directfb.html new file mode 100644 index 0000000..0284cbf --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/directfb.html @@ -0,0 +1,16 @@ +8.16. DirectFB

8.16. DirectFB

+"DirectFB is a graphics library which was designed with embedded systems +in mind. It offers maximum hardware accelerated performance at a minimum +of resource usage and overhead." - quoted from +http://www.directfb.org +

I'll exclude DirectFB features from this section.

+Though MPlayer is not supported as a "video +provider" in DirectFB, this output driver will enable video playback +through DirectFB. It will - of course - be accelerated, on my Matrox G400 +DirectFB's speed was the same as XVideo. +

+Always try to use the newest version of DirectFB. You can use DirectFB options +on the command line, using the -dfbopts option. Layer +selection can be done by the subdevice method, e.g.: +-vo directfb:2 (layer -1 is default: autodetect) +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/drives.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/drives.html new file mode 100644 index 0000000..6e69948 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/drives.html @@ -0,0 +1,49 @@ +4.1. CD/DVD drives

4.1. CD/DVD drives

+Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives +are capable of running at reduced speeds. There are several reasons that might +make you consider changing the speed of a CD-ROM drive: +

  • + There have been reports of read errors at high speeds, especially + with badly pressed CD-ROMs. Reducing the speed can prevent data loss under + these circumstances. +

  • + Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise. +

4.1.1. Linux

+You can reduce the speed of IDE CD-ROM drives with hdparm, +setcd or cdctl. It works like this: +

hdparm -E [speed] [cdrom device]

+

setcd -x [speed] [cdrom device]

+

cdctl -bS [speed]

+

+If you are using SCSI emulation, you might have to apply the settings to the +real IDE device, not the emulated SCSI device. +

+If you have root privileges the following command may also help: +

echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings

+

+This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. +If you set it to too high, the drive will continuously spin up and down, and +will dramatically decrease the performance. +It is recommended that you also tune your CD-ROM drive +with hdparm: +

hdparm -d1 -a8 -u1 [cdrom device]

+

+This enables DMA access, read-ahead, and IRQ unmasking (read the +hdparm man page for a detailed explanation). +

+Please refer to +"/proc/ide/[cdrom device]/settings" +for fine-tuning your CD-ROM. +

+SCSI drives do not have a uniform way of setting these parameters (Do you know +one? Tell us!) There is a tool that works for +Plextor SCSI drives. +

4.1.2. FreeBSD

speed: +

+cdcontrol [-f device] speed [speed]
+

+

DMA: +

+sysctl hw.ata.atapi_dma=1
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dvd.html new file mode 100644 index 0000000..f137ba0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/dvd.html @@ -0,0 +1,53 @@ +4.2. DVD playback

4.2. DVD playback

+For the complete list of available options, please read the man page. +The syntax to play a standard DVD is as follows: +

+mplayer dvd://<track> [-dvd-device <device>]
+

+

+Example: +

mplayer dvd://1 -dvd-device /dev/hdc

+

+If you have compiled MPlayer with dvdnav support, the +syntax is the same, except that you need to use dvdnav:// instead of dvd://. +

+The default DVD device is /dev/dvd. If your setup +differs, make a symlink or specify the correct device on the command +line with the -dvd-device option. +

+MPlayer uses libdvdread and +libdvdcss for DVD playback and decryption. These two +libraries are contained in the +MPlayer source tree, you do not have +to install them separately. You can also use system-wide versions of the two +libraries, but this solution is not recommended, as it can result in bugs, +library incompatibilities and slower speed. +

Note

+In case of DVD decoding problems, try disabling supermount, or any other such +facilities. Some RPC-2 drives may also require setting the region code. +

DVD decryption.  +DVD decryption is done by libdvdcss. The method +can be specified through the DVDCSS_METHOD environment +variable, see the manual page for details. +

4.2.1. region code

+DVD drives nowadays come with a nonsensical restriction labeled +region code. +This is a scheme to force DVD drives to only accept DVDs produced for one of +the six different regions into which the world was partitioned. How a group +of people can sit around a table, come up with such an idea and expect the +world of the 21st century to bow to their will is beyond anyone's guess. +

+Drives that enforce region settings through software only are also known as +RPC-1 drives, those that do it in hardware as RPC-2. RPC-2 drives allow +changing the region code five times before it remains fixed. +Under Linux you can use the +regionset tool +to set the region code of your DVD drive. +

+Thankfully, it is possible to convert RPC-2 drives into RPC-1 drives through +a firmware upgrade. Feed the model number of your DVD drive into your favorite +search engine or have a look at the forum and download sections of +"The firmware page". +While the usual caveats for firmware upgrades apply, experience with +getting rid of region code enforcement is generally positive. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/edl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/edl.html new file mode 100644 index 0000000..8676245 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/edl.html @@ -0,0 +1,38 @@ +3.5. Edit Decision Lists (EDL)

3.5. Edit Decision Lists (EDL)

+The edit decision list (EDL) system allows you to automatically skip +or mute sections of videos during playback, based on a movie specific +EDL configuration file. +

+This is useful for those who may want to watch a film in "family-friendly" +mode. You can cut out any violence, profanity, Jar-Jar Binks .. from a movie +according to your own personal preferences. Aside from this, there are other +uses, like automatically skipping over commercials in video files you watch. +

+The EDL file format is pretty bare-bones. There is one command per line that +indicates what to do (skip/mute) and when to do it (using pts in seconds). +

3.5.1. Using an EDL file

+Include the -edl <filename> flag when you run +MPlayer, with the name of the EDL file you +want applied to the video. +

3.5.2. Making an EDL file

+The current EDL file format is: +

[begin second] [end second] [action]

+Where the seconds are floating-point numbers and the action is either +0 for skip or 1 for mute. Example: +

+5.3   7.1    0
+15    16.7   1
+420   422    0
+

+This will skip from second 5.3 to second 7.1 of the video, then mute at +15 seconds, unmute at 16.7 seconds and skip from second 420 to second 422 +of the video. These actions will be performed when the playback timer +reaches the times given in the file. +

+To create an EDL file to work from, use the -edlout +<filename> flag. During playback, just hit i to +mark the beginning and end of a skip block. +A corresponding entry will be written to the file for that time. +You can then go back and fine-tune the generated EDL file as well as +change the default operation which is to skip the block described by each line. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/encoding-guide.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/encoding-guide.html new file mode 100644 index 0000000..4b5bd34 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/encoding-guide.html @@ -0,0 +1,13 @@ +Chapter 14. Encoding with MEncoder

Chapter 14. Encoding with MEncoder

14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie
14.1.1. Preparing to encode: Identifying source material and framerate
14.1.1.1. Identifying source framerate
14.1.1.2. Identifying source material
14.1.2. Constant quantizer vs. multipass
14.1.3. Constraints for efficient encoding
14.1.4. Cropping and Scaling
14.1.5. Choosing resolution and bitrate
14.1.5.1. Computing the resolution
14.1.6. Filtering
14.1.7. Interlacing and Telecine
14.1.8. Encoding interlaced video
14.1.9. Notes on Audio/Video synchronization
14.1.10. Choosing the video codec
14.1.11. Audio
14.1.12. Muxing
14.1.12.1. Improving muxing and A/V sync reliability
14.1.12.2. Limitations of the AVI container
14.1.12.3. Muxing into the Matroska container
14.2. How to deal with telecine and interlacing within NTSC DVDs
14.2.1. Introduction
14.2.2. How to tell what type of video you have
14.2.2.1. Progressive
14.2.2.2. Telecined
14.2.2.3. Interlaced
14.2.2.4. Mixed progressive and telecine
14.2.2.5. Mixed progressive and interlaced
14.2.3. How to encode each category
14.2.3.1. Progressive
14.2.3.2. Telecined
14.2.3.3. Interlaced
14.2.3.4. Mixed progressive and telecine
14.2.3.5. Mixed progressive and interlaced
14.2.4. Footnotes
14.3. Encoding with the libavcodec + codec family
14.3.1. libavcodec's + video codecs
14.3.2. libavcodec's + audio codecs
14.3.2.1. PCM/ADPCM format supplementary table
14.3.3. Encoding options of libavcodec
14.3.4. Encoding setting examples
14.3.5. Custom inter/intra matrices
14.3.6. Example
14.4. Encoding with the Xvid + codec
14.4.1. What options should I use to get the best results?
14.4.2. Encoding options of Xvid
14.4.3. Encoding profiles
14.4.4. Encoding setting examples
14.5. Encoding with the + x264 codec
14.5.1. Encoding options of x264
14.5.1.1. Introduction
14.5.1.2. Options which primarily affect speed and quality
14.5.1.3. Options pertaining to miscellaneous preferences
14.5.2. Encoding setting examples
14.6. + Encoding with the Video For Windows + codec family +
14.6.1. Video for Windows supported codecs
14.6.2. Using vfw2menc to create a codec settings file.
14.7. Using MEncoder to create +QuickTime-compatible files
14.7.1. Why would one want to produce QuickTime-compatible Files?
14.7.2. QuickTime 7 limitations
14.7.3. Cropping
14.7.4. Scaling
14.7.5. A/V sync
14.7.6. Bitrate
14.7.7. Encoding example
14.7.8. Remuxing as MP4
14.7.9. Adding metadata tags
14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files
14.8.1. Format Constraints
14.8.1.1. Format Constraints
14.8.1.2. GOP Size Constraints
14.8.1.3. Bitrate Constraints
14.8.2. Output Options
14.8.2.1. Aspect Ratio
14.8.2.2. Maintaining A/V sync
14.8.2.3. Sample Rate Conversion
14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding
14.8.3.1. Introduction
14.8.3.2. lavcopts
14.8.3.3. Examples
14.8.3.4. Advanced Options
14.8.4. Encoding Audio
14.8.4.1. toolame
14.8.4.2. twolame
14.8.4.3. libavcodec
14.8.5. Putting it all Together
14.8.5.1. PAL DVD
14.8.5.2. NTSC DVD
14.8.5.3. PAL AVI Containing AC-3 Audio to DVD
14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD
14.8.5.5. PAL SVCD
14.8.5.6. NTSC SVCD
14.8.5.7. PAL VCD
14.8.5.8. NTSC VCD
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/exotic_platforms.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/exotic_platforms.html new file mode 100644 index 0000000..613f275 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/exotic_platforms.html @@ -0,0 +1,33 @@ +12.6. Exotic Platforms

12.6. Exotic Platforms

+MPlayer runs on a number of exotic platforms, +but most of the platform-specific changes from those systems have not been +merged back into the main source tree. +For build instructions you should refer to the system-specific documentation. +

12.6.1. QNX

+You'll need to download and install SDL for QNX. Then run +MPlayer with -vo sdl:driver=photon +and -ao sdl:nto options, it should be fast. +

+The -vo x11 output will be even slower than on Linux, +since QNX has only X emulation which is very slow. +

12.6.2. Amiga/MorphOS (GeekGadgets)

+The people over at +www.amigasoft.net +make current MPlayer and +MEncoder packages. +

+Nicholas Det at Genesi has done a big and powerful port of MPlayer + for MorphOS. Sadly it's based on the 0.90 series. +

+Get if from MorphZone: +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/faq.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/faq.html new file mode 100644 index 0000000..d011921 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/faq.html @@ -0,0 +1,1149 @@ +Chapter 5. Frequently Asked Questions

Chapter 5. Frequently Asked Questions

5.1. Development
Q: +How do I create a proper patch for MPlayer? +
Q: +How do I translate MPlayer to a new language? +
Q: +How can I support MPlayer development? +
Q: +How can I become an MPlayer developer? +
Q: +Why don't you use autoconf/automake? +
5.2. Compilation and installation
Q: +Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +
Q: +Are there binary (RPM/Debian) packages of MPlayer? +
Q: +How can I build a 32 bit MPlayer on a 64 bit Athlon? +
Q: +Configure ends with this text, and MPlayer won't compile! +Your gcc does not support even i386 for '-march' and '-mcpu' +
Q: +I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +
Q: +During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +
Q: +Building on Mac OS 10.3 leads to several link errors. +
5.3. General questions
Q: +Are there any mailing lists on MPlayer? +
Q: +I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +
Q: +I have problems playing files with the ... codec. Can I use them? +
Q: +When I start playing, I get this message but everything seems fine: +Linux RTC init: ioctl (rtc_pie_on): Permission denied +
Q: +How can I make a screenshot? +
Q: +What is the meaning of the numbers on the status line? +
Q: +There are error messages about file not found +/usr/local/lib/codecs/ ... +
Q: +How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +
Q: +Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +
Q: +I can't access the GUI menu. I press right click, but I can't +access any menu items! +
Q: +How can I run MPlayer in the background? +
5.4. Playback problems
Q: +I cannot pinpoint the cause of some strange playback problem. +
Q: +How can I get subtitles to appear on the black margins around a movie? +
Q: +How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +
Q: +I'm trying to play a random stream off the internet but it fails. +
Q: +I downloaded a movie off a P2P network and it doesn't work! +
Q: +I'm having trouble getting my subtitles to display, help!! +
Q: +Why doesn't MPlayer work on Fedora Core? +
Q: +MPlayer dies with +MPlayer interrupted by signal 4 in module: decode_video +
Q: +When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +
Q: +I get very strange percentage values (way too big) +while playing files on my notebook. +
Q: +The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +
Q: +While playing a movie it suddenly gets jerky and I get the following message: +Badly interleaved AVI file detected - switching to -ni mode... +
5.5. Video/audio driver problems (vo/ao)
Q: +When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +
Q: +I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +Error opening/initializing the selected video_out (-vo) device. +How can I solve my problem? +
Q: +I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +
Q: +Audio goes out of sync playing an AVI file. +
Q: +My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +
Q: +How can I use dmix with +MPlayer? +
Q: +I have no sound when playing a video and get error messages similar to this one: + +AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) +audio_setup: Can't open audio device /dev/dsp: Device or resource busy +couldn't open/init audio device -> NOSOUND +Audio: no sound!!! +Start playing... + +
Q: +When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +
Q: +I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +
Q: +When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: + +DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer! + +
Q: +How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +
5.6. DVD playback
Q: +What about DVD navigation/menus? +
Q: +I can't watch any recent DVDs from Sony Pictures/BMG. +
Q: +What about subtitles? Can MPlayer display them? +
Q: +How can I set the region code of my DVD-drive? I don't have Windows! +
Q: +I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +
Q: +Do I need to be (setuid) root to be able to play a DVD? +
Q: +Is it possible to play/encode only selected chapters? +
Q: +My DVD playback is sluggish! +
Q: +I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +
5.7. Feature requests
Q: +If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +
Q: +I'd like to seek +/- 1 frame instead of 10 seconds. +
5.8. Encoding
Q: +How can I encode? +
Q: +How can I dump a full DVD title into a file? +
Q: +How can I create (S)VCDs automatically? +
Q: +How can I create (S)VCDs? +
Q: +How can I join two video files? +
Q: +How can I fix AVI files with a broken index or bad interleaving? +
Q: +How can I fix the aspect ratio of an AVI file? +
Q: +How can I backup and encode a VOB file with a broken beginning? +
Q: +I can't encode DVD subtitles into the AVI! +
Q: +How can I encode only selected chapters from a DVD? +
Q: +I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +
Q: +What is the meaning of the numbers on the status line +during the encoding process? +
Q: +Why is the recommended bitrate printed by MEncoder +negative? +
Q: +I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +
Q: +How can I put subtitles in the output file? +
Q: +How do I encode only sound from a music video? +
Q: +Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +
Q: +How can I encode an audio only file? +
Q: +How can I play subtitles embedded in AVI? +
Q: +MPlayer won't... +

5.1. Development

Q: +How do I create a proper patch for MPlayer? +
Q: +How do I translate MPlayer to a new language? +
Q: +How can I support MPlayer development? +
Q: +How can I become an MPlayer developer? +
Q: +Why don't you use autoconf/automake? +

Q:

+How do I create a proper patch for MPlayer? +

A:

+We made a short document +describing all the necessary details. Please follow the instructions. +

Q:

+How do I translate MPlayer to a new language? +

A:

+Read the translation HOWTO, +it should explain everything. You can get further help on the +MPlayer-translations +mailing list. +

Q:

+How can I support MPlayer development? +

A:

+We are more than happy to accept your hardware and software +donations. +They help us in continuously improving MPlayer. +

Q:

+How can I become an MPlayer developer? +

A:

+We always welcome coders and documenters. Read the +technical documentation +to get a first grasp. Then you should subscribe to the +MPlayer-dev-eng +mailing list and start coding. If you want to help out with the documentation, +join the +MPlayer-docs +mailing list. +

Q:

+Why don't you use autoconf/automake? +

A:

+We have a modular, handwritten build system. It does a reasonably good +job, so why change? Besides, we dislike the auto* tools, just like +other people. +

5.2. Compilation and installation

Q: +Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +
Q: +Are there binary (RPM/Debian) packages of MPlayer? +
Q: +How can I build a 32 bit MPlayer on a 64 bit Athlon? +
Q: +Configure ends with this text, and MPlayer won't compile! +Your gcc does not support even i386 for '-march' and '-mcpu' +
Q: +I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +
Q: +During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +
Q: +Building on Mac OS 10.3 leads to several link errors. +

Q:

+Compilation fails with an error and gcc bails out +with some cryptic message containing the phrase +internal compiler error or +unable to find a register to spill or +can't find a register in class `GENERAL_REGS' +while reloading `asm'. +

A:

+You have stumbled over a bug in gcc. Please +report it to the gcc team +but not to us. For some reason MPlayer seems to +trigger compiler bugs frequently. Nevertheless we cannot fix them and do not +add workarounds for compiler bugs to our sources. To avoid this problem, +either stick with a compiler version that is known to be reliable and +stable, or upgrade frequently. +

Q:

+Are there binary (RPM/Debian) packages of MPlayer? +

A:

+See the Debian and RPM +section for details. +

Q:

+How can I build a 32 bit MPlayer on a 64 bit Athlon? +

A:

+Try the following configure options: +

+./configure --target=athlon_xp --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib
+

+

Q:

+Configure ends with this text, and MPlayer won't compile! +

Your gcc does not support even i386 for '-march' and '-mcpu'

+

A:

+Your gcc isn't installed correctly, check the configure.log +file for details. +

Q:

+I have a Matrox G200/G400/G450/G550, how do I compile/use the +mga_vid driver? +

A:

+Read the mga_vid section. +

Q:

+During 'make', MPlayer complains about +missing X11 libraries. I don't understand, I do +have X11 installed!? +

A:

+... but you don't have the X11 development package installed. Or not correctly. +It's called XFree86-devel* under Red Hat, +xlibs-dev under Debian Woody and +libx11-dev under Debian Sarge. Also check if the +/usr/X11 and +/usr/include/X11 symlinks exist. +

Q:

+Building on Mac OS 10.3 leads to several link errors. +

A:

+The link error you're experiencing most likely looks like this: +

+ld: Undefined symbols:
+_LLCStyleInfoCheckForOpenTypeTables referenced from QuartzCore expected to be defined in ApplicationServices
+_LLCStyleInfoGetUserRunFeatures referenced from QuartzCore expected to be defined in ApplicationServices
+

+This problem is the result of Apple developers using 10.4 to compile +their software and distributing the binaries to 10.3 users via +Software Update. +The undefined symbols are present in Mac OS 10.4, +but not 10.3. +One solution can be to downgrade to QuickTime 7.0.1. +Here is a better solution. +

+Get an +older copy of the frameworks. +This will give you a compressed file that contains the QuickTime +7.0.1 Framework and a 10.3.9 QuartzCore Framework. +

+Uncompress the files somewhere that is not in your System folder. +(i.e. do not install these frameworks into your +/System/Library/Frameworks! +Using this older copy is only meant to get around link errors!) +

gunzip < CompatFrameworks.tgz | tar xvf -

+In config.mak, you should append +-F/path/to/where/you/extracted +to the OPTFLAGS variable. +If you use X-Code, you can just select these +frameworks instead of the system ones. +

+The resulting MPlayer binary will actually +use the framework that is installed on your system via dynamic links that +are resolved at run-time. +(You can verify this using otool -l). +

5.3. General questions

Q: +Are there any mailing lists on MPlayer? +
Q: +I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +
Q: +I have problems playing files with the ... codec. Can I use them? +
Q: +When I start playing, I get this message but everything seems fine: +Linux RTC init: ioctl (rtc_pie_on): Permission denied +
Q: +How can I make a screenshot? +
Q: +What is the meaning of the numbers on the status line? +
Q: +There are error messages about file not found +/usr/local/lib/codecs/ ... +
Q: +How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +
Q: +Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +
Q: +I can't access the GUI menu. I press right click, but I can't +access any menu items! +
Q: +How can I run MPlayer in the background? +

Q:

+Are there any mailing lists on MPlayer? +

A:

+Yes. Look at the +mailing lists section +of our homepage. +

Q:

+I've found a nasty bug when I tried to play my favorite video! +Who should I inform? +

A:

+Please read the bug reporting guidelines +and follow the instructions. +

Q:

+I have problems playing files with the ... codec. Can I use them? +

A:

+Check the codec status, +if it doesn't contain your codec, read the +codec documentation, especially the +codec importing HOWTO and contact us. +

Q:

+When I start playing, I get this message but everything seems fine: +

Linux RTC init: ioctl (rtc_pie_on): Permission denied

+

A:

+You need a specially set up kernel to use the RTC timing code. +For details see the RTC section of the documentation. +

Q:

+How can I make a screenshot? +

A:

+You have to use a video output driver that does not employ an overlay to be +able to take a screenshot. Under X11, -vo x11 will do, under +Windows -vo directx:noaccel works. +

+Alternatively you can run MPlayer with the +screenshot video filter +(-vf screenshot), and press the s +key to grab a screenshot. +

Q:

+What is the meaning of the numbers on the status line? +

A:

+Example: +

+A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x
+

+

A: 2.1

audio position in seconds

V: 2.2

video position in seconds

A-V: -0.167

audio-video difference in seconds (delay)

ct: 0.042

total A-V sync correction done

57/57

+ frames played/decoded (counting from last seek) +

41%

+ video codec CPU usage in percent + (for slice rendering and direct rendering this includes video_out) +

0%

video_out CPU usage

2.6%

audio codec CPU usage in percent

0

frames dropped to maintain A-V sync

4

+ current level of image postprocessing (when using -autoq) +

49%

+ current cache size used (around 50% is normal) +

1.00x

playback speed as a factor of original speed

+Most of them are for debug purposes, use the -quiet +option to make them disappear. +You might notice that video_out CPU usage is zero (0%) for some files. +This is because it is called directly from the codec and thus cannot +be measured separately. If you wish to know the video_out speed, compare +the difference when playing the file with -vo null and +your usual video output driver. +

Q:

+There are error messages about file not found +/usr/local/lib/codecs/ ... +

A:

+Download and install the binary codecs from our +download page. +

Q:

+How can I make MPlayer remember the options I +use for a particular file, e.g. movie.avi? +

A:

+Create a file named movie.avi.conf with the file-specific +options in it and put it in ~/.mplayer +or in the same directory as the file. +

Q:

+Subtitles are very nice, the most beautiful I've ever seen, but they +slow down playing! I know it's unlikely ... +

A:

+After running ./configure, +edit config.h and replace +#undef FAST_OSD with +#define FAST_OSD. Then recompile. +

Q:

+I can't access the GUI menu. I press right click, but I can't +access any menu items! +

A:

+Are you using FVWM? Try the following: +

  1. + Start → Settings → Configuration → Base Configuration +

  2. + Set Use Applications position hints + to Yes +

+

Q:

+How can I run MPlayer in the background? +

A:

+Use: +

+mplayer options filename < /dev/null &
+

+

5.4. Playback problems

Q: +I cannot pinpoint the cause of some strange playback problem. +
Q: +How can I get subtitles to appear on the black margins around a movie? +
Q: +How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +
Q: +I'm trying to play a random stream off the internet but it fails. +
Q: +I downloaded a movie off a P2P network and it doesn't work! +
Q: +I'm having trouble getting my subtitles to display, help!! +
Q: +Why doesn't MPlayer work on Fedora Core? +
Q: +MPlayer dies with +MPlayer interrupted by signal 4 in module: decode_video +
Q: +When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +
Q: +I get very strange percentage values (way too big) +while playing files on my notebook. +
Q: +The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +
Q: +While playing a movie it suddenly gets jerky and I get the following message: +Badly interleaved AVI file detected - switching to -ni mode... +

Q:

+I cannot pinpoint the cause of some strange playback problem. +

A:

+Do you have a stray codecs.conf file in +~/.mplayer/, /etc/, +/usr/local/etc/ or a similar location? Remove it, +an outdated codecs.conf file can cause obscure +problems and is intended for use only by developers working on codec +support. It overrides MPlayer's internal +codec settings, which will wreak havoc if incompatible changes are +made in newer program versions. Unless used by experts it is a recipe +for disaster in the form of seemingly random and very hard to localize +crashes and playback problems. If you still have it somewhere on your +system, you should remove it now. +

Q:

+How can I get subtitles to appear on the black margins around a movie? +

A:

+Use the expand video filter to increase the +area onto which the movie is rendered vertically and place the movie +at the top border, for example: +

mplayer -vf expand=0:-100:0:0 -slang de dvd://1

+

Q:

+How can I select audio/subtitle tracks from a DVD, OGM, Matroska or NUT file? +

A:

+You have to use -aid (audio ID) or -alang +(audio language), -sid(subtitle ID) or -slang +(subtitle language), for example: +

+mplayer -alang eng -slang eng example.mkv
+mplayer -aid 1 -sid 1 example.mkv
+

+To see which ones are available: +

+mplayer -vo null -ao null -frames 0 -v filename | grep sid
+mplayer -vo null -ao null -frames 0 -v filename | grep aid
+

+

Q:

+I'm trying to play a random stream off the internet but it fails. +

A:

+Try playing the stream with the -playlist option. +

Q:

+I downloaded a movie off a P2P network and it doesn't work! +

A:

+Your file is most probably broken or a fake file. If you got it from +a friend, and he says it works, try comparing +md5sum hashes. +

Q:

+I'm having trouble getting my subtitles to display, help!! +

A:

+Make sure you have installed fonts properly. Run through the steps in the +Fonts and OSD part of the installation +section again. If you are using TrueType fonts, verify that you have the +FreeType library installed. +Other things include checking your subtitles in a text editor or with other +players. Also try converting them to another format. +

Q:

+Why doesn't MPlayer work on Fedora Core? +

A:

+There is a bad interaction on Fedora between exec-shield, +prelink, and any applications which use Windows DLLs +(such as MPlayer). +

+The problem is that exec-shield randomizes the load addresses of all the +system libraries. This randomization happens at prelink time (once every +two weeks). +

+When MPlayer tries to load a Windows DLL it +wants to put it at a specific address (0x400000). If an important system +library happens to be there already, MPlayer +will crash. +(A typical symptom would be a segmentation fault when trying +to play Windows Media 9 files.) +

+If you run into this problem you have two options: +

  • + Wait two weeks. It might start working again. +

  • + Relink all the binaries on the system with different + prelink options. Here are step by step instructions: +

    1. + Edit /etc/syconfig/prelink and change +

      PRELINK_OPTS=-mR

      to +

      PRELINK_OPTS="-mR --no-exec-shield"

      +

    2. + touch /var/lib/misc/prelink.force +

    3. + /etc/cron.daily/prelink + (This relinks all the applications, and it takes quite a while.) +

    4. + execstack -s /path/to/mplayer + (This turns off exec-shield for the + MPlayer binary.) +

+

Q:

+MPlayer dies with +

MPlayer interrupted by signal 4 in module: decode_video

+

A:

+Don't use MPlayer on a CPU different from the one +it was compiled on or recompile with runtime CPU detection +(./configure --enable-runtime-cpudetection). +

Q:

+When I try to grab from my tuner, it works, but colors are strange. +It's OK with other applications. +

A:

+Your card probably reports some colorspaces as supported when in fact +it does not support them. Try with YUY2 instead of the +default YV12 (see the TV section). +

Q:

+I get very strange percentage values (way too big) +while playing files on my notebook. +

A:

+It's an effect of the power management / power saving system of your notebook +(BIOS, not kernel). Plug the external power connector in +before you power on your notebook. You can +also try whether +cpufreq +(a SpeedStep interface for Linux) helps you. +

Q:

+The audio/video gets totally out of sync when I run +MPlayer as +root on my notebook. +It works normal when i run it as a user. +

A:

+This is again a power management effect (see above). Plug the external power +connector in before you power on your notebook +or use the -nortc option. +

Q:

+While playing a movie it suddenly gets jerky and I get the following message: +

Badly interleaved AVI file detected - switching to -ni mode...

+

A:

+Badly interleaved files and -cache don't work well together. +Try -nocache. +

5.5. Video/audio driver problems (vo/ao)

Q: +When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +
Q: +I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +Error opening/initializing the selected video_out (-vo) device. +How can I solve my problem? +
Q: +I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +
Q: +Audio goes out of sync playing an AVI file. +
Q: +My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +
Q: +How can I use dmix with +MPlayer? +
Q: +I have no sound when playing a video and get error messages similar to this one: + +AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) +audio_setup: Can't open audio device /dev/dsp: Device or resource busy +couldn't open/init audio device -> NOSOUND +Audio: no sound!!! +Start playing... + +
Q: +When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +
Q: +I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +
Q: +When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: + +DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer! + +
Q: +How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +

Q:

+When I go into fullscreen mode I just get black borders around the image +and no real scaling to fullscreen mode. +

A:

+Your video output driver does not support scaling in hardware and since +scaling in software can be incredibly slow MPlayer +does not automatically enable it. Most likely you are using the +x11 instead of the xv +video output driver. Try adding -vo xv to the command +line or read the video section to find out +about alternative video output drivers. The -zoom +option explicitly enables software scaling. +

Q:

+I've just installed MPlayer. When I want to +open a video file it causes a fatal error: +

Error opening/initializing the selected video_out (-vo) device.

+How can I solve my problem? +

A:

+Just change your video output device. Issue the following command to get +a list of available video output drivers: +

mplayer -vo help

+After you've chosen the correct video output driver, add it to +your configuration file. Add +

+vo = selected_vo
+

+to ~/.mplayer/config and/or +

+vo_driver = selected_vo
+

+to ~/.mplayer/gui.conf. +

Q:

+I have problems with [your window manager] +and fullscreen xv/xmga/sdl/x11 modes ... +

A:

+Read the bug reporting guidelines and send us +a proper bug report. +Also try experimenting with the -fstype option. +

Q:

+Audio goes out of sync playing an AVI file. +

A:

+Try the -bps or -nobps option. If it does not +improve, read the +bug reporting guidelines +and upload the file to FTP. +

Q:

+My computer plays MS DivX AVIs with resolutions ~ 640x300 and stereo MP3 sound +too slow. +When I use the -nosound option, everything is OK (but quiet). +

A:

+Your machine is too slow or your sound card driver is broken. Consult the +documentation to see if you can improve performance. +

Q:

+How can I use dmix with +MPlayer? +

A:

+After setting up your +asoundrc +you have to use -ao alsa:device=dmix. +

Q:

+I have no sound when playing a video and get error messages similar to this one: +

+AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian)
+audio_setup: Can't open audio device /dev/dsp: Device or resource busy
+couldn't open/init audio device -> NOSOUND
+Audio: no sound!!!
+Start playing...
+

+

A:

+Are you running KDE or GNOME with the aRts or ESD sound daemon? Try disabling +the sound daemon or use the -ao arts or +-ao esd option to make MPlayer use +aRts or ESD. +You might also be running ALSA without OSS emulation, try loading the ALSA OSS +kernel modules or add -ao alsa to your command line to +directly use the ALSA audio output driver. +

Q:

+When starting MPlayer under KDE I just get a black +screen and nothing happens. After about one minute the video starts playing. +

A:

+The KDE aRts sound daemon is blocking the sound device. Either wait until the +video starts or disable the aRts daemon in control center. If you want to use +aRts sound, specify audio output via our native aRts audio driver +(-ao arts). If it fails or isn't compiled in, try SDL +(-ao sdl) and make sure your SDL can handle aRts sound. Yet +another option is to start MPlayer with artsdsp. +

Q:

+I have A/V sync problems. +Some of my AVIs play fine, but some play with double speed! +

A:

+You have a buggy sound card/driver. Most likely it's fixed at 44100Hz, and you +try to play a file which has 22050Hz audio. Try the +resample audio filter. +

Q:

+When I play this movie I get video-audio desync and/or +MPlayer crashes with the following message: +

+DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
+

+

A:

+This can have multiple reasons. +

  • + Your CPU and/or video card and/or + bus is too slow. MPlayer displays a message if + this is the case (and the dropped frames counter goes up fast). +

  • + If it is an AVI, maybe it has bad interleaving, try the + -ni option to work around this. + Or it may have a bad header, in this case -nobps + and/or -mc 0 can help. +

  • + Many FLV files will only play correctly with -correct-pts. + Unfortunately MEncoder does not have this option, + but you can try setting -fps to the correct value manually + if you know it. +

  • + Your sound driver is buggy. + See the audio section. +

+

Q:

+How can I get rid of A/V desynchronization +while seeking through RealMedia streams? +

A:

+-mc 0.1 can help. +

5.6. DVD playback

Q: +What about DVD navigation/menus? +
Q: +I can't watch any recent DVDs from Sony Pictures/BMG. +
Q: +What about subtitles? Can MPlayer display them? +
Q: +How can I set the region code of my DVD-drive? I don't have Windows! +
Q: +I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +
Q: +Do I need to be (setuid) root to be able to play a DVD? +
Q: +Is it possible to play/encode only selected chapters? +
Q: +My DVD playback is sluggish! +
Q: +I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +

Q:

+What about DVD navigation/menus? +

A:

+MPlayer does not support DVD menus due to serious +architectural limitations that prevent proper handling of still images and +interactive content. If you want to have fancy menus, you will have to use +another player like xine, +vlc or Ogle. +If you want to see DVD navigation in MPlayer you +will have to implement it yourself, but be aware that it is a major +undertaking. +

Q:

+I can't watch any recent DVDs from Sony Pictures/BMG. +

A:

+This is normal; you've been ripped off and sold an intentionally defective disk. +The only way to play these DVDs is to circumvent the bad blocks of the disk +by using DVDnav instead of mpdvdkit2. +You can do so by compiling MPlayer with DVDnav +support and then replacing dvd:// by dvdnav:// on the command line. +DVDnav is so far mutually exclusive with mpdvdkit2, so make sure you pass +--disable-mpdvdkit to the configure script. +

Q:

+What about subtitles? Can MPlayer display them? +

A:

+Yes. See the DVD chapter. +

Q:

+How can I set the region code of my DVD-drive? I don't have Windows! +

A:

+Use the +regionset tool. +

Q:

+I can't play a DVD, MPlayer hangs or outputs "Encrypted VOB file!" errors. +

A:

+CSS decryption code does not work with some DVD drives unless you set +the region code appropriately. See the answer to the previous question. +

Q:

+Do I need to be (setuid) root to be able to play a DVD? +

A:

+No. However you must have the proper rights +on the DVD device entry (in /dev/). +

Q:

+Is it possible to play/encode only selected chapters? +

A:

+Yes, try the -chapter option. +

Q:

+My DVD playback is sluggish! +

A:

+Use the -cache option (described in the man page) and try +enabling DMA for the DVD drive with the hdparm tool +(described in the CD chapter). +

Q:

+I copied a DVD using vobcopy. How do I play/encode it from my hard disk? +

A:

+Use the -dvd-device option to refer to the directory +that contains the files: +

+mplayer dvd://1 -dvd-device /path/to/directory
+

+

5.7. Feature requests

Q: +If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +
Q: +I'd like to seek +/- 1 frame instead of 10 seconds. +

Q:

+If MPlayer is paused and I try to seek or press any +key at all, MPlayer ceases to be paused. +I would like to be able to seek in the paused movie. +

A:

+This is very tricky to implement without losing A/V synchronization. +All attempts have failed so far, but patches are welcome. +

Q:

+I'd like to seek +/- 1 frame instead of 10 seconds. +

A:

+You can step forward one frame by pressing .. +If the movie was not paused it will be paused afterwards +(see the man page for details). +Stepping backwards is unlikely to be implemented anytime soon. +

5.8. Encoding

Q: +How can I encode? +
Q: +How can I dump a full DVD title into a file? +
Q: +How can I create (S)VCDs automatically? +
Q: +How can I create (S)VCDs? +
Q: +How can I join two video files? +
Q: +How can I fix AVI files with a broken index or bad interleaving? +
Q: +How can I fix the aspect ratio of an AVI file? +
Q: +How can I backup and encode a VOB file with a broken beginning? +
Q: +I can't encode DVD subtitles into the AVI! +
Q: +How can I encode only selected chapters from a DVD? +
Q: +I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +
Q: +What is the meaning of the numbers on the status line +during the encoding process? +
Q: +Why is the recommended bitrate printed by MEncoder +negative? +
Q: +I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +
Q: +How can I put subtitles in the output file? +
Q: +How do I encode only sound from a music video? +
Q: +Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +
Q: +How can I encode an audio only file? +
Q: +How can I play subtitles embedded in AVI? +
Q: +MPlayer won't... +

Q:

+How can I encode? +

A:

+Read the MEncoder +section. +

Q:

+How can I dump a full DVD title into a file? +

A:

+Once you have selected your title, and made sure it plays fine with +MPlayer, use the option -dumpstream. +For example: +

+mplayer dvd://5 -dumpstream -dumpfile dvd_dump.vob
+

+will dump the 5th title of the DVD into the file +dvd_dump.vob +

Q:

+How can I create (S)VCDs automatically? +

A:

+Try the mencvcd script from the +TOOLS subdirectory. +With it you can encode DVDs or other movies to VCD or SVCD format +and even burn them directly to CD. +

Q:

+How can I create (S)VCDs? +

A:

+Newer versions of MEncoder can directly +generate MPEG-2 files that can be used as a base to create a VCD or SVCD and +are likely to be playable out of the box on all platforms (for example, +to share a video from a digital camcorder with your computer-illiterate +friends). +Please read +Using MEncoder to create VCD/SVCD/DVD-compliant files +for more details. +

Q:

+How can I join two video files? +

A:

+MPEG files can be concatenated into a single file with luck. +For AVI files, you can use MEncoder's +multiple file support like this: +

+mencoder -ovc copy -oac copy -o out.avi file1.avi file2.avi
+

+This will only work if the files are of the same resolution +and use the same codec. +You can also try +avidemux and +avimerge (part of the +transcode +tool set). +

Q:

+How can I fix AVI files with a broken index or bad interleaving? +

A:

+To avoid having to use -idx to be able to seek in +AVI files with a broken index or -ni to play AVI +files with bad interleaving, use the command +

+mencoder input.avi -idx -ovc copy -oac copy -o output.avi
+

+to copy the video and audio streams into a new AVI file while +regenerating the index and correctly interleaving the data. +Of course this cannot fix possible bugs in the video and/or audio streams. +

Q:

+How can I fix the aspect ratio of an AVI file? +

A:

+You can do such a thing thanks to MEncoder's +-force-avi-aspect option, which overrides the aspect +stored in the AVI OpenDML vprp header option. For example: +

+mencoder input.avi -ovc copy -oac copy -o output.avi -force-avi-aspect 4/3
+

+

Q:

+How can I backup and encode a VOB file with a broken beginning? +

A:

+The main problem when you want to encode a VOB file which is corrupted +[1] +is that it will be hard to get an encode with perfect A/V sync. +One workaround is to just shave off the corrupted part and encode just the +clean part. +First you need to find where the clean part starts: +

+mplayer input.vob -sb nb_of_bytes_to_skip
+

+Then you can create a new file which contains just the clean part: +

+dd if=input.vob of=output_cut.vob skip=1 ibs=nb_of_bytes_to_skip
+

+

Q:

+I can't encode DVD subtitles into the AVI! +

A:

+You have to properly specify the -sid option. +

Q:

+How can I encode only selected chapters from a DVD? +

A:

+Use the -chapter option correctly, +like: -chapter 5-7. +

Q:

+I'm trying to work with 2GB+ files on a VFAT file system. Does it work? +

A:

+No, VFAT doesn't support 2GB+ files. +

Q:

+What is the meaning of the numbers on the status line +during the encoding process? +

A:

+Example: +

+Pos: 264.5s   6612f ( 2%)  7.12fps Trem: 576min 2856mb  A-V:0.065 [2126:192]
+

+

Pos: 264.5s

time position in the encoded stream

6612f

number of video frames encoded

( 2%)

portion of the input stream encoded

7.12fps

encoding speed

Trem: 576min

estimated remaining encoding time

2856mb

estimated size of the final encode

A-V:0.065

current delay between audio and video streams

[2126:192]

+ average video bitrate (in kb/s) and average audio bitrate (in kb/s) +

+

Q:

+Why is the recommended bitrate printed by MEncoder +negative? +

A:

+Because the bitrate you encoded the audio with is too large to fit the +movie on any CD. Check if you have libmp3lame installed properly. +

Q:

+I can't encode an ASF file to AVI/MPEG-4 (DivX) because it uses 1000 fps. +

A:

+Since ASF uses variable framerate but AVI uses a fixed one, you +have to set it by hand with the -ofps option. +

Q:

+How can I put subtitles in the output file? +

A:

+Just pass the -sub <filename> (or -sid, +respectively) option to MEncoder. +

Q:

+How do I encode only sound from a music video? +

A:

+It's not possible directly, but you can try this (note the +& at the end of +mplayer command): +

+mkfifo encode
+mplayer -ao pcm -aofile encode dvd://1 &
+lame your_opts encode music.mp3
+rm encode
+

+This allows you to use any encoder, not only LAME, +just replace lame with your favorite audio encoder in the +above command. +

Q:

+Why do third-party players fail to play MPEG-4 movies encoded by +MEncoder versions later than 1.0pre7? +

A:

+libavcodec, the native MPEG-4 +encoding library usually shipped with MEncoder, +used to set the FourCC to 'DIVX' when encoding MPEG-4 videos +(the FourCC is an AVI tag to identify the software used to encode and +the intended software to use for decoding the video). +This led many people to think that +libavcodec +was a DivX encoding library, when in fact it is a completely different +MPEG-4 encoding library which implements the MPEG-4 standard much +better than DivX does. +Therefore, the new default FourCC used by +libavcodec is 'FMP4', but you +may override this behavior using MEncoder's +-ffourcc option. +You may also change the FourCC of existing files in the same way: +

+mencoder input.avi -o output.avi -ffourcc XVID
+

+Note that this will set the FourCC to XVID rather than DIVX. +This is recommended as DIVX FourCC means DivX4, which is a very basic +MPEG-4 codec, whereas DX50 and XVID both mean full MPEG-4 (ASP). +Therefore, if you change the FourCC to DIVX, some bad software or +hardware players may choke on some advanced features that +libavcodec supports, but DivX +doesn't; on the other hand Xvid +is closer to libavcodec in +terms of functionality, and is supported by all decent players. +

Q:

+How can I encode an audio only file? +

A:

+Use aconvert from the +TOOLS +subdirectory in the MPlayer source tree. +

Q:

+How can I play subtitles embedded in AVI? +

A:

+Use avisubdump.c from the +TOOLS subdirectory or read +this document about extracting/demultiplexing subtitles embedded in OpenDML AVI files. +

Q:

+MPlayer won't... +

A:

+Have a look at the TOOLS +subdirectory for a collection of random scripts and hacks. +TOOLS/README contains documentation. +



[1] +To some extent, some forms of copy protection used in DVDs can be +assumed to be content corruption. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fbdev.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fbdev.html new file mode 100644 index 0000000..a8ca45e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fbdev.html @@ -0,0 +1,54 @@ +8.6. Framebuffer output (FBdev)

8.6. Framebuffer output (FBdev)

+Whether to build the FBdev target is autodetected during +./configure. Read the framebuffer documentation in +the kernel sources (Documentation/fb/*) for more +information. +

+If your card doesn't support VBE 2.0 standard (older ISA/PCI cards, such as +S3 Trio64), only VBE 1.2 (or older?): Well, VESAfb is still available, but +you'll have to load SciTech Display Doctor (formerly UniVBE) before booting +Linux. Use a DOS boot disk or whatever. And don't forget to register your +UniVBE ;)) +

+The FBdev output takes some additional parameters above the others: +

-fb

+ specify the framebuffer device to use (default: /dev/fb0) +

-fbmode

+ mode name to use (according to /etc/fb.modes) +

-fbmodeconfig

+ config file of modes (default: /etc/fb.modes) +

-monitor-hfreq, -monitor-vfreq, -monitor-dotclock

+ important values, see + example.conf +

+If you want to change to a specific mode, then use +

+mplayer -vm -fbmode name_of_mode filename
+

+

  • + -vm alone will choose the most suitable mode from + /etc/fb.modes. Can be used together with + -x and -y options too. The + -flip option is supported only if the movie's pixel + format matches the video mode's pixel format. Pay attention to the bpp + value, fbdev driver tries to use the current, or if you specify the + -bpp option, then that. +

  • + -zoom option isn't supported + (use -vf scale). You can't use 8bpp (or less) modes. +

  • + You possibly want to turn the cursor off: +

    echo -e '\033[?25l'

    + or +

    setterm -cursor off

    + and the screen saver: +

    setterm -blank 0

    + To turn the cursor back on: +

    echo -e '\033[?25h'

    + or +

    setterm -cursor on

    +

Note

+FBdev video mode changing does not work with the VESA +framebuffer, and don't ask for it, since it's not an +MPlayer limitation. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/features.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/features.html new file mode 100644 index 0000000..ac38920 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/features.html @@ -0,0 +1,54 @@ +2.2. Features

2.2. Features

  • + Decide if you need GUI. If you do, see the GUI + section before compiling. +

  • + If you want to install MEncoder (our great + all-purpose encoder), see the + MEncoder section. +

  • + If you have a V4L compatible TV tuner card, + and wish to watch/grab and encode movies with + MPlayer, + read the TV input section. +

  • + If you have a V4L compatible radio tuner + card, and wish to listen and capture sound with + MPlayer, + read the radio section. +

  • + There is a neat OSD Menu support ready to be + used. Check the OSD menu section. +

+Then build MPlayer: +

+./configure
+make
+make install
+

+

+At this point, MPlayer is ready to use. +Check if you have a codecs.conf file in your home +directory at (~/.mplayer/codecs.conf) left from old +MPlayer versions. If you find one, remove it. +

+Debian users can build a .deb package for themselves, it's very simple. +Just exec +

fakeroot debian/rules binary

+in MPlayer's root directory. See +Debian packaging for detailed instructions. +

+Always browse the output of +./configure, and the +configure.log file, they contain information about +what will be built, and what will not. You may also want to view +config.h and config.mak files. +If you have some libraries installed, but not detected by +./configure, then check if you also have the proper +header files (usually the -dev packages) and their version matches. The +configure.log file usually tells you what is missing. +

+Though not mandatory, the fonts should be installed in order to gain OSD, +and subtitle functionality. The recommended method is installing a TTF +font file and telling MPlayer to use it. +See the Subtitles and OSD section for details. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fonts-osd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fonts-osd.html new file mode 100644 index 0000000..9d3ea25 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/fonts-osd.html @@ -0,0 +1,86 @@ +2.4. Fonts and OSD

2.4. Fonts and OSD

+You need to tell MPlayer which font to use to +enjoy OSD and subtitles. Any TrueType font or special bitmap fonts will +work. However, TrueType fonts are recommended as they look far better, +can be properly scaled to the movie size and cope better with different +encodings. +

2.4.1. TrueType fonts

+There are two ways to get TrueType fonts to work. The first is to pass +the -font option to specify a TrueType font file on +the command line. This option will be a good candidate to put in your +configuration file (see the manual page for details). +The second is to create a symlink called subfont.ttf +to the font file of your choice. Either +

+ln -s /path/to/sample_font.ttf ~/.mplayer/subfont.ttf
+

+for each user individually or a system-wide one: +

+ln -s /path/to/sample_font.ttf $PREFIX/share/mplayer/subfont.ttf
+

+

+If MPlayer was compiled with +fontconfig support, the above methods +won't work, instead -font expects a +fontconfig font name +and defaults to the sans-serif font. Example: +

+mplayer -font 'Bitstream Vera Sans' anime.mkv
+

+

+To get a list of fonts known to +fontconfig, +use fc-list. +

2.4.2. bitmap fonts

+If for some reason you wish or need to employ bitmap fonts, download a set +from our homepage. You can choose between various +ISO fonts +and some sets of fonts +contributed by users +in various encodings. +

+Uncompress the file you downloaded to +~/.mplayer or +$PREFIX/share/mplayer. +Then rename or symlink one of the extracted directories to +font, for example: +

+ln -s ~/.mplayer/arial-24 ~/.mplayer/font
+

+

+ln -s $PREFIX/share/mplayer/arial-24 $PREFIX/share/mplayer/font
+

+

+Fonts should have an appropriate font.desc file +which maps unicode font positions to the actual code page of the +subtitle text. Another solution is to have UTF-8-encoded subtitles +and use the -utf8 option or give the subtitles +file the same name as your video file with a .utf +extension and have it in the same directory as the video file. +

2.4.3. OSD menu

+MPlayer has a completely user definiable +OSD Menu interface. +

Note

+the Preferences menu is currently UNIMPLEMENTED! +

Installation

  1. + compile MPlayer by passing the + --enable-menu to ./configure +

  2. + make sure you have an OSD font installed +

  3. + copy etc/menu.conf to your + .mplayer directory +

  4. + copy etc/input.conf to your + .mplayer directory, or to the + system-wide MPlayer config dir (default: + /usr/local/etc/mplayer) +

  5. + check and edit input.conf to enable menu movement keys + (it is described there). +

  6. + start MPlayer by the following example: +

    mplayer -menu file.avi

    +

  7. + push any menu key you defined +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/gui.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/gui.html new file mode 100644 index 0000000..07558c9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/gui.html @@ -0,0 +1,20 @@ +2.3. What about the GUI?

2.3. What about the GUI?

+The GUI needs GTK 1.2.x or GTK 2.0 (it isn't fully GTK, but the panels are). +The skins are stored in PNG format, so GTK, +libpng (and their devel stuff, usually +called gtk-dev +and libpng-dev) has to be installed. +You can build it by specifying --enable-gui during +./configure. Then, to turn on GUI mode, you have to +execute the gmplayer binary. +

+As MPlayer doesn't have a skin included, you +have to download them if you want to use the GUI. See the download page. +They should be extracted to the usual system-wide directory ($PREFIX/share/mplayer/skins), or to $HOME/.mplayer/skins. +MPlayer by default looks in these directories +for a directory named default, but +you can use the -skin newskin +option, or the skin=newskin config file directive to use +the skin in */skins/newskin +directory. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/history.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/history.html new file mode 100644 index 0000000..83ff207 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/history.html @@ -0,0 +1,100 @@ +Appendix D. History

Appendix D. History

+This began a year ago... I have tried lots of players under Linux +(mtv, xmps, +dvdview, livid/oms, +videolan, xine, +xanim, avifile, +xmmp) but they all have some problem. Mostly with +special files or with audio/video sync. Most of them are unable to play both +MPEG-1, MPEG-2 and AVI (DivX) files. Many players have image quality or speed +problems too. So I've decided to write/modify one... +

A'rpi, 2001

  • +mpg12play v0.1-v0.3: Sep 22-25, 2000 +

    +The first try, hacked together in a half hour! I've used libmpeg3 +from http://www.heroinewarrior.com up to the version 0.3, but +there were image quality and speed problems with it. +

  • +mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000 +

    +MPEG codec replaced with DVDview by Dirk Farin, it was a +great stuff, but it was slow and was written in C++ (A'rpi hates C++!!!) +

  • +mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000 +

    +MPEG codec was libmpeg2 (mpeg2dec) by Aaron Holtzman and +Michel Lespinasse. It's great, optimized very fast C code with perfect +image quality and 100% MPEG standard conformance. +

  • +MPlayer v0.3-v0.9: Nov 18-Dec 4, 2000 +

    +It was a pack of two programs: mpg12play v0.95pre6 and my +new simple AVI player 'avip' based on avifile's Win32 DLL loader. +

  • +MPlayer v0.10: Jan 1, 2001 +

    The MPEG and AVI player in a single binary! +

  • +MPlayer v0.11pre series: +

    +Some new developers joined and since 0.11 the MPlayer +project is a team-work! Added ASF file support, and OpenDivX +(see http://www.projectmayo.com) en/decoding. +

  • +MPlayer v0.17a "The IdegCounter": Apr 27, 2001 +

    +The release version of the 0.11pre after 4 months of heavy +development! Try it, and be amazed! Thousands of new features added... +and of course old code was improved too, bugs removed etc. +

  • +MPlayer 0.18 "The BugCounter": Jul 9, 2001 +

    +2 months since 0.17 and here's a new release.. Completed ASF +support, more subtitle formats, introduced libao (similar to libvo but to +audio), even more stable than ever, and so on. It's a MUST! +

  • +MPlayer 0.50 "The Faszom(C)ounter": Oct 8, 2001 +

    +Hmm. Release again. Tons of new features, beta GUI version, +bugs fixed, new vo and ao drivers, ported to many systems, including +opensource DivX codecs and much more. Try it! +

  • +MPlayer 0.60 "The RTFMCounter": Jan 3, 2002 +

    +MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak, +ADPCM codecs, and support for XAnim's binary codecs; DVD subtitles support, +first release of MEncoder, TV grabbing, cache, +liba52, countless fixes. +

  • +MPlayer 0.90pre10 "The BirthdayCounter" Nov 11, 2002 +

    +Although this is not a release, I am going to mention it because it +came out 2 years after MPlayer v0.01. +Happy birthday, MPlayer! +

  • +MPlayer 0.90rc1 "The CodecCounter" Dec 7, 2002 +

    +Again not a release, but after adding Sorenson 3 (QuickTime) +and Windows Media 9 support, MPlayer is the +world's first movie player with support for all known video formats! +

  • +MPlayer 0.90 "The CounterCounter" Apr 6, 2003 +

    +After more than 1 year, we finally concluded that the code was indeed +stable again, and ready to be published as a release. Unfortunately we +forgot even to increase the version number, and other annoying bugs went +in, so get ready for... +

  • +MPlayer 0.91 Aug 13, 2003 +

    +The above mentioned and lot of other bugs have been fixed. +This is the latest stable version. +

  • +MPlayer 1.0pre1 "Development on the beach" Sep 1, 2003 +

    +Although this is not a stable release, I am going to mention it because it is +the first pre version of the 1.0 series of MPlayer +and it is intended to help the big bug hunting party. +This is a huge step forward! +

  • +MPlayer 1.0 date yet unknown +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/howtoread.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/howtoread.html new file mode 100644 index 0000000..282963f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/howtoread.html @@ -0,0 +1,10 @@ +How to read this documentation

How to read this documentation

+If you are a first-time installer: be sure to read everything from here to +the end of the Installation section, and follow the links you will find. If +you have any other questions, return to the Table of +Contents and search for the topic, read the FAQ, +or try grepping through the files. Most questions should be answered somewhere +here and the rest has probably already been asked on our +mailing lists. + +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/index.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/index.html new file mode 100644 index 0000000..62b15b6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/index.html @@ -0,0 +1,25 @@ +MPlayer - The Movie Player

MPlayer - The Movie Player

License

MPlayer is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version.

MPlayer is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details.

You should have received a copy of the GNU General Public License + along with MPlayer; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


How to read this documentation
1. Introduction
2. Installation
2.1. Software requirements
2.2. Features
2.3. What about the GUI?
2.4. Fonts and OSD
2.4.1. TrueType fonts
2.4.2. bitmap fonts
2.4.3. OSD menu
2.5. RTC
3. Usage
3.1. Command line
3.2. Subtitles and OSD
3.3. Control
3.3.1. Controls configuration
3.3.2. Control from LIRC
3.3.3. Slave mode
3.4. Streaming from network or pipes
3.4.1. Saving streamed content
3.5. Edit Decision Lists (EDL)
3.5.1. Using an EDL file
3.5.2. Making an EDL file
3.6. Advanced audio
3.6.1. Surround/Multichannel playback
3.6.1.1. DVDs
3.6.1.2. Playing stereo files to four speakers
3.6.1.3. AC-3/DTS Passthrough
3.6.1.4. MPEG audio Passthrough
3.6.1.5. Matrix-encoded audio
3.6.1.6. Surround emulation in headphones
3.6.1.7. Troubleshooting
3.6.2. Channel manipulation
3.6.2.1. General information
3.6.2.2. Playing mono with two speakers
3.6.2.3. Channel copying/moving
3.6.2.4. Channel mixing
3.6.3. Software Volume adjustment
4. CD/DVD usage
4.1. CD/DVD drives
4.1.1. Linux
4.1.2. FreeBSD
4.2. DVD playback
4.2.1. region code
4.3. VCD playback
5. Frequently Asked Questions
6. Containers
6.1. Video formats
6.1.1. MPEG files
6.1.2. AVI files
6.1.3. ASF/WMV files
6.1.4. QuickTime/MOV files
6.1.5. VIVO files
6.1.6. FLI files
6.1.7. RealMedia (RM) files
6.1.8. NuppelVideo files
6.1.9. yuv4mpeg files
6.1.10. FILM files
6.1.11. RoQ files
6.1.12. OGG/OGM files
6.1.13. SDP files
6.1.14. PVA files
6.1.15. NSV files
6.1.16. Matroska files
6.1.17. NUT files
6.1.18. GIF files
6.2. Audio formats
6.2.1. MP3 files
6.2.2. OGG/OGM files (Vorbis)
6.2.3. CD audio
6.2.4. XMMS
7. Codecs
7.1. Video codecs
7.1.1. FFmpeg/libavcodec
7.1.2. Xvid
7.1.3. x264
7.1.3.1. What is x264?
7.1.3.2. What is H.264?
7.1.3.3. How can I play H.264 videos with + MPlayer?
7.1.3.4. How can I encode videos using MEncoder + and x264?
7.2. Audio codecs
7.2.1. Software AC-3 decoding
7.2.2. Hardware AC-3 decoding
7.2.3. libmad support
7.2.4. Hardware MPEG audio codec
7.2.5. AAC codec
7.2.6. AMR codecs
7.3. Win32 codecs importing HOWTO
7.3.1. VFW codecs
7.3.2. DirectShow codecs
8. Video output devices
8.1. Setting up MTRR
8.2. Xv
8.2.1. 3dfx cards
8.2.2. S3 cards
8.2.3. nVidia cards
8.2.4. ATI cards
8.2.5. NeoMagic cards
8.2.6. Trident cards
8.2.7. Kyro/PowerVR cards
8.2.8. Intel cards
8.3. DGA
8.4. SDL
8.5. SVGAlib
8.6. Framebuffer output (FBdev)
8.7. Matrox framebuffer (mga_vid)
8.8. 3Dfx YUV support
8.9. tdfx_vid
8.10. OpenGL output
8.11. AAlib – text mode displaying
8.12. +libcaca – Color ASCII Art library +
8.13. VESA - output to VESA BIOS
8.14. X11
8.15. VIDIX
8.15.1. ATI cards
8.15.2. Matrox cards
8.15.3. Trident cards
8.15.4. 3DLabs cards
8.15.5. nVidia cards
8.15.6. SiS cards
8.16. DirectFB
8.17. DirectFB/Matrox (dfbmga)
8.18. MPEG decoders
8.18.1. DVB output and input
8.18.2. DXR2
8.18.3. DXR3/Hollywood+
8.19. Other visualization hardware
8.19.1. Zr
8.19.2. Blinkenlights
8.20. TV-out support
8.20.1. Matrox G400 cards
8.20.2. Matrox G450/G550 cards
8.20.3. ATI cards
8.20.4. nVidia
8.20.5. NeoMagic
9. Audio output devices
9.1. Audio/Video synchronization
9.2. Troubleshooting
10. TV
10.1. TV input
10.1.1. Compilation
10.1.2. Usage tips
10.1.3. Examples
10.2. Teletext
10.2.1. Implementation notes
10.2.2. Using teletext
10.2.3. Teletext hot keys
11. Radio
11.1. Radio input
11.1.1. Compilation
11.1.2. Usage tips
11.1.3. Examples
12. Ports
12.1. Linux
12.1.1. Debian packaging
12.1.2. RPM packaging
12.1.3. ARM
12.2. *BSD
12.2.1. FreeBSD
12.2.2. OpenBSD
12.2.3. Darwin
12.3. Commercial Unix
12.3.1. Solaris
12.3.2. IRIX
12.3.3. HP-UX
12.3.4. AIX
12.4. Windows
12.4.1. Cygwin
12.4.2. MinGW
12.5. Mac OS
12.5.1. MPlayer OS X GUI
12.6. Exotic Platforms
12.6.1. QNX
12.6.2. Amiga/MorphOS (GeekGadgets)
13. Basic usage of MEncoder
13.1. Selecting codecs and container formats
13.2. Selecting input file or device
13.3. Encoding two pass MPEG-4 ("DivX")
13.4. Encoding to Sony PSP video format
13.5. Encoding to MPEG format
13.6. Rescaling movies
13.7. Stream copying
13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)
13.9. Extracting DVD subtitles to VOBsub file
13.10. Preserving aspect ratio
14. Encoding with MEncoder
14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie
14.1.1. Preparing to encode: Identifying source material and framerate
14.1.1.1. Identifying source framerate
14.1.1.2. Identifying source material
14.1.2. Constant quantizer vs. multipass
14.1.3. Constraints for efficient encoding
14.1.4. Cropping and Scaling
14.1.5. Choosing resolution and bitrate
14.1.5.1. Computing the resolution
14.1.6. Filtering
14.1.7. Interlacing and Telecine
14.1.8. Encoding interlaced video
14.1.9. Notes on Audio/Video synchronization
14.1.10. Choosing the video codec
14.1.11. Audio
14.1.12. Muxing
14.1.12.1. Improving muxing and A/V sync reliability
14.1.12.2. Limitations of the AVI container
14.1.12.3. Muxing into the Matroska container
14.2. How to deal with telecine and interlacing within NTSC DVDs
14.2.1. Introduction
14.2.2. How to tell what type of video you have
14.2.2.1. Progressive
14.2.2.2. Telecined
14.2.2.3. Interlaced
14.2.2.4. Mixed progressive and telecine
14.2.2.5. Mixed progressive and interlaced
14.2.3. How to encode each category
14.2.3.1. Progressive
14.2.3.2. Telecined
14.2.3.3. Interlaced
14.2.3.4. Mixed progressive and telecine
14.2.3.5. Mixed progressive and interlaced
14.2.4. Footnotes
14.3. Encoding with the libavcodec + codec family
14.3.1. libavcodec's + video codecs
14.3.2. libavcodec's + audio codecs
14.3.2.1. PCM/ADPCM format supplementary table
14.3.3. Encoding options of libavcodec
14.3.4. Encoding setting examples
14.3.5. Custom inter/intra matrices
14.3.6. Example
14.4. Encoding with the Xvid + codec
14.4.1. What options should I use to get the best results?
14.4.2. Encoding options of Xvid
14.4.3. Encoding profiles
14.4.4. Encoding setting examples
14.5. Encoding with the + x264 codec
14.5.1. Encoding options of x264
14.5.1.1. Introduction
14.5.1.2. Options which primarily affect speed and quality
14.5.1.3. Options pertaining to miscellaneous preferences
14.5.2. Encoding setting examples
14.6. + Encoding with the Video For Windows + codec family +
14.6.1. Video for Windows supported codecs
14.6.2. Using vfw2menc to create a codec settings file.
14.7. Using MEncoder to create +QuickTime-compatible files
14.7.1. Why would one want to produce QuickTime-compatible Files?
14.7.2. QuickTime 7 limitations
14.7.3. Cropping
14.7.4. Scaling
14.7.5. A/V sync
14.7.6. Bitrate
14.7.7. Encoding example
14.7.8. Remuxing as MP4
14.7.9. Adding metadata tags
14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files
14.8.1. Format Constraints
14.8.1.1. Format Constraints
14.8.1.2. GOP Size Constraints
14.8.1.3. Bitrate Constraints
14.8.2. Output Options
14.8.2.1. Aspect Ratio
14.8.2.2. Maintaining A/V sync
14.8.2.3. Sample Rate Conversion
14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding
14.8.3.1. Introduction
14.8.3.2. lavcopts
14.8.3.3. Examples
14.8.3.4. Advanced Options
14.8.4. Encoding Audio
14.8.4.1. toolame
14.8.4.2. twolame
14.8.4.3. libavcodec
14.8.5. Putting it all Together
14.8.5.1. PAL DVD
14.8.5.2. NTSC DVD
14.8.5.3. PAL AVI Containing AC-3 Audio to DVD
14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD
14.8.5.5. PAL SVCD
14.8.5.6. NTSC SVCD
14.8.5.7. PAL VCD
14.8.5.8. NTSC VCD
A. How to report bugs
A.1. Report security releated bugs
A.2. How to fix bugs
A.3. How to do regression testing using Subversion
A.4. How to report bugs
A.5. Where to report bugs
A.6. What to report
A.6.1. System Information
A.6.2. Hardware and drivers
A.6.3. Configure problems
A.6.4. Compilation problems
A.6.5. Playback problems
A.6.6. Crashes
A.6.6.1. How to conserve information about a reproducible crash
A.6.6.2. How to extract meaningful information from a core dump
A.7. I know what I am doing...
B. Known bugs
B.1. Special system/CPU-specific bugs/problems
B.2. Various A-V sync and other audio problems
B.2.1. General audio delay or jerky sound + (exists with all or many files)
B.2.2. Audio delay/de-sync specific to one or a few files
B.2.3. No sound at all
B.2.4. No picture at all (just plain grey/green window)
B.2.5. Video-out problems
C. MPlayer skin format
C.1. Overview
C.1.1. Directories
C.1.2. Image formats
C.1.3. Skin components
C.1.4. Files
C.2. The skin file
C.2.1. Main window and playbar
C.2.2. Subwindow
C.2.3. Skin menu
C.3. Fonts
C.3.1. Symbols
C.4. GUI messages
C.5. Creating quality skins
D. History
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/install.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/install.html new file mode 100644 index 0000000..9dd1df8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/install.html @@ -0,0 +1,11 @@ +Chapter 2. Installation

Chapter 2. Installation

+A quick installation guide can be found in the README +file. Please read it first and then come back here for the rest of the gory +details. +

+In this section you will be guided through the compilation and configuration +process of MPlayer. It's not easy, but it won't +necessarily be hard. If you experience a behavior different from this +description, please search through this documentation and you'll find your +answers. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/intro.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/intro.html new file mode 100644 index 0000000..a4851d1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/intro.html @@ -0,0 +1,83 @@ +Chapter 1. Introduction

Chapter 1. Introduction

+MPlayer is a movie player for Linux (runs on +many other Unices, and non-x86 CPUs, see +Ports). +It plays most MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, +NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska files, supported by +many native, XAnim, RealPlayer, and Win32 DLL codecs. You can watch +VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora, +and MPEG-4 (DivX) movies too. Another big +feature of MPlayer is the wide range of +supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, +fbdev, AAlib, libcaca, DirectFB, but you can use GGI and SDL (and this way all +their drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and +Radeon, Mach64, Permedia3) too! Most of them support software or hardware +scaling, so you can enjoy movies in fullscreen. +MPlayer supports displaying through some +hardware MPEG decoder boards, such as the DVB and +DXR3/Hollywood+. And what about the nice big +antialiased shaded subtitles +(14 supported types) +with European/ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic, Korean +fonts, and the onscreen display (OSD)? +

+The player is rock solid playing damaged MPEG files (useful for some VCDs), +and it plays bad AVI files which are unplayable with the famous windows +media player. Even AVI files without index chunk are playable, and you can +temporarily rebuild their indexes with the -idx option, or +permanently with MEncoder, thus enabling +seeking! As you see, stability and quality are the most important things, +but the speed is also amazing. There is also a powerful filter system for +video and audio manipulation. +

+MEncoder (MPlayer's Movie +Encoder) is a simple movie encoder, designed to encode +MPlayer-playable movies +(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) +to other MPlayer-playable formats (see below). +It can encode with various codecs, like +MPEG-4 (DivX4) +(one or two passes), libavcodec, +PCM/MP3/VBR MP3 +audio. +

MEncoder features

  • + Encoding from the wide range of fileformats and decoders of + MPlayer +

  • + Encoding to all the codecs of FFmpeg's + libavcodec +

  • + Video encoding from V4L compatible TV tuners +

  • + Encoding/multiplexing to interleaved AVI files with proper index +

  • + Creating files from external audio stream +

  • + 1, 2 or 3 pass encoding +

  • + VBR MP3 audio +

    Important

    + VBR MP3 audio doesn't always play nicely on windows players! +

    +

  • + PCM audio +

  • + Stream copying +

  • + Input A/V synchronizing (PTS-based, can be disabled with + -mc 0 option) +

  • + fps correction with -ofps option (useful when encoding + 30000/1001 fps VOB to 24000/1001 fps AVI) +

  • + Using our very powerful filter system (crop, expand, flip, postprocess, + rotate, scale, rgb/yuv conversion) +

  • + Can encode DVD/VOBsub AND text subtitles + into the output file +

  • + Can rip DVD subtitles to VOBsub format +

+MPlayer and MEncoder +can be distributed under the terms of the GNU General Public License Version 2. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/linux.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/linux.html new file mode 100644 index 0000000..5b91e24 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/linux.html @@ -0,0 +1,60 @@ +12.1. Linux

12.1. Linux

+The main development platform is Linux on x86, although +MPlayer works on many other Linux ports. +Binary packages of MPlayer are available from several +sources. +However, none of these packages are supported. +Report problems to the authors, not to us. +

12.1.1. Debian packaging

+To build a Debian package, run the following command in the +MPlayer source directory: + +

fakeroot debian/rules binary

+ +If you want to pass custom options to configure, you can set up the +DEB_BUILD_OPTIONS environment variable. For instance, +if you want GUI and OSD menu support you would use: + +

DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary

+ +You can also pass some variables to the Makefile. For example, if you want +to compile with gcc 3.4 even if it's not the default compiler: + +

CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary

+ +To clean up the source tree run the following command: + +

fakeroot debian/rules clean

+ +As root you can then install the .deb package as usual: + +

dpkg -i ../mplayer_version.deb

+

+Christian Marillat has been making unofficial Debian packages of +MPlayer, MEncoder and +our binary codec packages for a while, you can (apt-)get them from +his homepage. +

12.1.2. RPM packaging

+Dominik Mierzejewski maintains the official RPM packages of +MPlayer for Fedora Core. They are available +from Livna repository. +

+Mandrake/Mandriva RPM packages are available from the +P.L.F.. +SuSE used to include a crippled version of MPlayer +in their distribution. They have removed it in their latest releases. You can +get working RPMs from +links2linux.de. +

12.1.3. ARM

+MPlayer works on Linux PDAs with ARM CPU e.g. Sharp +Zaurus, Compaq Ipaq. The easiest way to obtain +MPlayer is to get it from one of the +OpenZaurus package feeds. +If you want to compile it yourself, you should look at the +mplayer +and the +libavcodec +directory in the OpenZaurus distribution buildroot. These always have the latest +Makefile and patches used for building a SVN MPlayer. +If you need a GUI frontend, you can use xmms-embedded. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/macos.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/macos.html new file mode 100644 index 0000000..5e55478 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/macos.html @@ -0,0 +1,118 @@ +12.5. Mac OS

12.5. Mac OS

+MPlayer does not work on Mac OS versions before +10, but should compile out-of-the-box on Mac OS X 10.2 and up. +The preferred compiler is the Apple version of +GCC 3.x or later. +You can get the basic compilation environment by installing Apple's +Xcode. +If you have Mac OS X 10.3.9 or later and QuickTime 7 +you can use the macosx video output driver. +

+Unfortunately, this basic environment will not allow you to take advantage +of all the nice features of MPlayer. +For instance, in order to have OSD support compiled in, you will +need to have fontconfig +and freetype libraries +installed on your machine. Contrary to other Unixes such as most +Linux and BSD variants, OS X does not have a package system +that comes with the system. +

+There are at least two to choose from: +Fink and +MacPorts. +Both of them provide about the same service (i.e. a lot of packages to +choose from, dependency resolution, the ability to simply add/update/remove +packages, etc...). +Fink offers both precompiled binary packages or building everything from +source, whereas MacPorts only offers building from source. +The author of this guide chose MacPorts for the simple fact that its basic +setup was more lightweight. +Later examples will be based on MacPorts. +

+For instance, to compile MPlayer with OSD support: +

sudo port install pkgconfig

+This will install pkg-config, which is a system for +managing library compile/link flags. +MPlayer's configure script +uses it to properly detect libraries. +Then you can install fontconfig in a +similar way: +

sudo port install fontconfig

+Then you can proceed with launching MPlayer's +configure script (note the +PKG_CONFIG_PATH and PATH +environment variables so that configure finds the +libraries installed with MacPorts): +

+PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure
+

+

12.5.1. MPlayer OS X GUI

+You can get a native GUI for MPlayer together with +precompiled MPlayer binaries for Mac OS X from the +MPlayerOSX project, but be +warned: that project is not active anymore. +

+Fortunately, MPlayerOSX has been taken over +by a member of the MPlayer team. +Preview releases are available from our +download page +and an official release should arrive soon. +

+In order to build MPlayerOSX from source +yourself, you need the mplayerosx, the +main and a copy of the +main SVN module named +main_noaltivec. +mplayerosx is the GUI frontend, +main is MPlayer and +main_noaltivec is MPlayer built without AltiVec +support. +

+To check out SVN modules use: +

+svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
+svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main
+

+

+In order to build MPlayerOSX you will need to +set up something like this: +

+MPlayer_source_directory
+   |
+   |--->main           (MPlayer Subversion source)
+   |
+   |--->main_noaltivec (MPlayer Subversion source configured with --disable-altivec)
+   |
+   \--->mplayerosx     (MPlayer OS X Subversion source)
+

+You first need to build main and main_noaltivec. +

+To begin with, in order to ensure maximum backwards compatibility, set an +environment variable: +

export MACOSX_DEPLOYMENT_TARGET=10.3

+

+Then, configure: +

+If you configure for a G4 or later CPU with AltiVec support, do as follows: +

+./configure --disable-gl --disable-x11
+

+If you configure for a G3-powered machine without AltiVec, use: +

+./configure --disable-gl --disable-x11 --disable-altivec
+

+You may need to edit config.mak and change +-mcpu and -mtune +from 74XX to G3. +

+Continue with +

make

+then go to the mplayerosx directory and type +

make dist

+This will create a compressed .dmg archive +with the ready to use binary. +

+You can also use the Xcode 2.1 project; +the old project for Xcode 1.x does +not work anymore. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-dvd-mpeg4.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-dvd-mpeg4.html new file mode 100644 index 0000000..3d8f33e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-dvd-mpeg4.html @@ -0,0 +1,1092 @@ +14.1. Making a high quality MPEG-4 ("DivX") rip of a DVD movie

14.1. Making a high quality MPEG-4 ("DivX") + rip of a DVD movie

+One frequently asked question is "How do I make the highest quality rip +for a given size?". Another question is "How do I make the highest +quality DVD rip possible? I do not care about file size, I just want the best +quality." +

+The latter question is perhaps at least somewhat wrongly posed. After all, if +you do not care about file size, why not simply copy the entire MPEG-2 video +stream from the the DVD? Sure, your AVI will end up being 5GB, give +or take, but if you want the best quality and do not care about size, +this is certainly your best option. +

+In fact, the reason you want to transcode a DVD into MPEG-4 is +specifically because you do care about +file size. +

+It is difficult to offer a cookbook recipe on how to create a very high +quality DVD rip. There are several factors to consider, and you should +understand these details or else you are likely to end up disappointed +with your results. Below we will investigate some of these issues, and +then have a look at an example. We assume you are using +libavcodec to encode the video, +although the theory applies to other codecs as well. +

+If this seems to be too much for you, you should probably use one of the +many fine frontends that are listed in the +MEncoder section +of our related projects page. +That way, you should be able to achieve high quality rips without too much +thinking, because most of those tools are designed to take clever decisions +for you. +

14.1.1. Preparing to encode: Identifying source material and framerate

+Before you even think about encoding a movie, you need to take +several preliminary steps. +

+The first and most important step before you encode should be +determining what type of content you are dealing with. +If your source material comes from DVD or broadcast/cable/satellite +TV, it will be stored in one of two formats: NTSC for North +America and Japan, PAL for Europe, etc. +It is important to realize, however, that this is just the formatting for +presentation on a television, and often does +not correspond to the +original format of the movie. +Experience shows that NTSC material is a lot more difficult to encode, +because there more elements to identify in the source. +In order to produce a suitable encode, you need to know the original +format. +Failure to take this into account will result in various flaws in your +encode, including ugly combing (interlacing) artifacts and duplicated +or even lost frames. +Besides being ugly, the artifacts also harm coding efficiency: +You will get worse quality per unit bitrate. +

14.1.1.1. Identifying source framerate

+Here is a list of common types of source material, where you are +likely to find them, and their properties: +

  • + Standard Film: Produced for + theatrical display at 24fps. +

  • + PAL video: Recorded with a PAL + video camera at 50 fields per second. + A field consists of just the odd- or even-numbered lines of a + frame. + Television was designed to refresh these in alternation as a + cheap form of analog compression. + The human eye supposedly compensates for this, but once you + understand interlacing you will learn to see it on TV too and + never enjoy TV again. + Two fields do not make a + complete frame, because they are captured 1/50 of a second apart + in time, and thus they do not line up unless there is no motion. +

  • + NTSC Video: Recorded with an + NTSC video camera at 60000/1001 fields per second, or 60 fields per + second in the pre-color era. + Otherwise similar to PAL. +

  • + Animation: Usually drawn at + 24fps, but also comes in mixed-framerate varieties. +

  • + Computer Graphics (CG): Can be + any framerate, but some are more common than others; 24 and + 30 frames per second are typical for NTSC, and 25fps is typical + for PAL. +

  • + Old Film: Various lower + framerates. +

14.1.1.2. Identifying source material

+Movies consisting of frames are referred to as progressive, +while those consisting of independent fields are called +either interlaced or video - though this latter term is +ambiguous. +

+To further complicate matters, some movies will be a mix of +several of the above. +

+The most important distinction to make between all of these +formats is that some are frame-based, while others are +field-based. +Whenever a movie is prepared +for display on television (including DVD), it is converted to a +field-based format. +The various methods by which this can be done are collectively +referred to as "telecine", of which the infamous NTSC +"3:2 pulldown" is one variety. +Unless the original material was also field-based (and the same +fieldrate), you are getting the movie in a format other than the +original. +

There are several common types of pulldown:

  • + PAL 2:2 pulldown: The nicest of + them all. + Each frame is shown for the duration of two fields, by extracting the + even and odd lines and showing them in alternation. + If the original material is 24fps, this process speeds up the + movie by 4%. +

  • + PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: + Every 12th frame is shown for the duration of three fields, instead of + just two. + This avoids the 4% speedup issue, but makes the process much + more difficult to reverse. + It is usually seen in musical productions where adjusting the + speed by 4% would seriously damage the musical score. +

  • + NTSC 3:2 telecine: Frames are + shown alternately for the duration of 3 fields or 2 fields. + This gives a fieldrate 2.5 times the original framerate. + The result is also slowed down very slightly from 60 fields per + second to 60000/1001 fields per second to maintain NTSC fieldrate. +

  • + NTSC 2:2 pulldown: Used for + showing 30fps material on NTSC. + Nice, just like 2:2 PAL pulldown. +

+There are also methods for converting between NTSC and PAL video, +but such topics are beyond the scope of this guide. +If you encounter such a movie and want to encode it, your best +bet is to find a copy in the original format. +Conversion between these two formats is highly destructive and +cannot be reversed cleanly, so your encode will greatly suffer +if it is made from a converted source. +

+When video is stored on DVD, consecutive pairs of fields are +grouped as a frame, even though they are not intended to be shown +at the same moment in time. +The MPEG-2 standard used on DVD and digital TV provides a +way both to encode the original progressive frames and to store +the number of fields for which a frame should be shown in the +header of that frame. +If this method has been used, the movie will often be described +as "soft-telecined", since the process only directs the +DVD player to apply pulldown to the movie rather than altering +the movie itself. +This case is highly preferable since it can easily be reversed +(actually ignored) by the encoder, and since it preserves maximal +quality. +However, many DVD and broadcast production studios do not use +proper encoding techniques but instead produce movies with +"hard telecine", where fields are actually duplicated in the +encoded MPEG-2. +

+The procedures for dealing with these cases will be covered +later in this guide. +For now, we leave you with some guides to identifying which type +of material you are dealing with: +

NTSC regions:

  • + If MPlayer prints that the framerate + has changed to 24000/1001 when watching your movie, and never changes + back, it is almost certainly progressive content that has been + "soft telecined". +

  • + If MPlayer shows the framerate + switching back and forth between 24000/1001 and 30000/1001, and you see + "combing" at times, then there are several possibilities. + The 24000/1001 fps segments are almost certainly progressive + content, "soft telecined", but the 30000/1001 fps parts could be + either hard-telecined 24000/1001 fps content or 60000/1001 fields per second + NTSC video. + Use the same guidelines as the following two cases to determine which. +

  • + If MPlayer never shows the framerate + changing, and every single frame with motion appears combed, your + movie is NTSC video at 60000/1001 fields per second. +

  • + If MPlayer never shows the framerate + changing, and two frames out of every five appear combed, your + movie is "hard telecined" 24000/1001fps content. +

PAL regions:

  • + If you never see any combing, your movie is 2:2 pulldown. +

  • + If you see combing alternating in and out every half second, + then your movie is 2:2:2:2:2:2:2:2:2:2:2:3 pulldown. +

  • + If you always see combing during motion, then your movie is PAL + video at 50 fields per second. +

Hint:

+ MPlayer can slow down movie playback + with the -speed option or play it frame-by-frame. + Try using -speed 0.2 to watch the movie very + slowly or press the "." key repeatedly to play one frame at + a time and identify the pattern, if you cannot see it at full speed. +

14.1.2. Constant quantizer vs. multipass

+It is possible to encode your movie at a wide range of qualities. +With modern video encoders and a bit of pre-codec compression +(downscaling and denoising), it is possible to achieve very good +quality at 700 MB, for a 90-110 minute widescreen movie. +Furthermore, all but the longest movies can be encoded with near-perfect +quality at 1400 MB. +

+There are three approaches to encoding the video: constant bitrate +(CBR), constant quantizer, and multipass (ABR, or average bitrate). +

+The complexity of the frames of a movie, and thus the number of bits +required to compress them, can vary greatly from one scene to another. +Modern video encoders can adjust to these needs as they go and vary +the bitrate. +In simple modes such as CBR, however, the encoders do not know the +bitrate needs of future scenes and so cannot exceed the requested +average bitrate for long stretches of time. +More advanced modes, such as multipass encode, can take into account +the statistics from previous passes; this fixes the problem mentioned +above. +

Note:

+Most codecs which support ABR encode only support two pass encode +while some others such as x264, +Xvid +and libavcodec support +multipass, which slightly improves quality at each pass, +yet this improvement is no longer measurable nor noticeable after the +4th or so pass. +Therefore, in this section, two pass and multipass will be used +interchangeably. +

+In each of these modes, the video codec (such as +libavcodec) +breaks the video frame into 16x16 pixel macroblocks and then applies a +quantizer to each macroblock. The lower the quantizer, the better the +quality and higher the bitrate. +The method the movie encoder uses to determine +which quantizer to use for a given macroblock varies and is highly +tunable. (This is an extreme over-simplification of the actual +process, but the basic concept is useful to understand.) +

+When you specify a constant bitrate, the video codec will encode the video, +discarding +detail as much as necessary and as little as possible in order to remain +lower than the given bitrate. If you truly do not care about file size, +you could as well use CBR and specify a bitrate of infinity. (In +practice, this means a value high enough so that it poses no limit, like +10000Kbit.) With no real restriction on bitrate, the result is that +the codec will use the lowest +possible quantizer for each macroblock (as specified by +vqmin for +libavcodec, which is 2 by default). +As soon as you specify a +low enough bitrate that the codec +is forced to use a higher quantizer, then you are almost certainly ruining +the quality of your video. +In order to avoid that, you should probably downscale your video, according +to the method described later on in this guide. +In general, you should avoid CBR altogether if you care about quality. +

+With constant quantizer, the codec uses the same quantizer, as +specified by the vqscale option (for +libavcodec), on every macroblock. +If you want the highest quality rip possible, again ignoring bitrate, +you can use vqscale=2. +This will yield the same bitrate and PSNR (peak signal-to-noise ratio) +as CBR with +vbitrate=infinity and the default vqmin +of 2. +

+The problem with constant quantizing is that it uses the given quantizer +whether the macroblock needs it or not. That is, it might be possible +to use a higher quantizer on a macroblock without sacrificing visual +quality. Why waste the bits on an unnecessarily low quantizer? Your +CPU has as many cycles as there is time, but there is only so many bits +on your hard disk. +

+With a two pass encode, the first pass will rip the movie as though it +were CBR, but it will keep a log of properties for each frame. This +data is then used during the second pass in order to make intelligent +decisions about which quantizers to use. During fast action or high +detail scenes, higher quantizers will likely be used, and during +slow moving or low detail scenes, lower quantizers will be used. +Normally, the amount of motion is much more important than the +amount of detail. +

+If you use vqscale=2, then you are wasting bits. If you +use vqscale=3, then you are not getting the highest +quality rip. Suppose you rip a DVD at vqscale=3, and +the result is 1800Kbit. If you do a two pass encode with +vbitrate=1800, the resulting video will have +higher quality for the +same bitrate. +

+Since you are now convinced that two pass is the way to go, the real +question now is what bitrate to use? The answer is that there is no +single answer. Ideally you want to choose a bitrate that yields the +best balance between quality and file size. This is going to vary +depending on the source video. +

+If size does not matter, a good starting point for a very high quality +rip is about 2000Kbit plus or minus 200Kbit. +For fast action or high detail source video, or if you just have a very +critical eye, you might decide on 2400 or 2600. +For some DVDs, you might not notice a difference at 1400Kbit. It is a +good idea to experiment with scenes at different bitrates to get a feel. +

+If you aim at a certain size, you will have to somehow calculate the bitrate. +But before that, you need to know how much space you should reserve for the +audio track(s), so you should +rip those first. +You can compute the bitrate with the following equation: +bitrate = (target_size_in_Mbytes - sound_size_in_Mbytes) * +1024 * 1024 / length_in_secs * 8 / 1000 +For instance, to squeeze a two-hour movie onto a 702MB CD, with 60MB +of audio track, the video bitrate will have to be: +(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 += 740kbps +

14.1.3. Constraints for efficient encoding

+Due to the nature of MPEG-type compression, there are various +constraints you should follow for maximal quality. +MPEG splits the video up into 16x16 squares called macroblocks, +each composed of 4 8x8 blocks of luma (intensity) information and two +half-resolution 8x8 chroma (color) blocks (one for red-cyan axis and +the other for the blue-yellow axis). +Even if your movie width and height are not multiples of 16, the +encoder will use enough 16x16 macroblocks to cover the whole picture +area, and the extra space will go to waste. +So in the interests of maximizing quality at a fixed filesize, it is +a bad idea to use dimensions that are not multiples of 16. +

+Most DVDs also have some degree of black borders at the edges. Leaving +these in place will hurt quality a lot +in several ways. +

  1. + MPEG-type compression is highly dependent on frequency domain + transformations, in particular the Discrete Cosine Transform (DCT), + which is similar to the Fourier transform. This sort of encoding is + efficient for representing patterns and smooth transitions, but it + has a hard time with sharp edges. In order to encode them it must + use many more bits, or else an artifact known as ringing will + appear. +

    + The frequency transform (DCT) takes place separately on each + macroblock (actually each block), so this problem only applies when + the sharp edge is inside a block. If your black borders begin + exactly at multiple-of-16 pixel boundaries, this is not a problem. + However, the black borders on DVDs rarely come nicely aligned, so + in practice you will always need to crop to avoid this penalty. +

+In addition to frequency domain transforms, MPEG-type compression uses +motion vectors to represent the change from one frame to the next. +Motion vectors naturally work much less efficiently for new content +coming in from the edges of the picture, because it is not present in +the previous frame. As long as the picture extends all the way to the +edge of the encoded region, motion vectors have no problem with +content moving out the edges of the picture. However, in the presence +of black borders, there can be trouble: +

  1. + For each macroblock, MPEG-type compression stores a vector + identifying which part of the previous frame should be copied into + this macroblock as a base for predicting the next frame. Only the + remaining differences need to be encoded. If a macroblock spans the + edge of the picture and contains part of the black border, then + motion vectors from other parts of the picture will overwrite the + black border. This means that lots of bits must be spent either + re-blackening the border that was overwritten, or (more likely) a + motion vector will not be used at all and all the changes in this + macroblock will have to be coded explicitly. Either way, encoding + efficiency is greatly reduced. +

    + Again, this problem only applies if black borders do not line up on + multiple-of-16 boundaries. +

  2. + Finally, suppose we have a macroblock in the interior of the + picture, and an object is moving into this block from near the edge + of the image. MPEG-type coding cannot say "copy the part that is + inside the picture but not the black border." So the black border + will get copied inside too, and lots of bits will have to be spent + encoding the part of the picture that is supposed to be there. +

    + If the picture runs all the way to the edge of the encoded area, + MPEG has special optimizations to repeatedly copy the pixels at the + edge of the picture when a motion vector comes from outside the + encoded area. This feature becomes useless when the movie has black + borders. Unlike problems 1 and 2, aligning the borders at multiples + of 16 does not help here. +

  3. + Despite the borders being entirely black and never changing, there + is at least a minimal amount of overhead involved in having more + macroblocks. +

+For all of these reasons, it is recommended to fully crop black +borders. Further, if there is an area of noise/distortion at the edge +of the picture, cropping this will improve encoding efficiency as +well. Videophile purists who want to preserve the original as close as +possible may object to this cropping, but unless you plan to encode at +constant quantizer, the quality you gain from cropping will +considerably exceed the amount of information lost at the edges. +

14.1.4. Cropping and Scaling

+Recall from the previous section that the final picture size you +encode should be a multiple of 16 (in both width and height). +This can be achieved by cropping, scaling, or a combination of both. +

+When cropping, there are a few guidelines that must be followed to +avoid damaging your movie. +The normal YUV format, 4:2:0, stores chroma (color) information +subsampled, i.e. chroma is only sampled half as often in each +direction as luma (intensity) information. +Observe this diagram, where L indicates luma sampling points and C +chroma. +

LLLLLLLL
CCCC
LLLLLLLL
LLLLLLLL
CCCC
LLLLLLLL

+As you can see, rows and columns of the image naturally come in pairs. +Thus your crop offsets and dimensions must be +even numbers. +If they are not, the chroma will no longer line up correctly with the +luma. +In theory, it is possible to crop with odd offsets, but it requires +resampling the chroma which is potentially a lossy operation and not +supported by the crop filter. +

+Further, interlaced video is sampled as follows: +

Top fieldBottom field
LLLLLLLL        
CCCC        
        LLLLLLLL
LLLLLLLL        
        CCCC
        LLLLLLLL
LLLLLLLL        
CCCC        
        LLLLLLLL
LLLLLLLL        
        CCCC
        LLLLLLLL

+As you can see, the pattern does not repeat until after 4 lines. +So for interlaced video, your y-offset and height for cropping must +be multiples of 4. +

+Native DVD resolution is 720x480 for NTSC, and 720x576 for PAL, but +there is an aspect flag that specifies whether it is full-screen (4:3) or +wide-screen (16:9). Many (if not most) widescreen DVDs are not strictly +16:9, and will be either 1.85:1 or 2.35:1 (cinescope). This means that +there will be black bands in the video that will need to be cropped out. +

+MPlayer provides a crop detection filter that +will determine the crop rectangle (-vf cropdetect). +Run MPlayer with +-vf cropdetect and it will print out the crop +settings to remove the borders. +You should let the movie run long enough that the whole picture +area is used, in order to get accurate crop values. +

+Then, test the values you get with MPlayer, +using the command line which was printed by +cropdetect, and adjust the rectangle as needed. +The rectangle filter can help by allowing you to +interactively position the crop rectangle over your movie. +Remember to follow the above divisibility guidelines so that you +do not misalign the chroma planes. +

+In certain cases, scaling may be undesirable. +Scaling in the vertical direction is difficult with interlaced +video, and if you wish to preserve the interlacing, you should +usually refrain from scaling. +If you will not be scaling but you still want to use multiple-of-16 +dimensions, you will have to overcrop. +Do not undercrop, since black borders are very bad for encoding! +

+Because MPEG-4 uses 16x16 macroblocks, you will want to make sure that each +dimension of the video you are encoding is a multiple of 16 or else you +will be degrading quality, especially at lower bitrates. You can do this +by rounding the width and height of the crop rectangle down to the nearest +multiple of 16. +As stated earlier, when cropping, you will want to increase the Y offset by +half the difference of the old and the new height so that the resulting +video is taken from the center of the frame. And because of the way DVD +video is sampled, make sure the offset is an even number. (In fact, as a +rule, never use odd values for any parameter when you are cropping and +scaling video.) If you are not comfortable throwing a few extra pixels +away, you might prefer instead to scale the video instead. We will look +at this in our example below. +You can actually let the cropdetect filter do all of the +above for you, as it has an optional round parameter that +is equal to 16 by default. +

+Also, be careful about "half black" pixels at the edges. Make sure you +crop these out too, or else you will be wasting bits there that +are better spent elsewhere. +

+After all is said and done, you will probably end up with video whose pixels +are not quite 1.85:1 or 2.35:1, but rather something close to that. You +could calculate the new aspect ratio manually, but +MEncoder offers an option for libavcodec called autoaspect +that will do this for you. Absolutely do not scale this video up in order to +square the pixels unless you like to waste your hard disk space. Scaling +should be done on playback, and the player will use the aspect stored in +the AVI to determine the correct resolution. +Unfortunately, not all players enforce this auto-scaling information, +therefore you may still want to rescale. +

14.1.5. Choosing resolution and bitrate

+If you will not be encoding in constant quantizer mode, you need to +select a bitrate. +The concept of bitrate is quite simple. +It is the (average) number of bits that will be consumed to store your +movie, per second. +Normally bitrate is measured in kilobits (1000 bits) per second. +The size of your movie on disk is the bitrate times the length of the +movie in time, plus a small amount of "overhead" (see the section on +the AVI container +for instance). +Other parameters such as scaling, cropping, etc. will +not alter the file size unless you +change the bitrate as well!. +

+Bitrate does not scale proportionally +to resolution. +That is to say, a 320x240 file at 200 kbit/sec will not be the same +quality as the same movie at 640x480 and 800 kbit/sec! +There are two reasons for this: +

  1. + Perceptual: You notice MPEG + artifacts more if they are scaled up bigger! + Artifacts appear on the scale of blocks (8x8). + Your eye will not see errors in 4800 small blocks as easily as it + sees errors in 1200 large blocks (assuming you will be scaling both + to fullscreen). +

  2. + Theoretical: When you scale down + an image but still use the same size (8x8) blocks for the frequency + space transform, you move more data to the high frequency bands. + Roughly speaking, each pixel contains more of the detail than it + did before. + So even though your scaled-down picture contains 1/4 the information + in the spacial directions, it could still contain a large portion + of the information in the frequency domain (assuming that the high + frequencies were underutilized in the original 640x480 image). +

+

+Past guides have recommended choosing a bitrate and resolution based +on a "bits per pixel" approach, but this is usually not valid due to +the above reasons. +A better estimate seems to be that bitrates scale proportional to the +square root of resolution, so that 320x240 and 400 kbit/sec would be +comparable to 640x480 at 800 kbit/sec. +However this has not been verified with theoretical or empirical +rigor. +Further, given that movies vary greatly with regard to noise, detail, +degree of motion, etc., it is futile to make general recommendations +for bits per length-of-diagonal (the analog of bits per pixel, +using the square root). +

+So far we have discussed the difficulty of choosing a bitrate and +resolution. +

14.1.5.1. Computing the resolution

+The following steps will guide you in computing the resolution of your +encode without distorting the video too much, by taking into account several +types of information about the source video. +First, you should compute the encoded aspect ratio: +ARc = (Wc x (ARa / PRdvd )) / Hc + +

where:

  • + Wc and Hc are the width and height of the cropped video, +

  • + ARa is the displayed aspect ratio, which usually is 4/3 or 16/9, +

  • + PRdvd is the pixel ratio of the DVD which is equal to 1.25=(720/576) for PAL + DVDs and 1.5=(720/480) for NTSC DVDs, +

+

+Then, you can compute the X and Y resolution, according to a certain +Compression Quality (CQ) factor: +ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16 +and +ResX = INT( ResY * ARc / 16) * 16 +

+Okay, but what is the CQ? +The CQ represents the number of bits per pixel and per frame of the encode. +Roughly speaking, the greater the CQ, the less the likelihood to see +encoding artifacts. +However, if you have a target size for your movie (1 or 2 CDs for instance), +there is a limited total number of bits that you can spend; therefore it is +necessary to find a good tradeoff between compressibility and quality. +

+The CQ depends on the bitrate, the video codec efficiency and the +movie resolution. +In order to raise the CQ, typically you would downscale the movie given that the +bitrate is computed in function of the target size and the length of the +movie, which are constant. +With MPEG-4 ASP codecs such as Xvid +and libavcodec, a CQ below 0.18 +usually results in a pretty blocky picture, because there +are not enough bits to code the information of each macroblock. (MPEG4, like +many other codecs, groups pixels by blocks of several pixels to compress the +image; if there are not enough bits, the edges of those blocks are +visible.) +It is therefore wise to take a CQ ranging from 0.20 to 0.22 for a 1 CD rip, +and 0.26-0.28 for 2 CDs rip with standard encoding options. +More advanced encoding options such as those listed here for +libavcodec +and +Xvid +should make it possible to get the same quality with CQ ranging from +0.18 to 0.20 for a 1 CD rip, and 0.24 to 0.26 for a 2 CD rip. +With MPEG-4 AVC codecs such as x264, +you can use a CQ ranging from 0.14 to 0.16 with standard encoding options, +and should be able to go as low as 0.10 to 0.12 with +x264's advanced encoding settings. +

+Please take note that the CQ is just an indicative figure, as depending on +the encoded content, a CQ of 0.18 may look just fine for a Bergman, contrary +to a movie such as The Matrix, which contains many high-motion scenes. +On the other hand, it is worthless to raise CQ higher than 0.30 as you would +be wasting bits without any noticeable quality gain. +Also note that as mentioned earlier in this guide, low resolution videos +need a bigger CQ (compared to, for instance, DVD resolution) to look good. +

14.1.6. Filtering

+Learning how to use MEncoder's video filters +is essential to producing good encodes. +All video processing is performed through the filters -- cropping, +scaling, color adjustment, noise removal, sharpening, deinterlacing, +telecine, inverse telecine, and deblocking, just to name a few. +Along with the vast number of supported input formats, the variety of +filters available in MEncoder is one of its +main advantages over other similar programs. +

+Filters are loaded in a chain using the -vf option: + +

-vf filter1=options,filter2=options,...

+ +Most filters take several numeric options separated by colons, but +the syntax for options varies from filter to filter, so read the man +page for details on the filters you wish to use. +

+Filters operate on the video in the order they are loaded. +For example, the following chain: + +

-vf crop=688:464:12:4,scale=640:464

+ +will first crop the 688x464 region of the picture with upper-left +corner at (12,4), and then scale the result down to 640x464. +

+Certain filters need to be loaded at or near the beginning of the +filter chain, in order to take advantage of information from the +video decoder that will be lost or invalidated by other filters. +The principal examples are pp (postprocessing, only +when it is performing deblock or dering operations), +spp (another postprocessor to remove MPEG artifacts), +pullup (inverse telecine), and +softpulldown (for converting soft telecine to hard telecine). +

+In general, you want to do as little filtering as possible to the movie +in order to remain close to the original DVD source. Cropping is often +necessary (as described above), but avoid to scale the video. Although +scaling down is sometimes preferred to using higher quantizers, we want +to avoid both these things: remember that we decided from the start to +trade bits for quality. +

+Also, do not adjust gamma, contrast, brightness, etc. What looks good +on your display may not look good on others. These adjustments should +be done on playback only. +

+One thing you might want to do, however, is pass the video through a +very light denoise filter, such as -vf hqdn3d=2:1:2. +Again, it is a matter of putting those bits to better use: why waste them +encoding noise when you can just add that noise back in during playback? +Increasing the parameters for hqdn3d will further +improve compressibility, but if you increase the values too much, you +risk degrading the image visibily. The suggested values above +(2:1:2) are quite conservative; you should feel free to +experiment with higher values and observe the results for yourself. +

14.1.7. Interlacing and Telecine

+Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some +processing must be done to this 24 fps video to make it run at the correct +NTSC framerate. The process is called 3:2 pulldown, commonly referred to +as telecine (because pulldown is often applied during the telecine +process), and, naively described, it works by slowing the film down to +24000/1001 fps, and repeating every fourth frame. +

+No special processing, however, is done to the video for PAL DVDs, which +run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown, +but this does not become an issue in practice.) The 24 fps film is simply +played back at 25 fps. The result is that the movie runs slightly faster, +but unless you are an alien, you probably will not notice the difference. +Most PAL DVDs have pitch-corrected audio, so when they are played back at +25 fps things will sound right, even though the audio track (and hence the +whole movie) has a running time that is 4% less than NTSC DVDs. +

+Because the video in a PAL DVD has not been altered, you need not worry +much about framerate. The source is 25 fps, and your rip will be 25 +fps. However, if you are ripping an NTSC DVD movie, you may need to +apply inverse telecine. +

+For movies shot at 24 fps, the video on the NTSC DVD is either telecined +30000/1001, or else it is progressive 24000/1001 fps and intended to be +telecined on-the-fly by a DVD player. On the other hand, TV series are usually +only interlaced, not telecined. This is not a hard rule: some TV series +are interlaced (such as Buffy the Vampire Slayer) whereas some are a +mixture of progressive and interlaced (such as Angel, or 24). +

+It is highly recommended that you read the section on +How to deal with telecine and interlacing in NTSC DVDs +to learn how to handle the different possibilities. +

+However, if you are mostly just ripping movies, likely you are either +dealing with 24 fps progressive or telecined video, in which case you can +use the pullup filter -vf +pullup,softskip. +

14.1.8. Encoding interlaced video

+If the movie you want to encode is interlaced (NTSC video or +PAL video), you will need to choose whether you want to +deinterlace or not. +While deinterlacing will make your movie usable on progressive +scan displays such a computer monitors and projectors, it comes +at a cost: The fieldrate of 50 or 60000/1001 fields per second +is halved to 25 or 30000/1001 frames per second, and roughly half of +the information in your movie will be lost during scenes with +significant motion. +

+Therefore, if you are encoding for high quality archival purposes, +it is recommended not to deinterlace. +You can always deinterlace the movie at playback time when +displaying it on progressive scan devices. +The power of currently available computers forces players to use a +deinterlacing filter, which results in a slight degradation in +image quality. +But future players will be able to mimic the interlaced display of +a TV, deinterlacing to full fieldrate and interpolating 50 or +60000/1001 entire frames per second from the interlaced video. +

+Special care must be taken when working with interlaced video: +

  1. + Crop height and y-offset must be multiples of 4. +

  2. + Any vertical scaling must be performed in interlaced mode. +

  3. + Postprocessing and denoising filters may not work as expected + unless you take special care to operate them a field at a time, + and they may damage the video if used incorrectly. +

+With these things in mind, here is our first example: +

+mencoder capture.avi -mc 0 -oac lavc -ovc lavc -lavcopts \
+    vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
+

+Note the ilme and ildct options. +

14.1.9. Notes on Audio/Video synchronization

+MEncoder's audio/video synchronization +algorithms were designed with the intention of recovering files with +broken sync. +However, in some cases they can cause unnecessary skipping and duplication of +frames, and possibly slight A/V desync, when used with proper input +(of course, A/V sync issues apply only if you process or copy the +audio track while transcoding the video, which is strongly encouraged). +Therefore, you may have to switch to basic A/V sync with +the -mc 0 option, or put this in your +~/.mplayer/mencoder config file, as long as +you are only working with good sources (DVD, TV capture, high quality +MPEG-4 rips, etc) and not broken ASF/RM/MOV files. +

+If you want to further guard against strange frame skips and +duplication, you can use both -mc 0 and +-noskip. +This will prevent all A/V sync, and copy frames +one-to-one, so you cannot use it if you will be using any filters that +unpredictably add or drop frames, or if your input file has variable +framerate! +Therefore, using -noskip is not in general recommended. +

+The so-called "three-pass" audio encoding which +MEncoder supports has been reported to cause A/V +desync. +This will definitely happen if it is used in conjunction with certain +filters, therefore, it is now recommended not to +use three-pass audio mode. +This feature is only left for compatibility purposes and for expert +users who understand when it is safe to use and when it is not. +If you have never heard of three-pass mode before, forget that we +even mentioned it! +

+There have also been reports of A/V desync when encoding from stdin +with MEncoder. +Do not do this! Always use a file or CD/DVD/etc device as input. +

14.1.10. Choosing the video codec

+Which video codec is best to choose depends on several factors, +like size, quality, streamability, usability and popularity, some of +which widely depend on personal taste and technical constraints. +

  • + Compression efficiency: + It is quite easy to understand that most newer-generation codecs are + made to increase quality and compression. + Therefore, the authors of this guide and many other people suggest that + you cannot go wrong + [2] + when choosing MPEG-4 AVC codecs like + x264 instead of MPEG-4 ASP codecs + such as libavcodec MPEG-4 or + Xvid. + (Advanced codec developers may be interested in reading Michael + Niedermayer's opinion on + "why MPEG4-ASP sucks".) + Likewise, you should get better quality using MPEG-4 ASP than you + would with MPEG-2 codecs. +

    + However, newer codecs which are in heavy development can suffer from + bugs which have not yet been noticed and which can ruin an encode. + This is simply the tradeoff for using bleeding-edge technology. +

    + What is more, beginning to use a new codec requires that you spend some + time becoming familiar with its options, so that you know what + to adjust to achieve a desired picture quality. +

  • + Hardware compatibility: + It usually takes a long time for standalone video players to begin to + include support for the latest video codecs. + As a result, most only support MPEG-1 (like VCD, XVCD and KVCD), MPEG-2 + (like DVD, SVCD and KVCD) and MPEG-4 ASP (like DivX, + libavcodec's LMP4 and + Xvid) + (Beware: Usually, not all MPEG-4 ASP features are supported). + Please refer to the technical specs of your player (if they are available), + or google around for more information. +

  • + Best quality per encoding time: + Codecs that have been around for some time (such as + libavcodec MPEG-4 and + Xvid) are usually heavily + optimized with all kinds of smart algorithms and SIMD assembly code. + That is why they tend to yield the best quality per encoding time ratio. + However, they may have some very advanced options that, if enabled, + will make the encode really slow for marginal gains. +

    + If you are after blazing speed you should stick around the default + settings of the video codec (although you should still try the other + options which are mentioned in other sections of this guide). +

    + You may also consider choosing a codec which can do multi-threaded + processing, though this is only useful for users of machines with + several CPUs. + libavcodec MPEG-4 does + allow that, but speed gains are limited, and there is a slight + negative effect on picture quality. + Xvid's multi-threaded encoding, + activated by the threads option, can be used to + boost encoding speed — by about 40-60% in typical cases — + with little if any picture degradation. + x264 also allows multi-threaded + encoding, which currently speeds up encoding by 94% per CPU core while + lowering PSNR between 0.005dB and 0.01dB on a typical setup. +

  • + Personal taste: + This is where it gets almost irrational: For the same reason that some + hung on to DivX 3 for years when newer codecs were already doing wonders, + some folks will prefer Xvid + or libavcodec MPEG-4 over + x264. +

    + You should make your own judgement; do not take advice from people who + swear by one codec. + Take a few sample clips from raw sources and compare different + encoding options and codecs to find one that suits you best. + The best codec is the one you master, and the one that looks + best to your eyes on your display + [3]! +

+Please refer to the section +selecting codecs and container formats +to get a list of supported codecs. +

14.1.11. Audio

+Audio is a much simpler problem to solve: if you care about quality, just +leave it as is. +Even AC-3 5.1 streams are at most 448Kbit/s, and they are worth every bit. +You might be tempted to transcode the audio to high quality Vorbis, but +just because you do not have an A/V receiver for AC-3 pass-through today +does not mean you will not have one tomorrow. Future-proof your DVD rips by +preserving the AC-3 stream. +You can keep the AC-3 stream either by copying it directly into the video +stream during the encoding. +You can also extract the AC-3 stream in order to mux it into containers such +as NUT or Matroska. +

+mplayer source_file.vob -aid 129 -dumpaudio -dumpfile sound.ac3
+

+will dump into the file sound.ac3 the +audio track number 129 from the file +source_file.vob (NB: DVD VOB files +usually use a different audio numbering, +which means that the VOB audio track 129 is the 2nd audio track of the file). +

+But sometimes you truly have no choice but to further compress the +sound so that more bits can be spent on the video. +Most people choose to compress audio with either MP3 or Vorbis audio codecs. +While the latter is a very space-efficient codec, MP3 is better supported +by hardware players, although this trend is changing. +

+Do not use -nosound when encoding +a file with audio, even if you will be encoding and muxing audio +separately later. +Though it may work in ideal cases, using -nosound is +likely to hide some problems in your encoding command line setting. +In other words, having a soundtrack during your encode assures you that, +provided you do not see messages such as +“Too many audio packets in the bufferâ€, you will be able +to get proper sync. +

+You need to have MEncoder process the sound. +You can for example copy the orignal soundtrack during the encode with +-oac copy or convert it to a "light" 4 kHz mono WAV +PCM with -oac pcm -channels 1 -srate 4000. +Otherwise, in some cases, it will generate a video file that will not sync +with the audio. +Such cases are when the number of video frames in the source file does +not match up to the total length of audio frames or whenever there +are discontinuities/splices where there are missing or extra audio frames. +The correct way to handle this kind of problem is to insert silence or +cut audio at these points. +However MPlayer cannot do that, so if you +demux the AC-3 audio and encode it with a separate app (or dump it to PCM with +MPlayer), the splices will be left incorrect +and the only way to correct them is to drop/dup video frames at the +splice. +As long as MEncoder sees the audio when it is +encoding the video, it can do this dropping/duping (which is usually OK +since it takes place at full black/scenechange), but if +MEncoder cannot see the audio, it will just +process all frames as-is and they will not fit the final audio stream when +you for example merge your audio and video track into a Matroska file. +

+First of all, you will have to convert the DVD sound into a WAV file that the +audio codec can use as input. +For example: +

+mplayer source_file.vob -ao pcm:file=destination_sound.wav \
+    -vc dummy -aid 1 -vo null
+

+will dump the second audio track from the file +source_file.vob into the file +destination_sound.wav. +You may want to normalize the sound before encoding, as DVD audio tracks +are commonly recorded at low volumes. +You can use the tool normalize for instance, +which is available in most distributions. +If you are using Windows, a tool such as BeSweet +can do the same job. +You will compress in either Vorbis or MP3. +For example: +

oggenc -q1 destination_sound.wav

+will encode destination_sound.wav with +the encoding quality 1, which is roughly equivalent to 80Kb/s, and +is the minimum quality at which you should encode if you care about +quality. +Please note that MEncoder currently cannot +mux Vorbis audio tracks +into the output file because it only supports AVI and MPEG +containers as an output, each of which may lead to audio/video +playback synchronization problems with some players when the AVI file +contain VBR audio streams such as Vorbis. +Do not worry, this document will show you how you can do that with third +party programs. +

14.1.12. Muxing

+Now that you have encoded your video, you will most likely want +to mux it with one or more audio tracks into a movie container, such +as AVI, MPEG, Matroska or NUT. +MEncoder is currently only able to natively output +audio and video into MPEG and AVI container formats. +for example: +

+mencoder -oac copy -ovc copy  -o output_movie.avi \
+    -audiofile input_audio.mp2 input_video.avi
+

+This would merge the video file input_video.avi +and the audio file input_audio.mp2 +into the AVI file output_movie.avi. +This command works with MPEG-1 layer I, II and III (more commonly known +as MP3) audio, WAV and a few other audio formats too. +

+MEncoder features experimental support for +libavformat, which is a +library from the FFmpeg project that supports muxing and demuxing +a variety of containers. +For example: +

+mencoder -oac copy -ovc copy -o output_movie.asf -audiofile input_audio.mp2 \
+    input_video.avi -of lavf -lavfopts format=asf
+

+This will do the same thing as the previous example, except that +the output container will be ASF. +Please note that this support is highly experimental (but getting +better every day), and will only work if you compiled +MPlayer with the support for +libavformat enabled (which +means that a pre-packaged binary version will not work in most cases). +

14.1.12.1. Improving muxing and A/V sync reliability

+You may experience some serious A/V sync problems while trying to mux +your video and some audio tracks, where no matter how you adjust the +audio delay, you will never get proper sync. +That may happen when you use some video filters that will drop or +duplicate some frames, like the inverse telecine filters. +It is strongly encouraged to append the harddup video +filter at the end of the filter chain to avoid this kind of problem. +

+Without harddup, if MEncoder +wants to duplicate a frame, it relies on the muxer to put a mark on the +container so that the last frame will be displayed again to maintain +sync while writing no actual frame. +With harddup, MEncoder +will instead just push the last frame displayed again into the filter +chain. +This means that the encoder receives the exact +same frame twice, and compresses it. +This will result in a slightly bigger file, but will not cause problems +when demuxing or remuxing into other container formats. +

+You may also have no choice but to use harddup with +container formats that are not too tightly linked with +MEncoder such as the ones supported through +libavformat, which may not +support frame duplication at the container level. +

14.1.12.2. Limitations of the AVI container

+Although it is the most widely-supported container format after MPEG-1, +AVI also has some major drawbacks. +Perhaps the most obvious is the overhead. +For each chunk of the AVI file, 24 bytes are wasted on headers and index. +This translates into a little over 5 MB per hour, or 1-2.5% +overhead for a 700 MB movie. This may not seem like much, but it could +mean the difference between being able to use 700 kbit/sec video or +714 kbit/sec, and every bit of quality counts. +

+In addition this gross inefficiency, AVI also has the following major +limitations: +

  1. + Only fixed-fps content can be stored. This is particularly limiting + if the original material you want to encode is mixed content, for + example a mix of NTSC video and film material. + Actually there are hacks that can be used to store mixed-framerate + content in AVI, but they increase the (already huge) overhead + fivefold or more and so are not practical. +

  2. + Audio in AVI files must be either constant-bitrate (CBR) or + constant-framesize (i.e. all frames decode to the same number of + samples). + Unfortunately, the most efficient codec, Vorbis, does not meet + either of these requirements. + Therefore, if you plan to store your movie in AVI, you will have to + use a less efficient codec such as MP3 or AC-3. +

+Having said all that, MEncoder does not +currently support variable-fps output or Vorbis encoding. +Therefore, you may not see these as limitations if +MEncoder is the +only tool you will be using to produce your encodes. +However, it is possible to use MEncoder +only for video encoding, and then use external tools to encode +audio and mux it into another container format. +

14.1.12.3. Muxing into the Matroska container

+Matroska is a free, open standard container format, aiming +to offer a lot of advanced features, which older containers +like AVI cannot handle. +For example, Matroska supports variable bitrate audio content +(VBR), variable framerates (VFR), chapters, file attachments, +error detection code (EDC) and modern A/V Codecs like "Advanced Audio +Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing +handled by AVI. +

+The tools required to create Matroska files are collectively called +mkvtoolnix, and are available for most +Unix platforms as well as Windows. +Because Matroska is an open standard you may find other +tools that suit you better, but since mkvtoolnix is the most +common, and is supported by the Matroska team itself, we will +only cover its usage. +

+Probably the easiest way to get started with Matroska is to use +MMG, the graphical frontend shipped with +mkvtoolnix, and follow the +guide to mkvmerge GUI (mmg) +

+You may also mux audio and video files using the command line: +

+mkvmerge -o output.mkv input_video.avi input_audio1.mp3 input_audio2.ac3
+

+This would merge the video file input_video.avi +and the two audio files input_audio1.mp3 +and input_audio2.ac3 into the Matroska +file output.mkv. +Matroska, as mentioned earlier, is able to do much more than that, like +multiple audio tracks (including fine-tuning of audio/video +synchronization), chapters, subtitles, splitting, etc... +Please refer to the documentation of those applications for +more details. +



[2] + Be careful, however: Decoding DVD-resolution MPEG-4 AVC videos + requires a fast machine (i.e. a Pentium 4 over 1.5GHz or a Pentium M + over 1GHz). +

[3] + The same encode may not look the same on someone else's monitor or + when played back by a different decoder, so future-proof your encodes by + playing them back on different setups. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-images.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-images.html new file mode 100644 index 0000000..73c6c48 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-images.html @@ -0,0 +1,79 @@ +13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)

13.8. Encoding from multiple input image files (JPEG, PNG, TGA, etc.)

+MEncoder is capable of creating movies from one +or more JPEG, PNG, TGA, or other image files. With simple framecopy it can +create MJPEG (Motion JPEG), MPNG (Motion PNG) or MTGA (Motion TGA) files. +

Explanation of the process:

  1. + MEncoder decodes the input + image(s) with libjpeg (when decoding + PNGs, it will use libpng). +

  2. + MEncoder then feeds the decoded image to the + chosen video compressor (DivX4, Xvid, FFmpeg msmpeg4, etc.). +

Examples.  +The explanation of the -mf option is in the man page. + +

+Creating an MPEG-4 file from all the JPEG files in the current directory: +

+mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \
+    -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +

+Creating an MPEG-4 file from some JPEG files in the current directory: +

+mencoder mf://frame001.jpg,frame002.jpg -mf w=800:h=600:fps=25:type=jpg \
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +

+Creating an MPEG-4 file from explicit list of JPEG files (list.txt in current +directory contains the list of files to use as source, one per line): +

+mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \ 
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
+

+

+ +You can mix different types of images, regardless of the method you use +— individual filenames, wildcard or file with list — provided of +course they have the same dimensions. +So you can e.g. take title frame from PNG file, +and then put a slideshow of your JPEG photos. + +

+Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current +directory: +

+mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi
+

+

+ +

+Creating an uncompressed file from all the PNG files in the current directory: +

+mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi
+

+

+ +

Note

+Width must be integer multiple of 4, it is a limitation of the RAW RGB AVI +format. +

+ +

+Creating a Motion PNG (MPNG) file from all the PNG files in the current +directory: +

+mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi

+

+ +

+Creating a Motion TGA (MTGA) file from all the TGA files in the current +directory: +

+mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi

+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-libavcodec.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-libavcodec.html new file mode 100644 index 0000000..7bec257 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-enc-libavcodec.html @@ -0,0 +1,316 @@ +14.3. Encoding with the libavcodec codec family

14.3. Encoding with the libavcodec + codec family

+libavcodec +provides simple encoding to a lot of interesting video and audio formats. +You can encode to the following codecs (more or less up to date): +

14.3.1. libavcodec's + video codecs

+

Video codec nameDescription
mjpegMotion JPEG
ljpeglossless JPEG
jpeglsJPEG LS
targaTarga image
gifGIF image
bmpBMP image
pngPNG image
h261H.261
h263H.263
h263pH.263+
mpeg4ISO standard MPEG-4 (DivX, Xvid compatible)
msmpeg4pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)
msmpeg4v2pre-standard MPEG-4 by MS, v2 (used in old ASF files)
wmv1Windows Media Video, version 1 (AKA WMV7)
wmv2Windows Media Video, version 2 (AKA WMV8)
rv10RealVideo 1.0
rv20RealVideo 2.0
mpeg1videoMPEG-1 video
mpeg2videoMPEG-2 video
huffyuvlossless compression
ffvhuffFFmpeg modified huffyuv lossless
asv1ASUS Video v1
asv2ASUS Video v2
ffv1FFmpeg's lossless video codec
svq1Sorenson video 1
flvSorenson H.263 used in Flash Video
flashsvFlash Screen Video
dvvideoSony Digital Video
snowFFmpeg's experimental wavelet-based codec
zbmvZip Blocks Motion Video

+ +The first column contains the codec names that should be passed after the +vcodec config, +like: -lavcopts vcodec=msmpeg4 +

+An example with MJPEG compression: +

+mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
+

+

14.3.2. libavcodec's + audio codecs

+

Audio codec nameDescription
ac3Dolby Digital (AC-3)
adpcm_*Adaptive PCM formats - see supplementary table
flacFree Lossless Audio Codec (FLAC)
g726G.726 ADPCM
libamr_nb3GPP Adaptive Multi-Rate (AMR) narrow-band
libamr_wb3GPP Adaptive Multi-Rate (AMR) wide-band
libfaacAdvanced Audio Coding (AAC) - using FAAC
libgsmETSI GSM 06.10 full rate
libgsm_msMicrosoft GSM
libmp3lameMPEG-1 audio layer 3 (MP3) - using LAME
mp2MPEG-1 audio layer 2 (MP2)
pcm_*PCM formats - see supplementary table
roq_dpcmId Software RoQ DPCM
sonicexperimental FFmpeg lossy codec
soniclsexperimental FFmpeg lossless codec
vorbisVorbis
wmav1Windows Media Audio v1
wmav2Windows Media Audio v2

+ +The first column contains the codec names that should be passed after the +acodec option, like: -lavcopts acodec=ac3 +

+An example with AC-3 compression: +

+mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
+

+

+Contrary to libavcodec's video +codecs, its audio codecs do not make a wise usage of the bits they are +given as they lack some minimal psychoacoustic model (if at all) +which most other codec implementations feature. +However, note that all these audio codecs are very fast and work +out-of-the-box everywhere MEncoder has been +compiled with libavcodec (which +is the case most of time), and do not depend on external libraries. +

14.3.2.1. PCM/ADPCM format supplementary table

+

PCM/ADPCM codec nameDescription
pcm_s32lesigned 32-bit little-endian
pcm_s32besigned 32-bit big-endian
pcm_u32leunsigned 32-bit little-endian
pcm_u32beunsigned 32-bit big-endian
pcm_s24lesigned 24-bit little-endian
pcm_s24besigned 24-bit big-endian
pcm_u24leunsigned 24-bit little-endian
pcm_u24beunsigned 24-bit big-endian
pcm_s16lesigned 16-bit little-endian
pcm_s16besigned 16-bit big-endian
pcm_u16leunsigned 16-bit little-endian
pcm_u16beunsigned 16-bit big-endian
pcm_s8signed 8-bit
pcm_u8unsigned 8-bit
pcm_alawG.711 A-LAW
pcm_mulawG.711 μ-LAW
pcm_s24daudsigned 24-bit D-Cinema Audio format
pcm_zorkActivision Zork Nemesis
adpcm_ima_qtApple QuickTime
adpcm_ima_wavMicrosoft/IBM WAVE
adpcm_ima_dk3Duck DK3
adpcm_ima_dk4Duck DK4
adpcm_ima_wsWestwood Studios
adpcm_ima_smjpegSDL Motion JPEG
adpcm_msMicrosoft
adpcm_4xm4X Technologies
adpcm_xaPhillips Yellow Book CD-ROM eXtended Architecture
adpcm_eaElectronic Arts
adpcm_ctCreative 16->4-bit
adpcm_swfAdobe Shockwave Flash
adpcm_yamahaYamaha
adpcm_sbpro_4Creative VOC SoundBlaster Pro 8->4-bit
adpcm_sbpro_3Creative VOC SoundBlaster Pro 8->2.6-bit
adpcm_sbpro_2Creative VOC SoundBlaster Pro 8->2-bit
adpcm_thpNintendo GameCube FMV THP
adpcm_adxSega/CRI ADX

+

14.3.3. Encoding options of libavcodec

+Ideally, you would probably want to be able to just tell the encoder to switch +into "high quality" mode and move on. +That would probably be nice, but unfortunately hard to implement as different +encoding options yield different quality results depending on the source +material. That is because compression depends on the visual properties of the +video in question. +For example, anime and live action have very different properties and +thus require different options to obtain optimum encoding. +The good news is that some options should never be left out, like +mbd=2, trell, and v4mv. +See below for a detailed description of common encoding options. +

Options to adjust:

  • + vmax_b_frames: 1 or 2 is good, depending on + the movie. + Note that if you need to have your encode be decodable by DivX5, you + need to activate closed GOP support, using + libavcodec's cgop + option, but you need to deactivate scene detection, which + is not a good idea as it will hurt encode efficiency a bit. +

  • + vb_strategy=1: helps in high-motion scenes. + On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along + with vb_strategy=1 helps. +

  • + dia: motion search range. Bigger is better + and slower. + Negative values are a completely different scale. + Good values are -1 for a fast encode, or 2-4 for slower. +

  • + predia: motion search pre-pass. + Not as important as dia. Good values are 1 (default) to 4. Requires preme=2 + to really be useful. +

  • + cmp, subcmp, precmp: Comparison function for + motion estimation. + Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate + distortion). + 0 is fastest, and sufficient for precmp. + For cmp and subcmp, 2 is good for anime, and 3 is good for live action. + 6 may or may not be slightly better, but is slow. +

  • + last_pred: Number of motion predictors to + take from the previous frame. + 1-3 or so help at little speed cost. + Higher values are slow for no extra gain. +

  • + cbp, mv0: Controls the selection of + macroblocks. Small speed cost for small quality gain. +

  • + qprd: adaptive quantization based on the + macroblock's complexity. + May help or hurt depending on the video and other options. + This can cause artifacts unless you set vqmax to some reasonably small value + (6 is good, maybe as low as 4); vqmin=1 should also help. +

  • + qns: very slow, especially when combined + with qprd. + This option will make the encoder minimize noise due to compression + artifacts instead of making the encoded video strictly match the source. + Do not use this unless you have already tweaked everything else as far as it + will go and the results still are not good enough. +

  • + vqcomp: Tweak ratecontrol. + What values are good depends on the movie. + You can safely leave this alone if you want. + Reducing vqcomp puts more bits on low-complexity scenes, increasing it puts + them on high-complexity scenes (default: 0.5, range: 0-1. recommended range: + 0.5-0.7). +

  • + vlelim, vcelim: Sets the single coefficient + elimination threshold for luminance and chroma planes. + These are encoded separately in all MPEG-like algorithms. + The idea behind these options is to use some good heuristics to determine + when the change in a block is less than the threshold you specify, and in + such a case, to just encode the block as "no change". + This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9 + seem to be good for live movies, but seem not to help with anime; + when encoding animation, you should probably leave them unchanged. +

  • + qpel: Quarter pixel motion estimation. + MPEG-4 uses half pixel precision for its motion search by default, + therefore this option comes with an overhead as more information will be + stored in the encoded file. + The compression gain/loss depends on the movie, but it is usually not very + effective on anime. + qpel always incurs a significant cost in CPU decode time (+25% in + practice). +

  • + psnr: does not affect the actual encoding, + but writes a log file giving the type/size/quality of each frame, and + prints a summary of PSNR (Peak Signal to Noise Ratio) at the end. +

Options not recommended to play with:

  • + vme: The default is best. +

  • + lumi_mask, dark_mask: Psychovisual adaptive + quantization. + You do not want to play with those options if you care about quality. + Reasonable values may be effective in your case, but be warned this is very + subjective. +

  • + scplx_mask: Tries to prevent blocky + artifacts, but postprocessing is better. +

14.3.4. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

+

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualityvcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=26fps0dB
High qualityvcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo15fps-0.5dB
Fastvcodec=mpeg4:mbd=2:trell:v4mv:turbo42fps-0.74dB
Realtimevcodec=mpeg4:mbd=2:turbo54fps-1.21dB

+

14.3.5. Custom inter/intra matrices

+With this feature of +libavcodec +you are able to set custom inter (I-frames/keyframes) and intra +(P-frames/predicted frames) matrices. It is supported by many of the codecs: +mpeg1video and mpeg2video +are reported as working. +

+A typical usage of this feature is to set the matrices preferred by the +KVCD specifications. +

+The KVCD "Notch" Quantization Matrix: +

+Intra: +

+ 8  9 12 22 26 27 29 34
+ 9 10 14 26 27 29 34 37
+12 14 18 27 29 34 37 38
+22 26 27 31 36 37 38 40
+26 27 29 36 39 38 40 48
+27 29 34 37 38 40 48 58
+29 34 37 38 40 48 58 69
+34 37 38 40 48 58 69 79
+

+ +Inter: +

+16 18 20 22 24 26 28 30
+18 20 22 24 26 28 30 32
+20 22 24 26 28 30 32 34
+22 24 26 30 32 32 34 36
+24 26 28 32 34 34 36 38
+26 28 30 32 34 36 38 40
+28 30 32 34 36 38 42 42
+30 32 34 36 38 40 42 44
+

+

+Usage: +

+mencoder input.avi -o output.avi -oac copy -ovc lavc \
+    -lavcopts inter_matrix=...:intra_matrix=...
+

+

+

+mencoder input.avi -ovc lavc -lavcopts \
+vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
+12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,\
+29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
+:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
+28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,\
+36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
+

+

14.3.6. Example

+So, you have just bought your shiny new copy of Harry Potter and the Chamber +of Secrets (widescreen edition, of course), and you want to rip this DVD +so that you can add it to your Home Theatre PC. This is a region 1 DVD, +so it is NTSC. The example below will still apply to PAL, except you will +omit -ofps 24000/1001 (because the output framerate is the +same as the input framerate), and of course the crop dimensions will be +different. +

+After running mplayer dvd://1, we follow the process +detailed in the section How to deal +with telecine and interlacing in NTSC DVDs and discover that it is +24000/1001 fps progressive video, which means that we need not use an inverse +telecine filter, such as pullup or +filmdint. +

+Next, we want to determine the appropriate crop rectangle, so we use the +cropdetect filter: +

mplayer dvd://1 -vf cropdetect

+Make sure you seek to a fully filled frame (such as a bright scene, +past the opening credits and logos), and +you will see in MPlayer's console output: +

crop area: X: 0..719  Y: 57..419  (-vf crop=720:362:0:58)

+We then play the movie back with this filter to test its correctness: +

mplayer dvd://1 -vf crop=720:362:0:58

+And we see that it looks perfectly fine. Next, we ensure the width and +height are a multiple of 16. The width is fine, however the height is +not. Since we did not fail 7th grade math, we know that the nearest +multiple of 16 lower than 362 is 352. +

+We could just use crop=720:352:0:58, but it would be nice +to take a little off the top and a little off the bottom so that we +retain the center. We have shrunk the height by 10 pixels, but we do not +want to increase the y-offset by 5-pixels since that is an odd number and +will adversely affect quality. Instead, we will increase the y-offset by +4 pixels: +

mplayer dvd://1 -vf crop=720:352:0:62

+Another reason to shave pixels from both the top and the bottom is that we +ensure we have eliminated any half-black pixels if they exist. Note that if +your video is telecined, make sure the pullup filter (or +whichever inverse telecine filter you decide to use) appears in the filter +chain before you crop. If it is interlaced, deinterlace before cropping. +(If you choose to preserve the interlaced video, then make sure your +vertical crop offset is a multiple of 4.) +

+If you are really concerned about losing those 10 pixels, you might +prefer instead to scale the dimensions down to the nearest multiple of 16. +The filter chain would look like: +

-vf crop=720:362:0:58,scale=720:352

+Scaling the video down like this will mean that some small amount of +detail is lost, though it probably will not be perceptible. Scaling up will +result in lower quality (unless you increase the bitrate). Cropping +discards those pixels altogether. It is a tradeoff that you will want to +consider for each circumstance. For example, if the DVD video was made +for television, you might want to avoid vertical scaling, since the line +sampling corresponds to the way the content was originally recorded. +

+On inspection, we see that our movie has a fair bit of action and high +amounts of detail, so we pick 2400Kbit for our bitrate. +

+We are now ready to do the two pass encode. Pass one: +

+mencoder dvd://1 -ofps 24000/1001 -oac copy -o Harry_Potter_2.avi -ovc lavc \
+    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \
+    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+

+And pass two is the same, except that we specify vpass=2: +

+mencoder dvd://1 -ofps 24000/1001 -oac copy -o Harry_Potter_2.avi -ovc lavc \
+    -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \
+    -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+

+

+The options v4mv:mbd=2:trell will greatly increase the +quality at the expense of encoding time. There is little reason to leave +these options out when the primary goal is quality. The options +cmp=3:subcmp=3 select a comparison function that +yields higher quality than the defaults. You might try experimenting with +this parameter (refer to the man page for the possible values) as +different functions can have a large impact on quality depending on the +source material. For example, if you find +libavcodec produces too much +blocky artifacting, you could try selecting the experimental NSSE as +comparison function via *cmp=10. +

+For this movie, the resulting AVI will be 138 minutes long and nearly +3GB. And because you said that file size does not matter, this is a +perfectly acceptable size. However, if you had wanted it smaller, you +could try a lower bitrate. Increasing bitrates have diminishing +returns, so while we might clearly see an improvement from 1800Kbit to +2000Kbit, it might not be so noticeable above 2000Kbit. Feel +free to experiment until you are happy. +

+Because we passed the source video through a denoise filter, you may want +to add some of it back during playback. This, along with the +spp post-processing filter, drastically improves the +perception of quality and helps eliminate blocky artifacts in the video. +With MPlayer's autoq option, +you can vary the amount of post-processing done by the spp filter +depending on available CPU. Also, at this point, you may want to apply +gamma and/or color correction to best suit your display. For example: +

+mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-extractsub.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-extractsub.html new file mode 100644 index 0000000..522525f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-extractsub.html @@ -0,0 +1,35 @@ +13.9. Extracting DVD subtitles to VOBsub file

13.9. Extracting DVD subtitles to VOBsub file

+MEncoder is capable of extracting subtitles from +a DVD into VOBsub formatted files. They consist of a pair of files ending in +.idx and .sub and are usually +packaged in a single .rar archive. +MPlayer can play these with the +-vobsub and -vobsubid options. +

+You specify the basename (i.e without the .idx or +.sub extension) of the output files with +-vobsubout and the index for this subtitle in the +resulting files with -vobsuboutindex. +

+If the input is not from a DVD you should use -ifo to +indicate the .ifo file needed to construct the +resulting .idx file. +

+If the input is not from a DVD and you do not have the +.ifo file you will need to use the +-vobsubid option to let it know what language id to put in +the .idx file. +

+Each run will append the running subtitle if the .idx +and .sub files already exist. So you should remove any +before starting. +

Example 13.5. Copying two subtitles from a DVD while doing two pass encoding

+rm subtitles.idx subtitles.sub
+mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
+    -vobsubout subtitles -vobsuboutindex 0 -sid 2
+mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -vobsubout subtitles -vobsuboutindex 1 -sid 5

Example 13.6. Copying a French subtitle from an MPEG file

+rm subtitles.idx subtitles.sub
+mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 \
+    -vobsuboutid fr -sid 1 -nosound -ovc copy
+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-handheld-psp.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-handheld-psp.html new file mode 100644 index 0000000..b0133f7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-handheld-psp.html @@ -0,0 +1,29 @@ +13.4. Encoding to Sony PSP video format

13.4. Encoding to Sony PSP video format

+MEncoder supports encoding to Sony PSP's video +format, but, depending on the revision of the PSP software, the constraints +may differ. +You should be safe if you respect the following constraints: +

  • + Bitrate: it should not exceed 1500kbps, + however, past versions supported pretty much any bitrate as long as the + header claimed it was not too high. +

  • + Dimensions: the width and height of the + PSP video should be multiples of 16, and the product width * height must + be <= 64000. + Under some circumstances, it may be possible for the PSP to play higher + resolutions. +

  • + Audio: its samplerate should be 24kHz + for MPEG-4 videos, and 48kHz for H.264. +

+

Example 13.4. encode for PSP

+

+mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf \
+    -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \
+    -lavfopts format=psp \
+    input.video -o output.psp
+

+Note that you can set the title of the video with +-info name=MovieTitle. +


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg.html new file mode 100644 index 0000000..cf8e140 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg.html @@ -0,0 +1,40 @@ +13.5. Encoding to MPEG format

13.5. Encoding to MPEG format

+MEncoder can create MPEG (MPEG-PS) format output +files. +Usually, when you are using MPEG-1 or MPEG-2 video, it is because you are +encoding for a constrained format such as SVCD, VCD, or DVD. +The specific requirements for these formats are explained in the + VCD and DVD creation guide +section. +

+To change MEncoder's output file format, +use the -of mpeg option. +

+Example: +

+mencoder input.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \
+    -oac copy other_options -o output.mpg
+

+Creating an MPEG-1 file suitable to be played on systems with minimal +multimedia support, such as default Windows installs: +

+mencoder input.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
+    -o output.mpg -oac lavc -lavcoptc acodec=mp2:abitrate=224 -ovc lavc \
+    -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
+

+Same, but using libavformat MPEG muxer: +

+mencoder input.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \
+    -lavfopts format=mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
+    -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0
+

+

Hint:

+If for some reason the video quality of the second pass did not +satisfy you, you may re-run your video encode with a different target +bitrate, provided that you saved the statistics file of the previous +pass. +This is possible because the statistics file's primary goal is to +record the complexity of each frame, which doesn't depend heavily on +bitrate. You should note, though, that you'll get the best results if +all passes are run with target bitrates that do not differ very much. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg4.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg4.html new file mode 100644 index 0000000..4a1135d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-mpeg4.html @@ -0,0 +1,31 @@ +13.3. Encoding two pass MPEG-4 ("DivX")

13.3. Encoding two pass MPEG-4 ("DivX")

+The name comes from the fact that this method encodes the file +twice. The first encoding (dubbed pass) creates some +temporary files (*.log) with a size of few megabytes, do +not delete them yet (you can delete the AVI or rather just not create any video +by redirecting it into /dev/null). +In the second pass, the two pass output +file is created, using the bitrate data from the temporary files. The +resulting file will have much better image quality. If this is the first +time you heard about this, you should consult some guides available on the +net. +

Example 13.2. copy audio track

+Two pass encode of the second track a DVD to an MPEG-4 ("DivX") +AVI while copying the audio track. +

+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -oac copy -o output.avi
+

+


Example 13.3. encode audio track

+Two pass encode of a DVD to an MPEG-4 ("DivX") AVI while encoding +the audio track to MP3. +Be careful using this method as it may lead to audio/video desync in +some cases. +

+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
+    -oac mp3lame -lameopts vbr=3 -o /dev/null
+mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
+    -oac mp3lame -lameopts vbr=3 -o output.avi
+

+


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-quicktime-7.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-quicktime-7.html new file mode 100644 index 0000000..81436b9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-quicktime-7.html @@ -0,0 +1,223 @@ +14.7. Using MEncoder to create QuickTime-compatible files

14.7. Using MEncoder to create +QuickTime-compatible files

14.7.1. Why would one want to produce QuickTime-compatible Files?

+ There are several reasons why producing + QuickTime-compatible files can be desirable. +

  • + You want any computer illiterate to be able to watch your encode on + any major platform (Windows, Mac OS X, Unices …). +

  • + QuickTime is able to take advantage of more + hardware and software acceleration features of Mac OS X than + platform-independent players like MPlayer + or VLC. + That means that your encodes have a chance to be played smoothly by older + G4-powered machines. +

  • + QuickTime 7 supports the next-generation codec H.264, + which yields significantly better picture quality than previous codec + generations (MPEG-2, MPEG-4 …). +

14.7.2. QuickTime 7 limitations

+ QuickTime 7 supports H.264 video and AAC audio, + but it does not support them muxed in the AVI container format. + However, you can use MEncoder to encode + the video and audio, and then use an external program such as + mp4creator (part of the + MPEG4IP suite) + to remux the video and audio tracks into an MP4 container. +

+ QuickTime's support for H.264 is limited, + so you will need to drop some advanced features. + If you encode your video with features that + QuickTime 7 does not support, + QuickTime-based players will show you a pretty + white screen instead of your expected video. +

  • + B-frames: + QuickTime 7 supports a maximum of 1 B-frame, i.e. + -x264encopts bframes=1. This means that + b_pyramid and weight_b will have no + effect, since they require bframes to be greater than 1. +

  • + Macroblocks: + QuickTime 7 does not support 8x8 DCT macroblocks. + This option (8x8dct) is off by default, so just be sure + not to explicitly enable it. This also means that the i8x8 + option will have no effect, since it requires 8x8dct. +

  • + Aspect ratio: + QuickTime 7 does not support SAR (sample + aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read + the section on scaling + for a workaround. +

14.7.3. Cropping

+ Suppose you want to rip your freshly bought copy of "The Chronicles of + Narnia". Your DVD is region 1, + which means it is NTSC. The example below would still apply to PAL, + except you would omit -ofps 24000/1001 and use slightly + different crop and scale dimensions. +

+ After running mplayer dvd://1, you follow the process + detailed in the section How to deal + with telecine and interlacing in NTSC DVDs and discover that it is + 24000/1001 fps progressive video. This simplifies the process somewhat, + since you do not need to use an inverse telecine filter such as + pullup or a deinterlacing filter such as + yadif. +

+ Next, you need to crop out the black bars from the top and bottom of the + video, as detailed in this + previous section. +

14.7.4. Scaling

+ The next step is truly heartbreaking. + QuickTime 7 does not support MPEG-4 videos + with a sample aspect ratio other than 1, so you will need to upscale + (which wastes a lot of disk space) or downscale (which loses some + details of the source) the video to square pixels. + Either way you do it, this is highly inefficient, but simply cannot + be avoided if you want your video to be playable by + QuickTime 7. + MEncoder can apply the appropriate upscaling + or downscaling by specifying respectively -vf scale=-10:-1 + or -vf scale=-1:-10. + This will scale your video to the correct width for the cropped height, + rounded to the closest multiple of 16 for optimal compression. + Remember that if you are cropping, you should crop first, then scale: + +

-vf crop=720:352:0:62,scale=-10:-1

+

14.7.5. A/V sync

+ Because you will be remuxing into a different container, you should + always use the harddup option to ensure that duplicated + frames are actually duplicated in the video output. Without this option, + MEncoder will simply put a marker in the video + stream that a frame was duplicated, and rely on the client software to + show the same frame twice. Unfortunately, this "soft duplication" does + not survive remuxing, so the audio would slowly lose sync with the video. +

+ The final filter chain looks like this: +

-vf crop=720:352:0:62,scale=-10:-1,harddup

+

14.7.6. Bitrate

+ As always, the selection of bitrate is a matter of the technical properties + of the source, as explained + here, as + well as a matter of taste. + This movie has a fair bit of action and lots of detail, but H.264 video + looks good at much lower bitrates than XviD or other MPEG-4 codecs. + After much experimentation, the author of this guide chose to encode + this movie at 900kbps, and thought that it looked very good. + You may decrease bitrate if you need to save more space, or increase + it if you need to improve quality. +

14.7.7. Encoding example

+ You are now ready to encode the video. Since you care about + quality, of course you will be doing a two-pass encode. To shave off + some encoding time, you can specify the turbo option + on the first pass; this reduces subq and + frameref to 1. To save some disk space, you can + use the ss option to strip off the first few seconds + of the video. (I found that this particular movie has 32 seconds of + credits and logos.) bframes can be 0 or 1. + The other options are documented in Encoding with + the x264 codec and + the man page. + +

mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
+-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001

+ + If you have a multi-processor machine, don't miss the opportunity to + dramatically speed-up encoding by enabling + + x264's multi-threading mode + by adding threads=auto to your x264encopts + command-line. +

+ The second pass is the same, except that you specify the output file + and set pass=2. + +

mencoder dvd://1 -o narnia.avi -ss 32 -ovc x264 \
+-x264encopts pass=2:turbo:bitrate=900:frameref=5:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001

+

+ The resulting AVI should play perfectly in + MPlayer, but of course + QuickTime can not play it because it does + not support H.264 muxed in AVI. + So the next step is to remux the video into an MP4 container. +

14.7.8. Remuxing as MP4

+ There are several ways to remux AVI files to MP4. You can use + mp4creator, which is part of the + MPEG4IP suite. +

+ First, demux the AVI into separate audio and video streams using + MPlayer. + +

mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
+mplayer narnia.avi -dumpvideo -dumpfile narnia.h264

+ + The filenames are important; mp4creator + requires that AAC audio streams be named .aac + and H.264 video streams be named .h264. +

+ Now use mp4creator to create a new + MP4 file out of the audio and video streams. + +

mp4creator -create=narnia.aac narnia.mp4
+mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4

+ + Unlike the encoding step, you must specify the framerate as a + decimal (such as 23.976), not a fraction (such as 24000/1001). +

+ This narnia.mp4 file should now be playable + with any QuickTime 7 application, such as + QuickTime Player or + iTunes. If you are planning to view the + video in a web browser with the QuickTime + plugin, you should also hint the movie so that the + QuickTime plugin can start playing it + while it is still downloading. mp4creator + can create these hint tracks: + +

mp4creator -hint=1 narnia.mp4
+mp4creator -hint=2 narnia.mp4
+mp4creator -optimize narnia.mp4

+ + You can check the final result to ensure that the hint tracks were + created successfully: + +

mp4creator -list narnia.mp4

+ + You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks. + +

Track   Type    Info
+1       audio   MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
+2       video   H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
+3       hint    Payload mpeg4-generic for track 1
+4       hint    Payload H264 for track 2
+

+

14.7.9. Adding metadata tags

+ If you want to add tags to your video that show up in iTunes, you can use + AtomicParsley. + +

AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite

+ + The --metaEnema option removes any existing metadata + (mp4creator inserts its name in the + "encoding tool" tag), and --freefree reclaims the + space from the deleted metadata. + The --stik option sets the type of video (such as Movie + or TV Show), which iTunes uses to group related video files. + The --overWrite option overwrites the original file; + without it, AtomicParsley creates a new + auto-named file in the same directory and leaves the original file + untouched. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-rescale.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-rescale.html new file mode 100644 index 0000000..fa5ca0e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-rescale.html @@ -0,0 +1,17 @@ +13.6. Rescaling movies

13.6. Rescaling movies

+Often the need to resize movie images' size emerges. Its reasons can be +many: decreasing file size, network bandwidth, etc. Most people even do +rescaling when converting DVDs or SVCDs to DivX AVI. If you wish to rescale, +read the Preserving aspect ratio section. +

+The scaling process is handled by the scale video filter: +-vf scale=width:height. +Its quality can be set with the -sws option. +If it is not specified, MEncoder will use 2: bicubic. +

+Usage: +

+mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
+    -vf scale=640:480 -o output.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-codec.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-codec.html new file mode 100644 index 0000000..9016fc6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-codec.html @@ -0,0 +1,62 @@ +13.1. Selecting codecs and container formats

13.1. Selecting codecs and container formats

+Audio and video codecs for encoding are selected with the +-oac and -ovc options, respectively. +Type for instance: +

mencoder -ovc help

+to list all video codecs supported by the version of +MEncoder on your machine. +The following choices are available: +

+Audio Codecs: +

Audio codec nameDescription
mp3lameencode to VBR, ABR or CBR MP3 with LAME
lavcuse one of libavcodec's audio codecs
faacFAAC AAC audio encoder
toolameMPEG Audio Layer 2 encoder
twolameMPEG Audio Layer 2 encoder based on tooLAME
pcmuncompressed PCM audio
copydo not reencode, just copy compressed frames

+

+Video codecs: +

Video codec nameDescription
lavcuse one of libavcodec's video codecs
xvidXvid, MPEG-4 Advanced Simple Profile (ASP) codec
x264x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec
nuvnuppel video, used by some realtime applications
rawuncompressed video frames
copydo not reencode, just copy compressed frames
framenoused for 3-pass encoding (not recommended)

+

+Output container formats are selected with the -of +option. +Type: +

mencoder -of help

+to list all containers supported by the version of +MEncoder on your machine. +The following choices are available: +

+Container formats: +

Container format nameDescription
lavfone of the containers supported by + libavformat
aviAudio-Video Interleaved
mpegMPEG-1 and MPEG-2 PS
rawvideoraw video stream (no muxing - one video stream only)
rawaudioraw audio stream (no muxing - one audio stream only)

+The AVI container is the native container format for +MEncoder, which means that it's the one that +is best handled, and the one for which MEncoder +was designed. +As noted above, other container formats are usable, but you may +experience problems when using them. +

+libavformat containers: +

+If you selected libavformat +to do the muxing of the output file (by using the -of lavf), +the appropriate container format will be determined by the file extension +of the output file. +You may force a particular container format with +libavformat's +format option. + +

libavformat container nameDescription
mpgMPEG-1 and MPEG-2 PS
asfAdvanced Streaming Format
aviAudio-Video Interleaved
wavWaveform Audio
swfMacromedia Flash
flvMacromedia Flash video
rmRealMedia
auSUN AU
nutNUT open container (experimental and not yet spec-compliant)
movQuickTime
mp4MPEG-4 format
dvSony Digital Video container
mkvMatroska open audio/video container

+As you can see, libavformat +allows MEncoder to mux into a considerable +variety of containers. +Unfortunately, as MEncoder was not designed +from the beginning to support container formats other than AVI, +your should really be paranoid about the resulting file. +Please check to be sure that the audio/video synchronization is OK +and that the file can be played correctly by players other than +MPlayer. +

Example 13.1. encode to Macromedia Flash format

+Creating a Macromedia Flash video suitable for playback in a web browser +with the Macromedia Flash plugin: +

+mencoder input.avi -o output.flv -of lavf \
+    -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
+    -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
+

+


diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-input.html new file mode 100644 index 0000000..5af8159 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-selecting-input.html @@ -0,0 +1,35 @@ +13.2. Selecting input file or device

13.2. Selecting input file or device

+MEncoder can encode from files or directly +from a DVD or VCD disc. +Simply include the filename on the command line to encode from a file, +or dvd://titlenumber or +vcd://tracknumber to encode +from a DVD title or VCD track. +If you have already copied a DVD to your hard drive (you can use a tool +such as dvdbackup, available on most systems), +and wish to encode from the copy, you should still use the +dvd:// syntax, along with -dvd-device +followed by the path to the copied DVD root. + +The -dvd-device and -cdrom-device +options can also be used to override the paths to the device nodes +for reading directly from disc, if the defaults of +/dev/dvd and /dev/cdrom do +not work on your system. +

+When encoding from DVD, it is often desirable to select a chapter or +range of chapters to encode. +You can use the -chapter option for this purpose. +For example, -chapter 1-4 +will only encode chapters 1 through 4 from the DVD. +This is especially useful if you will be making a 1400 MB encode +targetted for two CDs, since you can ensure the split occurs exactly +at a chapter boundary rather than in the middle of a scene. +

+If you have a supported TV capture card, you can also encode from the +TV-in device. +Use tv://channelnumber as +the filename, and -tv to configure various capture +settings. +DVB input works similarly. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-streamcopy.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-streamcopy.html new file mode 100644 index 0000000..504a397 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-streamcopy.html @@ -0,0 +1,33 @@ +13.7. Stream copying

13.7. Stream copying

+MEncoder can handle input streams in two ways: +encode or copy +them. This section is about copying. +

  • + Video stream (option -ovc copy): + nice stuff can be done :) Like, putting (not converting!) FLI or VIVO or + MPEG-1 video into an AVI file! Of course only + MPlayer can play such files :) And it probably + has no real life value at all. Rationally: video stream copying can be + useful for example when only the audio stream has to be encoded (like, + uncompressed PCM to MP3). +

  • + Audio stream (option -oac copy): + straightforward. It is possible to take an external audio file (MP3, + WAV) and mux it into the output stream. Use the + -audiofile filename option + for this. +

+Using -oac copy to copy from one container format to +another may require the use of -fafmttag to keep the +audio format tag of the original file. +For example, if you are converting an NSV file with AAC audio to an AVI +container, the audio format tag will be incorrect and it will have to +be changed. For a list of audio format tags, check +codecs.conf. +

+Example: +

+mencoder input.nsv -oac copy -fafmttag 0x706D \
+    -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o output.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-telecine.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-telecine.html new file mode 100644 index 0000000..4bee1b8 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-telecine.html @@ -0,0 +1,404 @@ +14.2. How to deal with telecine and interlacing within NTSC DVDs

14.2. How to deal with telecine and interlacing within NTSC DVDs

14.2.1. Introduction

What is telecine?  +If you do not understand much of what is written in this document, read the +Wikipedia entry on telecine. +It is an understandable and reasonably comprehensive +description of what telecine is. +

A note about the numbers.  +Many documents, including the guide linked above, refer to the fields +per second value of NTSC video as 59.94 and the corresponding frames +per second values as 29.97 (for telecined and interlaced) and 23.976 +(for progressive). For simplicity, some documents even round these +numbers to 60, 30, and 24. +

+Strictly speaking, all those numbers are approximations. Black and +white NTSC video was exactly 60 fields per second, but 60000/1001 +was later chosen to accomodate color data while remaining compatible +with contemporary black and white televisions. Digital NTSC video +(such as on a DVD) is also 60000/1001 fields per second. From this, +interlaced and telecined video are derived to be 30000/1001 frames +per second; progressive video is 24000/1001 frames per second. +

+Older versions of the MEncoder documentation +and many archived mailing list posts refer to 59.94, 29.97, and 23.976. +All MEncoder documentation has been updated +to use the fractional values, and you should use them too. +

+-ofps 23.976 is incorrect. +-ofps 24000/1001 should be used instead. +

How telecine is used.  +All video intended to be displayed on an NTSC +television set must be 60000/1001 fields per second. Made-for-TV movies +and shows are often filmed directly at 60000/1001 fields per second, but +the majority of cinema is filmed at 24 or 24000/1001 frames per +second. When cinematic movie DVDs are mastered, the video is then +converted for television using a process called telecine. +

+On a DVD, the video is never actually stored as 60000/1001 fields per +second. For video that was originally 60000/1001, each pair of fields is +combined to form a frame, resulting in 30000/1001 frames per +second. Hardware DVD players then read a flag embedded in the video +stream to determine whether the odd- or even-numbered lines should +form the first field. +

+Usually, 24000/1001 frames per second content stays as it is when +encoded for a DVD, and the DVD player must perform telecining +on-the-fly. Sometimes, however, the video is telecined +before being stored on the DVD; even though it +was originally 24000/1001 frames per second, it becomes 60000/1001 fields per +second. When it is stored on the DVD, pairs of fields are combined to form +30000/1001 frames per second. +

+When looking at individual frames formed from 60000/1001 fields per +second video, telecined or otherwise, interlacing is clearly visible +wherever there is any motion, because one field (say, the +even-numbered lines) represents a moment in time 1/(60000/1001) +seconds later than the other. Playing interlaced video on a computer +looks ugly both because the monitor is higher resolution and because +the video is shown frame-after-frame instead of field-after-field. +

Notes:

  • + This section only applies to NTSC DVDs, and not PAL. +

  • + The example MEncoder lines throughout the + document are not intended for + actual use. They are simply the bare minimum required to encode the + pertaining video category. How to make good DVD rips or fine-tune + libavcodec for maximal + quality is not within the scope of this document. +

  • + There are a couple footnotes specific to this guide, linked like this: + [1] +

14.2.2. How to tell what type of video you have

14.2.2.1. Progressive

+Progressive video was originally filmed at 24000/1001 fps, and stored +on the DVD without alteration. +

+When you play a progressive DVD in MPlayer, +MPlayer will print the following line as +soon as the movie begins to play: +

+demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
+

+From this point forward, demux_mpg should never say it finds +"30000/1001 fps NTSC content." +

+When you watch progressive video, you should never see any +interlacing. Beware, however, because sometimes there is a tiny bit +of telecine mixed in where you would not expect. I have encountered TV +show DVDs that have one second of telecine at every scene change, or +at seemingly random places. I once watched a DVD that had a +progressive first half, and the second half was telecined. If you +want to be really thorough, you can scan the +entire movie: +

mplayer dvd://1 -nosound -vo null -benchmark

+Using -benchmark makes +MPlayer play the movie as quickly as it +possibly can; still, depending on your hardware, it can take a +while. Every time demux_mpg reports a framerate change, the line +immediately above will show you the time at which the change +occurred. +

+Sometimes progressive video on DVDs is referred to as +"soft-telecine" because it is intended to +be telecined by the DVD player. +

14.2.2.2. Telecined

+Telecined video was originally filmed at 24000/1001, but was telecined +before it was written to the DVD. +

+MPlayer does not (ever) report any +framerate changes when it plays telecined video. +

+Watching a telecined video, you will see interlacing artifacts that +seem to "blink": they repeatedly appear and disappear. +You can look closely at this by +

  1. mplayer dvd://1
  2. + Seek to a part with motion. +

  3. + Use the . key to step forward one frame at a time. +

  4. + Look at the pattern of interlaced-looking and progressive-looking + frames. If the pattern you see is PPPII,PPPII,PPPII,... then the + video is telecined. If you see some other pattern, then the video + may have been telecined using some non-standard method; + MEncoder cannot losslessly convert + non-standard telecine to progressive. If you do not see any + pattern at all, then it is most likely interlaced. +

+

+Sometimes telecined video on DVDs is referred to as +"hard-telecine". Since hard-telecine is already 60000/1001 fields +per second, the DVD player plays the video without any manipulation. +

+Another way to tell if your source is telecined or not is to play +the source with the -vf pullup and -v +command line options to see how pullup matches frames. +If the source is telecined, you should see on the console a 3:2 pattern +with 0+.1.+2 and 0++1 +alternating. +This technique has the advantage that you do not need to watch the +source to identify it, which could be useful if you wish to automate +the encoding procedure, or to carry out said procedure remotely via +a slow connection. +

14.2.2.3. Interlaced

+Interlaced video was originally filmed at 60000/1001 fields per second, +and stored on the DVD as 30000/1001 frames per second. The interlacing effect +(often called "combing") is a result of combining pairs of +fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart, +and when they are displayed simultaneously the difference is apparent. +

+As with telecined video, MPlayer should +not ever report any framerate changes when playing interlaced content. +

+When you view an interlaced video closely by frame-stepping with the +. key, you will see that every single frame is interlaced. +

14.2.2.4. Mixed progressive and telecine

+All of a "mixed progressive and telecine" video was originally +24000/1001 frames per second, but some parts of it ended up being telecined. +

+When MPlayer plays this category, it will +(often repeatedly) switch back and forth between "30000/1001 fps NTSC" +and "24000/1001 fps progressive NTSC". Watch the bottom of +MPlayer's output to see these messages. +

+You should check the "30000/1001 fps NTSC" sections to make sure +they are actually telecine, and not just interlaced. +

14.2.2.5. Mixed progressive and interlaced

+In "mixed progressive and interlaced" content, progressive +and interlaced video have been spliced together. +

+This category looks just like "mixed progressive and telecine", +until you examine the 30000/1001 fps sections and see that they do not have the +telecine pattern. +

14.2.3. How to encode each category

+As I mentioned in the beginning, example MEncoder +lines below are not meant to actually be used; +they only demonstrate the minimum parameters to properly encode each category. +

14.2.3.1. Progressive

+Progressive video requires no special filtering to encode. The only +parameter you need to be sure to use is -ofps 24000/1001. +Otherwise, MEncoder +will try to encode at 30000/1001 fps and will duplicate frames. +

+

mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001

+

+It is often the case, however, that a video that looks progressive +actually has very short parts of telecine mixed in. Unless you are +sure, it is safest to treat the video as +mixed progressive and telecine. +The performance loss is small +[3]. +

14.2.3.2. Telecined

+Telecine can be reversed to retrieve the original 24000/1001 content, +using a process called inverse-telecine. +MPlayer contains several filters to +accomplish this; the best filter, pullup, is described +in the mixed +progressive and telecine section. +

14.2.3.3. Interlaced

+For most practical cases it is not possible to retrieve a complete +progressive video from interlaced content. The only way to do so +without losing half of the vertical resolution is to double the +framerate and try to "guess" what ought to make up the +corresponding lines for each field (this has drawbacks - see method 3). +

  1. + Encode the video in interlaced form. Normally, interlacing wreaks + havoc with the encoder's ability to compress well, but + libavcodec has two + parameters specifically for dealing with storing interlaced video a + bit better: ildct and ilme. Also, + using mbd=2 is strongly recommended + [2] because it + will encode macroblocks as non-interlaced in places where there is + no motion. Note that -ofps is NOT needed here. +

    mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2

    +

  2. + Use a deinterlacing filter before encoding. There are several of + these filters available to choose from, each with its own advantages + and disadvantages. Consult mplayer -pphelp and + mplayer -vf help to see what is available + (grep for "deint"), read Michael's Niedermayer + Deinterlacing filters comparison, + and search the + + MPlayer mailing lists to find many discussions about the + various filters. + Again, the framerate is not changing, so no + -ofps. Also, deinterlacing should be done after + cropping [1] and + before scaling. +

    mencoder dvd://1 -oac copy -vf yadif -ovc lavc

    +

  3. + Unfortunately, this option is buggy with + MEncoder; it ought to work well with + MEncoder G2, but that is not here yet. You + might experience crahes. Anyway, the purpose of -vf + tfields is to create a full frame out of each field, which + makes the framerate 60000/1001. The advantage of this approach is that no + data is ever lost; however, since each frame comes from only one + field, the missing lines have to be interpolated somehow. There are + no very good methods of generating the missing data, and so the + result will look a bit similar to when using some deinterlacing + filters. Generating the missing lines creates other issues, as well, + simply because the amount of data doubles. So, higher encoding + bitrates are required to maintain quality, and more CPU power is + used for both encoding and decoding. tfields has several different + options for how to create the missing lines of each frame. If you + use this method, then Reference the manual, and chose whichever + option looks best for your material. Note that when using + tfields you + have to specify both + -fps and -ofps to be twice the + framerate of your original source. +

    +mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
    +    -fps 60000/1001 -ofps 60000/1001

    +

  4. + If you plan on downscaling dramatically, you can extract and encode + only one of the two fields. Of course, you will lose half the vertical + resolution, but if you plan on downscaling to at most 1/2 of the + original, the loss will not matter much. The result will be a + progressive 30000/1001 frames per second file. The procedure is to use + -vf field, then crop + [1] and scale + appropriately. Remember that you will have to adjust the scale to + compensate for the vertical resolution being halved. +

    mencoder dvd://1 -oac copy -vf field=0 -ovc lavc

    +

14.2.3.4. Mixed progressive and telecine

+In order to turn mixed progressive and telecine video into entirely +progressive video, the telecined parts have to be +inverse-telecined. There are three ways to accomplish this, +described below. Note that you should +always inverse-telecine before any +rescaling; unless you really know what you are doing, +inverse-telecine before cropping, too +[1]. +-ofps 24000/1001 is needed here because the output video +will be 24000/1001 frames per second. +

  • + -vf pullup is designed to inverse-telecine + telecined material while leaving progressive data alone. In order to + work properly, pullup must + be followed by the softskip filter or + else MEncoder will crash. + pullup is, however, the cleanest and most + accurate method available for encoding both telecine and + "mixed progressive and telecine". +

    +mencoder dvd://1 -oac copy -vf pullup,softskip 
    +    -ovc lavc -ofps 24000/1001

    +

  • + An older method + is to, rather than inverse-telecine the telecined parts, telecine + the non-telecined parts and then inverse-telecine the whole + video. Sound confusing? softpulldown is a filter that goes through + a video and makes the entire file telecined. If we follow + softpulldown with either detc or + ivtc, the final result will be entirely + progressive. -ofps 24000/1001 is needed. +

    +mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
    +  

    +

  • + I have not used -vf filmdint myself, but here is what + D Richard Felker III has to say: + +

    It is OK, but IMO it tries to deinterlace rather + than doing inverse telecine too often (much like settop DVD + players & progressive TVs) which gives ugly flickering and + other artifacts. If you are going to use it, you at least need to + spend some time tuning the options and watching the output first + to make sure it is not messing up. +

    +

14.2.3.5. Mixed progressive and interlaced

+There are two options for dealing with this category, each of +which is a compromise. You should decide based on the +duration/location of each type. +

  • + Treat it as progressive. The interlaced parts will look interlaced, + and some of the interlaced fields will have to be dropped, resulting + in a bit of uneven jumpiness. You can use a postprocessing filter if + you want to, but it may slightly degrade the progressive parts. +

    + This option should definitely not be used if you want to eventually + display the video on an interlaced device (with a TV card, for + example). If you have interlaced frames in a 24000/1001 frames per + second video, they will be telecined along with the progressive + frames. Half of the interlaced "frames" will be displayed for three + fields' duration (3/(60000/1001) seconds), resulting in a flicking + "jump back in time" effect that looks quite bad. If you + even attempt this, you must use a + deinterlacing filter like lb or + l5. +

    + It may also be a bad idea for progressive display, too. It will drop + pairs of consecutive interlaced fields, resulting in a discontinuity + that can be more visible than with the second method, which shows + some progressive frames twice. 30000/1001 frames per second interlaced + video is already a bit choppy because it really should be shown at + 60000/1001 fields per second, so the duplicate frames do not stand out as + much. +

    + Either way, it is best to consider your content and how you intend to + display it. If your video is 90% progressive and you never intend to + show it on a TV, you should favor a progressive approach. If it is + only half progressive, you probably want to encode it as if it is all + interlaced. +

  • + Treat it as interlaced. Some frames of the progressive parts will + need to be duplicated, resulting in uneven jumpiness. Again, + deinterlacing filters may slightly degrade the progressive parts. +

14.2.4. Footnotes

  1. About cropping:  + Video data on DVDs are stored in a format called YUV 4:2:0. In YUV + video, luma ("brightness") and chroma ("color") + are stored separately. Because the human eye is somewhat less + sensitive to color than it is to brightness, in a YUV 4:2:0 picture + there is only one chroma pixel for every four luma pixels. In a + progressive picture, each square of four luma pixels (two on each + side) has one common chroma pixel. You must crop progressive YUV + 4:2:0 to even resolutions, and use even offsets. For example, + crop=716:380:2:26 is OK but + crop=716:380:3:26 is not. +

    + When you are dealing with interlaced YUV 4:2:0, the situation is a + bit more complicated. Instead of every four luma pixels in the + frame sharing a chroma pixel, every four luma + pixels in each field share a chroma + pixel. When fields are interlaced to form a frame, each scanline is + one pixel high. Now, instead of all four luma pixels being in a + square, there are two pixels side-by-side, and the other two pixels + are side-by-side two scanlines down. The two luma pixels in the + intermediate scanline are from the other field, and so share a + different chroma pixel with two luma pixels two scanlines away. All + this confusion makes it necessary to have vertical crop dimensions + and offsets be multiples of four. Horizontal can stay even. +

    + For telecined video, I recommend that cropping take place after + inverse telecining. Once the video is progressive you only need to + crop by even numbers. If you really want to gain the slight speedup + that cropping first may offer, you must crop vertically by multiples + of four or else the inverse-telecine filter will not have proper data. +

    + For interlaced (not telecined) video, you must always crop + vertically by multiples of four unless you use -vf + field before cropping. +

  2. About encoding parameters and quality:  + Just because I recommend mbd=2 here does not mean it + should not be used elsewhere. Along with trell, + mbd=2 is one of the two + libavcodec options that + increases quality the most, and you should always use at least those + two unless the drop in encoding speed is prohibitive (e.g. realtime + encoding). There are many other options to + libavcodec that increase + encoding quality (and decrease encoding speed) but that is beyond + the scope of this document. +

  3. About the performance of pullup:  + It is safe to use pullup (along with softskip + ) on progressive video, and is usually a good idea unless + the source has been definitively verified to be entirely progressive. + The performace loss is small for most cases. On a bare-minimum encode, + pullup causes MEncoder to + be 50% slower. Adding sound processing and advanced lavcopts + overshadows that difference, bringing the performance + decrease of using pullup down to 2%. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-vcd-dvd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-vcd-dvd.html new file mode 100644 index 0000000..87d3387 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-vcd-dvd.html @@ -0,0 +1,312 @@ +14.8. Using MEncoder to create VCD/SVCD/DVD-compliant files

14.8. Using MEncoder + to create VCD/SVCD/DVD-compliant files

14.8.1. Format Constraints

+MEncoder is capable of creating VCD, SCVD +and DVD format MPEG files using the +libavcodec library. +These files can then be used in conjunction with +vcdimager +or +dvdauthor +to create discs that will play on a standard set-top player. +

+The DVD, SVCD, and VCD formats are subject to heavy constraints. +Only a small selection of encoded picture sizes and aspect ratios are +available. +If your movie does not already meet these requirements, you may have +to scale, crop or add black borders to the picture to make it +compliant. +

14.8.1.1. Format Constraints

FormatResolutionV. CodecV. BitrateSample RateA. CodecA. BitrateFPSAspect
NTSC DVD720x480, 704x480, 352x480, 352x240MPEG-29800 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9 (only for 720x480)
NTSC DVD352x240[a]MPEG-11856 kbps48000 HzAC-3,PCM1536 kbps (max)30000/1001, 24000/10014:3, 16:9
NTSC SVCD480x480MPEG-22600 kbps44100 HzMP2384 kbps (max)30000/10014:3
NTSC VCD352x240MPEG-11150 kbps44100 HzMP2224 kbps24000/1001, 30000/10014:3
PAL DVD720x576, 704x576, 352x576, 352x288MPEG-29800 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9 (only for 720x576)
PAL DVD352x288[a]MPEG-11856 kbps48000 HzMP2,AC-3,PCM1536 kbps (max)254:3, 16:9
PAL SVCD480x576MPEG-22600 kbps44100 HzMP2384 kbps (max)254:3
PAL VCD352x288MPEG-11152 kbps44100 HzMP2224 kbps254:3

[a] + These resolutions are rarely used for DVDs because + they are fairly low quality.

+If your movie has 2.35:1 aspect (most recent action movies), you will +have to add black borders or crop the movie down to 16:9 to make a DVD or VCD. +If you add black borders, try to align them at 16-pixel boundaries in +order to minimize the impact on encoding performance. +Thankfully DVD has sufficiently excessive bitrate that you do not have +to worry too much about encoding efficiency, but SVCD and VCD are +highly bitrate-starved and require effort to obtain acceptable quality. +

14.8.1.2. GOP Size Constraints

+DVD, VCD, and SVCD also constrain you to relatively low +GOP (Group of Pictures) sizes. +For 30 fps material the largest allowed GOP size is 18. +For 25 or 24 fps, the maximum is 15. +The GOP size is set using the keyint option. +

14.8.1.3. Bitrate Constraints

+VCD video is required to be CBR at 1152 kbps. +This highly limiting constraint also comes along with an extremly low vbv +buffer size of 327 kilobits. +SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less +restrictive vbv buffer size of 917 kilobits is allowed. +DVD video bitrates may range anywhere up to 9800 kbps (though typical +bitrates are about half that), and the vbv buffer size is 1835 kilobits. +

14.8.2. Output Options

+MEncoder has options to control the output +format. +Using these options we can instruct it to create the correct type of +file. +

+The options for VCD and SVCD are called xvcd and xsvcd, because they +are extended formats. +They are not strictly compliant, mainly because the output does not +contain scan offsets. +If you need to generate an SVCD image, you should pass the output file to +vcdimager. +

+VCD: +

-of mpeg -mpegopts format=xvcd

+

+SVCD: +

-of mpeg -mpegopts format=xsvcd

+

+DVD (with timestamps on every frame, if possible): +

-of mpeg -mpegopts format=dvd:tsaf

+

+DVD with NTSC Pullup: +

-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001

+This allows 24000/1001 fps progressive content to be encoded at 30000/1001 +fps whilst maintaing DVD-compliance. +

14.8.2.1. Aspect Ratio

+The aspect argument of -lavcopts is used to encode +the aspect ratio of the file. +During playback the aspect ratio is used to restore the video to the +correct size. +

+16:9 or "Widescreen" +

-lavcopts aspect=16/9

+

+4:3 or "Fullscreen" +

-lavcopts aspect=4/3

+

+2.35:1 or "Cinemascope" NTSC +

-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9

+To calculate the correct scaling size, use the expanded NTSC width of +854/2.35 = 368 +

+2.35:1 or "Cinemascope" PAL +

-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9

+To calculate the correct scaling size, use the expanded PAL width of +1024/2.35 = 432 +

14.8.2.2. Maintaining A/V sync

+In order to maintain audio/video synchronization throughout the encode, +MEncoder has to drop or duplicate frames. +This works rather well when muxing into an AVI file, but is almost +guaranteed to fail to maintain A/V sync with other muxers such as MPEG. +This is why it is necessary to append the +harddup video filter at the end of the filter chain +to avoid this kind of problem. +You can find more technical information about harddup +in the section +Improving muxing and A/V sync reliability +or in the manual page. +

14.8.2.3. Sample Rate Conversion

+If the audio sample rate in the original file is not the same as +required by the target format, sample rate conversion is required. +This is achieved using the -srate option and +the -af lavcresample audio filter together. +

+DVD: +

-srate 48000 -af lavcresample=48000

+

+VCD and SVCD: +

-srate 44100 -af lavcresample=44100

+

14.8.3. Using libavcodec for VCD/SVCD/DVD Encoding

14.8.3.1. Introduction

+libavcodec can be used to +create VCD/SVCD/DVD compliant video by using the appropriate options. +

14.8.3.2. lavcopts

+This is a list of fields in -lavcopts that you may +be required to change in order to make a complaint movie for VCD, SVCD, +or DVD: +

  • + acodec: + mp2 for VCD, SVCD, or PAL DVD; + ac3 is most commonly used for DVD. + PCM audio may also be used for DVD, but this is mostly a big waste of + space. + Note that MP3 audio is not compliant for any of these formats, but + players often have no problem playing it anyway. +

  • + abitrate: + 224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly + used values range from 192 kbps for stereo to 384 kbps for 5.1 channel + sound. +

  • + vcodec: + mpeg1video for VCD; + mpeg2video for SVCD; + mpeg2video is usually used for DVD but you may also use + mpeg1video for CIF resolutions. +

  • + keyint: + Used to set the GOP size. + 18 for 30fps material, or 15 for 25/24 fps material. + Commercial producers seem to prefer keyframe intervals of 12. + It is possible to make this much larger and still retain compatibility + with most players. + A keyint of 25 should never cause any problems. +

  • + vrc_buf_size: + 327 for VCD, 917 for SVCD, and 1835 for DVD. +

  • + vrc_minrate: + 1152, for VCD. May be left alone for SVCD and DVD. +

  • + vrc_maxrate: + 1152 for VCD; 2500 for SVCD; 9800 for DVD. + For SVCD and DVD, you might wish to use lower values depending on your + own personal preferences and requirements. +

  • + vbitrate: + 1152 for VCD; + up to 2500 for SVCD; + up to 9800 for DVD. + For the latter two formats, vbitrate should be set based on personal + preference. + For instance, if you insist on fitting 20 or so hours on a DVD, you + could use vbitrate=400. + The resulting video quality would probably be quite bad. + If you are trying to squeeze out the maximum possible quality on a DVD, + use vbitrate=9800, but be warned that this could constrain you to less + than an hour of video on a single-layer DVD. +

  • + vstrict: + vstrict=0 should be used to create DVDs. + Without this option, MEncoder creates a + stream that cannot be correctly decoded by some standalone DVD + players. +

14.8.3.3. Examples

+This is a typical minimum set of -lavcopts for +encoding video: +

+VCD: +

+-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
+vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
+

+

+SVCD: +

+-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
+keyint=15:acodec=mp2
+

+

+DVD: +

+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3
+

+

14.8.3.4. Advanced Options

+For higher quality encoding, you may also wish to add quality-enhancing +options to lavcopts, such as trell, +mbd=2, and others. +Note that qpel and v4mv, while often +useful with MPEG-4, are not usable with MPEG-1 or MPEG-2. +Also, if you are trying to make a very high quality DVD encode, it may +be useful to add dc=10 to lavcopts. +Doing so may help reduce the appearance of blocks in flat-colored areas. +Putting it all together, this is an example of a set of lavcopts for a +higher quality DVD: +

+

+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
+keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
+vqmin=1:lmin=1:dc=10:vstrict=0
+

+

14.8.4. Encoding Audio

+VCD and SVCD support MPEG-1 layer II audio, using one of +toolame, +twolame, +or libavcodec's MP2 encoder. +The libavcodec MP2 is far from being as good as the other two libraries, +however it should always be available to use. +VCD only supports constant bitrate audio (CBR) whereas SVCD supports +variable bitrate (VBR), too. +Be careful when using VBR because some bad standalone players might not +support it too well. +

+For DVD audio, libavcodec's +AC-3 codec is used. +

14.8.4.1. toolame

+For VCD and SVCD: +

-oac toolame -toolameopts br=224

+

14.8.4.2. twolame

+For VCD and SVCD: +

-oac twolame -twolameopts br=224

+

14.8.4.3. libavcodec

+For DVD with 2 channel sound: +

-oac lavc -lavcopts acodec=ac3:abitrate=192

+

+For DVD with 5.1 channel sound: +

-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384

+

+For VCD and SVCD: +

-oac lavc -lavcopts acodec=mp2:abitrate=224

+

14.8.5. Putting it all Together

+This section shows some complete commands for creating VCD/SVCD/DVD +compliant videos. +

14.8.5.1. PAL DVD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
+  -o movie.mpg movie.avi
+

+

14.8.5.2. NTSC DVD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
+  -o movie.mpg movie.avi
+

+

14.8.5.3. PAL AVI Containing AC-3 Audio to DVD

+If the source already has AC-3 audio, use -oac copy instead of re-encoding it. +

+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+  -vf scale=720:576,harddup -ofps 25 \
+  -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:aspect=16/9 -o movie.mpg movie.avi
+

+

14.8.5.4. NTSC AVI Containing AC-3 Audio to DVD

+If the source already has AC-3 audio, and is NTSC @ 24000/1001 fps: +

+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
+  -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
+  vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
+  -o movie.mpg movie.avi
+

+

14.8.5.5. PAL SVCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+    scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
+    -o movie.mpg movie.avi
+  

+

14.8.5.6. NTSC SVCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd  -vf \
+    scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+    -o movie.mpg movie.avi
+

+

14.8.5.7. PAL VCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+    scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
+    -o movie.mpg movie.avi
+

+

14.8.5.8. NTSC VCD

+

+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+    scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+    vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+    -o movie.mpg movie.avi
+

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-video-for-windows.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-video-for-windows.html new file mode 100644 index 0000000..f1b506f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-video-for-windows.html @@ -0,0 +1,66 @@ +14.6.  Encoding with the Video For Windows codec family

14.6.  + Encoding with the Video For Windows + codec family +

+Video for Windows provides simple encoding by means of binary video codecs. +You can encode with the following codecs (if you have more, please tell us!) +

+Note that support for this is very experimental and some codecs may not work +correctly. Some codecs will only work in certain colorspaces, try +-vf format=bgr24 and -vf format=yuy2 +if a codec fails or gives wrong output. +

14.6.1. Video for Windows supported codecs

+

Video codec file nameDescription (FourCC)md5sumComment
aslcodec_vfw.dllAlparysoft lossless codec vfw (ASLC)608af234a6ea4d90cdc7246af5f3f29a 
avimszh.dllAVImszh (MSZH)253118fe1eedea04a95ed6e5f4c28878needs -vf format
avizlib.dllAVIzlib (ZLIB)2f1cc76bbcf6d77d40d0e23392fa8eda 
divx.dllDivX4Windows-VFWacf35b2fc004a89c829531555d73f1e6 
huffyuv.dllHuffYUV (lossless) (HFYU)b74695b50230be4a6ef2c4293a58ac3b 
iccvid.dllCinepak Video (cvid)cb3b7ee47ba7dbb3d23d34e274895133 
icmw_32.dllMotion Wavelets (MWV1)c9618a8fc73ce219ba918e3e09e227f2 
jp2avi.dllImagePower MJPEG2000 (IPJ2)d860a11766da0d0ea064672c6833768b-vf flip
m3jp2k32.dllMorgan MJPEG2000 (MJ2C)f3c174edcbaef7cb947d6357cdfde7ff 
m3jpeg32.dllMorgan Motion JPEG Codec (MJPG)1cd13fff5960aa2aae43790242c323b1 
mpg4c32.dllMicrosoft MPEG-4 v1/v2b5791ea23f33010d37ab8314681f1256 
tsccvid.dllTechSmith Camtasia Screen Codec (TSCC)8230d8560c41d444f249802a2700d1d5shareware error on windows
vp31vfw.dllOn2 Open Source VP3 Codec (VP31)845f3590ea489e2e45e876ab107ee7d2 
vp4vfw.dllOn2 VP4 Personal Codec (VP40)fc5480a482ccc594c2898dcc4188b58f 
vp6vfw.dllOn2 VP6 Personal Codec (VP60)04d635a364243013898fd09484f913fb 
vp7vfw.dllOn2 VP7 Personal Codec (VP70)cb4cc3d4ea7c94a35f1d81c3d750bc8dwrong FourCC?
ViVD2.dllSoftMedia ViVD V2 codec VfW (GXVE)a7b4bf5cac630bb9262c3f80d8a773a1 
msulvc06.DLLMSU Lossless codec (MSUD)294bf9288f2f127bb86f00bfcc9ccdda + Decodable by Window Media Player, + not MPlayer (yet). +
camcodec.dllCamStudio lossless video codec (CSCD)0efe97ce08bb0e40162ab15ef3b45615sf.net/projects/camstudio

+ +The first column contains the codec names that should be passed after the +codec parameter, +like: -xvfwopts codec=divx.dll +The FourCC code used by each codec is given in the parentheses. +

+An example to convert an ISO DVD trailer to a VP6 flash video file +using compdata bitrate settings: +

+mencoder -dvd-device zeiram.iso dvd://7 -o trailer.flv \
+-ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
+-lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
+-of lavf
+

+

14.6.2. Using vfw2menc to create a codec settings file.

+To encode with the Video for Windows codecs, you will need to set bitrate +and other options. This is known to work on x86 on both *NIX and Windows. +

+First you must build the vfw2menc program. +It is located in the TOOLS subdirectory +of the MPlayer source tree. +To build on Linux, this can be done using Wine: +

winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32

+ +To build on Windows in MinGW or +Cygwin use: +

gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32

+ +To build on MSVC you will need getopt. +Getopt can be found in the original vfw2menc +archive available at: +The MPlayer on win32 project. +

+Below is an example with the VP6 codec. +

+vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
+

+This will open the VP6 codec dialog window. +Repeat this step for the second pass +and use -s secondpass.mcf. +

+Windows users can use +-xvfwopts codec=vp6vfw.dll:compdata=dialog to have +the codec dialog display before encoding starts. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-x264.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-x264.html new file mode 100644 index 0000000..a2ed41d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-x264.html @@ -0,0 +1,421 @@ +14.5. Encoding with the x264 codec

14.5. Encoding with the + x264 codec

+x264 is a free library for +encoding H.264/AVC video streams. +Before starting to encode, you need to +set up MEncoder to support it. +

14.5.1. Encoding options of x264

+Please begin by reviewing the +x264 section of +MPlayer's man page. +This section is intended to be a supplement to the man page. +Here you will find quick hints about which options are most +likely to interest most people. The man page is more terse, +but also more exhaustive, and it sometimes offers much better +technical detail. +

14.5.1.1. Introduction

+This guide considers two major categories of encoding options: +

  1. + Options which mainly trade off encoding time vs. quality +

  2. + Options which may be useful for fulfilling various personal + preferences and special requirements +

+Ultimately, only you can decide which options are best for your +purposes. The decision for the first class of options is the simplest: +you only have to decide whether you think the quality differences +justify the speed differences. For the second class of options, +preferences may be far more subjective, and more factors may be +involved. Note that some of the "personal preferences and special +requirements" options can still have large impacts on speed or quality, +but that is not what they are primarily useful for. A couple of the +"personal preference" options may even cause changes that look better +to some people, but look worse to others. +

+Before continuing, you need to understand that this guide uses only one +quality metric: global PSNR. +For a brief explanation of what PSNR is, see +the Wikipedia article on PSNR. +Global PSNR is the last PSNR number reported when you include +the psnr option in x264encopts. +Any time you read a claim about PSNR, one of the assumptions +behind the claim is that equal bitrates are used. +

+Nearly all of this guide's comments assume you are using two pass. +When comparing options, there are two major reasons for using +two pass encoding. +First, using two pass often gains around 1dB PSNR, which is a +very big difference. +Secondly, testing options by doing direct quality comparisons +with one pass encodes introduces a major confounding +factor: bitrate often varies significantly with each encode. +It is not always easy to tell whether quality changes are due +mainly to changed options, or if they mostly reflect essentially +random differences in the achieved bitrate. +

14.5.1.2. Options which primarily affect speed and quality

  • + subq: + Of the options which allow you to trade off speed for quality, + subq and frameref (see below) are usually + by far the most important. + If you are interested in tweaking either speed or quality, these + are the first options you should consider. + On the speed dimension, the frameref and + subq options interact with each other fairly + strongly. + Experience shows that, with one reference frame, + subq=5 (the default setting) takes about 35% more time than + subq=1. + With 6 reference frames, the penalty grows to over 60%. + subq's effect on PSNR seems fairly constant + regardless of the number of reference frames. + Typically, subq=5 achieves 0.2-0.5 dB higher global + PSNR in comparison subq=1. + This is usually enough to be visible. +

    + subq=6 is slower and yields better quality at a reasonable + cost. + In comparison to subq=5, it usually gains 0.1-0.4 dB + global PSNR with speed costs varying from 25%-100%. + Unlike other levels of subq, the behavior of + subq=6 does not depend much on frameref + and me. Instead, the effectiveness of subq=6 + depends mostly upon the number of B-frames used. In normal + usage, this means subq=6 has a large impact on both speed + and quality in complex, high motion scenes, but it may not have much effect + in low-motion scenes. Note that it is still recommended to always set + bframes to something other than zero (see below). +

    + subq=7 is the slowest, highest quality mode. + In comparison to subq=6, it usually gains 0.01-0.05 dB + global PSNR with speed costs varying from 15%-33%. + Since the tradeoff encoding time vs. quality is quite low, you should + only use it if you are after every bit saving and if encoding time is + not an issue. +

  • + frameref: + frameref is set to 1 by default, but this + should not be taken to imply that it is reasonable to set it to 1. + Merely raising frameref to 2 gains around + 0.15dB PSNR with a 5-10% speed penalty; this seems like a good tradeoff. + frameref=3 gains around 0.25dB PSNR over + frameref=1, which should be a visible difference. + frameref=3 is around 15% slower than + frameref=1. + Unfortunately, diminishing returns set in rapidly. + frameref=6 can be expected to gain only + 0.05-0.1 dB over frameref=3 at an additional + 15% speed penalty. + Above frameref=6, the quality gains are + usually very small (although you should keep in mind throughout + this whole discussion that it can vary quite a lot depending on your source). + In a fairly typical case, frameref=12 + will improve global PSNR by a tiny 0.02dB over + frameref=6, at a speed cost of 15%-20%. + At such high frameref values, the only really + good thing that can be said is that increasing it even further will + almost certainly never harm + PSNR, but the additional quality benefits are barely even + measurable, let alone perceptible. +

    Note:

    + Raising frameref to unnecessarily high values + can and + usually does + hurt coding efficiency if you turn CABAC off. + With CABAC on (the default behavior), the possibility of setting + frameref "too high" currently seems too remote + to even worry about, and in the future, optimizations may remove + the possibility altogether. +

    + If you care about speed, a reasonable compromise is to use low + subq and frameref values on + the first pass, and then raise them on the second pass. + Typically, this has a negligible negative effect on the final + quality: You will probably lose well under 0.1dB PSNR, which + should be much too small of a difference to see. + However, different values of frameref can + occasionally affect frametype decision. + Most likely, these are rare outlying cases, but if you want to + be pretty sure, consider whether your video has either + fullscreen repetitive flashing patterns or very large temporary + occlusions which might force an I-frame. + Adjust the first-pass frameref so it is large + enough to contain the duration of the flashing cycle (or occlusion). + For example, if the scene flashes back and forth between two images + over a duration of three frames, set the first pass + frameref to 3 or higher. + This issue is probably extremely rare in live action video material, + but it does sometimes come up in video game captures. +

  • + me: + This option is for choosing the motion estimation search method. + Altering this option provides a straightforward quality-vs-speed + tradeoff. me=dia is only a few percent faster than + the default search, at a cost of under 0.1dB global PSNR. The + default setting (me=hex) is a reasonable tradeoff + between speed and quality. me=umh gains a little under + 0.1dB global PSNR, with a speed penalty that varies depending on + frameref. At high values of + frameref (e.g. 12 or so), me=umh + is about 40% slower than the default me=hex. With + frameref=3, the speed penalty incurred drops to + 25%-30%. +

    + me=esa uses an exhaustive search that is too slow for + practical use. +

  • + partitions=all: + This option enables the use of 8x4, 4x8 and 4x4 subpartitions in + predicted macroblocks (in addition to the default partitions). + Enabling it results in a fairly consistent + 10%-15% loss of speed. This option is rather useless in source + containing only low motion, however in some high-motion source, + particularly source with lots of small moving objects, gains of + about 0.1dB can be expected. +

  • + bframes: + If you are used to encoding with other codecs, you may have found + that B-frames are not always useful. + In H.264, this has changed: there are new techniques and block + types that are possible in B-frames. + Usually, even a naive B-frame choice algorithm can have a + significant PSNR benefit. + It is interesting to note that using B-frames usually speeds up + the second pass somewhat, and may also speed up a single + pass encode if adaptive B-frame decision is turned off. +

    + With adaptive B-frame decision turned off + (x264encopts's nob_adapt), + the optimal value for this setting is usually no more than + bframes=1, or else high-motion scenes can suffer. + With adaptive B-frame decision on (the default behavior), it is + safe to use higher values; the encoder will reduce the use of + B-frames in scenes where they would hurt compression. + The encoder rarely chooses to use more than 3 or 4 B-frames; + setting this option any higher will have little effect. +

  • + b_adapt: + Note: This is on by default. +

    + With this option enabled, the encoder will use a reasonably fast + decision process to reduce the number of B-frames used in scenes that + might not benefit from them as much. + You can use b_bias to tweak how B-frame-happy + the encoder is. + The speed penalty of adaptive B-frames is currently rather modest, + but so is the potential quality gain. + It usually does not hurt, however. + Note that this only affects speed and frametype decision on the + first pass. + b_adapt and b_bias have no + effect on subsequent passes. +

  • + b_pyramid: + You might as well enable this option if you are using >=2 B-frames; + as the man page says, you get a little quality improvement at no + speed cost. + Note that these videos cannot be read by libavcodec-based decoders + older than about March 5, 2005. +

  • + weight_b: + In typical cases, there is not much gain with this option. + However, in crossfades or fade-to-black scenes, weighted + prediction gives rather large bitrate savings. + In MPEG-4 ASP, a fade-to-black is usually best coded as a series + of expensive I-frames; using weighted prediction in B-frames + makes it possible to turn at least some of these into much smaller + B-frames. + Encoding time cost is minimal, as no extra decisions need to be made. + Also, contrary to what some people seem to guess, the decoder + CPU requirements are not much affected by weighted prediction, + all else being equal. +

    + Unfortunately, the current adaptive B-frame decision algorithm + has a strong tendency to avoid B-frames during fades. + Until this changes, it may be a good idea to add + nob_adapt to your x264encopts, if you expect + fades to have a large effect in your particular video + clip. +

  • + threads: + This option allows to spawn threads to encode in parallel on multiple CPUs. + You can manually select the number of threads to be created or, better, set + threads=auto and let + x264 detect how many CPUs are + available and pick an appropriate number of threads. + If you have a multi-processor machine, you should really consider using it + as it can to increase encoding speed linearly with the number of CPU cores + (about 94% per CPU core), with very little quality reduction (about 0.005dB + for dual processor, about 0.01dB for a quad processor machine). +

14.5.1.3. Options pertaining to miscellaneous preferences

  • + Two pass encoding: + Above, it was suggested to always use two pass encoding, but there + are still reasons for not using it. For instance, if you are capturing + live TV and encoding in realtime, you are forced to use single-pass. + Also, one pass is obviously faster than two passes; if you use the + exact same set of options on both passes, two pass encoding is almost + twice as slow. +

    + Still, there are very good reasons for using two pass encoding. For + one thing, single pass ratecontrol is not psychic, and it often makes + unreasonable choices because it cannot see the big picture. For example, + suppose you have a two minute long video consisting of two distinct + halves. The first half is a very high-motion scene lasting 60 seconds + which, in isolation, requires about 2500kbps in order to look decent. + Immediately following it is a much less demanding 60-second scene + that looks good at 300kbps. Suppose you ask for 1400kbps on the theory + that this is enough to accomodate both scenes. Single pass ratecontrol + will make a couple of "mistakes" in such a case. First of all, it + will target 1400kbps in both segments. The first segment may end up + heavily overquantized, causing it to look unacceptably and unreasonably + blocky. The second segment will be heavily underquantized; it may look + perfect, but the bitrate cost of that perfection will be completely + unreasonable. What is even harder to avoid is the problem at the + transition between the two scenes. The first seconds of the low motion + half will be hugely over-quantized, because the ratecontrol is still + expecting the kind of bitrate requirements it met in the first half + of the video. This "error period" of heavily over-quantized low motion + will look jarringly bad, and will actually use less than the 300kbps + it would have taken to make it look decent. There are ways to + mitigate the pitfalls of single-pass encoding, but they may tend to + increase bitrate misprediction. +

    + Multipass ratecontrol can offer huge advantages over a single pass. + Using the statistics gathered from the first pass encode, the encoder + can estimate, with reasonable accuracy, the "cost" (in bits) of + encoding any given frame, at any given quantizer. This allows for + a much more rational, better planned allocation of bits between the + expensive (high-motion) and cheap (low-motion) scenes. See + qcomp below for some ideas on how to tweak this + allocation to your liking. +

    + Moreover, two passes need not take twice as long as one pass. You can + tweak the options in the first pass for higher speed and lower quality. + If you choose your options well, you can get a very fast first pass. + The resulting quality in the second pass will be slightly lower because size + prediction is less accurate, but the quality difference is normally much + too small to be visible. Try, for example, adding + subq=1:frameref=1 to the first pass + x264encopts. Then, on the second pass, use slower, + higher-quality options: + subq=6:frameref=15:partitions=all:me=umh +

  • + Three pass encoding? + x264 offers the ability to make an arbitrary number of consecutive + passes. If you specify pass=1 on the first pass, + then use pass=3 on a subsequent pass, the subsequent + pass will both read the statistics from the previous pass, and write + its own statistics. An additional pass following this one will have + a very good base from which to make highly accurate predictions of + framesizes at a chosen quantizer. In practice, the overall quality + gain from this is usually close to zero, and quite possibly a third + pass will result in slightly worse global PSNR than the pass before + it. In typical usage, three passes help if you get either bad bitrate + prediction or bad looking scene transitions when using only two passes. + This is somewhat likely to happen on extremely short clips. There are + also a few special cases in which three (or more) passes are handy + for advanced users, but for brevity, this guide omits discussing those + special cases. +

  • + qcomp: + qcomp trades off the number of bits allocated + to "expensive" high-motion versus "cheap" low-motion frames. At + one extreme, qcomp=0 aims for true constant + bitrate. Typically this would make high-motion scenes look completely + awful, while low-motion scenes would probably look absolutely + perfect, but would also use many times more bitrate than they + would need in order to look merely excellent. At the other extreme, + qcomp=1 achieves nearly constant quantization parameter + (QP). Constant QP does not look bad, but most people think it is more + reasonable to shave some bitrate off of the extremely expensive scenes + (where the loss of quality is not as noticeable) and reallocate it to + the scenes that are easier to encode at excellent quality. + qcomp is set to 0.6 by default, which may be slightly + low for many peoples' taste (0.7-0.8 are also commonly used). +

  • + keyint: + keyint is solely for trading off file seekability against + coding efficiency. By default, keyint is set to 250. In + 25fps material, this guarantees the ability to seek to within 10 seconds + precision. If you think it would be important and useful to be able to + seek within 5 seconds of precision, set keyint=125; + this will hurt quality/bitrate slightly. If you care only about quality + and not about seekability, you can set it to much higher values + (understanding that there are diminishing returns which may become + vanishingly low, or even zero). The video stream will still have seekable + points as long as there are some scene changes. +

  • + deblock: + This topic is going to be a bit controversial. +

    + H.264 defines a simple deblocking procedure on I-blocks that uses + pre-set strengths and thresholds depending on the QP of the block + in question. + By default, high QP blocks are filtered heavily, and low QP blocks + are not deblocked at all. + The pre-set strengths defined by the standard are well-chosen and + the odds are very good that they are PSNR-optimal for whatever + video you are trying to encode. + The deblock allow you to specify offsets to the preset + deblocking thresholds. +

    + Many people seem to think it is a good idea to lower the deblocking + filter strength by large amounts (say, -3). + This is however almost never a good idea, and in most cases, + people who are doing this do not understand very well how + deblocking works by default. +

    + The first and most important thing to know about the in-loop + deblocking filter is that the default thresholds are almost always + PSNR-optimal. + In the rare cases that they are not optimal, the ideal offset is + plus or minus 1. + Adjusting deblocking parameters by a larger amount is almost + guaranteed to hurt PSNR. + Strengthening the filter will smear more details; weakening the + filter will increase the appearance of blockiness. +

    + It is definitely a bad idea to lower the deblocking thresholds if + your source is mainly low in spacial complexity (i.e., not a lot + of detail or noise). + The in-loop filter does a rather excellent job of concealing + the artifacts that occur. + If the source is high in spacial complexity, however, artifacts + are less noticeable. + This is because the ringing tends to look like detail or noise. + Human visual perception easily notices when detail is removed, + but it does not so easily notice when the noise is wrongly + represented. + When it comes to subjective quality, noise and detail are somewhat + interchangeable. + By lowering the deblocking filter strength, you are most likely + increasing error by adding ringing artifacts, but the eye does + not notice because it confuses the artifacts with detail. +

    + This still does not justify + lowering the deblocking filter strength, however. + You can generally get better quality noise from postprocessing. + If your H.264 encodes look too blurry or smeared, try playing with + -vf noise when you play your encoded movie. + -vf noise=8a:4a should conceal most mild + artifacting. + It will almost certainly look better than the results you + would have gotten just by fiddling with the deblocking filter. +

14.5.2. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualitysubq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b6fps0dB
High qualitysubq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b13fps-0.89dB
Fastsubq=4:bframes=2:b_pyramid:weight_b17fps-1.48dB
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-xvid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-xvid.html new file mode 100644 index 0000000..6b088c5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/menc-feat-xvid.html @@ -0,0 +1,179 @@ +14.4. Encoding with the Xvid codec

14.4. Encoding with the Xvid + codec

+Xvid is a free library for +encoding MPEG-4 ASP video streams. +Before starting to encode, you need to +set up MEncoder to support it. +

+This guide mainly aims at featuring the same kind of information +as x264's encoding guide. +Therefore, please begin by reading +the first part +of that guide. +

14.4.1. What options should I use to get the best results?

+Please begin by reviewing the +Xvid section of +MPlayer's man page. +This section is intended to be a supplement to the man page. +

+The Xvid default settings are already a good tradeoff between +speed and quality, therefore you can safely stick to them if +the following section puzzles you. +

14.4.2. Encoding options of Xvid

  • + vhq + This setting affects the macroblock decision algorithm, where the + higher the setting, the wiser the decision. + The default setting may be safely used for every encode, while + higher settings always help PSNR but are significantly slower. + Please note that a better PSNR does not necessarily mean + that the picture will look better, but tells you that it is + closer to the original. + Turning it off will noticeably speed up encoding; if speed is + critical for you, the tradeoff may be worth it. +

  • + bvhq + This does the same job as vhq, but does it on B-frames. + It has a negligible impact on speed, and slightly improves quality + (around +0.1dB PSNR). +

  • + max_bframes + A higher number of consecutive allowed B-frames usually improves + compressibility, although it may also lead to more blocking artifacts. + The default setting is a good tradeoff between compressibility and + quality, but you may increase it up to 3 if you are bitrate-starved. + You may also decrease it to 1 or 0 if you are aiming at perfect + quality, though in that case you should make sure your + target bitrate is high enough to ensure that the encoder does not + have to increase quantizers to reach it. +

  • + bf_threshold + This controls the B-frame sensitivity of the encoder, where a higher + value leads to more B-frames being used (and vice versa). + This setting is to be used together with max_bframes; + if you are bitrate-starved, you should increase both + max_bframes and bf_threshold, + while you may increase max_bframes and reduce + bf_threshold so that the encoder may use more + B-frames in places that only really + need them. + A low number of max_bframes and a high value of + bf_threshold is probably not a wise choice as it + will force the encoder to put B-frames in places that would not + benefit from them, therefore reducing visual quality. + However, if you need to be compatible with standalone players that + only support old DivX profiles (which only supports up to 1 + consecutive B-frame), this would be your only way to + increase compressibility through using B-frames. +

  • + trellis + Optimizes the quantization process to get an optimal tradeoff + between PSNR and bitrate, which allows significant bit saving. + These bits will in return be spent elsewhere on the video, + raising overall visual quality. + You should always leave it on as its impact on quality is huge. + Even if you are looking for speed, do not disable it until you + have turned down vhq and all other more + CPU-hungry options to the minimum. +

  • + hq_ac + Activates a better coefficient cost estimation method, which slightly + reduces filesize by around 0.15 to 0.19% (which corresponds to less + than 0.01dB PSNR increase), while having a negligible impact on speed. + It is therefore recommended to always leave it on. +

  • + cartoon + Designed to better encode cartoon content, and has no impact on + speed as it just tunes the mode decision heuristics for this type + of content. +

  • + me_quality + This setting is to control the precision of the motion estimation. + The higher me_quality, the more + precise the estimation of the original motion will be, and the + better the resulting clip will capture the original motion. +

    + The default setting is best in all cases; + thus it is not recommended to turn it down unless you are + really looking for speed, as all the bits saved by a good motion + estimation would be spent elsewhere, raising overall quality. + Therefore, do not go any lower than 5, and even that only as a last + resort. +

  • + chroma_me + Improves motion estimation by also taking the chroma (color) + information into account, whereas me_quality + alone only uses luma (grayscale). + This slows down encoding by 5-10% but improves visual quality + quite a bit by reducing blocking effects and reduces filesize by + around 1.3%. + If you are looking for speed, you should disable this option before + starting to consider reducing me_quality. +

  • + chroma_opt + Is intended to increase chroma image quality around pure + white/black edges, rather than improving compression. + This can help to reduce the "red stairs" effect. +

  • + lumi_mask + Tries to give less bitrate to part of the picture that the + human eye cannot see very well, which should allow the encoder + to spend the saved bits on more important parts of the picture. + The quality of the encode yielded by this option highly depends + on personal preferences and on the type and monitor settings + used to watch it (typically, it will not look as good if it is + bright or if it is a TFT monitor). +

  • + qpel + Raise the number of candidate motion vectors by increasing + the precision of the motion estimation from halfpel to + quarterpel. + The idea is to find better motion vectors which will in return + reduce bitrate (hence increasing quality). + However, motion vectors with quarterpel precision require a + few extra bits to code, but the candidate vectors do not always + give (much) better results. + Quite often, the codec still spends bits on the extra precision, + but little or no extra quality is gained in return. + Unfortunately, there is no way to foresee the possible gains of + qpel, so you need to actually encode with and + without it to know for sure. +

    + qpel can be almost double encoding time, and + requires as much as 25% more processing power to decode. + It is not supported by all standalone players. +

  • + gmc + Tries to save bits on panning scenes by using a single motion + vector for the whole frame. + This almost always raises PSNR, but significantly slows down + encoding (as well as decoding). + Therefore, you should only use it when you have turned + vhq to the maximum. + Xvid's GMC is more + sophisticated than DivX's, but is only supported by few + standalone players. +

14.4.3. Encoding profiles

+Xvid supports encoding profiles through the profile option, +which are used to impose restrictions on the properties of the Xvid video +stream such that it will be playable on anything which supports the +chosen profile. +The restrictions relate to resolutions, bitrates and certain MPEG-4 +features. +The following table shows what each profile supports. +

 SimpleAdvanced SimpleDivX
Profile name0123012345HandheldPortable NTSCPortable PALHome Theater NTSCHome Theater PALHDTV
Width [pixels]1761763523521761763523523527201763523527207201280
Height [pixels]144144288288144144288288576576144240288480576720
Frame rate [fps]15151515303015303030153025302530
Max average bitrate [kbps]646412838412812838476830008000537.648544854485448549708.4
Peak average bitrate over 3 secs [kbps]          800800080008000800016000
Max. B-frames0000      011112
MPEG quantization    XXXXXX      
Adaptive quantization    XXXXXXXXXXXX
Interlaced encoding    XXXXXX   XXX
Quaterpixel    XXXXXX      
Global motion compensation    XXXXXX      

14.4.4. Encoding setting examples

+The following settings are examples of different encoding +option combinations that affect the speed vs quality tradeoff +at the same target bitrate. +

+All the encoding settings were tested on a 720x448 @30000/1001 fps +video sample, the target bitrate was 900kbps, and the machine was an +AMD-64 3400+ at 2400 MHz in 64 bits mode. +Each encoding setting features the measured encoding speed (in +frames per second) and the PSNR loss (in dB) compared to the "very +high quality" setting. +Please understand that depending on your source, your machine type +and development advancements, you may get very different results. +

DescriptionEncoding optionsspeed (in fps)Relative PSNR loss (in dB)
Very high qualitychroma_opt:vhq=4:bvhq=1:quant_type=mpeg16fps0dB
High qualityvhq=2:bvhq=1:chroma_opt:quant_type=mpeg18fps-0.1dB
Fastturbo:vhq=028fps-0.69dB
Realtimeturbo:nochroma_me:notrellis:max_bframes=0:vhq=038fps-1.48dB
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mencoder.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mencoder.html new file mode 100644 index 0000000..3dae59e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mencoder.html @@ -0,0 +1,12 @@ +Chapter 13. Basic usage of MEncoder

Chapter 13. Basic usage of MEncoder

+For the complete list of available MEncoder options +and examples, please see the man page. For a series of hands-on examples and +detailed guides on using several encoding parameters, read the +encoding-tips that were +collected from several mailing list threads on MPlayer-users. Search the archives +here +and especially for older things also +here +for a wealth of discussions about all aspects of and problems related to +encoding with MEncoder. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mga_vid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mga_vid.html new file mode 100644 index 0000000..8841dc0 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mga_vid.html @@ -0,0 +1,53 @@ +8.7. Matrox framebuffer (mga_vid)

8.7. Matrox framebuffer (mga_vid)

+mga_vid is a combination of a video output driver and +a Linux kernel module that utilitizes the Matrox G200/G400/G450/G550 video +scaler/overlay unit to perform YUV->RGB colorspace conversion and arbitrary +video scaling. +mga_vid has hardware VSYNC support with triple +buffering. It works on both a framebuffer console and under X, but only +with Linux 2.4.x. +

+For a Linux 2.6.x version of this driver check out +http://attila.kinali.ch/mga/. +

Installation:

  1. + To use it, you first have to compile mga_vid.o: +

    +cd drivers
    +make

    +

  2. + Then run (as root) +

    make install

    + which should install the module and create the device node for you. + Load the driver with +

    insmod mga_vid.o

    +

  3. + You should verify the memory size detection using the + dmesg command. If it's bad, use the + mga_ram_size option + (rmmod mga_vid first), + specify card's memory size in MB: +

    insmod mga_vid.o mga_ram_size=16

    +

  4. + To make it load/unload automatically when needed, first insert the + following line at the end of /etc/modules.conf: + +

    alias char-major-178 mga_vid

    +

  5. + Now you have to (re)compile MPlayer, + ./configure will detect + /dev/mga_vid and build the 'mga' driver. Using it + from MPlayer goes by -vo mga + if you have matroxfb console, or -vo xmga under XFree86 + 3.x.x or 4.x.x. +

+The mga_vid driver cooperates with Xv. +

+The /dev/mga_vid device file can be read for some +info, for example by +

cat /dev/mga_vid

+and can be written for brightness change: +

echo "brightness=120" > /dev/mga_vid

+

+There is a test application called mga_vid_test in the same +directory. It should draw 256x256 images on the screen if all is working well. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mpeg_decoders.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mpeg_decoders.html new file mode 100644 index 0000000..fbf6507 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mpeg_decoders.html @@ -0,0 +1,269 @@ +8.18. MPEG decoders

8.18. MPEG decoders

8.18.1. DVB output and input

+MPlayer supports cards with the Siemens DVB chipset +from vendors like Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB +drivers are available from the +Linux TV site. +If you want to do software transcoding you should have at least a 1GHz CPU. +

+Configure should detect your DVB card. If it did not, force detection with +

./configure --enable-dvb

+If you have ost headers at a non-standard path, set the path with +

+./configure --with-extraincdir=DVB source directory/ost/include
+

+Then compile and install as usual.

USAGE.  +Hardware decoding of streams containing MPEG-1/2 video and/or MPEG audio can be done with this +command: +

+mplayer -ao mpegpes -vo mpegpes file.mpg|vob
+

+

+Decoding of any other type of video stream requires transcoding to MPEG-1, thus it's slow +and may not be worth the trouble, especially if your computer is slow. +It can be achieved using a command like this: +

+mplayer -ao mpegpes -vo mpegpes yourfile.ext
+mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext
+

+Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 for +NTSC. You must rescale for other heights by +adding scale=width:height with the width and height you want +to the -vf option. DVB cards accept various widths, like 720, +704, 640, 512, 480, 352 etc. and do hardware scaling in horizontal direction, +so you do not need to scale horizontally in most cases. +For a 512x384 (aspect 4:3) MPEG-4 (DivX) try: +

mplayer -ao mpegpes -vo mpegpes -vf scale=512:576

+

+If you have a widescreen movie and you do not want to scale it to full height, +you can use the expand=w:h filter to add black bands. To view a +640x384 MPEG-4 (DivX), try: +

+mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi
+

+

+If your CPU is too slow for a full size 720x576 MPEG-4 (DivX), try downscaling: +

+mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi
+

+

If speed does not improve, try vertical downscaling, too: +

+mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi
+

+

+For OSD and subtitles use the OSD feature of the expand filter. So, instead of +expand=w:h or expand=w:h:x:y, use +expand=w:h:x:y:1 (the 5th parameter :1 +at the end will enable OSD rendering). You may want to move the image up a bit +to get a bigger black zone for subtitles. You may also want to move subtitles +up, if they are outside your TV screen, use the +-subpos <0-100> +option to adjust this (-subpos 80 is a good choice). +

+In order to play non-25fps movies on a PAL TV or with a slow CPU, add the +-framedrop option. +

+To keep the aspect ratio of MPEG-4 (DivX) files and get the optimal scaling +parameters (hardware horizontal scaling and software vertical scaling +while keeping the right aspect ratio), use the new dvbscale filter: +

+for a  4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
+for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
+

+

Digital TV (DVB input module). You can use your DVB card for watching Digital TV.

+You should have the programs scan and +szap/tzap/czap/azap installed; they are all included in +the drivers package. +

+Verify that your drivers are working properly with a program such as +dvbstream +(that is the base of the DVB input module). +

+Now you should compile a ~/.mplayer/channels.conf +file, with the syntax accepted by szap/tzap/czap/azap, or +have scan compile it for you. +

+If you have more than one card type (e.g. Satellitar, Terrestrial, Cable and ATSC) +you can save your channels files as +~/.mplayer/channels.conf.sat, +~/.mplayer/channels.conf.ter, +~/.mplayer/channels.conf.cbl, +and ~/.mplayer/channels.conf.atsc, +respectively, so as to implicitly hint MPlayer +to use these files rather than ~/.mplayer/channels.conf, +and you only need to specify which card to use. +

+Make sure that you have only Free to Air +channels in your channels.conf file, or +MPlayer will wait for an unencrypted transmission. +

+In your audio and video fields you can use an extended syntax: +...:pid[+pid]:... (for a maximum of 6 pids each); +in this case MPlayer will include in the +stream all the indicated pids, plus pid 0 (that contains the PAT). +You are encouraged to include in each row the PMT pid for the +corresponding channel (if you know it). +You can also specify 8192, this will select all pids on this frequency +and you can then switch between the programs with TAB. +This might need more bandwidth, though cheap cards always transfer all +channels at least to the kernel so it does not make much of a difference +for these. +Other possible uses are: televideo pid, second audio track, etc. +

+If MPlayer complains frequently about +

Too many video/audio packets in the buffer

or +if you notice a growing desynchronization between audio and +video try to use the libavformat MPEG-TS demuxer by adding +-demuxer lavf -lavfdopts probesize=128 +to your command line. +

+To show the first of the channels present in your list, run +

mplayer dvb://

+

+If you want to watch a specific channel, such as R1, run +

mplayer dvb://R1

+

+If you have more than one card you also need to specify the number of the card +where the channel is visible (e.g. 2) with the syntax: +

mplayer dvb://2@R1

+

+To change channels press the h (next) and +k (previous) keys, or use the +OSD menu. +

+If your ~/.mplayer/menu.conf contains a +<dvbsel> entry, such as the one in the example +file etc/dvb-menu.conf (that you can use to overwrite +~/.mplayer/menu.conf), the main menu will show a +sub-menu entry that will permit you to choose one of the channels present +in your channels.conf, possibly preceded by a menu +with the list of cards available if more than one is usable by +MPlayer. +

+If you want to save a program to disk you can use +

+mplayer -dumpfile r1.ts -dumpstream dvb://R1
+

+

+If you want to record it in a different format (re-encoding it) instead +you can run a command such as +

+mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 \
+    -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
+

+

+Read the man page for a list of options that you can pass to the +DVB input module. +

FUTURE.  +If you have questions or want to hear feature announcements and take part in +discussions on this subject, join our +MPlayer-DVB +mailing list. Please remember that the list language is English. +

+In the future you may expect the ability to display OSD and subtitles using +the native OSD feature of DVB cards, as well as more fluent playback of +non-25fps movies and realtime transcoding between MPEG-2 and MPEG-4 (partial +decompression). +

8.18.2. DXR2

+MPlayer supports hardware accelerated playback +with the Creative DXR2 card. +

+First of all you will need properly installed DXR2 drivers. You can find +the drivers and installation instructions at the +DXR2 Resource Center site. +

USAGE

-vo dxr2

Enable TV output.

-vo dxr2:x11 or -vo dxr2:xv

Enable Overlay output in X11.

-dxr2 <option1:option2:...>

+ This option is used to control the DXR2 driver. +

+The overlay chipset used on the DXR2 is of pretty bad quality but the +default settings should work for everybody. The OSD may be usable with the +overlay (not on TV) by drawing it in the colorkey. With the default colorkey +settings you may get variable results, usually you will see the colorkey +around the characters or some other funny effect. But if you properly adjust +the colorkey settings you should be able to get acceptable results. +

Please see the man page for available options.

8.18.3. DXR3/Hollywood+

+MPlayer supports hardware accelerated playback +with the Creative DXR3 and Sigma Designs Hollywood Plus cards. These cards +both use the em8300 MPEG decoder chip from Sigma Designs. +

+First of all you will need properly installed DXR3/H+ drivers, version 0.12.0 +or later. You can find the drivers and installation instructions at the +DXR3 & Hollywood Plus for Linux +site. configure should detect your card automatically, +compilation should go without problems. +

USAGE

-vo dxr3:prebuf:sync:norm=x:device

+overlay activates the overlay instead of TVOut. It requires +that you have a properly configured overlay setup to work right. The easiest +way to configure the overlay is to first run autocal. Then run mplayer with +dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can +tweak the overlay settings and see the effects in realtime, perhaps this feature +will be supported by the MPlayer GUI in the future. +When overlay is properly set up you will no longer need to use dxr3view. +prebuf turns on prebuffering. Prebuffering is a feature of the +em8300 chip that enables it to hold more than one frame of video at a time. +This means that when you are running with prebuffering +MPlayer will try to keep the video buffer filled +with data at all times. +If you are on a slow machine MPlayer will probably +use close to, or precisely 100% of CPU. +This is especially common if you play pure MPEG streams +(like DVDs, SVCDs a.s.o.) since MPlayer will not have +to reencode it to MPEG it will fill the buffer very fast. +With prebuffering video playback is much +less sensitive to other programs hogging the CPU, it will not drop frames unless +applications hog the CPU for a long time. +When running without prebuffering the em8300 is much more sensitive to CPU load, +so it is highly suggested that you turn on MPlayer's +-framedrop option to avoid further loss of sync. +sync will turn on the new sync-engine. This is currently an +experimental feature. With the sync feature turned on the em8300's internal +clock will be monitored at all times, if it starts to deviate from +MPlayer's clock it will be reset causing the em8300 +to drop any frames that are lagging behind. +norm=x will set the TV norm of the DXR3 card without the need +for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, +3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 (auto-adjust +using PAL/NTSC) because they decide which norm to use by looking at the frame +rate of the movie. norm = 0 (default) does not change the current norm. +device = device number to use if +you have more than one em8300 card. Any of these options may be left out. +:prebuf:sync seems to work great when playing MPEG-4 (DivX) +movies. People have reported problems using the prebuf option when playing +MPEG-1/2 files. +You might want to try running without any options first, if you have sync +problems, or DVD subtitle problems, give :sync a try. +

-ao oss:/dev/em8300_ma-X

+ For audio output, where X is the device number + (0 if one card). +

-af resample=xxxxx

+ The em8300 cannot play back samplerates lower than 44100Hz. If the sample + rate is below 44100Hz select either 44100Hz or 48000Hz depending on which + one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as + 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 + and so on. + This does not work with digital audio output (-ac hwac3). +

-vf lavc

+ To watch non-MPEG content on the em8300 (i.e. MPEG-4 (DivX) or RealVideo) + you have to specify an MPEG-1 video filter such as + libavcodec (lavc). + See the man page for further info about -vf lavc. + Currently there is no way of setting the fps of the em8300 which means that + it is fixed to 30000/1001 fps. + Because of this it is highly recommended that you use + -vf lavc=quality:25 + especially if you are using prebuffering. Then why 25 and not 30000/1001? + Well, the thing is that when you use 30000/1001 the picture becomes a bit + jumpy. + The reason for this is unknown to us. + If you set it to somewhere between 25 and 27 the picture becomes stable. + For now all we can do is accept this for a fact. +

-vf expand=-1:-1:-1:-1:1

+ Although the DXR3 driver can put some OSD onto the MPEG-1/2/4 video, it has + much lower quality than MPlayer's traditional OSD, + and has several refresh problems as well. The command line above will firstly + convert the input video to MPEG-4 (this is mandatory, sorry), then apply an + expand filter which won't expand anything (-1: default), but apply the normal + OSD onto the picture (that's what the "1" at the end does). +

-ac hwac3

+ The em8300 supports playing back AC-3 audio (surround sound) through the + digital audio output of the card. See the -ao oss option + above, it must be used to specify the DXR3's output instead of a sound card. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mtrr.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mtrr.html new file mode 100644 index 0000000..c108e4c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/mtrr.html @@ -0,0 +1,47 @@ +8.1. Setting up MTRR

8.1. Setting up MTRR

+It is VERY recommended to check if the MTRR registers +are set up properly, because they can give a big performance boost. +

+Do a cat /proc/mtrr: +

+--($:~)-- cat /proc/mtrr
+reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9
+reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

+

+It's right, shows my Matrox G400 with 16MB memory. I did this from +XFree 4.x.x, which sets up MTRR registers automatically. +

+If nothing worked, you have to do it manually. First, you have to find the +base address. You have 3 ways to find it: + +

  1. + from X11 startup messages, for example: +

    +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
    +(--) SVGA: Linear framebuffer at 0xD8000000

    +

  2. + from /proc/pci (use lspci -v + command): +

    +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
    +Memory at d8000000 (32-bit, prefetchable)

    +

  3. + from mga_vid kernel driver messages (use dmesg): +

    mga_mem_base = d8000000

    +

+

+Then let's find the memory size. This is very easy, just convert video RAM +size to hexadecimal, or use this table: +

1 MB0x100000
2 MB0x200000
4 MB0x400000
8 MB0x800000
16 MB0x1000000
32 MB0x2000000

+

+You know base address and memory size, let's setup MTRR registers! +For example, for the Matrox card above (base=0xd8000000) +with 32MB ram (size=0x2000000) just execute: +

+echo "base=0xd8000000 size=0x2000000 type=write-combining" > /proc/mtrr
+

+

+Not all CPUs have MTRRs. For example older K6-2 (around 266MHz, +stepping 0) CPUs don't have MTRRs, but stepping 12 does +(execute cat /proc/cpuinfo to check it). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/opengl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/opengl.html new file mode 100644 index 0000000..88463c1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/opengl.html @@ -0,0 +1,23 @@ +8.10. OpenGL output

8.10. OpenGL output

+MPlayer supports displaying movies using OpenGL, +but if your platform/driver supports xv as should be the case on a PC with +Linux, use xv instead, OpenGL performance is considerably worse. If you +have an X11 implementation without xv support, OpenGL is a viable +alternative. +

+Unfortunately not all drivers support this feature. The Utah-GLX drivers +(for XFree86 3.3.6) support it for all cards. +See http://utah-glx.sf.net for details about how to +install it. +

+XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, +4.2.0 or later supports Rage128. +See http://dri.sf.net for download and installation +instructions. +

+A hint from one of our users: the GL video output can be used to get +vsynced TV output. You'll have to set an environment variable (at +least on nVidia): +

+export __GL_SYNC_TO_VBLANK=1 +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/other.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/other.html new file mode 100644 index 0000000..e1f1c5b --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/other.html @@ -0,0 +1,89 @@ +8.19. Other visualization hardware

8.19. Other visualization hardware

8.19.1. Zr

+This is a display-driver (-vo zr) for a number of MJPEG +capture/playback cards (tested for DC10+ and Buz, and it should work for the +LML33, the DC10). The driver works by encoding the frame to JPEG and then +sending it to the card. For the JPEG encoding +libavcodec +is used, and required. With the special cinerama mode, +you can watch movies in true wide screen provided that you have two beamers +and two MJPEG cards. Depending on resolution and quality settings, this driver +may require a lot of CPU power, remember to specify -framedrop +if your machine is too slow. Note: My AMD K6-2 350MHz is (with +-framedrop) quite adequate for watching VCD sized material and +downscaled movies. +

+This driver talks to the kernel driver available at +http://mjpeg.sf.net, so +you must get it working first. The presence of an MJPEG card is autodetected by +the configure script, if autodetection fails, force +detection with +

./configure --enable-zr

+

+The output can be controlled by several options, a long description of the +options can be found in the man page, a short list of options can be viewed +by running +

mplayer -zrhelp

+

+Things like scaling and the OSD (on screen display) are not handled by +this driver but can be done using the video filters. For example, suppose +that you have a movie with a resolution of 512x272 and you want to view it +fullscreen on your DC10+. There are three main possibilities, you may scale +the movie to a width of 768, 384 or 192. For performance and quality reasons, +I would choose to scale the movie to 384x204 using the fast bilinear software +scaler. The command line is +

+mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi
+

+

+Cropping can be done by the crop filter and by this +driver itself. Suppose that a movie is too wide for display on your Buz and +that you want to use -zrcrop to make the movie less wide, +then you would issue the following command +

+mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
+

+

+if you want to use the crop filter, you would do +

+mplayer -vo zr -vf crop=720:320:80:0 benhur.avi
+

+

+Extra occurrences of -zrcrop invoke +cinerama mode, i.e. you can distribute the movie over +several TV's or beamers to create a larger screen. +Suppose you have two beamers. The left one is connected to your +Buz at /dev/video1 and the right one is connected to +your DC10+ at /dev/video0. The movie has a resolution +of 704x288. Suppose also that you want the right beamer in black and white and +that the left beamer should have JPEG frames at quality 10, then you would +issue the following command +

+mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
+    -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \
+	movie.avi
+

+

+You see that the options appearing before the second -zrcrop +only apply to the DC10+ and that the options after the second +-zrcrop apply to the Buz. The maximum number of MJPEG cards +participating in cinerama is four, so you can build a +2x2 vidiwall. +

+Finally an important remark: Do not start or stop XawTV on the playback device +during playback, it will crash your computer. It is, however, fine to +FIRST start XawTV, +THEN start MPlayer, +wait for MPlayer +to finish and THEN stop XawTV. +

8.19.2. Blinkenlights

+This driver is capable of playback using the Blinkenlights UDP protocol. If you +don't know what Blinkenlights +or its successor +Arcade +are, find it out. Although this is most probably the least used video output +driver, without a doubt it is the coolest MPlayer +has to offer. Just watch some of the +Blinkenlights documentation videos. +On the Arcade video you can see the Blinkenlights output driver in +action at 00:07:50. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/ports.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/ports.html new file mode 100644 index 0000000..dd8ffe2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/ports.html @@ -0,0 +1 @@ +Chapter 12. Ports diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio-input.html new file mode 100644 index 0000000..7baa217 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio-input.html @@ -0,0 +1,61 @@ +11.1. Radio input

11.1. Radio input

+This section is about how to enable listening to radio from +a V4L-compatible radio tuner. See the man page for a +description of radio options and keyboard controls. +

11.1.1. Compilation

  1. + First, you have to recompile MPlayer using + ./configure with --enable-radio and + (if you want capture support) --enable-radio-capture. +

  2. + Make sure your tuner works with another radio software in Linux, for + example XawTV. +

11.1.2. Usage tips

+The full listing of the options is available in the manual page. +Here are just a few tips: + +

  • + Use the channels option. An example: +

    -radio channels=104.4-Sibir,103.9-Maximum

    + Explanation: With this option, only the 104.4 and 103.9 radio stations + will be usable. There will be a nice OSD text upon channel switching, + displaying the channel's name. Spaces in the channel name must be + replaced by the "_" character. +

  • + There are several ways of capturing audio. You can grab the sound either using + your sound card via an external cable connection between video card and + line-in, or using the built-in ADC in the saa7134 chip. In the latter case, + you have to load the saa7134-alsa or + saa7134-oss driver. +

  • + MEncoder cannot be used for audio capture, + because it requires a video stream to work. So your can either use + arecord from ALSA project or + use -ao pcm:file=file.wav. In the latter case you + will not hear any sound (unless you are using a line-in cable and + have switched line-in mute off). +

+

11.1.3. Examples

+Input from standard V4L (using line-in cable, capture switched off): +

mplayer radio://104.4

+

+Input from standard V4L (using line-in cable, capture switched off, +V4Lv1 interface): +

mplayer -radio driver=v4l radio://104.4

+

+Playing second channel from channel list: +

mplayer -radio channels=104.4=Sibir,103.9=Maximm radio://2

+

+Passing sound over the PCI bus from the radio card's internal ADC. +In this example the tuner is used as a second sound card +(ALSA device hw:1,0). For saa7134-based cards either the +saa7134-alsa or saa7134-oss +module must be loaded. +

+mplayer -rawaudio rate=32000 radio://2/capture \
+    -radio adevice=hw=1.0:arate=32000:channels=104.4=Sibir,103.9=Maximm
+

+

Note

+When using ALSA device names colons must be replaced +by equal signs, commas by periods. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio.html new file mode 100644 index 0000000..a42aa90 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/radio.html @@ -0,0 +1 @@ +Chapter 11. Radio diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/rtc.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/rtc.html new file mode 100644 index 0000000..16df5a7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/rtc.html @@ -0,0 +1,35 @@ +2.5. RTC

2.5. RTC

+There are three timing methods in MPlayer. + +

  • + To use the old method, you don't have to do + anything. It uses usleep() to tune + A/V sync, with +/- 10ms accuracy. However sometimes the sync has to be + tuned even finer. +

  • + The new timer code uses the RTC (RealTime + Clock) for this task, because it has precise 1ms timers. + The -rtc option enables it, + but a properly set up kernel is required. + If you are running kernel 2.4.19pre8 or later you can adjust the maximum RTC + frequency for normal users through the /proc + filesystem. Use one of the following two commands to + enable RTC for normal users: +

    echo 1024 > /proc/sys/dev/rtc/max-user-freq

    +

    sysctl dev/rtc/max-user-freq=1024

    + You can make this setting permanent by adding the latter to + /etc/sysctl.conf. +

    + You can see the new timer's efficiency in the status line. + The power management functions of some notebook BIOSes with speedstep CPUs + interact badly with RTC. Audio and video may get out of sync. Plugging the + external power connector in before you power up your notebook seems to help. + In some hardware combinations (confirmed during usage of non-DMA DVD drive + on an ALi1541 board) usage of the RTC timer causes skippy playback. It's + recommended to use the third method in these cases. +

  • + The third timer code is turned on with the + -softsleep option. It has the efficiency of the RTC, but it + doesn't use RTC. On the other hand, it requires more CPU. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sdl.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sdl.html new file mode 100644 index 0000000..a08b0e5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sdl.html @@ -0,0 +1,20 @@ +8.4. SDL

8.4. SDL

+SDL (Simple Directmedia Layer) is basically a unified +video/audio interface. Programs that use it know only about SDL, and not +about what video or audio driver does SDL actually use. For example a Doom +port using SDL can run on svgalib, aalib, X, fbdev, and others, you only +have to specify the (for example) video driver to use with the +SDL_VIDEODRIVER environment variable. Well, in theory. +

+With MPlayer, we used its X11 driver's software +scaler ability for cards/drivers that doesn't support XVideo, until we made +our own (faster, nicer) software scaler. Also we used its aalib output, but +now we have ours which is more comfortable. Its DGA mode was better than +ours, until recently. Get it now? :) +

+It also helps with some buggy drivers/cards if the video is jerky (not slow +system problem), or audio is lagging. +

+SDL video output supports displaying subtitles under the movie, on the (if +present) black bar. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-file.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-file.html new file mode 100644 index 0000000..ff95f9e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-file.html @@ -0,0 +1,285 @@ +C.2. The skin file

C.2. The skin file

+As mentioned above, this is the skin configuration file. It is line oriented; +comment lines start with a ';' character at the beginning of +the line (only spaces and tabs are allowed before the ';'). +

+The file is made up of sections. Each section describes the skin for an +application and has the following form: +

+section = section name
+.
+.
+.
+end
+

+

+Currently there is only one application, so you need only one section: its name +is movieplayer. +

+Within this section each window is described by a block of the following form: +

+window = window name
+.
+.
+.
+end
+

+

+where window name can be one of these strings: +

  • + main - for the main window +

  • + sub - for the subwindow +

  • + menu - for the skin menu +

  • + playbar - playbar +

+

+(The sub and menu blocks are optional - you do not need to create a menu or +decorate the subwindow.) +

+Within a window block, you can define each item for the window by a line in +this form: +

item = parameter

+Where item is a string that identifies the type of the GUI +item, parameter is a numeric or textual value (or a list of +values separated by commas). +

+Putting the above together, the whole file looks something like this: +

+section = movieplayer
+  window = main
+  ; ... items for main window ...
+  end
+
+  window = sub
+  ; ... items for subwindow ...
+  end
+
+  window = menu
+  ; ... items for menu ...
+  end
+
+  window = playbar
+  ; ... items for playbar ...
+  end
+end
+

+

+The name of an image file must be given without leading directories - images +are searched for in the skins directory. +You may (but you need not) specify the extension of the file. If the file does +not exist, MPlayer tries to load the file +<filename>.<ext>, where png +and PNG are tried for <ext> +(in this order). The first matching file will be used. +

+Here is an example to make this clear. Suppose that you have an image called +main.png that you use for the main window: +

base = main, -1, -1

+MPlayer tries to load main, +main.png, main.PNG files. +

+Finally some words about positioning. The main window and the subwindow can be +placed in the different corners of the screen by giving X +and Y coordinates. 0 is top or left, +-1 is center and -2 is right or bottom, as +shown in this illustration: +

+(0, 0)----(-1, 0)----(-2, 0)
+  |          |          |
+  |          |          |
+(0,-1)----(-1,-1)----(-2,-1)
+  |          |          |
+  |          |          |
+(0,-2)----(-1,-2)----(-2,-2)
+

+

C.2.1. Main window and playbar

+Below is the list of entries that can be used in the +'window = main' ... 'end', +and the 'window = playbar' ... 'end' +blocks. +

+ base = image, X, Y +

+ Lets you specify the background image to be used for the main window. + The window will appear at the given X,Y position on + the screen The window will have the size of the image. +

Note

+ These coordinates do not currently work for the display window. +

Warning

Transparent regions in the image (colored #FF00FF) appear black + on X servers without the XShape extension. The image's width must be dividable + by 8.

+ button = image, X, Y, width, height, message +

+ Place a button of width * height size at + position X,Y. The specified message is + generated when the button is clicked. The image given by + image must have three parts below each other (according to + the possible states of the button), like this: +

++------------+
+|  pressed   |
++------------+
+|  released  |
++------------+
+|  disabled  |
++------------+
+ decoration = enable|disable +

+ Enable or disable window manager decoration of the main window. Default is + disable. +

Note

+ This doesn't work for the display window, there is no need to. +

+ hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message +

+

+ vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message +

+ Place a horizontal (hpotmeter) or vertical (vpotmeter) potmeter of + width * height size at position + X,Y. The image can be divided into different parts for the + different phases of the potmeter (for example, you can have a pot for volume + control that turns from green to red while its value changes from the minimum + to the maximum.). hpotmeter can have a button that can be + dragged horizontally. The parameters are: +

  • + button - the image to be used for the + button (must have three parts below each other, like in case of + button) +

  • + bwidth, bheight - size + of the button +

  • + phases - the image to be used for the + different phases of the hpotmeter. A special value of NULL + can be used if you want no such image. The image must be divided into + numphases parts vertically like this: +

    ++------------+
    +|  phase #1  |
    ++------------+
    +|  phase #2  |
    ++------------+
    +     ...
    ++------------+
    +|  phase #n  |
    ++------------+

    +

  • + numphases - number of phases stored in the + phases image +

  • + default - default value for hpotmeter + (in the range 0 to 100) +

  • + X, Y - position for the hpotmeter +

  • + width, height - width and height + of the hpotmeter +

  • + message - the message to be generated when the + value of hpotmeter is changed +

+

+ potmeter = phases, numphases, default, X, Y, width, height, message +

+ A hpotmeter without a button. (I guess it is meant to be + turned around, but it reacts to horizontal dragging only.) For the description + of the parameters see hpotmeter. + phases can be NULL, but it is quite + useless, since you cannot see where the potmeter is set. +

+ font = fontfile, fontid +

+ Defines a font. fontfile is the name of a font description + file with a .fnt extension (do not specify the extension + here). fontid is used to refer to the font + (see dlabel + and slabel). Up to 25 fonts can be defined. +

+ slabel = X, Y, fontid, "text" +

+ Place a static label at the position X,Y. + text is displayed using the font identified by + fontid. The text is just a raw string + ($x variables do not work) that must be enclosed between + double quotes (but the " character cannot be part of the text). The + label is displayed using the font identified by fontid. +

+ dlabel = X, Y, length, align, fontid, "text" +

+ Place a dynamic label at the position X,Y. The label is + called dynamic because its text is refreshed periodically. The maximum length + of the label is given by length (its height is the height + of a character). If the text to be displayed is wider than that, it will be + scrolled, + otherwise it is aligned within the specified space by the value of the + align parameter: 0 is for right, + 1 is for center, 2 is for left. +

+ The text to be displayed is given by text: It must be + written between double quotes (but the " character cannot be part of the + text). The label is displayed using the font identified by + fontid. You can use the following variables in the text: +

VariableMeaning
$1play time in hh:mm:ss format
$2play time in mmmm:ss format
$3play time in hh format (hours)
$4play time in mm format (minutes)
$5play time in ss format (seconds)
$6movie length in hh:mm:ss format
$7movie length in mmmm:ss format
$8play time in h:mm:ss format
$vvolume in xxx.xx% format
$Vvolume in xxx.xx format
$bbalance in xxx.xx% format
$Bbalance in xxx.xx format
$$the $ character
$aa character according to the audio type (none: n, + mono: m, stereo: t)
$ttrack number (in playlist)
$ofilename
$ffilename in lower case
$Ffilename in upper case
$T + a character according to the stream type (file: f, + Video CD: v, DVD: d, + URL: u) +
$pthe p character (if a movie is playing and the font + has the p character)
$sthe s character (if the movie is stopped and the + font has the s character)
$ethe e character (if playback is paused and the font + has the e character)
$xmovie width
$ymovie height
$Cname of the codec used

Note

+ The $a, $T, $p, $s and $e + variables all return characters that should be displayed as special symbols + (for example, e is for the pause symbol that usually looks + something like ||). You should have a font for normal characters and + a different font for symbols. See the section about + symbols for more information. +

C.2.2. Subwindow

+The following entries can be used in the +'window = sub' . . . 'end' block. +

+ base = image, X, Y, width, height +

+ The image to be displayed in the window. The window will appear at the given + X,Y position on the screen (0,0 is the + top left corner). You can specify -1 for center and + -2 for right (X) and bottom + (Y). The window will be as large as the image. + width and height + denote the size of the window; they are optional (if they are missing, the + window is the same size as the image). +

+ background = R, G, B +

+ Lets you set the background color. It is useful if the image is smaller than + the window. R, G and + B specifies the red, green and blue component of the color + (each of them is a decimal number from 0 to 255). +

C.2.3. Skin menu

+As mentioned earlier, the menu is displayed using two images. Normal menu +entries are taken from the image specified by the base item, +while the currently selected entry is taken from the image specified by the +selected item. You must define the position and size of each +menu entry through the menu item. +

+The following entries can be used in the +'window = menu'. . .'end' block. +

+ base = image +

+ The image for normal menu entries. +

+ selected = image +

+ The image showing the menu with all entries selected. +

+ menu = X, Y, width, height, message +

+ Defines the X,Y position and the size of a menu entry in + the image. message is the message to be generated when the + mouse button is released over the entry. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-fonts.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-fonts.html new file mode 100644 index 0000000..491b066 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-fonts.html @@ -0,0 +1,39 @@ +C.3. Fonts

C.3. Fonts

+As mentioned in the section about the parts of a skin, a font is defined by an +image and a description file. You can place the characters anywhere in the +image, but make sure that their position and size is given in the description +file exactly. +

+The font description file (with .fnt extension) can have +comment lines starting with ';'. The file must have a line +in the form + +

image = image

+Where image is the name of the +image file to be used for the font (you do not have to specify the extension). + +

"char" = X, Y, width, height

+Here X and Y specify the position of the +char character in the image (0,0 is the +upper left corner). width and height are +the dimensions of the character in pixels. +

+This example defines the A, B, C characters using font.png. +

+; Can be "font" instead of "font.png".
+image = font.png
+
+; Three characters are enough for demonstration purposes :-)
+"A" =  0,0, 7,13
+"B" =  7,0, 7,13
+"C" = 14,0, 7,13
+

+

C.3.1. Symbols

+Some characters have special meanings when returned by some of the variables +used in dlabel. These characters are meant +to be shown as symbols so that things like a nice DVD logo can be displayed +instead of the character 'd' for a DVD stream. +

+The following table lists all the characters that can be used to display +symbols (and thus require a different font). +

CharacterSymbol
pplay
sstop
epause
nno sound
mmono sound
tstereo sound
fstream is a file
vstream is a Video CD
dstream is a DVD
ustream is a URL
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-gui.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-gui.html new file mode 100644 index 0000000..1088c4c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-gui.html @@ -0,0 +1,101 @@ +C.4. GUI messages

C.4. GUI messages

+These are the messages that can be generated by buttons, potmeters and +menu entries. +

Playback control:

evNext

+ Jump to next track in the playlist. +

evPause

+ Forms a switch together with evPlaySwitchToPause. They can + be used to have a common play/pause button. Both messages should be assigned + to buttons displayed at the very same position in the window. This message + pauses playing and the image for the evPlaySwitchToPause + button is displayed (to indicate that the button can be pressed to continue + playing). +

evPlay

+ Start playing. +

evPlaySwitchToPause

+ The opposite of evPauseSwitchToPlay. This message starts + playing and the image for the evPauseSwitchToPlay button + is displayed (to indicate that the button can be pressed to pause playing). +

evPrev

+ Jump to previous track in the playlist. +

evStop

+ Stop playing. +

Seeking:

evBackward10sec

+ Seek backward 10 seconds. +

evBackward1min

+ Seek backward 1 minute. +

evBackward10min

+ Seek backward 10 minutes. +

evForward10sec

+ Seek forward 10 seconds. +

evForward1min

+ Seek forward 1 minute. +

evForward10min

+ Seek forward 10 minutes. +

evSetMoviePosition

+ Seek to position (can be used by a potmeter; the + relative value (0-100%) of the potmeter is used). +

Video control:

evHalfSize

+ Set the movie window to half size. +

evDoubleSize

+ Set the movie window to double size. +

evFullScreen

+ Switch fullscreen mode on/off. +

evNormalSize

+ Set the movie window to its normal size. +

Audio control:

evDecAudioBufDelay

+ Decrease audio buffer delay. +

evDecBalance

+ Decrease balance. +

evDecVolume

+ Decrease volume. +

evIncAudioBufDelay

+ Increase audio buffer delay. +

evIncBalance

+ Increase balance. +

evIncVolume

+ Increase volume. +

evMute

+ Mute/unmute the sound. +

evSetBalance

+ Set balance (can be used by a potmeter; the + relative value (0-100%) of the potmeter is used). +

evSetVolume

+ Set volume (can be used by a potmeter; the relative + value (0-100%) of the potmeter is used). +

Miscellaneous:

evAbout

+ Open the about window. +

evDropSubtitle

+ Disables the currently used subtitle. +

evEqualizer

+ Turn the equalizer on/off. +

evExit

+ Quit the program. +

evIconify

+ Iconify the window. +

evLoad

+ Load a file (by opening a file browser window, where you can choose a file). +

evLoadPlay

+ Does the same as evLoad, but it automatically starts + playing after the file is loaded. +

evLoadSubtitle

+ Loads a subtitle file (with the fileselector) +

evLoadAudioFile

+ Loads an audio file (with the fileselector) +

evNone

+ Empty message, it has no effect (except maybe in Subversion versions :-)). +

evPlaylist

+ Open/close the playlist window. +

evPlayDVD

+ Tries to open the disc in the given DVD-ROM drive. +

evPlayVCD

+ Tries to open the disc in the given CD-ROM drive. +

evPreferences

+ Open the preferences window. +

evSetAspect

+ Sets displayed image aspect. +

evSetURL

+ Displays the URL dialog window. +

evSkinBrowser

+ Open the skin browser window. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-overview.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-overview.html new file mode 100644 index 0000000..932d672 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-overview.html @@ -0,0 +1,121 @@ +C.1. Overview

C.1. Overview

+It does not really have anything to do with the skin format, but you should +know that MPlayer has +no builtin skin, so +at least one skin must be installed in order to be able +to use the GUI. +

C.1.1. Directories

+The directories searched for skins are (in order): +

  1. + $(DATADIR)/skins/ +

  2. + $(PREFIX)/share/mplayer/skins/ +

  3. + ~/.mplayer/skins/ +

+

+Note that the first path may vary according to the way +MPlayer was configured (see the +--prefix and --datadir +arguments of the configure script). +

+Every skin is installed into its own directory under one of the directories +listed above, for example: +

$(PREFIX)/share/mplayer/skins/default/

+

C.1.2. Image formats

Images must be truecolor (24 or 32 bpp) PNGs.

+In the main window and in the playbar (see below) you can use images with +`transparency': Regions filled with the color #FF00FF (magenta) are fully +transparent when viewed by MPlayer. This means +that you can even have shaped windows if your X server has the XShape extension. +

C.1.3. Skin components

+Skins are quite free-format (unlike the fixed-format skins of +Winamp/XMMS, +for example), so it is up to you to create something great. +

+Currently there are four windows to be decorated: the +main window, the +subwindow, the +playbar, and the +skin menu (which can be activated +by a right click). + +

  • + The main window and/or the + playbar is where you can control + MPlayer. The background of the window is an image. + Various items can (and must) be placed in the window: + buttons, potmeters (sliders) and + labels. + For every item, you must specify its position and size. +

    + A button has three states (pressed, released, + disabled), thus its image must be divided into three parts vertically. See the + button item for details. +

    + A potmeter (mainly used for the seek bar and + volume/balance control) can have any number of phases by dividing its image + into different parts below each other. See + hpotmeter and + potmeter for details. +

    + Labels are a bit special: The characters + needed to draw them are taken from an image file, and the characters in the + image are described by a + font description file. + The latter is a plain text file which specifies the x,y position and size of + each character in the image (the image file and its font description file + form a font together). + See dlabel + and slabel for details. +

    Note

    + All images can have full transparency as described in the section about + image formats. If the X server + doesn't support the XShape extension, the parts marked transparent will be + black. If you'd like to use this feature, the width of the main window's + background image must be dividable by 8. +

  • + The subwindow is where the movie appears. It + can display a specified image if there is no movie loaded (it is quite boring + to have an empty window :-)) Note: + transparency is not allowed here. +

  • + The skin menu is just a way to control + MPlayer by means of menu entries. Two images + are required for the menu: one of them is the base image that shows the + menu in its normal state, the other one is used to display the selected + entries. When you pop up the menu, the first image is shown. If you move + the mouse over the menu entries, the currently selected entry is copied + from the second image over the menu entry below the mouse pointer + (the second image is never shown as a whole). +

    + A menu entry is defined by its position and size in the image (see the + section about the skin menu for + details). +

+

+There is an important thing not mentioned yet: For buttons, potmeters and +menu entries to work, MPlayer must know what to +do if they are clicked. This is done by messages +(events). For these items you must define the messages to be generated when +they are clicked. +

C.1.4. Files

+You need the following files to build a skin: +

  • + The configuration file named skin tells + MPlayer how to put different parts of the skin + together and what to do if you click somewhere in the window. +

  • + The background image for the main window. +

  • + Images for the items in the main window (including one or more font + description files needed to draw labels). +

  • + The image to be displayed in the subwindow (optional). +

  • + Two images for the skin menu (they are needed only if you want to create + a menu). +

+ With the exception of the skin configuration file, you can name the other + files whatever you want (but note that font description files must have + a .fnt extension). +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-quality.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-quality.html new file mode 100644 index 0000000..ea063f5 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin-quality.html @@ -0,0 +1,38 @@ +C.5. Creating quality skins

C.5. Creating quality skins

+So you have read up on creating skins for the +MPlayer GUI, done your best with the +Gimp and wish to submit your skin to us? +Read on for some guidelines to avoid common mistakes and produce +a high quality skin. +

+We want skins that we add to our repository to conform to certain +quality standards. There are also a number of things that you can do +to make our lives easier. +

+As an example you can look at the Blue skin, +it satisfies all the criteria listed below since version 1.5. +

  • + Each skin should come with a + README file that contains information about + you, the author, copyright and license notices and anything else + you wish to add. If you wish to have a changelog, this file is a + good place. +

  • + There should be a file VERSION + with nothing more than the version number of the skin on a single + line (e.g. 1.0). +

  • + Horizontal and vertical controls (sliders like volume + or position) should have the center of the knob properly centered on + the middle of the slider. It should be possible to move the knob to + both ends of the slider, but not past it. +

  • + Skin elements should have the right sizes declared + in the skin file. If this is not the case you can click outside of + e.g. a button and still trigger it or click inside its area and not + trigger it. +

  • + The skin file should be + prettyprinted and not contain tabs. Prettyprinted means that the + numbers should line up neatly in columns. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin.html new file mode 100644 index 0000000..bbe7d84 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/skin.html @@ -0,0 +1 @@ +Appendix C. MPlayer skin format diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/softreq.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/softreq.html new file mode 100644 index 0000000..77cc555 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/softreq.html @@ -0,0 +1,48 @@ +2.1. Software requirements

2.1. Software requirements

  • + binutils - recommended version is + 2.11.x. +

  • + gcc - recommended versions are 2.95 + and 3.4+. 2.96 and 3.0.x are known to generate faulty code, 3.1 and + 3.2 also had problems, 3.3 some minor ones. On PowerPC, use 4.x. +

  • + Xorg/XFree86 - recommended version is + 4.3 or later. Make sure the + development packages are installed, + too, otherwise it won't work. + You don't absolutely need X, some video output drivers work without it. +

  • + make - recommended version is + 3.79.x or later. To build the XML documentation you need 3.80. +

  • + FreeType - 2.0.9 or later is required + for the OSD and subtitles +

  • + ALSA - optional, for ALSA audio output + support. At least 0.9.0rc4 is required. +

  • + libjpeg - + required for the optional JPEG video output driver +

  • + libpng - + required for the optional PNG video output driver +

  • + directfb - optional, 0.9.13 or later + required for the directfb video output driver +

  • + lame - 3.90 or later is recommended, + necessary for encoding MP3 audio with MEncoder. +

  • + zlib - recommended, necessary for compressed + MOV header and PNG support +

  • + LIVE555 Streaming Media + - optional, needed for some RTSP/RTP streams +

  • + cdparanoia - optional, for CDDA support +

  • + libxmms - optional, for XMMS input plugin + support. At least 1.2.7 is required. +

  • + libsmb - optional, for SMB networking support +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/streaming.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/streaming.html new file mode 100644 index 0000000..bfb5a02 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/streaming.html @@ -0,0 +1,37 @@ +3.4. Streaming from network or pipes

3.4. Streaming from network or pipes

+MPlayer can play files from the network, using the +HTTP, FTP, MMS or RTSP/RTP protocol. +

+Playing works simply by passing the URL on the command line. +MPlayer honors the http_proxy +environment variable, using a proxy if available. Proxies can also be forced: +

+mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
+

+

+MPlayer can read from stdin +(not named pipes). This can for example be used to +play from FTP: +

+wget ftp://micorsops.com/something.avi -O - | mplayer -
+

+

Note

+It is also recommended to enable -cache when playing +from the network: +

+wget ftp://micorsops.com/something.avi -O - | mplayer -cache 8192 -
+

+

3.4.1. Saving streamed content

+Once you succeed in making MPlayer play +your favorite internet stream, you can use the option +-dumpstream to save the stream into a file. +For example: +

+mplayer http://217.71.208.37:8006 -dumpstream -dumpfile stream.asf
+

+will save the content streamed from +http://217.71.208.37:8006 into +stream.asf. +This works with all protocols supported by +MPlayer, like MMS, RSTP, and so forth. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/subosd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/subosd.html new file mode 100644 index 0000000..5f4ba34 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/subosd.html @@ -0,0 +1,63 @@ +3.2. Subtitles and OSD

3.2. Subtitles and OSD

+MPlayer can display subtitles along with movie files. +Currently the following formats are supported: +

  • VOBsub

  • OGM

  • CC (closed caption)

  • MicroDVD

  • SubRip

  • SubViewer

  • Sami

  • VPlayer

  • RT

  • SSA

  • PJS (Phoenix Japanimation Society)

  • MPsub

  • AQTitle

  • + JACOsub +

+

+MPlayer can dump the previously listed subtitle +formats (except the three first) into the +following destination formats, with the given options: +

  • MPsub: -dumpmpsub

  • SubRip: -dumpsrtsub

  • MicroDVD: -dumpmicrodvdsub

  • JACOsub: -dumpjacosub

  • Sami: -dumpsami

+

+MEncoder can dump DVD subtitles into +VOBsub format. +

+The command line options differ slightly for the different formats: +

VOBsub subtitles.  +VOBsub subtitles consist of a big (some megabytes) .SUB +file, and optional .IDX and/or .IFO +files. If you have files like +sample.sub, +sample.ifo (optional), +sample.idx - you have to pass +MPlayer the -vobsub sample +[-vobsubid id] options +(full path optional). The -vobsubid option is like +-sid for DVDs, you can choose between subtitle tracks +(languages) with it. In case that -vobsubid is omitted, +MPlayer will try to use the languages given by the +-slang option and fall back to the +langidx in the .IDX file to set +the subtitle language. If it fails, there will be no subtitles. +

Other subtitles.  +The other formats consist of a single text file containing timing, +placement and text information. Usage: If you have a file like +sample.txt, +you have to pass the option -sub +sample.txt (full path optional). +

Adjusting subtitle timing and placement:

-subdelay sec

+ Delays subtitles by sec seconds. + Can be negative. The value is added to movie's time position counter. +

-subfps RATE

+ Specify frame/sec rate of subtitle file (float number). +

-subpos 0-100

+ Specify the position of subtitles. +

+If you experience a growing delay between the movie and the subtitles when +using a MicroDVD subtitle file, most likely the framerate of the movie and +the subtitle file are different. Please note that the MicroDVD subtitle +format uses absolute frame numbers for its timing, but there is no fps +information in it, and therefore the -subfps option should +be used with this format. If you like to solve this problem permanently, +you have to manually convert the subtitle file framerate. +MPlayer can do this +conversion for you: + +

+mplayer -dumpmicrodvdsub -fps subtitles_fps -subfps avi_fps \
+    -sub subtitle_filename dummy.avi
+

+

+About DVD subtitles, read the DVD section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/svgalib.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/svgalib.html new file mode 100644 index 0000000..b14f5d2 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/svgalib.html @@ -0,0 +1,42 @@ +8.5. SVGAlib

8.5. SVGAlib

INSTALLATION.  +You'll have to install svgalib and its development package in order for +MPlayer build its SVGAlib driver (autodetected, +but can be forced), and don't forget to edit +/etc/vga/libvga.config to suit your card and monitor. +

Note

+Be sure not to use the -fs switch, since it toggles the +usage of the software scaler, and it's slow. If you really need it, use the +-sws 4 option which will produce bad quality, but is +somewhat faster. +

EGA (4BPP) SUPPORT.  +SVGAlib incorporates EGAlib, and MPlayer has the +possibility to display any movie in 16 colors, thus usable in the following +sets: +

  • + EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp +

  • + EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp +

+The bpp (bits per pixel) value must be set to 4 by hand: +-bpp 4 +

+The movie probably must be scaled down to fit in EGA mode: +

-vf scale=640:350

+or +

-vf scale=320:200

+

+For that we need fast but bad quality scaling routine: +

-sws 4

+

+Maybe automatic aspect correction has to be shut off: +

-noaspect

+

Note

+According to my experience the best image quality on +EGA screens can be achieved by decreasing the brightness a bit: +-vf eq=-20:0. I also needed to lower the audio +samplerate on my box, because the sound was broken on 44kHz: +-srate 22050. +

+You can turn on OSD and subtitles only with the expand +filter, see the man page for exact parameters. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sync.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sync.html new file mode 100644 index 0000000..26c8787 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/sync.html @@ -0,0 +1,22 @@ +9.1. Audio/Video synchronization

9.1. Audio/Video synchronization

+Linux sound card drivers have compatibility problems. This is because +MPlayer relies on an in-built feature of +properly coded sound drivers that enable them to +maintain correct audio/video sync. Regrettably, some driver authors +don't take the care to code this feature since it is not needed for +playing MP3s or sound effects. +

+Other media players like aviplay +or xine possibly work +out-of-the-box with these drivers because they use "simple" methods +with internal timing. Measuring showed that their methods are not as +efficient as MPlayer's. +

+Using MPlayer with a properly written audio +driver will never result in A/V desyncs related to the audio, except +only with very badly created files (check the man page for workarounds). +

+If you happen to have a bad audio driver, try the -autosync +option, it should sort out your problems. See the man page for detailed +information. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfx_vid.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfx_vid.html new file mode 100644 index 0000000..3b676cb --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfx_vid.html @@ -0,0 +1,28 @@ +8.9. tdfx_vid

8.9. tdfx_vid

+This is a combination of a Linux kernel module and a video output +driver, similar to mga_vid. +You'll need a 2.4.x kernel with the agpgart +driver since tdfx_vid uses AGP. +Pass --enable-tdfxfb to configure +to build the video output driver and build the kernel module with +the following instructions. +

Installing the tdfx_vid.o kernel module:

  1. + Compile tdfx_vid.o: +

    +cd drivers
    +make

    +

  2. + Then run (as root) +

    make install

    + which should install the module and create the device node for you. + Load the driver with +

    insmod tdfx_vid.o

    +

  3. + To make it load/unload automatically when needed, first insert the + following line at the end of /etc/modules.conf: + +

    alias char-major-178 tdfx_vid

    +

+There is a test application called tdfx_vid_test in the same +directory. It should print out some useful information if all is working well. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfxfb.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfxfb.html new file mode 100644 index 0000000..a2c8d40 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tdfxfb.html @@ -0,0 +1,6 @@ +8.8. 3Dfx YUV support

8.8. 3Dfx YUV support

+This driver uses the kernel's tdfx framebuffer driver to play movies with +YUV acceleration. You'll need a kernel with tdfxfb support, and recompile +with +

./configure --enable-tdfxfb

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/troubleshooting.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/troubleshooting.html new file mode 100644 index 0000000..cca5645 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/troubleshooting.html @@ -0,0 +1,12 @@ +9.2. Troubleshooting

9.2. Troubleshooting

Some notes:

+If you have ALSA version 0.5, then you almost always have to use +-ao alsa5, since ALSA 0.5 has buggy OSS emulation code, +and will crash MPlayer +with a message like this: +

+DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
+

+

+If the sound clicks when playing from CD-ROM, turn on IRQ unmasking as +described in the CD-ROM section. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-input.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-input.html new file mode 100644 index 0000000..044479e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-input.html @@ -0,0 +1,130 @@ +10.1. TV input

10.1. TV input

+This section is about how to enable watching/grabbing +from V4L compatible TV tuner. See the man page for a description +of TV options and keyboard controls. +

10.1.1. Compilation

  1. + First, you have to recompile. ./configure will + autodetect kernel headers of v4l stuff and the existence of + /dev/video* entries. If they exist, TV support will + be built (see the output of ./configure). +

  2. + Make sure your tuner works with another TV software in Linux, for + example XawTV. +

10.1.2. Usage tips

+The full listing of the options is available on the manual page. +Here are just a few tips: + +

  • + Use the channels option. An example: +

    -tv channels=26-MTV1,23-TV2

    + Explanation: Using this option, only the 26 and 23 channels will be usable, + and there will be a nice OSD text upon channel switching, displaying the + channel's name. Spaces in the channel name must be replaced by the + "_" character. +

  • + Choose some sane image dimensions. The dimensions of the resulting image + should be divisible by 16. +

  • + If you capture the video with the vertical resolution higher than half + of the full resolution (i.e. 288 for PAL or 240 for NTSC), then the + 'frames' you get will really be interleaved pairs of fields. + Depending on what you want to do with the video you may leave it in + this form, destructively deinterlace, or break the pairs apart into + individual fields. +

    + Otherwise you'll get a movie which is distorted during + fast-motion scenes and the bitrate controller will be probably even unable + to retain the specified bitrate as the interlacing artifacts produce high + amount of detail and thus consume lot of bandwidth. You can enable + deinterlacing with -vf pp=DEINT_TYPE. + Usually pp=lb does a good job, but it can be matter of + personal preference. + See other deinterlacing algorithms in the manual and give it a try. +

  • + Crop out the dead space. When you capture the video, the areas at the edges + are usually black or contain some noise. These again consume lots of + unnecessary bandwidth. More precisely it's not the black areas themselves + but the sharp transitions between the black and the brighter video image + which do but that's not important for now. Before you start capturing, + adjust the arguments of the crop option so that all the + crap at the margins is cropped out. Again, don't forget to keep the resulting + dimensions sane. +

  • + Watch out for CPU load. It shouldn't cross the 90% boundary for most of the + time. If you have a large capture buffer, MEncoder + can survive an overload for few seconds but nothing more. It's better to + turn off the 3D OpenGL screensavers and similar stuff. +

  • + Don't mess with the system clock. MEncoder uses the + system clock for doing A/V sync. If you adjust the system clock (especially + backwards in time), MEncoder gets confused and you + will lose frames. This is an important issue if you are hooked to a network + and run some time synchronization software like NTP. You have to turn NTP + off during the capture process if you want to capture reliably. +

  • + Don't change the outfmt unless you know what you are doing + or your card/driver really doesn't support the default (YV12 colorspace). + In the older versions of MPlayer/ + MEncoder it was necessary to specify the output + format. This issue should be fixed in the current releases and + outfmt isn't required anymore, and the default suits the + most purposes. For example, if you are capturing into DivX using + libavcodec and specify + outfmt=RGB24 in order to increase the quality of the captured + images, the captured image will be actually later converted back into YV12 so + the only thing you achieve is a massive waste of CPU power. +

  • + To specify the I420 colorspace (outfmt=i420), you have to + add an option -vc rawi420 due to a fourcc conflict with an + Intel Indeo video codec. +

  • + There are several ways of capturing audio. You can grab the sound either using + your sound card via an external cable connection between video card and + line-in, or using the built-in ADC in the bt878 chip. In the latter case, you + have to load the btaudio driver. Read the + linux/Documentation/sound/btaudio file (in the kernel + tree, not MPlayer's) for some instructions on using + this driver. +

  • + If MEncoder cannot open the audio device, make + sure that it is really available. There can be some trouble with the sound + servers like aRts (KDE) or ESD (GNOME). If you have a full duplex sound card + (almost any decent card supports it today), and you are using KDE, try to + check the "full duplex" option in the sound server preference menu. +

+

10.1.3. Examples

+Dummy output, to AAlib :) +

mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://

+

+Input from standard V4L: +

+mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
+

+

+A more sophisticated example. This makes MEncoder +capture the full PAL image, crop the margins, and deinterlace the picture +using a linear blend algorithm. Audio is compressed with a constant bitrate +of 64kbps, using LAME codec. This setup is suitable for capturing movies. +

+mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64\
+    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
+    -vf crop=720:544:24:16,pp=lb -o output.avi tv://
+

+

+This will additionally rescale the image to 384x288 and compresses the +video with the bitrate of 350kbps in high quality mode. The vqmax option +looses the quantizer and allows the video compressor to actually reach so +low bitrate even at the expense of the quality. This can be used for +capturing long TV series, where the video quality isn't so important. +

+mencoder -tv driver=v4l:width=768:height=576 \
+    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
+    -oac mp3lame -lameopts cbr:br=48 -sws 1 -o output.avi\
+    -vf crop=720:540:24:18,pp=lb,scale=384:288 tv://
+

+It's also possible to specify smaller image dimensions in the +-tv option and omit the software scaling but this approach +uses the maximum available information and is a little more resistant to noise. +The bt8x8 chips can do the pixel averaging only in the horizontal direction due +to a hardware limitation. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-teletext.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-teletext.html new file mode 100644 index 0000000..1fc0d2f --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv-teletext.html @@ -0,0 +1,25 @@ +10.2. Teletext

10.2. Teletext

+Teletext is currently available only in MPlayer for v4l and v4l2 drivers. +

10.2.1. Implementation notes

+MPlayer supports regular text, graphics and navigation links. +Unfortunately, colored pages are not fully supported yet - all pages are shown as grayscaled. +Subtitle pages (also known as Closed Captions) are supported, too. +

+MPlayer starts caching all teletext pages upon +starting to receive TV input, so you do not need to wait until the requested page is loaded. +

+Note: Using teletext with -vo xv causes strange colors. +

10.2.2. Using teletext

+To enable teletext decoding you must specify the VBI device to get teletext data +from (usually /dev/vbi0 for Linux). This can be done by specifying +tdevice in your configuration file, like shown below: +

tv=tdevice=/dev/vbi0

+

+You might need to specify the teletext language code for your country. +To list all available country codes use +

tv=tdevice=/dev/vbi0:tlang=-1

+Here is an example for Russian: +

tv=tdevice=/dev/vbi0:tlang=33

+

+

10.2.3. Teletext hot keys

KeyDescription
XSwitch teletext display on/off
CCycle through teletext rendering modes (opaque, transparent, inverted opaque, + inverted transparent
Left/RightGo to previous/next teletext page
PageUp/PageDownGo to next/previous teletext subpage
digitsEnter teletext page number to jump to
diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv.html new file mode 100644 index 0000000..6d2925d --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tv.html @@ -0,0 +1 @@ +Chapter 10. TV diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tvout.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tvout.html new file mode 100644 index 0000000..855c8fc --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/tvout.html @@ -0,0 +1,206 @@ +8.20. TV-out support

8.20. TV-out support

8.20.1. Matrox G400 cards

+Under Linux you have two methods to get G400 TV out working: +

Important

+for Matrox G450/G550 TV-out instructions, please see the next section! +

XFree86

+ Using the driver and the HAL module, available from the Matrox site. This will give you X + on the TV. +

+ This method doesn't give you accelerated playback + as under Windows! The second head has only YUV framebuffer, the + BES (Back End Scaler, the YUV scaler on + G200/G400/G450/G550 cards) doesn't work on it! The windows driver somehow + workarounds this, probably by using the 3D engine to zoom, and the YUV + framebuffer to display the zoomed image. If you really want to use X, use + the -vo x11 -fs -zoom options, but it will be + SLOW, and has + Macrovision copy protection enabled + (you can "workaround" Macrovision using this + perl script). +

Framebuffer

+ Using the matroxfb modules in the 2.4 + kernels. 2.2 kernels don't have the TVout feature in them, thus unusable + for this. You have to enable ALL matroxfb-specific feature during + compilation (except MultiHead), and compile them into + modules! + You'll also need I2C enabled. +

  1. + Enter TVout and type + ./compile.sh. Install + TVout/matroxset/matroxset + somewhere into your PATH. +

  2. + If you don't have fbset installed, put + TVout/fbset/fbset + somewhere into your PATH. +

  3. + If you don't have con2fb installed, put + TVout/con2fb/con2fb + somewhere into your PATH. +

  4. + Then enter into the TVout/ + directory in the MPlayer source, and execute + ./modules as root. Your text-mode console will + enter into framebuffer mode (no way back!). +

  5. + Next, EDIT and run the ./matroxtv script. This will + present you to a very simple menu. Press 2 and + Enter. Now you should have the same picture on your + monitor, and TV. If the TV (PAL by default) + picture has some weird stripes on it, the script wasn't able to set the + resolution correctly (to 640x512 by default). Try other resolutions + from the menu and/or experiment with fbset. +

  6. + Yoh. Next task is to make the cursor on tty1 (or whatever) to + disappear, and turn off screen blanking. Execute the following + commands: + +

    +echo -e '\033[?25l'
    +setterm -blank 0

    + or +

    +setterm -cursor off
    +setterm -blank 0

    + + You possibly want to put the above into a script, and also clear the + screen. To turn the cursor back: +

    echo -e '\033[?25h'

    or +

    setterm -cursor on

    +

  7. + Yeah kewl. Start movie playing with +

    +mplayer -vo mga -fs -screenw 640 -screenh 512 filename

    + + (If you use X, now change to matroxfb with for example + Ctrl+Alt+F1.) + Change 640 and 512 if you set + the resolution to other... +

  8. + Enjoy the ultra-fast ultra-featured Matrox TV + output (better than Xv)! +

Building a Matrox TV-out cable.  +No one takes any responsibility, nor guarantee for any damage caused +by this documentation. +

Cable for G400.  +The CRTC2 connector's fourth pin is the composite video signal. The +ground are the sixth, seventh and eighth pins. (info contributed +from Balázs Rácz) +

Cable for G450.  +The CRTC2 connector's first pin is the composite video signal. The +ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15) +pins. (info contributed from Balázs Kerekes) +

8.20.2. Matrox G450/G550 cards

+TV output support for these cards has only been recently introduced, and is +not yet in the mainstream kernel. +Currently the mga_vid module can't be used +AFAIK, because the G450/G550 driver works only in one configuration: the first +CRTC chip (with much more features) on the first display (on monitor), +and the second CRTC (no BES - for +explanation on BES, please see the G400 section above) on TV. So you can only +use MPlayer's fbdev output +driver at the present. +

+The first CRTC can't be routed to the second head currently. The author of the +kernel matroxfb driver - Petr Vandrovec - will maybe make support for this, by +displaying the first CRTC's output onto both of the heads at once, as currently +recommended for G400, see the section above. +

+The necessary kernel patch and the detailed HOWTO is downloadable from +http://www.bglug.ca/matrox_tvout/ +

8.20.3. ATI cards

PREAMBLE.  +Currently ATI doesn't want to support any of its TV-out chips under Linux, +because of their licensed Macrovision technology. +

ATI CARDS TV-OUT STATUS ON LINUX

  • + ATI Mach64: + supported by GATOS. +

  • + ASIC Radeon VIVO: + supported by GATOS. +

  • + Radeon and Rage128: + supported by MPlayer! + Check VESA driver and + VIDIX sections. +

  • + Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: + supported by + atitvout. +

+On other cards, just use the VESA driver, +without VIDIX. Powerful CPU is needed, though. +

+Only thing you need to do - Have the TV connector +plugged in before booting your PC since video BIOS initializes +itself only once during POST procedure. +

8.20.4. nVidia

+First, you MUST download the closed-source drivers from +http://nvidia.com. +I will not describe the installation and configuration process because it does +not cover the scope of this documentation. +

+After XFree86, XVideo, and 3D acceleration is properly working, edit your +card's Device section in the XF86Config file, according +to the following example (adapt for your card/TV): + +

+Section "Device"
+        Identifier      "GeForce"
+        VendorName      "ASUS"
+        BoardName       "nVidia GeForce2/MX 400"
+        Driver          "nvidia"
+        #Option         "NvAGP" "1"
+        Option          "NoLogo"
+        Option          "CursorShadow"  "on"
+
+        Option          "TwinView"
+        Option          "TwinViewOrientation" "Clone"
+        Option          "MetaModes" "1024x768,640x480"
+        Option          "ConnectedMonitor" "CRT, TV"
+        Option          "TVStandard" "PAL-B"
+        Option          "TVOutFormat" "Composite"
+EndSection
+

+

+Of course the important thing is the TwinView part. +

8.20.5. NeoMagic

+The NeoMagic chip is found in a variety of laptops, some of them are equipped +with a simple analog TV encoder, some have a more advanced one. +

  • + Analog encoder chip: + It has been reported that reliable TV out can be obtained by using + -vo fbdev or -vo fbdev2. + You need to have vesafb compiled in your kernel and pass + the following parameters on the kernel command line: + append="video=vesafb:ywrap,mtrr" vga=791. + You should start X, then switch to console mode + with e.g. + Ctrl+Alt+F1. + If you fail to start X before running + MPlayer from the console, the video + becomes slow and choppy (explanations are welcome). + Login to your console, then initiate the following command: + +

    clear; mplayer -vo fbdev -zoom -cache 8192 dvd://

    + + Now you should see the movie running in console mode filling up about + half your laptop's LCD screen. To switch to TV hit + Fn+F5 three times. + Tested on a Tecra 8000, 2.6.15 kernel with vesafb, ALSA v1.0.10. +

  • + Chrontel 70xx encoder chip: + Found in IBM Thinkpad 390E and possibly other Thinkpads or notebooks. +

    + You must use -vo vesa:neotv_pal for PAL or + -vo vesa:neotv_ntsc for NTSC. + It will provide TV output function in the following 16 bpp and 8 bpp modes: +

    • NTSC 320x240, 640x480 and maybe 800x600 too.

    • PAL 320x240, 400x300, 640x480, 800x600.

    Mode 512x384 is not supported in BIOS. You must scale the image + to a different resolution to activate TV out. If you can see an image on the + screen in 640x480 or in 800x600 but not in 320x240 or other smaller + resolution you need to replace two tables in vbelib.c. + See the vbeSetTV function for details. Please contact the author in this case. +

    + Known issues: VESA-only, no other controls such as brightness, contrast, + blacklevel, flickfilter are implemented. +

+

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/unix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/unix.html new file mode 100644 index 0000000..54d4f6c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/unix.html @@ -0,0 +1,251 @@ +12.3. Commercial Unix

12.3. Commercial Unix

+MPlayer has been ported to a number of commercial +Unix variants. Since the development environments on these systems tend to be +different from those found on free Unixes, you may have to make some manual +adjustments to make the build work. +

12.3.1. Solaris

+MPlayer should work on Solaris 2.6 or newer. +Use the SUN audio driver with the -ao sun option for sound. +

+On UltraSPARCs, +MPlayer takes advantage of their +VIS extensions +(equivalent to MMX), currently only in +libmpeg2, +libvo +and libavcodec, but not in +mp3lib. You can watch a VOB file +on a 400MHz CPU. You'll need +mLib +installed. +

Caveat:

  • + mediaLib is + currently disabled by default in + MPlayer because of brokenness. SPARC users + who build MPlayer with mediaLib support have reported a thick, + green-tint on video encoded and decoded with libavcodec. You may enable + it if you wish with: +

    ./configure --enable-mlib

    + You do this at your own risk. x86 users should + never use mediaLib, as this will + result in very poor MPlayer performance. +

+To build the package you will need GNU make +(gmake, /opt/sfw/gmake), native +Solaris make will not work. Typical error you get when building with +Solaris' make instead of GNU make: +

+% /usr/ccs/bin/make
+make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
+

+

+On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if +GNU C/C++ compiler is configured with or without the GNU assembler. +

+On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, +configured to use the GNU assembler! The MPlayer +code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions +that cannot be compiled using Sun's assembler +/usr/ccs/bin/as. +

+The configure script tries to find out, which assembler +program is used by your "gcc" command (in case the autodetection +fails, use the +--as=/wherever/you/have/installed/gnu-as +option to tell the configure script where it can find GNU +"as" on your system). +

Solutions to common problems:

  • + Error message from configure on a Solaris x86 system + using GCC without GNU assembler: +

    +% configure
    +...
    +Checking assembler (/usr/ccs/bin/as) ... , failed
    +Please upgrade(downgrade) binutils to 2.10.1...

    + (Solution: Install and use a gcc configured with + --with-as=gas) +

    +Typical error you get when building with a GNU C compiler that does not +use GNU as: +

    +% gmake
    +...
    +gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
    +     -fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
    +Assembler: mplayer.c
    +"(stdin)", line 3567 : Illegal mnemonic
    +"(stdin)", line 3567 : Syntax error
    +... more "Illegal mnemonic" and "Syntax error" errors ...
    +

    +

  • + MPlayer may segfault when decoding + and encoding video that uses the win32codecs: +

    +...
    +Trying to force audio codec driver family acm...
    +Opening audio decoder: [acm] Win32/ACM decoders
    +sysi86(SI86DSCR): Invalid argument
    +Couldn't install fs segment, expect segfault
    +
    +
    +MPlayer interrupted by signal 11 in module: init_audio_codec
    +...

    + This is because of a change to sysi86() in Solaris 10 and pre-Solaris + Nevada b31 releases. This has been fixed in Solaris Nevada b32; + however, Sun has yet to backport the fix to Solaris 10. The MPlayer + Project has made Sun aware of the problem and a patch is currently in + progress for Solaris 10. More information about this bug can be found + at: + http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413. +

  • +Due to bugs in Solaris 8, +you may not be able to play DVD discs larger than 4 GB: +

    • + The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB + on a device using a logical blocksize != DEV_BSIZE + (i.e. CD-ROM and DVD media). + Due to a 32Bit int overflow, a disk address modulo 4GB is accessed + (http://groups.yahoo.com/group/solarisonintel/message/22516). + This problem does not exist in the SPARC version of Solaris 8. +

    • + A similar bug is present in the hsfs(7FS) filesystem code (AKA ISO9660), + hsfs may not not support partitions/disks larger than 4GB, all data is + accessed modulo 4GB + (http://groups.yahoo.com/group/solarisonintel/message/22592). + The hsfs problem can be fixed by installing + patch 109764-04 (sparc) / 109765-04 (x86). +

12.3.2. IRIX

+You can either try to install the GNU install program, and (if you did +not put it in your global path) then point to the location with: +

+./configure --with-install=/path/and/name/of/install
+

+

+Or you can use the default install delivered with IRIX 6.5 in which case +you will have to edit the Makefile by hand a little bit. +Change the line: +

+$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
+

+to: +

+$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
+

+and then go on with building and installing. +

12.3.3. HP-UX

+Joe Page hosts a detailed HP-UX MPlayer +HOWTO +by Martin Gansser on his homepage. With these instructions the build should +work out of the box. The following information is taken from this HOWTO. +

+You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later. +HP cc will not produce a working program, prior GCC versions are buggy. +For OpenGL functionality you need to install Mesa and the gl and gl2 video +output drivers should work, speed may be very bad, depending on the CPU speed, +though. A good replacement for the rather poor native HP-UX sound system is +GNU esound. +

+Create the DVD device +scan the SCSI bus with: + +

+# ioscan -fn
+
+Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
+...
+ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
+target  3    8/16/5.2    tgt   CLAIMED DEVICE
+disk    4    8/16/5.2.0  sdisk CLAIMED DEVICE     PIONEER DVD-ROM DVD-305
+                         /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0
+target  4    8/16/5.7    tgt   CLAIMED DEVICE
+ctl     1    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
+                         /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
+...
+

+ +The screen output shows a Pioneer DVD-ROM at SCSI address 2. +The card instance for hardware path 8/16 is 1. +

+Create a link from the raw device to the DVD device. +

+ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device>
+

+Example: +

ln -s /dev/rdsk/c1t2d0 /dev/dvd

+

+Below are solutions for some common problems: + +

  • + Crash at Start with the following error message: +

    +/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl

    +

    + This means that the function .finite(). is not + available in the standard HP-UX math library. + Instead there is .isfinite().. + Solution: Use the latest Mesa depot file. +

  • + Crash at playback with the following error message: +

    +/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0

    +

    + Solution: Use the extralibdir option of configure + --with-extralibdir="/usr/lib -lrt" +

  • + MPlayer segfaults with a message like this: +

    +Pid 10166 received a SIGSEGV for stack growth failure.
    +Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
    +Segmentation fault

    +

    + Solution: + The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and + newer 10.20 patches let you increase maxssiz up to + 350MB for 32-bit programs). You need to extend + maxssiz and recompile the kernel (and reboot). + You can use SAM to do this. + (While at it, check out the maxdsiz parameter for + the maximum amount of data a program can use. + It depends on your applications, if the default of 64MB is enough or not.) +

+

12.3.4. AIX

+MPlayer builds successfully on AIX 5.1, +5.2, and 5.3, using GCC 3.3 or greater. Building +MPlayer on AIX 4.3.3 and below is +untested. It is highly recommended that you build +MPlayer using GCC 3.4 or greater, +or if you are building on POWER5, GCC 4.0 is required. +

+Ensure that you are using GNU make +(/opt/freeware/bin/gmake) to build +MPlayer, as you will encounter problems if +you use /usr/ccs/bin/make. +

+CPU detection is still a work in progress. +The following architectures have been tested: +

  • 604e

  • POWER3

  • POWER4

+The following architectures are untested, but should still work: +

  • POWER

  • POWER2

  • POWER5

+

+Sound via the Ultimedia Services is not supported, as Ultimedia was +dropped in AIX 5.1; therefore, the only option is to use the AIX Open +Sound System (OSS) drivers from 4Front Technologies at +http://www.opensound.com/aix.html. +4Front Technologies freely provides OSS drivers for AIX 5.1 for +non-commercial use; however, there are currently no sound output +drivers for AIX 5.2 or 5.3. This means AIX 5.2 +and 5.3 are not capable of MPlayer audio output, presently. +

Solutions to common problems:

  • + If you encounter this error message from ./configure: +

    +$ ./configure
    +...
    +Checking for iconv program ... no
    +No working iconv program found, use
    +--charset=US-ASCII to continue anyway.
    +Messages in the GTK-2 interface will be broken then.

    + This is because AIX uses non-standard character set names; therefore, + converting MPlayer output to another character set is currently not + supported. The solution is to use: +

    $ ./configure --charset=noconv

    +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/usage.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/usage.html new file mode 100644 index 0000000..9456ce1 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/usage.html @@ -0,0 +1 @@ +Chapter 3. Usage diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vcd.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vcd.html new file mode 100644 index 0000000..2ff51bc --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vcd.html @@ -0,0 +1,72 @@ +4.3. VCD playback

4.3. VCD playback

+For the complete list of available options, please read the man page. The +Syntax for a standard Video CD (VCD) is as follows: +

mplayer vcd://<track> [-cdrom-device <device>]

+Example: +

mplayer vcd://2 -cdrom-device /dev/hdc

+The default VCD device is /dev/cdrom. If your setup +differs, make a symlink or specify the correct device on the command line +with the -cdrom-device option. +

Note

+At least Plextor and some Toshiba SCSI CD-ROM drives have horrible performance +reading VCDs. This is because the CDROMREADRAW ioctl +is not fully implemented for these drives. If you have some knowledge of SCSI +programming, please help us +implement generic SCSI support for VCDs. +

+In the meantime you can extract data from VCDs with +readvcd +and play the resulting file with MPlayer. +

VCD structure.  +A Video CD (VCD) is made up of CD-ROM XA sectors, i.e. CD-ROM mode 2 +form 1 and 2 tracks: +

  • + The first track is in mode 2 form 2 format which means it uses L2 + error correction. The track contains an ISO-9660 filesystem with 2048 + bytes/sector. This filesystem contains VCD metadata information, as + well as still frames often used in menus. MPEG segments for menus can + also be stored in this first track, but the MPEGs have to be broken up + into a series of 150-sector chunks. The ISO-9660 filesystem may + contain other files or programs that are not essential for VCD + operation. +

  • + The second and remaining tracks are generally raw 2324 bytes/sector + MPEG (movie) tracks, containing one MPEG PS data packet per + sector. These are in mode 2 form 1 format, so they store more data per + sector at the loss of some error correction. It is also legal to have + CD-DA tracks in a VCD after the first track as well. + On some operating systems there is some trickery that goes on to make + these non-ISO-9660 tracks appear in a filesystem. On other operating + systems like GNU/Linux this is not the case (yet). Here the MPEG data + cannot be mounted. As most movies are + inside this kind of track, you should try vcd://2 + first. +

  • + There exist VCD disks without the first track (single track and no filesystem + at all). They are still playable, but cannot be mounted. +

  • + The definition of the Video CD standard is called the + Philips "White Book" and it is not generally available online as it + must be purchased from Philips. More detailed information about Video + CDs can be found in the + vcdimager documentation. +

+

About .DAT files.  +The ~600 MB file visible on the first track of the mounted VCD is not a real +file! It is a so called ISO gateway, created to allow Windows to handle such +tracks (Windows does not allow raw device access to applications at all). +Under Linux you cannot copy or play such files (they contain garbage). Under +Windows it is possible as its iso9660 driver emulates the raw reading of +tracks in this file. To play a .DAT file you need the kernel driver which can +be found in the Linux version of PowerDVD. It has a modified iso9660 filesystem +(vcdfs/isofs-2.4.X.o) driver, which is able to emulate the +raw tracks through this shadow .DAT file. If you mount the disc using their +driver, you can copy and even play .DAT files with +MPlayer. But it will not +work with the standard iso9660 driver of the Linux kernel! Use +vcd:// instead. Alternatives for VCD copying are the +new cdfs kernel +driver (not part of the official kernel) that shows CD sessions as image files +and cdrdao, a bit-by-bit +CD grabbing/copying application. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vesa.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vesa.html new file mode 100644 index 0000000..d98d58a --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vesa.html @@ -0,0 +1,91 @@ +8.13. VESA - output to VESA BIOS

8.13. VESA - output to VESA BIOS

+This driver was designed and introduced as a generic +driver for any video card which has VESA VBE 2.0 compatible +BIOS. Another advantage of this driver is that it tries to force TV output +on. +VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, +1998 (Page 70) says: +

Dual-Controller Designs.  +VBE 3.0 supports the dual-controller design by assuming that since both +controllers are typically provided by the same OEM, under control of a +single BIOS ROM on the same graphics card, it is possible to hide the fact +that two controllers are indeed present from the application. This has the +limitation of preventing simultaneous use of the independent controllers, +but allows applications released before VBE 3.0 to operate normally. The +VBE Function 00h (Return Controller Information) returns the combined +information of both controllers, including the combined list of available +modes. When the application selects a mode, the appropriate controller is +activated. Each of the remaining VBE functions then operates on the active +controller. +

+So you have chances to get working TV-out by using this driver. +(I guess that TV-out frequently is standalone head or standalone output +at least.) +

ADVANTAGES

  • + You have chances to watch movies if Linux even doesn't + know your video hardware. +

  • + You don't need to have installed any graphics' related things on your + Linux (like X11 (AKA XFree86), fbdev and so on). This driver can be run + from text-mode. +

  • + You have chances to get working TV-out. + (It's known at least for ATI's cards). +

  • + This driver calls int 10h handler thus it's not + an emulator - it calls real things of + real BIOS in real-mode + (actually in vm86 mode). +

  • + You can use VIDIX with it, thus getting accelerated video display + and TV output at the same time! + (Recommended for ATI cards.) +

  • + If you have VESA VBE 3.0+, and you had specified + monitor-hfreq, monitor-vfreq, monitor-dotclock somewhere + (config file, or command line) you will get the highest possible refresh rate. + (Using General Timing Formula). To enable this feature you have to specify + all your monitor options. +

DISADVANTAGES

  • + It works only on x86 systems. +

  • + It can be used only by root. +

  • + Currently it's available only for Linux. +

Important

+Don't use this driver with GCC 2.96! +It won't work! +

COMMAND LINE OPTIONS AVAILABLE FOR VESA

-vo vesa:opts

+ currently recognized: dga to force dga mode and + nodga to disable dga mode. In dga mode you can enable + double buffering via the -double option. Note: you may omit + these parameters to enable autodetection of + dga mode. +

KNOWN PROBLEMS AND WORKAROUNDS

  • + If you have installed NLS font on your + Linux box and run VESA driver from text-mode then after terminating + MPlayer you will have + ROM font loaded instead of national. + You can load national font again by using setsysfont + utility from the Mandrake/Mandriva distribution for example. + (Hint: The same utility is used for + localization of fbdev). +

  • + Some Linux graphics drivers don't update + active BIOS mode in DOS memory. + So if you have such problem - always use VESA driver only from + text-mode. Otherwise text-mode (#03) will + be activated anyway and you will need restart your computer. +

  • + Often after terminating VESA driver you get + black screen. To return your screen to + original state - simply switch to other console (by pressing + Alt+F<x>) + then switch to your previous console by the same way. +

  • + To get working TV-out you need have plugged + TV-connector in before booting your PC since video BIOS initializes + itself only once during POST procedure. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-codecs.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-codecs.html new file mode 100644 index 0000000..3127d6e --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-codecs.html @@ -0,0 +1,211 @@ +7.1. Video codecs

7.1. Video codecs

+The codec status table is a +complete list of all supported codecs, regenerated daily. +Some binary codecs for use with MPlayer are available in the +download section +of our homepage. +

+The most important ones above all: +

  • + MPEG-1 (VCD) and + MPEG-2 (DVD) video +

  • + native decoders for all DivX variants, + 3ivX, M$ MPEG-4 v1, v2 and other MPEG-4 variants +

  • + native decoder for Windows Media Video 7/8 + (WMV1/WMV2), and Win32 DLL decoder + for Windows Media Video 9 + (WMV3), + both used in .wmv files +

  • + native Sorenson 1 (SVQ1) decoder +

  • + native Sorenson 3 (SVQ3) decoder +

  • + 3ivx v1, v2 decoder +

  • + Cinepak and Intel Indeo codecs + (3.1,3.2,4.1,5.0) +

  • + MJPEG, AVID, VCR2, ASV2 and other hardware + formats +

  • + VIVO 1.0, 2.0, I263 and other H.263(+) + variants +

  • + FLI/FLC +

  • + RealVideo 1.0 & 2.0 from + libavcodec, and + RealVideo 3.0 & 4.0 codecs using + RealPlayer libraries +

  • + native decoder for HuffYUV +

  • + Various old simple RLE-like formats +

+If you have a Win32 codec not listed here which is not supported yet, +please read the codec importing HOWTO +and help us add support for it. +

7.1.1. FFmpeg/libavcodec

+FFmpeg contains +libavcodec, the leading +open source video and audio codec library. It is capable +of decoding most multimedia formats, usually at higher speeds +than the alternatives, and aims to add support for +the rest of them eventually. It is the default decoder for +the majority of codecs that MPlayer +supports. Encoding is also possible for some formats and +supported in MEncoder. +

+For a complete list of supported +video +and audio +codecs please visit the FFmpeg homepage. +

+MPlayer contains +libavcodec. +Just run ./configure and compile. +

7.1.2. Xvid

+Xvid is a free software MPEG-4 ASP +compliant video codec, which features two pass encoding and full MPEG-4 ASP +support, making it a lot more efficient than the well-known DivX codec. +It yields very good video quality and good performance due to CPU +optimizations for most modern processors. +

+It began as a forked development of the OpenDivX codec. +This happened when ProjectMayo changed OpenDivX to closed source +DivX4, and the non-ProjectMayo people working on OpenDivX got angry, +then started Xvid. So both projects have the same origin. +

+Note that Xvid is not necessary to decode Xvid-encoded video. +libavcodec is used by +default as it offers better speed. +

Installing Xvid

+ Like most open source software, it is available in two flavors: + official releases + and the CVS version. + The CVS version is usually stable enough to use, as most of the time it + features fixes for bugs that exist in releases. + Here is what to do to make Xvid + CVS work with MEncoder (you need at least + autoconf 2.50, + automake and libtool): +

  1. +

    cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

    +

  2. +

    cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

    +

  3. +

    cd xvidcore/build/generic

    +

  4. +

    ./bootstrap.sh

    +

  5. +

    ./configure

    + You may have to add some options (examine the output of + ./configure --help). +

  6. +

    make && make install

    +

  7. + If you specified --enable-divxcompat, + copy ../../src/divx4.h to + /usr/local/include/. +

  8. + Recompile MPlayer with + --with-xvidlibdir=/path/to/libxvidcore.a + --with-xvidincdir=/path/to/xvid.h. +

7.1.3. x264

7.1.3.1. What is x264?

+x264 +is a library for creating H.264 video streams. +It is not 100% complete, but currently it has at least some kind +of support for most of the H.264 features which impact quality. +There are also many advanced features in the H.264 specification +which have nothing to do with video quality per se; many of these +are not yet implemented in x264. +

Encoder features

  • CAVLC/CABAC

  • Multi-references

  • + Intra: all macroblock types (16x16, 8x8, and 4x4 with all predictions) +

  • + Inter P: all partitions (from 16x16 down to 4x4) +

  • + Inter B: partitions from 16x16 down to 8x8 (including SKIP/DIRECT) +

  • + Ratecontrol: constant quantizer, constant bitrate, single or multipass ABR, + optional VBV +

  • Scene cut detection

  • Adaptive B-frame placement

  • + B-frames as references / arbitrary frame order +

  • 8x8 and 4x4 adaptive spatial transform

  • Lossless mode

  • Custom quantization matrices

  • Parallel encoding of multiple slices

  • Interlacing

7.1.3.2. What is H.264?

+H.264 is one name for a new digital video codec jointly developed +by the ITU and MPEG. +It can also be correctly referred to by the cumbersome names of +"ISO/IEC 14496-10" or "MPEG-4 Part 10". +More frequently, it is referred to as "MPEG-4 AVC" or just "AVC". +

+Whatever you call it, H.264 may be worth trying because it can typically match +the quality of MPEG-4 ASP with 5%-30% less bitrate. +Actual results will depend on both the source material and the encoder. +The gains from using H.264 do not come for free: Decoding H.264 +streams seems to have steep CPU and memory requirements. +For instance, on a 1733 MHz Athlon, a DVD-resolution 1500kbps H.264 +video requires around 35% CPU to decode. +By comparison, decoding a DVD-resolution 1500kbps MPEG-4 ASP stream +requires around 10% CPU. +This means that decoding high-definition streams is almost out of +the question for most users. +It also means that even a decent DVD rip may sometimes stutter on +processors slower than 2.0 GHz or so. +

+At least with x264, +encoding requirements are not much worse than what you are used to +with MPEG-4 ASP. +For instance, on a 1733 MHz Athlon a typical DVD encode would run +at 5-15fps. +

+This document is not intended to explain the details of H.264, +but if you are interested in a brief overview, you may want to read +The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions. +

7.1.3.3. How can I play H.264 videos with + MPlayer?

+MPlayer uses +libavcodec's H.264 decoder. +libavcodec has had at +least minimally usable H.264 decoding since around July 2004, +however major changes and improvements have been implemented since +that time, both in terms of more functionalities supported and in +terms of improved CPU usage. +Just to be certain, it is always a good idea to use a recent Subversion +checkout. +

+If you want a quick and easy way to know whether there have been +recent changes to libavcodec's +H.264 decoding, you might keep an eye on +FFmpeg Subversion repository's web interface. +

7.1.3.4. How can I encode videos using MEncoder + and x264?

+If you have the subversion client installed, the latest x264 +sources can be gotten with this command: +

svn co svn://svn.videolan.org/x264/trunk x264

+MPlayer sources are updated whenever +an x264 API change +occurs, so it is always suggested to use +MPlayer from Subversion as well. +Perhaps this situation will change when and if an +x264 "release" occurs. +Meanwhile, x264 should +be considered very unstable, in the sense that its programming +interface is subject to change. +

+x264 is built and +installed in the standard way: +

./configure && make && sudo make install

+This installs libx264.a in /usr/local/lib and x264.h is placed in +/usr/local/include. + +With the x264 library +and header placed in the standard locations, building +MPlayer with +x264 support is easy. +Just run the standard: +

./configure && make && sudo make install

+The ./configure script will autodetect that you have +satisfied the requirements for x264. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-formats.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-formats.html new file mode 100644 index 0000000..68ab10c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video-formats.html @@ -0,0 +1,221 @@ +6.1. Video formats

6.1. Video formats

6.1.1. MPEG files

+MPEG files come in different guises: +

  • + MPG: This is the most basic form of the + MPEG file formats. It contains MPEG-1 video, and MP2 (MPEG-1 layer 2) or + rarely MP1 audio. +

  • + DAT: This is the very same format as MPG with a different extension. It + is used on Video CDs. Due to the way VCDs + are created and Linux is designed, the DAT files cannot be played nor copied + from VCDs as regular files. You have to use vcd:// + to play a Video CD. +

  • + VOB: This is the MPEG file format on DVDs. + It is the same as MPG, plus the capability to contain subtitles or non-MPEG + (AC-3) audio. It contains encoded MPEG-2 video and usually AC-3 audio, but DTS, + MP2 and uncompressed LPCM are allowed, too. Read the + DVD section! +

  • + TY: This is a TiVo MPEG stream. It contains MPEG PES data for audio and + video streams, as well as extra information like closed captions. The + container is not an MPEG program stream, but a closed format created by + TiVo. For more information on TiVo stream format, please refer to + + the TyStudio page. +

+Series of frames form independent groups in MPEG files. This means that you +can cut/join an MPEG file with standard file tools (like +dd, cut), and it remains completely +functional. +

+One important feature of MPGs is that they have a field to describe the +aspect ratio of the video stream within. For example SVCDs have 480x480 +resolution video, and in the header that field is set to 4:3, so that it is +played at 640x480. AVI files often lack this field, so they have to be +rescaled during encoding or played with the -aspect +option. +

6.1.2. AVI files

+Designed by Microsoft, +AVI (Audio Video Interleaved) +is a widespread multipurpose format currently used mostly for MPEG-4 (DivX and +DivX4) video. It has many known drawbacks and shortcomings (for example in +streaming). +It supports one video stream and 0 to 99 audio streams and can be as big as +2GB, but there exists an extension allowing bigger files called +OpenDML. Microsoft currently strongly +discourages its use and encourages ASF/WMV. Not that anybody cares. +

+There is a hack that allows AVI files to contain an Ogg Vorbis audio +stream, but makes them incompatible with standard AVI. +MPlayer supports playing these files. Seeking is +also implemented but severely hampered by badly encoded files with +confusing headers. Unfortunately the only encoder currently capable of +creating these files, NanDub, has this problem. +

Note

+DV cameras create raw DV streams that DV grabbing utilities convert to two +different types of AVI files. The AVI will then contain either separate +audio and video streams that MPlayer can play or +the raw DV stream for which support is under development. +

+There are two kinds of AVI files: +

  • + Interleaved: Audio and video content is + interleaved. This is the standard usage. Recommended and mostly used. Some + tools create interleaved AVIs with bad sync. + MPlayer detects these as interleaved, and this + climaxes in loss of A/V sync, probably at seeking. + These files should be played as non-interleaved + (with the -ni option). +

  • + Non-interleaved: First comes the whole + video stream, then the whole audio stream. It thus needs a lot of seeking, + making playing from network or CD-ROM difficult. +

+

+MPlayer supports two kinds of timings for AVI +files: +

  • + bps-based: It is based on the + bitrate/samplerate of the video/audio stream. This method is used by + most players, including avifile + and Windows Media Player. Files with broken + headers, and files created with VBR audio but not VBR-compliant encoder + will result in A/V desync with this method (mostly at seeking). +

  • + interleaving-based: It does not use the + bitrate value of the header, instead it uses the relative position of + interleaved audio and video chunks, + making badly encoded files with VBR audio playable. +

+

+Any audio and video codec is allowed, but note that VBR audio is not well +supported by most players. The file format makes it possible to use VBR +audio, but most players expect CBR audio, thus they fail with VBR. VBR is +uncommon and Microsoft's AVI specs only describe CBR audio. I also noticed +that most AVI encoders/multiplexers create bad files when using VBR audio. +There are only two known exceptions: NanDub and +MEncoder. +

6.1.3. ASF/WMV files

+ASF (Active Streaming Format) comes from Microsoft. They developed two +variants of ASF, v1.0 and v2.0. v1.0 is used by their media tools +(Windows Media Player and +Windows Media Encoder) +and is very secret. v2.0 is published and patented :). Of course they differ, +there is no compatibility at all (it is just another legal game). +MPlayer supports only v1.0, as nobody has ever seen +v2.0 files :). Note that ASF files nowadays come with the extension +.WMA or .WMV. +

6.1.4. QuickTime/MOV files

+These formats were designed by Apple and can contain any codec, CBR or VBR. +They usually have a .QT or .MOV +extension. Note that since the MPEG-4 group chose QuickTime as the recommended +file format for MPEG-4, their MOV files come with a .MPG or +.MP4 extension (Interestingly the video and audio +streams in these files are real MPG and AAC files. You can even extract them +with the -dumpvideo and -dumpaudio options.). +

6.1.5. VIVO files

+MPlayer happily demuxes VIVO file formats. The +biggest disadvantage of the format is that it has no index block, nor a +fixed packet size or sync bytes and most files lack even keyframes, so +forget seeking! +

+The video codec of VIVO/1.0 files is standard +h.263. +The video codec of VIVO/2.0 files is a modified, nonstandard +h.263v2. The audio is the same, it may be +g.723 (standard), or +Vivo Siren. +

6.1.6. FLI files

+FLI is a very old file format used by +Autodesk Animator, but it is a common file format for short animations on the +net. +MPlayer demuxes and decodes FLI movies and is +even able to seek within them (useful when looping with the +-loop option). FLI files do not have keyframes, so the +picture will be messy for a short time after seeking. +

6.1.7. RealMedia (RM) files

+Yes, MPlayer can read (demux) RealMedia +(.rm) files. +

6.1.8. NuppelVideo files

+NuppelVideo +is a TV grabber tool (AFAIK:). MPlayer can read +its .NUV files (only NuppelVideo 5.0). Those files can +contain uncompressed YV12, YV12+RTJpeg compressed, YV12 RTJpeg+lzo +compressed, and YV12+lzo compressed frames. +MPlayer decodes (and also +encodes +them with MEncoder to MPEG-4 (DivX)/etc!) them all. +Seeking works. +

6.1.9. yuv4mpeg files

+yuv4mpeg / yuv4mpeg2 +is a file format used by the +mjpegtools programs. +You can grab, produce, filter or encode video in this format using these tools. +The file format is really a sequence of uncompressed YUV 4:2:0 images. +

6.1.10. FILM files

+This format is used on old Sega Saturn CD-ROM games. +

6.1.11. RoQ files

+RoQ files are multimedia files used in some ID games such as Quake III and +Return to Castle Wolfenstein. +

6.1.12. OGG/OGM files

+This is a new fileformat from +Xiphophorus. +It can contain any video or audio codec, CBR or VBR. You'll need +libogg and +libvorbis installed before +compiling MPlayer to be able to play it. +

6.1.13. SDP files

+SDP is an +IETF standard format for describing video and/or audio RTP streams. +(The "LIVE555 Streaming Media" +are required.) +

6.1.14. PVA files

+PVA is an MPEG-like format used by DVB TV boards' software (e.g.: +MultiDec, +WinTV under Windows). +

6.1.15. NSV files

+NSV (NullSoft Video) is the file format used by the +Winamp player to stream audio and video. +Video is VP3, VP5 or VP6, audio is MP3, AAC or VLB. +The audio only version of NSV has the .nsa extension. +MPlayer can play both NSV streams and files. +Please note that most files from the +Winamp site use VLB audio, that +can't be decoded yet. Moreover streams from that site need an extra +depacketization layer that still has to be implemented (those files are +unplayable anyway because they use VLB audio). +

6.1.16. Matroska files

+Matroska is an open container format. +Read more on the official site. +

6.1.17. NUT files

+NUT is the container format developed by MPlayer and +FFmpeg folks. Both projects support it. +Read more on the official site. +

6.1.18. GIF files

+The GIF format is a common format for web +graphics. There are two versions of the GIF spec, GIF87a and GIF89a. +The main difference is that GIF89a allows for animation. +MPlayer supports both formats through use of +libungif or +another libgif-compatible library. Non-animated GIFs will be displayed as +single frame videos. (Use the -loop and +-fixed-vo options to display these longer.) +

+MPlayer currently does not support seeking in GIF +files. GIF files do not necessarily have a fixed frame size, nor a fixed +framerate. Rather, each frame is of independent size and is supposed to be +positioned in a certain place on a field of fixed-size. The framerate is +controlled by an optional block before each frame that specifies the next +frame's delay in centiseconds. +

+Standard GIF files contain 24-bit RGB frames with at most an 8-bit indexed +palette. These frames are usually LZW-compressed, although some GIF encoders +produce uncompressed frames to avoid patent issues with LZW compression. +

+If your distribution does not come with +libungif, download a copy from the +libungif +homepage. For detailed technical information, have a look at the +GIF89a specification. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video.html new file mode 100644 index 0000000..2b10be7 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/video.html @@ -0,0 +1,3 @@ +Chapter 8. Video output devices diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vidix.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vidix.html new file mode 100644 index 0000000..5516cf9 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/vidix.html @@ -0,0 +1,149 @@ +8.15. VIDIX

8.15. VIDIX

PREAMBLE.  +VIDIX is the abbreviation for +VIDeo +Interface +for *niX. +VIDIX was designed and introduced as an interface for fast user-space drivers +providing such video performance as mga_vid does for Matrox cards. It's also +very portable. +

+This interface was designed as an attempt to fit existing video +acceleration interfaces (known as mga_vid, rage128_vid, radeon_vid, +pm3_vid) into a fixed scheme. It provides a high level interface to chips +which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't +provide low level interface to things which are known as graphics servers. +(I don't want to compete with X11 team in graphics mode switching). I.e. +main goal of this interface is to maximize the speed of video playback. +

USAGE

  • + You can use standalone video output driver: -vo xvidix. + This driver was developed as X11's front end to VIDIX technology. It + requires X server and can work only under X server. Note that, as it directly + accesses the hardware and circumvents the X driver, pixmaps cached in the + graphics card's memory may be corrupted. You can prevent this by limiting + the amount of video memory used by X with the XF86Config option "VideoRam" + in the device section. You should set this to the amount of memory installed + on your card minus 4MB. If you have less than 8MB of video ram, you can use + the option "XaaNoPixmapCache" in the screen section instead. +

  • + There is a console VIDIX driver: -vo cvidix. + This requires a working and initialized framebuffer for most cards (or else + you'll just mess up the screen), and you'll have a similar effect as with + -vo mga or -vo fbdev. nVidia cards however + are able to output truly graphical video on a real text console. See the + nvidia_vid section for more information. + To get rid of text on the borders and the blinking cursor, try something like +

    setterm -cursor off > /dev/tty9

    + (assuming tty9 is unused so far) and then + switch to tty9. + On the other hand, -colorkey 0 should give you a video + running in the "background", though this depends on the colorkey + functionality to work right. +

  • + You can use VIDIX subdevice which was applied to several video output + drivers, such as: -vo vesa:vidix + (Linux only) and + -vo fbdev:vidix. +

+Indeed it doesn't matter which video output driver is used with +VIDIX. +

REQUIREMENTS

  • + Video card should be in graphics mode (except nVidia cards with the + -vo cvidix output driver). +

  • + MPlayer's video output driver should know + active video mode and be able to tell to VIDIX subdevice some video + characteristics of server. +

USAGE METHODS.  +When VIDIX is used as subdevice (-vo +vesa:vidix) then video mode configuration is performed by video +output device (vo_server in short). Therefore you can +pass into command line of MPlayer the same keys +as for vo_server. In addition it understands -double key +as globally visible parameter. (I recommend using this key with VIDIX at +least for ATI's card). As for -vo xvidix, currently it +recognizes the following options: -fs -zoom -x -y -double. +

+Also you can specify VIDIX's driver directly as third subargument in +command line: +

+mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi
+

+or +

+mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi
+

+But it's dangerous, and you shouldn't do that. In this case given driver +will be forced and result is unpredictable (it may +freeze your computer). You should do that +ONLY if you are absolutely sure it will work, and +MPlayer doesn't do it automatically. Please tell +about it to the developers. The right way is to use VIDIX without arguments +to enable driver autodetection. +

+Since VIDIX requires direct hardware access you can either run it as root +or set the SUID bit on the MPlayer binary +(Warning: This is a security risk!). +Alternatively, you can use a special kernel module, like this: +

  1. + Download the + development version + of svgalib (for example 1.9.17), OR + download a version made by Alex especially for usage with + MPlayer (it doesn't need the svgalib source to + compile) from + here. +

  2. + Compile the module in the + svgalib_helper directory (it can be + found inside the + svgalib-1.9.17/kernel/ directory if + you've downloaded the source from the svgalib site) and insmod it. +

  3. + To create the necessary devices in the + /dev directory, do a +

    make device

    in the + svgalib_helper dir, as root. +

  4. + Move the svgalib_helper directory to + the vidix subdirectory of the + MPlayer source tree. +

  5. + Remove the comment before the CFLAGS line containing the "svgalib_helper" + string from vidix/Makefile. +

  6. + Recompile. +

8.15.1. ATI cards

+Currently most ATI cards are supported natively, from Mach64 to the +newest Radeons. +

+There are two compiled binaries: radeon_vid for Radeon and +rage128_vid for Rage 128 cards. You may force one or let +the VIDIX system autoprobe all available drivers. +

8.15.2. Matrox cards

+Matrox G200, G400, G450 and G550 have been reported to work. +

+The driver supports video equalizers and should be nearly as fast as the +Matrox framebuffer +

8.15.3. Trident cards

+There is a driver available for the Trident Cyberblade/i1 chipset, which +can be found on VIA Epia motherboards. +

+The driver was written and is maintained by +Alastair M. Robinson. +

8.15.4. 3DLabs cards

+Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one +has tested it, so reports are welcome. +

8.15.5. nVidia cards

+An unique feature of the nvidia_vid driver is its ability to display video on +plain, pure, text-only console - with no +framebuffer or X magic whatsoever. For this purpose, we'll have to use the +cvidix video output, as the following example shows: +

mplayer -vo cvidix example.avi

+

8.15.6. SiS cards

+This is very experimental code, just like nvidia_vid. +

+It's been tested on SiS 650/651/740 (the most common chipsets used in the +SiS versions of the "Shuttle XPC" barebones boxes out there) +

+Reports awaited! +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/windows.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/windows.html new file mode 100644 index 0000000..0571d99 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/windows.html @@ -0,0 +1,129 @@ +12.4. Windows

12.4. Windows

+Yes, MPlayer runs on Windows under +Cygwin +and +MinGW. +It does not have an official GUI yet, but the command line version +is completely functional. You should check out the +MPlayer-cygwin +mailing list for help and latest information. +Official Windows binaries can be found on the +download page. +Installer packages and simple GUI frontends are available from external +sources, we have collected then in the Windows section of our +projects page. +

+If you wish to avoid using the command line, a simple trick is +to put a shortcut on your desktop that contains something like the +following in the execute section: +

c:\path\to\mplayer.exe %1

+This will make MPlayer play any movie that is +dropped on the shortcut. Add -fs for fullscreen mode. +

+Best results are achieved with the native DirectX video output driver +(-vo directx). Alternatives are OpenGL and SDL, but OpenGL +performance varies greatly between systems and SDL is known to +distort video or crash on some systems. If the image is +distorted, try turning off hardware acceleration with +-vo directx:noaccel. Download +DirectX 7 header files +to compile the DirectX video output driver. Furthermore you need to have +DirectX 7 or later installed for the DirectX video output driver to work. +

+VIDIX now works under Windows as +-vo winvidix, although it is still experimental +and needs a bit of manual setup. Download +dhahelper.sys or +dhahelper.sys (with MTRR support) +and copy it to the vidix/dhahelperwin +directory in your MPlayer source tree. +Open a console and change to that directory. Then type +

gcc -o dhasetup.exe dhasetup.c

+and execute +

dhasetup.exe install

+as Administrator. After that you will have to reboot. When you are +done, copy the .so files from +vidix/drivers to the +mplayer/vidix directory +relative to your mplayer.exe. +

+For best results MPlayer should use a +colorspace that your video card supports in hardware. Unfortunately many +Windows graphics drivers wrongly report some colorspaces as supported in +hardware. To find out which, try +

+mplayer -benchmark -nosound -frames 100 -vf format=colorspace movie
+

+where colorspace can be any colorspace +printed by the -vf format=fmt=help option. If you +find a colorspace your card handles particularly bad +-vf noformat=colorspace +will keep it from being used. Add this to your config file to permanently +keep it from being used. +

There are special codec packages for Windows available on our + download page + to allow playing formats for which there is no native support yet. + Put the codecs somewhere in your path or pass + --codecsdir=c:/path/to/your/codecs + (alternatively + --codecsdir=/path/to/your/codecs + only on Cygwin) to configure. + We have had some reports that Real DLLs need to be writable by the user + running MPlayer, but only on some systems (NT4). + Try making them writable if you have problems. +

+You can play VCDs by playing the .DAT or +.MPG files that Windows exposes on VCDs. It works like +this (adjust for the drive letter of your CD-ROM): +

mplayer d:/mpegav/avseq01.dat

+DVDs also work, adjust -dvd-device for the drive letter +of your DVD-ROM: +

+mplayer dvd://<title> -dvd-device d:
+

+The Cygwin/MinGW +console is rather slow. Redirecting output or using the +-quiet option has been reported to improve performance on +some systems. Direct rendering (-dr) may also help. +If playback is jerky, try +-autosync 100. If some of these options help you, you +may want to put them in your config file. +

Note

+On Windows the runtime CPU detection disables SSE support +because of recurring and hard-to-trace SSE-related crashes. If you +wish to have SSE support under Windows, you will have to compile without +runtime CPU-detection. +

+If you have a Pentium 4 and are experiencing a crash using the +RealPlayer codecs, you may need to disable hyperthreading support. +

12.4.1. Cygwin

+You need to run Cygwin 1.5.0 or later in +order to compile MPlayer. +

+DirectX header files need to be extracted to +/usr/include/ or +/usr/local/include/. +

+Instructions and files for making SDL run under +Cygwin can be found on the +libsdl site. +

12.4.2. MinGW

+Installing a version of MinGW that could +compile MPlayer used to be quite tricky, but it +works out of the box now. Just install MinGW +3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that +MinGW is installed. +

+Extract DirectX header files to +/mingw/include/. +

+MOV compressed header support requires +zlib, +which MinGW does not provide by default. +Configure it with --prefix=/mingw and install +it before compiling MPlayer. +

+Complete instructions for building MPlayer +and necessary libraries can be found in the +MPlayer MinGW HOWTO. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/x11.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/x11.html new file mode 100644 index 0000000..7b43519 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/x11.html @@ -0,0 +1,33 @@ +8.14. X11

8.14. X11

+Avoid if possible. Outputs to X11 (uses shared memory extension), with no +hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but +still slow) software scaling, use the options -fs -zoom. +Most cards have hardware scaling support, use the -vo xv +output for them, or -vo xmga for Matrox cards. +

+The problem is that most cards' driver doesn't support hardware +acceleration on the second head/TV. In those cases, you see green/blue +colored window instead of the movie. This is where this driver comes in +handy, but you need powerful CPU to use software scaling. Don't use the SDL +driver's software output+scaler, it has worse image quality! +

+Software scaling is very slow, you better try changing video modes instead. +It's very simple. See the DGA section's +modelines, and insert them into your XF86Config. + +

  • + If you have XFree86 4.x.x: use the -vm option. It will + change to a resolution your movie fits in. If it doesn't: +

  • + With XFree86 3.x.x: you have to cycle through available resolutions + with the + Ctrl+Alt+Keypad + + and + Ctrl+Alt+Keypad - + keys. +

+

+If you can't find the modes you inserted, browse XFree86's output. Some +drivers can't use low pixelclocks that are needed for low resolution +video modes. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/xv.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/xv.html new file mode 100644 index 0000000..8484a93 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/docs/xv.html @@ -0,0 +1,158 @@ +8.2. Xv

8.2. Xv

+Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines +using the XVideo extension. This is what the option +-vo xv uses. Also, this driver supports adjusting +brightness/contrast/hue/etc. (unless you use the old, slow DirectShow DivX +codec, which supports it everywhere), see the man page. +

+In order to make this work, be sure to check the following: + +

  1. + You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) +

  2. + Your card actually supports hardware acceleration (modern cards do) +

  3. + X loads the XVideo extension, it's something like this: +

    (II) Loading extension XVideo

    + in /var/log/XFree86.0.log +

    Note

    + This loads only the XFree86's extension. In a good install, this is + always loaded, and doesn't mean that the + card's XVideo support is loaded! +

    +

  4. + Your card has Xv support under Linux. To check, try + xvinfo, it is the part of the XFree86 distribution. It + should display a long text, similar to this: +

    +X-Video Extension version 2.2
    +screen #0
    +  Adaptor #0: "Savage Streams Engine"
    +    number of ports: 1
    +    port base: 43
    +    operations supported: PutImage
    +    supported visuals:
    +      depth 16, visualID 0x22
    +      depth 16, visualID 0x23
    +    number of attributes: 5
    +(...)
    +    Number of image formats: 7
    +      id: 0x32595559 (YUY2)
    +        guid: 59555932-0000-0010-8000-00aa00389b71
    +        bits per pixel: 16
    +        number of planes: 1
    +        type: YUV (packed)
    +      id: 0x32315659 (YV12)
    +        guid: 59563132-0000-0010-8000-00aa00389b71
    +        bits per pixel: 12
    +        number of planes: 3
    +        type: YUV (planar)
    +(...etc...)

    + It must support YUY2 packed, and YV12 planar pixel formats to be usable + with MPlayer. +

  5. + And finally, check if MPlayer was compiled + with 'xv' support. Do a mplayer -vo help | grep xv . + If 'xv' support was built a line similar to this should appear: +

      xv      X11/Xv

    +

+

8.2.1. 3dfx cards

+Older 3dfx drivers were known to have problems with XVideo acceleration, it +didn't support YUY2 or YV12 colorspaces. Verify that you have XFree86 +version 4.2.0 or later, it can handle YV12 and YUY2 while previous +versions, including 4.1.0, crash with YV12. +If you experience strange effects using -vo xv, try SDL +(it has XVideo, too) and see if it helps. Check the +SDL section for details. +

+OR, try the NEW +-vo tdfxfb driver! See the tdfxfb +section. +

8.2.2. S3 cards

+S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 +or greater (in case of image problems, try 16bpp). As for S3 Virge: there is +xv support, but the card itself is very slow, so you better sell it. +

+There is now a native framebuffer driver for S3 Virge cards similiar to +tdfxfb. Set up your framebuffer (e.g. append +"vga=792 video=vesa:mtrr" to your kernel comand line) and use +-vo s3fb (-vf yuy2 and -dr +will also help). +

Note

+It's currently unclear which Savage models lack YV12 support, and convert by +driver (slow). If you suspect your card, get a newer driver, or ask politely +on the MPlayer-users mailing list for an MMX/3DNow! enabled driver. +

8.2.3. nVidia cards

+nVidia isn't always a very good choice under Linux ... XFree86's +open-source driver supports most of these cards, but for some cases, you'll +have to use the binary closed-source nVidia driver, available at +nVidia's web site. +You'll always need this driver if you want 3D acceleration, too. +

+Riva128 cards don't have XVideo support with XFree86's nVidia driver :( +Complain to nVidia. +

+However, MPlayer contains a +VIDIX driver for most nVidia cards. Currently it +is in beta stage, and has some drawbacks. For more information, see +nVidia VIDIX section. +

8.2.4. ATI cards

+The GATOS driver +(which you should use, unless you have Rage128 or Radeon) has VSYNC enabled +by default. It means that decoding speed (!) is synced to the monitor's +refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or +set refresh rate to a n*(fps of the movie) Hz. +

+Radeon VE - if you need X, use XFree86 4.2.0 or greater for this card. +No TV out support. Of course with MPlayer you can +happily get accelerated display, with or +without TV output, and no libraries or X are +needed. +Read the VIDIX section. +

8.2.5. NeoMagic cards

+These cards can be found in many laptops. You must use XFree86 4.3.0 or +above, or else use Stefan Seyfried's +Xv-capable drivers. +Just choose the one that applies to your version of XFree86. +

+XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small +patch +against the XFree86 sources that speeds up framebuffer operations (so XVideo) +up to four times. The patch has been included in XFree86 CVS and should be in +the next release after 4.3.0. +

+To allow playback of DVD sized content change your XF86Config like this: +

+Section "Device"
+    [...]
+    Driver "neomagic"
+    Option "OverlayMem" "829440"
+    [...]
+EndSection

+

8.2.6. Trident cards

+If you want to use Xv with a Trident card, provided that it doesn't work +with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen Xv +support with the Cyberblade XP card. +

+Alternatively, MPlayer contains a +VIDIX driver for the Cyberblade/i1 card. +

8.2.7. Kyro/PowerVR cards

+If you want to use Xv with a Kyro based card (for example Hercules +Prophet 4000XT), you should download the drivers from the +PowerVR site. +

8.2.8. Intel cards

+These cards can be found in many laptops. Recent Xorg is recommended. +

+To allow playback of DVD sized (and larger) content change your XF86Config/xorg.conf like this: +

+Section "Device"
+    [...]
+    Driver "intel"
+    Option "LinearAlloc" "6144"
+    [...]
+EndSection
+

+Lack of this option usually results in an error like +

X11 error: BadAlloc (insufficient resources for operation)

+when attempting to use -vo xv. +

diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/man_page.html b/iidx/bme2ac workspace djt custom songs/videos/mplayer/man_page.html new file mode 100644 index 0000000..c96822c --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/man_page.html @@ -0,0 +1,35727 @@ + + + + + + +MPlayer + + + +

MPlayer

+NAME
+SYNOPSIS
+DESCRIPTION
+INTERACTIVE CONTROL
+USAGE
+CONFIGURATION FILES
+PROFILES
+GENERAL OPTIONS
+PLAYER OPTIONS (MPLAYER ONLY)
+DEMUXER/STREAM OPTIONS
+OSD/SUBTITLE OPTIONS
+AUDIO OUTPUT OPTIONS (MPLAYER ONLY)
+AUDIO OUTPUT DRIVERS (MPLAYER ONLY)
+VIDEO OUTPUT OPTIONS (MPLAYER ONLY)
+VIDEO OUTPUT DRIVERS (MPLAYER ONLY)
+DECODING/FILTERING OPTIONS
+AUDIO FILTERS
+VIDEO FILTERS
+GENERAL ENCODING OPTIONS (MENCODER ONLY)
+CODEC SPECIFIC ENCODING OPTIONS (MENCODER ONLY)
+ENVIRONMENT VARIABLES
+FILES
+EXAMPLES OF MPLAYER USAGE
+EXAMPLES OF MENCODER USAGE
+BUGS
+AUTHORS
+ +
+ +

NAME

+ + + + + +
+

mplayer − movie player
+mencoder − movie encoder

+
+ +

SYNOPSIS

+ + + + + +
+

mplayer [options] +[file|URL|playlist|−]
+mplayer
[options] file1 [specific options] [file2] +[specific options]
+mplayer
[options] {group of files and options} +[group-specific options]
+mplayer
+[dvd|dvdnav]://[title|[start_title]−end_title] +[options]
+mplayer
vcd://track[/device]
+mplayer
tv://[channel][/input_id] [options]
+mplayer
radio://[channel|frequency][/capture] +[options]
+mplayer
pvr:// [options]
+mplayer
dvb://[card_number@]channel [options]
+mplayer
mf://[filemask|@listfile] [−mf options] +[options]
+mplayer
[cdda|cddb]://track[-endtrack][:speed][/device] +[options]
+mplayer
cue://file[:track] [options]
+mplayer
+[file|mms[t]|http|http_proxy|rt[s]p|ftp|udp|unsv|smb]:// +[user:pass@]URL[:port] [options]
+mplayer
sdp://file [options]
+mplayer
mpst://host[:port]/URL [options]
+mplayer
tivo://host/[list|llist|fsid] [options]
+gmplayer
[options] [−skin skin]
+mencoder
[options] file [file|URL|−] [−o +file | file://file | smb://[user:pass@]host/filepath]
+mencoder
[options] file1 [specific options] [file2] +[specific options]

+
+ +

DESCRIPTION

+ + + + + +
+

mplayer is a movie player for Linux (runs on many +other platforms and CPU architectures, see the +documentation). It plays most MPEG/VOB, AVI, ASF/WMA/WMV, +RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, NuppelVideo, +yuv4mpeg, FILM and RoQ files, supported by many native and +binary codecs. You can watch Video CD, SVCD, DVD, 3ivx, DivX +3/4/5 and even WMV movies, too.

+ +

MPlayer supports a wide range of video and audio output +drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, +AAlib, libcaca, DirectFB, Quartz, Mac OS X CoreVideo, but +you can also use GGI, SDL (and all their drivers), VESA (on +every VESA-compatible card, even without X11), some +low-level card-specific drivers (for Matrox, 3dfx and ATI) +and some hardware MPEG decoder boards, such as the Siemens +DVB, Hauppauge PVR (IVTV), DXR2 and DXR3/Hollywood+. Most of +them support software or hardware scaling, so you can enjoy +movies in fullscreen mode.

+ +

MPlayer has an onscreen display (OSD) for status +information, nice big antialiased shaded subtitles and +visual feedback for keyboard controls. European/ISO8859-1,2 +(Hungarian, English, Czech, etc), Cyrillic and Korean fonts +are supported along with 12 subtitle formats (MicroDVD, +SubRip, OGM, SubViewer, Sami, VPlayer, RT, SSA, AQTitle, +JACOsub, PJS and our own: MPsub) and DVD subtitles (SPU +streams, VOBsub and Closed Captions).

+ +

mencoder (MPlayer’s Movie Encoder) is a +simple movie encoder, designed to encode MPlayer-playable +movies (see above) to other MPlayer-playable formats (see +below). It encodes to MPEG-4 (DivX/Xvid), one of the +libavcodec codecs and PCM/MP3/VBRMP3 audio in 1, 2 or 3 +passes. Furthermore it has stream copying abilities, a +powerful filter system (crop, expand, flip, postprocess, +rotate, scale, noise, RGB/YUV conversion) and more.

+ +

gmplayer is MPlayer with a graphical user +interface. It has the same options as MPlayer.

+ +

Usage examples to get you started quickly can be found at +the end of this man page.

+ +

Also see the HTML documentation!

+
+ +

INTERACTIVE CONTROL

+ + + + + +
+

MPlayer has a fully configurable, command-driven control +layer which allows you to control MPlayer using keyboard, +mouse, joystick or remote control (with LIRC). See the +−input option for ways to customize it.

+
+ + + + + +
+

keyboard control

+ + + + + +
+

<− and −>

+ + + + + +
+

Seek backward/forward 10 seconds.

+ + + + + +
+

up and down

+ + + + + +
+

Seek forward/backward 1 minute.

+ + + + + +
+

pgup and pgdown

+ + + + + +
+

Seek forward/backward 10 minutes.

+ + + + + +
+

[ and ]

+ + + + + +
+

Decrease/increase current playback speed by 10%.

+ + + + + +
+

{ and }

+ + + + + +
+

Halve/double current playback speed.

+ + + + + +
+

backspace

+ + + + + +
+

Reset playback speed to normal.

+ + + + + +
+

< and >

+ + + + + +
+

Go backward/forward in the playlist.

+ + + + + +
+

ENTER

+ + + + + +
+

Go forward in the playlist, even over the end.

+ + + + + +
+

HOME and END

+ + + + + +
+

next/previous playtree entry in the parent list

+ + + + + +
+

INS and DEL (ASX playlist only)

+ + + + + +
+

next/previous alternative source.

+ + + + + +
+

p / SPACE

+ + + + + +
+

Pause (pressing again unpauses).

+ + + + + +
+

.

+ + + + + +
+

Step forward. Pressing once will pause movie, every +consecutive press will play one frame and then go into pause +mode again (any other key unpauses).

+ + + + + +
+

q / ESC

+ + + + + +
+

Stop playing and quit.

+ + + + + +
+

+ and -

+ + + + + +
+

Adjust audio delay by +/- 0.1 seconds.

+ + + + + +
+

/ and *

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

9 and 0

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

( and )

+ + + + + +
+

Adjust audio balance in favor of left/right +channel.

+ + + + + +
+

m

+ + + + + +
+

Mute sound.

+ + + + + +
+

_ (MPEG-TS, AVI and libavformat only)

+ + + + + +
+

Cycle through the available video tracks.

+ + + + + +
+

# (DVD, MPEG, Matroska, AVI and libavformat +only)

+ + + + + +
+

Cycle through the available audio tracks.

+ + + + + +
+

TAB (MPEG-TS only)

+ + + + + +
+

Cycle through the available programs.

+ + + + + +
+

f

+ + + + + +
+

Toggle fullscreen (also see −fs).

+ + + + + +
+

T

+ + + + + +
+

Toggle stay-on-top (also see −ontop).

+ + + + + +
+

w and e

+ + + + + +
+

Decrease/increase pan-and-scan range.

+ + + + + +
+

o

+ + + + + +
+

Toggle OSD states: none / seek / seek + timer / seek + +timer + total time.

+ + + + + +
+

d

+ + + + + +
+

Toggle frame dropping states: none / skip display / skip +decoding (see −framedrop and +−hardframedrop).

+ + + + + +
+

v

+ + + + + +
+

Toggle subtitle visibility.

+ + + + + +
+

j

+ + + + + +
+

Cycle through the available subtitles.

+ + + + + +
+

y and g

+ + + + + +
+

Step forward/backward in the subtitle list.

+ + + + + +
+

F

+ + + + + +
+

Toggle displaying "forced subtitles".

+ + + + + +
+

a

+ + + + + +
+

Toggle subtitle alignment: top / middle / +bottom.

+ + + + + +
+

x and z

+ + + + + +
+

Adjust subtitle delay by +/- 0.1 seconds.

+ + + + + +
+

r and t

+ + + + + +
+

Move subtitles up/down.

+ + + + + +
+

i (−edlout mode only)

+ + + + + +
+

Set start or end of an EDL skip and write it out to the +given file.

+ + + + + +
+

s (−vf screenshot only)

+ + + + + +
+

Take a screenshot.

+ + + + + +
+

S (−vf screenshot only)

+ + + + + +
+

Start/stop taking screenshots.

+ + + + + +
+

I

+ + + + + +
+

Show filename on the OSD.

+ + + + + +
+

! and @

+ + + + + +
+

Seek to the beginning of the previous/next +chapter.

+ + + + + +
+

D (−vo xvmc, −vf yadif, −vf kerndeint +only)

+ + + + + +
+

Activate/deactivate deinterlacer.

+ + + + + +
+

(The following keys are valid only when using a hardware +accelerated video output (xv, (x)vidix, (x)mga, etc), the +software equalizer (−vf eq or −vf eq2) or hue +filter (−vf hue).)

+ + + + + +
+

1 and 2

+ + + + + +
+

Adjust contrast.

+ + + + + +
+

3 and 4

+ + + + + +
+

Adjust brightness.

+ + + + + +
+

5 and 6

+ + + + + +
+

Adjust hue.

+ + + + + +
+

7 and 8

+ + + + + +
+

Adjust saturation.

+ + + + + +
+

(The following keys are valid only when using the quartz +or macosx video output driver.)

+ + + + + +
+

command + 0

+ + + + + +
+

Resize movie window to half its original size.

+ + + + + +
+

command + 1

+ + + + + +
+

Resize movie window to its original size.

+ + + + + +
+

command + 2

+ + + + + +
+

Resize movie window to double its original size.

+ + + + + +
+

command + f

+ + + + + +
+

Toggle fullscreen (also see −fs).

+ + + + + +
+

command + [ and command + ]

+ + + + + +
+

Set movie window alpha.

+ + + + + +
+

(The following keys are valid only when using the sdl +video output driver.)

+ + + + + +
+

c

+ + + + + +
+

Cycle through available fullscreen modes.

+ + + + + +
+

n

+ + + + + +
+

Restore original mode.

+ + + + + +
+

(The following keys are valid if you have a keyboard with +multimedia keys.)

+ + + + + +
+

PAUSE

+ + + + + +
+

Pause.

+ + + + + +
+

STOP

+ + + + + +
+

Stop playing and quit.

+ + + + + +
+

PREVIOUS and NEXT

+ + + + + +
+

Seek backward/forward 1 minute.

+ + + + + +
+

(The following keys are only valid if GUI support is +compiled in and will take precedence over the keys defined +above.)

+ + + + + +
+

ENTER

+ + + + + +
+

Start playing.

+ + + + + +
+

ESC

+ + + + + +
+

Stop playing.

+ + + + + +
+

l

+ + + + + +
+

Load file.

+ + + + + +
+

t

+ + + + + +
+

Load subtitle.

+ + + + + +
+

c

+ + + + + +
+

Open skin browser.

+ + + + + +
+

p

+ + + + + +
+

Open playlist.

+ + + + + +
+

r

+ + + + + +
+

Open preferences.

+ + + + + +
+

(The following keys are only valid if you compiled with +TV or DVB input support and will take precedence over the +keys defined above.)

+ + + + + +
+

h and k

+ + + + + +
+

Select previous/next channel.

+ + + + + +
+

n

+ + + + + +
+

Change norm.

+ + + + + +
+

u

+ + + + + +
+

Change channel list.

+ + + + + +
+

(The following keys are only valid if you compiled with +dvdnav support: They are used to navigate the +menus.)

+ + + + + +
+

keypad 8

+ + + + + +
+

Select button up.

+ + + + + +
+

keypad 2

+ + + + + +
+

Select button down.

+ + + + + +
+

keypad 4

+ + + + + +
+

Select button left.

+ + + + + +
+

keypad 6

+ + + + + +
+

Select button right.

+ + + + + +
+

keypad 5

+ + + + + +
+

Return to main menu.

+ + + + + +
+

keypad 7

+ + + + + +
+

Return to nearest menu (the order of preference is: +chapter->title->root).

+ + + + + +
+

keypad ENTER

+ + + + + +
+

Confirm choice.

+ + + + + +
+

(The following keys are only valid if teletext support is +enabled during compilation: They are used for controlling TV +teletext.)

+ + + + + + + + +
+ +

X

+
+ +

Switch teletext on/off.

+
+
+ + + + + +
+

Q and W

+ + + + + +
+

Go to next/prev teletext page.

+ + + + + +
+

mouse control

+ + + + + +
+

button 3 and button 4

+ + + + + +
+

Seek backward/forward 1 minute.

+ + + + + +
+

button 5 and button 6

+ + + + + +
+

Decrease/increase volume.

+ + + + + +
+

joystick control

+ + + + + +
+

left and right

+ + + + + +
+

Seek backward/forward 10 seconds.

+ + + + + +
+

up and down

+ + + + + +
+

Seek forward/backward 1 minute.

+ + + + + +
+

button 1

+ + + + + +
+

Pause.

+ + + + + +
+

button 2

+ + + + + +
+

Toggle OSD states: none / seek / seek + timer / seek + +timer + total time.

+ + + + + +
+

button 3 and button 4

+ + + + + +
+

Decrease/increase volume.

+ +

USAGE

+ + + + + +
+

Every ’flag’ option has a +’noflag’ counterpart, e.g. the opposite of the +−fs option is −nofs.

+ +

If an option is marked as (XXX only), it will only work +in combination with the XXX option or if XXX is compiled +in.

+ +

NOTE: The suboption parser (used for example for +−ao pcm suboptions) supports a special kind of +string-escaping intended for use with external GUIs.
+It has the following format:
+%n%string_of_length_n
+EXAMPLES:

+mplayer −ao pcm:file=%10%C:test.wav test.avi
+Or in a script:
+mplayer −ao pcm:file=%‘expr length +"$NAME"‘%"$NAME" test.avi

+
+ +

CONFIGURATION FILES

+ + + + + +
+

You can put all of the options in configuration files +which will be read every time MPlayer/MEncoder is run. The +system-wide configuration file ’mplayer.conf’ is +in your configuration directory (e.g. /etc/ mplayer or +/usr/local/etc/mplayer), the user specific one is ’~/ +.mplayer/config’. The configuration file for MEncoder +is ’mencoder.conf’ in your configuration +directory (e.g. /etc/mplayer or /usr/local/etc/mplayer), the +user specific one is ’~/.mplayer/ mencoder.conf. User +specific options override system-wide options and options +given on the command line override either. The syntax of the +configuration files is ’option=<value>’, +everything after a ’#’ is considered a comment. +Options that work without values can be enabled by setting +them to ’yes’ or ’1’ or +’true’ and disabled by setting them to +’no’ or ’0’ or ’false’. +Even suboptions can be specified in this way.

+ +

You can also write file-specific configuration files. If +you wish to have a configuration file for a file called +’movie.avi’, create a file named +’movie.avi.conf’ with the file-specific options +in it and put it in ~/.mplayer/. You can also put the +configuration file in the same directory as the file to be +played, as long as you give the −use-filedir-conf +option (either on the command line or in your global config +file).

+ +

EXAMPLE MPLAYER CONFIGURATION FILE:

+ +
# Use Matrox driver by default.
+vo=xmga
+# I love practicing handstands while watching videos.
+flip=yes
+# Decode/encode multiple files from PNG,
+# start with mf://filemask
+mf=type=png:fps=25
+# Eerie negative images are cool.
+vf=eq2=1.0:-0.8
+
+ +

EXAMPLE MENCODER CONFIGURATION FILE:

+ +
# Make MEncoder output to a default filename.
+o=encoded.avi
+# The next 4 lines allow mencoder tv:// to start capturing immediately.
+oac=pcm=yes
+ovc=lavc=yes
+lavcopts=vcodec=mjpeg
+tv=driver=v4l2:input=1:width=768:height=576:device=/dev/video0:audiorate=48000
+# more complex default encoding option set
+lavcopts=vcodec=mpeg4:autoaspect=1
+lameopts=aq=2:vbr=4
+ovc=lavc=1
+oac=lavc=1
+passlogfile=pass1stats.log
+noautoexpand=1
+subfont-autoscale=3
+subfont-osd-scale=6
+subfont-text-scale=4
+subalign=2
+subpos=96
+spuaa=20
+
+
+ +

PROFILES

+ + + + + + +
+

To ease working with different configurations profiles +can be defined in the configuration files. A profile starts +with its name between square brackets, e.g. +’[my-profile]’. All following options will be +part of the profile. A description (shown by −profile +help) can be defined with the profile-desc option. To end +the profile, start another one or use the profile name +’default’ to continue with normal options.

+ +

EXAMPLE MENCODER PROFILE:

+ +
[mpeg4]
+profile-desc="MPEG4 encoding"
+ovc=lacv=yes
+lavcopts=vcodec=mpeg4:vbitrate=1200
+
+[mpeg4-hq]
+profile-desc="HQ MPEG4 encoding"
+profile=mpeg4
+lavcopts=mbd=2:trell=yes:v4mv=yes
+
+
+ +

GENERAL OPTIONS

+ + + + + + +
+

−codecs-file <filename> (also see +−afm, −ac, −vfm, −vc)

+ + + + + +
+

Override the standard search path and use the specified +file instead of the builtin codecs.conf.

+
+ + + + + +
+

−include <configuration file>

+ + + + + +
+

Specify configuration file to be parsed after the default +ones.

+
+ + + + + +
+

−list-options

+ + + + + +
+

Prints all available options.

+
+ + + + + +
+

−msgcharset <charset>

+ + + + + +
+

Convert console messages to the specified character set +(default: autodetect). Text will be in the encoding +specified with the −−charset configure option. +Set this to "noconv" to disable conversion (for +e.g. iconv problems).
+NOTE:
The option takes effect after command line parsing +has finished. The MPLAYER_CHARSET environment variable can +help you get rid of the first lines of garbled output.

+
+ + + + + +
+

−msglevel +<all=<level>:<module>=<level>:...>

+ + + + + +
+

Control verbosity directly for each module. The +’all’ module changes the verbosity of all the +modules not explicitly specified on the command line. See +’−msglevel help’ for a list of all +modules.
+NOTE:
Some messages are printed before the command line +is parsed and are therefore not affected by −msglevel. +To control these messages you have to use the +MPLAYER_VERBOSE environment variable, see its description +below for details.
+Available levels:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

complete silence

+
+
+ +

0

+
+ +

fatal messages only

+
+
+ +

1

+
+ +

error messages

+
+
+ +

2

+
+ +

warning messages

+
+
+ +

3

+
+ +

short hints

+
+
+ +

4

+
+ +

informational messages

+
+
+ +

5

+
+ +

status messages (default)

+
+
+ +

6

+
+ +

verbose messages

+
+
+ +

7

+
+ +

debug level 2

+
+
+ +

8

+
+ +

debug level 3

+
+
+ +

9

+
+ +

debug level 4

+
+
+ + + + + +
+

−quiet

+ + + + + +
+

Make console output less verbose; in particular, prevents +the status line (i.e. A: 0.7 V: 0.6 A-V: 0.068 ...) from +being displayed. Particularly useful on slow terminals or +broken ones which do not properly handle carriage return +(i.e. \r).

+
+ + + + + +
+

−priority <prio> (Windows +only)

+ + + + + +
+

Set process priority for MPlayer according to the +predefined priorities available under Windows. Possible +values of <prio>:

+ + + + + +
+ +

idle|belownormal|normal|abovenormal|high|realtime

+ + + + + +
+

WARNING: Using realtime priority can cause system +lockup.

+ + + + + +
+

−profile +<profile1,profile2,...>

+ + + + + +
+

Use the given profile(s), −profile help displays a +list of the defined profiles.

+
+ + + + + +
+

−really-quiet (also see +−quiet)

+ + + + + +
+

Display even less output and status messages than with +−quiet. Also suppresses the GUI error message +boxes.

+
+ + + + + +
+

−show-profile <profile>

+ + + + + +
+

Show the description and content of a profile.

+
+ + + + + +
+

−use-filedir-conf

+ + + + + +
+

Look for a file-specific configuration file in the same +directory as the file that is being played.
+WARNING:
May be dangerous if playing from untrusted +media.

+
+ + + + + +
+

−v

+ + + + + +
+

Increment verbosity level, one level for each −v +found on the command line.

+
+ +

PLAYER OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−autoq <quality> (use with −vf +[s]pp)

+ + + + + +
+

Dynamically changes the level of postprocessing depending +on the available spare CPU time. The number you specify will +be the maximum level used. Usually you can use some big +number. You have to use −vf [s]pp without parameters +in order for this to work.

+
+ + + + + +
+

−autosync <factor>

+ + + + + +
+

Gradually adjusts the A/V sync based on audio delay +measurements. Specifying −autosync 0, the default, +will cause frame timing to be based entirely on audio delay +measurements. Specifying −autosync 1 will do the same, +but will subtly change the A/V correction algorithm. An +uneven video framerate in a movie which plays fine with +−nosound can often be helped by setting this to an +integer value greater than 1. The higher the value, the +closer the timing will be to −nosound. Try +−autosync 30 to smooth out problems with sound drivers +which do not implement a perfect audio delay measurement. +With this value, if large A/V sync offsets occur, they will +only take about 1 or 2 seconds to settle out. This delay in +reaction time to sudden A/V offsets should be the only +side-effect of turning this option on, for all sound +drivers.

+
+ + + + + +
+

−benchmark

+ + + + + +
+

Prints some statistics on CPU usage and dropped frames at +the end of playback. Use in combination with −nosound +and −vo null for benchmarking only the video +codec.
+NOTE:
With this option MPlayer will also ignore frame +duration when playing only video (you can think of that as +infinite fps).

+
+ + + + + +
+

−colorkey <number>

+ + + + + +
+

Changes the colorkey to an RGB value of your choice. +0x000000 is black and 0xffffff is white. Only supported by +the cvidix, fbdev, svga, vesa, winvidix, xmga, xvidix, +xover, xv (see −vo xv:ck), xvmc (see −vo xv:ck) +and directx video output drivers.

+
+ + + + + +
+

−nocolorkey

+ + + + + +
+

Disables colorkeying. Only supported by the cvidix, +fbdev, svga, vesa, winvidix, xmga, xvidix, xover, xv (see +−vo xv:ck), xvmc (see −vo xv:ck) and directx +video output drivers.

+
+ + + + + +
+

−correct-pts (experimental)

+ + + + + +
+

Switches MPlayer to an experimental mode where timestamps +for video frames are calculated differently and video +filters which add new frames or modify timestamps of +existing ones are supported. The more accurate timestamps +can be visible for example when playing subtitles timed to +scene changes with the −ass option. Without +−correct-pts the subtitle timing will typically be off +by some frames. This option does not work correctly with +some demuxers and codecs.

+
+ + + + + +
+

−crash-debug (DEBUG CODE)

+ + + + + +
+

Automatically attaches gdb upon crash or SIGTRAP. Support +must be compiled in by configuring with +−−enable-crash-debug.

+
+ + + + + +
+

−doubleclick-time

+ + + + + +
+

Time in milliseconds to recognize two consecutive button +presses as a double-click (default: 300). Set to 0 to let +your windowing system decide what a double-click is +(−vo directx only).
+NOTE:
You will get slightly different behaviour +depending on whether you bind MOUSE_BTN0_DBL or +MOUSE_BTN0−MOUSE_BTN0_DBL.

+
+ + + + + +
+

−edlout <filename>

+ + + + + +
+

Creates a new file and writes edit decision list (EDL) +records to it. During playback, the user hits +’i’ to mark the start or end of a skip block. +This provides a starting point from which the user can +fine-tune EDL entries later. See +http://www.mplayerhq.hu/DOCS/HTML/en/edl.html for +details.

+
+ + + + + +
+

−enqueue (GUI only)

+ + + + + +
+

Enqueue files given on the command line in the playlist +instead of playing them immediately.

+
+ + + + + +
+

−fixed-vo

+ + + + + +
+

Enforces a fixed video system for multiple files (one +(un)initialization for all files). Therefore only one window +will be opened for all files. Currently the following +drivers are fixed-vo compliant: gl, gl2, mga, svga, x11, +xmga, xv, xvidix and dfbmga.

+
+ + + + + +
+

−framedrop (also see +−hardframedrop)

+ + + + + +
+

Skip displaying some frames to maintain A/V sync on slow +systems. Video filters are not applied to such frames. For +B-frames even decoding is skipped completely.

+
+ + + + + +
+

−(no)gui

+ + + + + +
+

Enable or disable the GUI interface (default depends on +binary name). Only works as the first argument on the +command line. Does not work as a config-file option.

+
+ + + + + +
+

−h, −help, −−help

+ + + + + +
+

Show short summary of options.

+
+ + + + + +
+

−hardframedrop

+ + + + + +
+

More intense frame dropping (breaks decoding). Leads to +image distortion!

+
+ + + + + +
+

−identify

+ + + + + +
+

Shorthand for −msglevel identify=4. Show file +parameters in an easily parseable format. Also prints more +detailed information about subtitle and audio track +languages and IDs. In some cases you can get more +information by using −msglevel identify=6. For +example, for a DVD it will list the time length of each +title, as well as a disk ID. The wrapper script +TOOLS/midentify suppresses the other MPlayer output and +(hopefully) shellescapes the filenames.

+
+ + + + + +
+

−idle (also see −slave)

+ + + + + +
+

Makes MPlayer wait idly instead of quitting when there is +no file to play. Mostly useful in slave mode where MPlayer +can be controlled through input commands.

+
+ + + + + +
+

−input <commands>

+ + + + + +
+

This option can be used to configure certain parts of the +input system. Paths are relative to ~/.mplayer/.
+NOTE:
Autorepeat is currently only supported by +joysticks.

+ +

Available commands are:

+
+ + + + + +
+

conf=<filename>

+ + + + + +
+

Specify input configuration file other than the default +~/.mplayer/input.conf. ~/.mplayer/<filename> is +assumed if no full path is given.

+ + + + + +
+

ar-delay

+ + + + + +
+

Delay in milliseconds before we start to autorepeat a key +(0 to disable).

+ + + + + +
+

ar-rate

+ + + + + +
+

Number of key presses to generate per second on +autorepeat.

+ + + + + +
+

keylist

+ + + + + +
+

Prints all keys that can be bound to commands.

+ + + + + +
+

cmdlist

+ + + + + +
+

Prints all commands that can be bound to keys.

+ + + + + +
+

js-dev

+ + + + + +
+

Specifies the joystick device to use (default: /dev/ +input/js0).

+ + + + + +
+

file=<filename>

+ + + + + +
+

Read commands from the given file. Mostly useful with a +FIFO.
+NOTE:
When the given file is a FIFO MPlayer opens both +ends so you can do several ’echo "seek 10" +> mp_pipe’ and the pipe will stay valid.

+ + + + + +
+

−key-fifo-size +<2−65000>

+ + + + + +
+

Specify the size of the FIFO that buffers key events +(default: 7). A FIFO of size n can buffer (n-1) events. If +it is too small some events may be lost (leading to +"stuck mouse buttons" and similar effects). If it +is too big, MPlayer may seem to hang while it processes the +buffered events. To get the same behavior as before this +option was introduced, set it to 2 for Linux or 1024 for +Windows.

+
+ + + + + +
+

−lircconf <filename> (LIRC +only)

+ + + + + +
+

Specifies a configuration file for LIRC (default: +~/.lircrc).

+
+ + + + + +
+

−list-properties

+ + + + + +
+

Print a list of the available properties.

+
+ + + + + +
+

−loop <number>

+ + + + + +
+

Loops movie playback <number> times. 0 means +forever.

+
+ + + + + +
+

−menu (OSD menu only)

+ + + + + +
+

Turn on OSD menu support.

+
+ + + + + +
+

−menu-cfg <filename> (OSD menu +only)

+ + + + + +
+

Use an alternative menu.conf.

+
+ + + + + +
+

−menu-chroot <path> (OSD menu +only)

+ + + + + +
+

Chroot the file selection menu to a specific +location.

+ +

EXAMPLE:

+ + + + + +
+

−menu-chroot=/home

+ + + + + +
+

Will restrict the file selection menu to /home and +downward (i.e. no access to / will be possible, but +/home/user_name will).

+ + + + + +
+

−menu-keepdir (OSD menu only)

+ + + + + +
+

File browser starts from the last known location instead +of current directory.

+
+ + + + + +
+

−menu-root <value> (OSD menu +only)

+ + + + + +
+

Specify the main menu.

+
+ + + + + +
+

−menu-startup (OSD menu only)

+ + + + + +
+

Display the main menu at MPlayer startup.

+
+ + + + + +
+

−mouse-movements

+ + + + + +
+

Permit MPlayer to receive pointer events reported by the +video output driver (currently only derivatives of X11 are +supported). Necessary to select the buttons in DVD +menus.

+
+ + + + + +
+

−noconsolecontrols

+ + + + + +
+

Prevent MPlayer from reading key events from standard +input. Useful when reading data from standard input. This is +automatically enabled when − is found on the command +line. There are situations where you have to set it +manually, e.g. if you open /dev/stdin (or the equivalent on +your system), use stdin in a playlist or intend to read from +stdin later on via the loadfile or loadlist slave +commands.

+
+ + + + + +
+

−nojoystick

+ + + + + +
+

Turns off joystick support.

+
+ + + + + +
+

−nolirc

+ + + + + +
+

Turns off LIRC support.

+
+ + + + + +
+

−nomouseinput

+ + + + + +
+

Disable mouse button press/release input +(mozplayerxp’s context menu relies on this +option).

+
+ + + + + +
+

−rtc (RTC only)

+ + + + + +
+

Turns on usage of the Linux RTC (realtime clock − +/dev/rtc) as timing mechanism. This wakes up the process +every 1/1024 seconds to check the current time. Useless with +modern Linux kernels configured for desktop use as they +already wake up the process with similar accuracy when using +normal timed sleep.

+
+ + + + + +
+

−playing-msg <string>

+ + + + + +
+

Print out a string before starting playback. The +following expansions are supported:

+ + + + + +
+

${NAME}

+ + + + + +
+

Expand to the value of the property NAME.

+
+ + + + + +
+

$(NAME:TEXT)

+ + + + + +
+

Expand TEXT only if the property NAME is +available.

+ + + + + +
+

−playlist <filename>

+ + + + + +
+

Play files according to a playlist file (ASX, Winamp, +SMIL, or one-file-per-line format).
+NOTE:
This option is considered an entry so options +found after it will apply only to the elements of this +playlist.
+FIXME: This needs to be clarified and documented +thoroughly.

+
+ + + + + +
+

−rtc-device <device>

+ + + + + +
+

Use the specified device for RTC timing.

+
+ + + + + +
+

−shuffle

+ + + + + +
+

Play files in random order.

+
+ + + + + +
+

−skin <name> (GUI only)

+ + + + + +
+

Loads a skin from the directory given as parameter below +the default skin directories, +/usr/local/share/mplayer/skins/ and ~/.mplayer/skins/.

+ +

EXAMPLE:

+ + + + + +
+

−skin fittyfene

+ + + + + +
+

Tries /usr/local/share/mplayer/skins/fittyfene and +afterwards ~/.mplayer/skins/fittyfene.

+ + + + + +
+

−slave (also see −input)

+ + + + + +
+

Switches on slave mode, in which MPlayer works as a +backend for other programs. Instead of intercepting keyboard +events, MPlayer will read commands separated by a newline +(\n) from stdin.
+NOTE:
See −input cmdlist for a list of slave +commands and DOCS/tech/slave.txt for their description.

+
+ + + + + +
+

−softsleep

+ + + + + +
+

Time frames by repeatedly checking the current time +instead of asking the kernel to wake up MPlayer at the +correct time. Useful if your kernel timing is imprecise and +you cannot use the RTC either. Comes at the price of higher +CPU consumption.

+
+ + + + + +
+

−sstep <sec>

+ + + + + +
+

Skip <sec> seconds after every frame. The normal +framerate of the movie is kept, so playback is accelerated. +Since MPlayer can only seek to the next keyframe this may be +inexact.

+
+ +

DEMUXER/STREAM OPTIONS

+ + + + + +
+

−a52drc <level>

+ + + + + +
+

Select the Dynamic Range Compression level for AC-3 audio +streams. <level> is a float value ranging from 0 to 1, +where 0 means no compression and 1 (which is the default) +means full compression (make loud passages more silent and +vice versa). This option only shows an effect if the AC-3 +stream contains the required range compression +information.

+
+ + + + + +
+

−aid <ID> (also see +−alang)

+ + + + + +
+

Select audio channel (MPEG: 0−31, AVI/OGM: +1−99, ASF/RM: 0−127, VOB(AC-3): 128−159, +VOB(LPCM): 160−191, MPEG-TS 17−8190). MPlayer +prints the available audio IDs when run in verbose +(−v) mode. When playing an MPEG-TS stream, +MPlayer/MEncoder will use the first program (if present) +with the chosen audio stream.

+
+ + + + + +
+

−alang <language code[,language code,...]> +(also see −aid)

+ + + + + +
+

Specify a priority list of audio languages to use. +Different container formats employ different language codes. +DVDs use ISO 639-1 two letter language codes, Matroska, +MPEG-TS and NUT use ISO 639-2 three letter language codes +while OGM uses a free-form identifier. MPlayer prints the +available languages when run in verbose (−v) mode.

+ +

EXAMPLE:

+ + + + + +
+

mplayer dvd://1 −alang hu,en

+ + + + + +
+

Chooses the Hungarian language track on a DVD and falls +back on English if Hungarian is not available.

+ + + + + +
+

mplayer −alang jpn example.mkv

+ + + + + +
+

Plays a Matroska file in Japanese.

+ + + + + +
+

−audio-demuxer <[+]name> (−audiofile +only)

+ + + + + +
+

Force audio demuxer type for −audiofile. Use a +’+’ before the name to force it, this will skip +some checks! Give the demuxer name as printed by +−audio-demuxer help. For backward compatibility it +also accepts the demuxer ID as defined in +libmpdemux/demuxer.h. −audio-demuxer audio or +−audio-demuxer 17 forces MP3.

+
+ + + + + +
+

−audiofile <filename>

+ + + + + +
+

Play audio from an external file (WAV, MP3 or Ogg Vorbis) +while viewing a movie.

+
+ + + + + +
+

−audiofile-cache <kBytes>

+ + + + + +
+

Enables caching for the stream used by −audiofile, +using the specified amount of memory.

+
+ + + + + +
+

−reuse-socket (udp:// only)

+ + + + + +
+

Allows a socket to be reused by other processes as soon +as it is closed.

+
+ + + + + +
+

−bandwidth <value> (network +only)

+ + + + + +
+

Specify the maximum bandwidth for network streaming (for +servers that are able to send content in different +bitrates). Useful if you want to watch live streamed media +behind a slow connection. With Real RTSP streaming, it is +also used to set the maximum delivery bandwidth allowing +faster cache filling and stream dumping.

+
+ + + + + +
+

−cache <kBytes>

+ + + + + +
+

This option specifies how much memory (in kBytes) to use +when precaching a file or URL. Especially useful on slow +media.

+
+ + + + + +
+

−nocache

+ + + + + +
+

Turns off caching.

+
+ + + + + +
+

−cache-min <percentage>

+ + + + + +
+

Playback will start when the cache has been filled up to +<percentage> of the total.

+
+ + + + + +
+

−cache-seek-min <percentage>

+ + + + + +
+

If a seek is to be made to a position within +<percentage> of the cache size from the current +position, MPlayer will wait for the cache to be filled to +this position rather than performing a stream seek (default: +50).

+
+ + + + + +
+

−cdda <option1:option2> (CDDA +only)

+ + + + + +
+

This option can be used to tune the CD Audio reading +feature of MPlayer.

+ +

Available options are:

+ + + + + +
+

speed=<value>

+ + + + + +
+

Set CD spin speed.

+
+ + + + + +
+

paranoia=<0−2>

+ + + + + +
+

Set paranoia level. Values other than 0 seem to break +playback of anything but the first track.

+ + + + + +
+

0: disable checking (default)
+1: overlap checking only
+2: full data correction and verification

+ + + + + +
+

generic-dev=<value>

+ + + + + +
+

Use specified generic SCSI device.

+
+ + + + + +
+

sector-size=<value>

+ + + + + +
+

Set atomic read size.

+
+ + + + + +
+

overlap=<value>

+ + + + + +
+

Force minimum overlap search during verification to +<value> sectors.

+
+ + + + + +
+

toc-bias

+ + + + + +
+

Assume that the beginning offset of track 1 as reported +in the TOC will be addressed as LBA 0. Some Toshiba drives +need this for getting track boundaries correct.

+
+ + + + + +
+

toc-offset=<value>

+ + + + + +
+

Add <value> sectors to the values reported when +addressing tracks. May be negative.

+
+ + + + + +
+

(no)skip

+ + + + + +
+

(Never) accept imperfect data reconstruction.

+ + + + + +
+

−cdrom-device <path to +device>

+ + + + + +
+

Specify the CD-ROM device (default: /dev/cdrom).

+
+ + + + + +
+

−channels <number> (also see −af +channels)

+ + + + + +
+

Request the number of playback channels (default: 2). +MPlayer asks the decoder to decode the audio into as many +channels as specified. Then it is up to the decoder to +fulfill the requirement. This is usually only important when +playing videos with AC-3 audio (like DVDs). In that case +liba52 does the decoding by default and correctly downmixes +the audio into the requested number of channels. To directly +control the number of output channels independently of how +many channels are decoded, use the channels filter.
+NOTE:
This option is honored by codecs (AC-3 only), +filters (surround) and audio output drivers (OSS at +least).

+ +

Available options are:

+
+ + + + + + + + + + + + + + + + + + + + +
+ +

2

+
+ +

stereo

+
+
+ +

4

+
+ +

surround

+
+
+ +

6

+
+ +

full 5.1

+
+
+ + + + + +
+

−chapter <chapter +ID>[−<endchapter ID>] (dvd:// and dvdnav:// +only)

+ + + + + +
+

Specify which chapter to start playing at. Optionally +specify which chapter to end playing at (default: 1).

+
+ + + + + +
+

−cookies (network only)

+ + + + + +
+

Send cookies when making HTTP requests.

+
+ + + + + +
+

−cookies-file <filename> (network +only)

+ + + + + +
+

Read HTTP cookies from <filename> (default: +~/.mozilla/ and ~/.netscape/) and skip reading from default +locations. The file is assumed to be in Netscape format.

+
+ + + + + +
+

−delay <sec>

+ + + + + +
+

audio delay in seconds (positive or negative float +value)
+Negative values delay the audio, and positive values delay +the video. Note that this is the exact opposite of the +−audio-delay MEncoder option.
+NOTE:
When used with MEncoder, this is not guaranteed to +work correctly with −ovc copy; use −audio-delay +instead.

+
+ + + + + +
+

−ignore-start

+ + + + + +
+

Ignore the specified starting time for streams in AVI +files. In MPlayer, this nullifies stream delays in files +encoded with the −audio-delay option. During encoding, +this option prevents MEncoder from transferring original +stream start times to the new file; the −audio-delay +option is not affected. Note that MEncoder sometimes adjusts +stream starting times automatically to compensate for +anticipated decoding delays, so do not use this option for +encoding without testing it first.

+
+ + + + + +
+

−demuxer <[+]name>

+ + + + + +
+

Force demuxer type. Use a ’+’ before the name +to force it, this will skip some checks! Give the demuxer +name as printed by −demuxer help. For backward +compatibility it also accepts the demuxer ID as defined in +libmpdemux/demuxer.h.

+
+ + + + + +
+

−dumpaudio (MPlayer only)

+ + + + + +
+

Dumps raw compressed audio stream to ./stream.dump +(useful with MPEG/AC-3, in most other cases the resulting +file will not be playable). If you give more than one of +−dumpaudio, −dumpvideo, −dumpstream on the +command line only the last one will work.

+
+ + + + + +
+

−dumpfile <filename> (MPlayer +only)

+ + + + + +
+

Specify which file MPlayer should dump to. Should be used +together with −dumpaudio / −dumpvideo / +−dumpstream.

+
+ + + + + +
+

−dumpstream (MPlayer only)

+ + + + + +
+

Dumps the raw stream to ./stream.dump. Useful when +ripping from DVD or network. If you give more than one of +−dumpaudio, −dumpvideo, −dumpstream on the +command line only the last one will work.

+
+ + + + + +
+

−dumpvideo (MPlayer only)

+ + + + + +
+

Dump raw compressed video stream to ./stream.dump (not +very usable). If you give more than one of −dumpaudio, +−dumpvideo, −dumpstream on the command line only +the last one will work.

+
+ + + + + +
+

−dvbin <options> (DVB only)

+ + + + + +
+

Pass the following parameters to the DVB input module, in +order to override the default ones:

+
+ + + + + +
+

card=<1−4>

+ + + + + +
+

Specifies using card number 1−4 (default: +1).

+ + + + + +
+

file=<filename>

+ + + + + +
+

Instructs MPlayer to read the channels list from +<filename>. Default is ~/.mplayer/ +channels.conf.{sat,ter,cbl,atsc} (based on your card type) +or ~/.mplayer/channels.conf as a last resort.

+ + + + + +
+

timeout=<1−30>

+ + + + + +
+

Maximum number of seconds to wait when trying to tune a +frequency before giving up (default: 30).

+ + + + + +
+

−dvd-device <path to device> (DVD +only)

+ + + + + +
+

Specify the DVD device (default: /dev/dvd). You can also +specify a directory that contains files previously copied +directly from a DVD (with e.g. vobcopy). Note that using +−dumpstream is usually a better way to copy DVD titles +in the first place (see the examples).

+
+ + + + + +
+

−dvd-speed <factor or speed in KB/s> (DVD +only)

+ + + + + +
+

Try to limit DVD speed (default: 0, no change). DVD base +speed is about 1350KB/s, so a 8x drive can read at speeds up +to 10800KB/s. Slower speeds make the drive more quiet, for +watching DVDs 2700KB/s should be quiet and fast enough. +MPlayer resets the speed to the drive default value on +close. Values less than 100 mean multiples of 1350KB/s, i.e. +−dvd-speed 8 selects 10800KB/s.
+NOTE:
You need write access to the DVD device to change +the speed.

+
+ + + + + +
+

−dvdangle <angle ID> (DVD +only)

+ + + + + +
+

Some DVD discs contain scenes that can be viewed from +multiple angles. Here you can tell MPlayer which angles to +use (default: 1).

+
+ + + + + +
+

−edl <filename>

+ + + + + +
+

Enables edit decision list (EDL) actions during playback. +Video will be skipped over and audio will be muted and +unmuted according to the entries in the given file. See +http://www.mplayerhq.hu/DOCS/HTML/en/edl.html for details on +how to use this.

+
+ + + + + +
+

−endpos <[[hh:]mm:]ss[.ms]|size[b|kb|mb]> +(also see −ss and −sb)

+ + + + + +
+

Stop at given time or byte position.
+NOTE:
Byte position is enabled only for MEncoder and +will not be accurate, as it can only stop at a frame +boundary. When used in conjunction with −ss option, +−endpos time will shift forward by seconds specified +with −ss.

+ +

EXAMPLE:

+ + + + + +
+

−endpos 56

+ + + + + +
+

Stop at 56 seconds.

+ + + + + +
+

−endpos 01:10:00

+ + + + + +
+

Stop at 1 hour 10 minutes.

+ + + + + +
+

−ss 10 −endpos 56

+ + + + + +
+

Stop at 1 minute 6 seconds.

+ + + + + +
+

−endpos 100mb

+ + + + + +
+

Encode only 100 MB.

+ + + + + +
+

−forceidx

+ + + + + +
+

Force index rebuilding. Useful for files with broken +index (A/V desync, etc). This will enable seeking in files +where seeking was not possible. You can fix the index +permanently with MEncoder (see the documentation).
+NOTE:
This option only works if the underlying media +supports seeking (i.e. not with stdin, pipe, etc).

+
+ + + + + +
+

−fps <float value>

+ + + + + +
+

Override video framerate. Useful if the original value is +wrong or missing.

+
+ + + + + +
+

−frames <number>

+ + + + + +
+

Play/convert only first <number> frames, then +quit.

+
+ + + + + +
+

−hr-mp3-seek (MP3 only)

+ + + + + +
+

Hi-res MP3 seeking. Enabled when playing from an external +MP3 file, as we need to seek to the very exact position to +keep A/V sync. Can be slow especially when seeking backwards +since it has to rewind to the beginning to find an exact +frame position.

+
+ + + + + +
+

−idx (also see −forceidx)

+ + + + + +
+

Rebuilds index of files if no index was found, allowing +seeking. Useful with broken/incomplete downloads, or badly +created files.
+NOTE:
This option only works if the underlying media +supports seeking (i.e. not with stdin, pipe, etc).

+
+ + + + + + + +
+ +

−noidx

+
+ +

Skip rebuilding index file. MEncoder skips writing the +index with this option.

+
+ + + + + +
+

−ipv4-only-proxy (network only)

+ + + + + +
+

Skip the proxy for IPv6 addresses. It will still be used +for IPv4 connections.

+
+ + + + + +
+

−loadidx <index file>

+ + + + + +
+

The file from which to read the video index data saved by +−saveidx. This index will be used for seeking, +overriding any index data contained in the AVI itself. +MPlayer will not prevent you from loading an index file +generated from a different AVI, but this is sure to cause +unfavorable results.
+NOTE:
This option is obsolete now that MPlayer has +OpenDML support.

+
+ + + + + +
+

−mc <seconds/frame>

+ + + + + +
+

maximum A-V sync correction per frame (in seconds)

+
+ + + + + +
+

−mf <option1:option2:...>

+ + + + + +
+

Used when decoding from multiple PNG or JPEG files.

+ +

Available options are:

+
+ + + + + +
+

w=<value>

+ + + + + +
+

input file width (default: autodetect)

+ + + + + +
+

h=<value>

+ + + + + +
+

input file height (default: autodetect)

+ + + + + +
+

fps=<value>

+ + + + + +
+

output fps (default: 25)

+ + + + + +
+

type=<value>

+ + + + + +
+

input file type (available: jpeg, png, tga, sgi)

+ + + + + +
+

−ni (AVI only)

+ + + + + +
+

Force usage of non-interleaved AVI parser (fixes playback +of some bad AVI files).

+
+ + + + + +
+

−nobps (AVI only)

+ + + + + +
+

Do not use average byte/second value for A-V sync. Helps +with some AVI files with broken header.

+
+ + + + + +
+

−noextbased

+ + + + + +
+

Disables extension-based demuxer selection. By default, +when the file type (demuxer) cannot be detected reliably +(the file has no header or it is not reliable enough), the +filename extension is used to select the demuxer. Always +falls back on content-based demuxer selection.

+
+ + + + + +
+

−passwd <password> (also see −user) +(network only)

+ + + + + +
+

Specify password for HTTP authentication.

+
+ + + + + +
+

−prefer-ipv4 (network only)

+ + + + + +
+

Use IPv4 on network connections. Falls back on IPv6 +automatically.

+
+ + + + + +
+

−prefer-ipv6 (IPv6 network only)

+ + + + + +
+

Use IPv6 on network connections. Falls back on IPv4 +automatically.

+
+ + + + + +
+

−psprobe <byte position>

+ + + + + +
+

When playing an MPEG-PS stream, this option lets you +specify how many bytes in the stream you want MPlayer to +scan in order to identify the video codec used. This option +is needed to play EVO files containing H.264 streams.

+
+ + + + + +
+

−pvr <option1:option2:...> (PVR +only)

+ + + + + +
+

This option tunes various encoding properties of the PVR +capture module. It has to be used with any hardware MPEG +encoder based card supported by the V4L2 driver. The +Hauppauge WinTV PVR−150/250/350/500 and all IVTV based +cards are known as PVR capture cards. Be aware that only +Linux 2.6.18 kernel and above is able to handle MPEG stream +through V4L2 layer. For hardware capture of an MPEG stream +and watching it with MPlayer/MEncoder, use +’pvr://’ as a movie URL.

+ +

Available options are:

+ + + + + +
+

aspect=<0−3>

+ + + + + +
+

Specify input aspect ratio:

+ + + + + +
+

0: 1:1
+1: 4:3 (default)
+2: 16:9
+3: 2.21:1

+ + + + + +
+

arate=<32000−48000>

+ + + + + +
+

Specify encoding audio rate (default: 48000 Hz, +available: 32000, 44100 and 48000 Hz).

+
+ + + + + +
+

alayer=<1−3>

+ + + + + +
+

Specify MPEG audio layer encoding (default: 2).

+
+ + + + + +
+

abitrate=<32−448>

+ + + + + +
+

Specify audio encoding bitrate in kbps (default: +384).

+
+ + + + + +
+

amode=<value>

+ + + + + +
+

Specify audio encoding mode. Available preset values are +’stereo’, ’joint_stereo’, +’dual’ and ’mono’ (default: +stereo).

+
+ + + + + +
+

vbitrate=<value>

+ + + + + +
+

Specify average video bitrate encoding in Mbps (default: +6).

+
+ + + + + +
+

vmode=<value>

+ + + + + +
+

Specify video encoding mode:

+ + + + + +
+

vbr: Variable BitRate (default)
+cbr: Constant BitRate

+ + + + + +
+

vpeak=<value>

+ + + + + +
+

Specify peak video bitrate encoding in Mbps (only useful +for VBR encoding, default: 9.6).

+
+ + + + + +
+

fmt=<value>

+ + + + + +
+

Choose an MPEG format for encoding:

+ + + + + +
+

ps: MPEG-2 Program Stream (default)
+ts: MPEG-2 Transport Stream
+mpeg1: MPEG-1 System Stream
+vcd: Video CD compatible stream
+svcd: Super Video CD compatible stream
+dvd: DVD compatible stream

+ + + + + +
+

−radio <option1:option2:...> (radio +only)

+ + + + + +
+

These options set various parameters of the radio capture +module. For listening to radio with MPlayer use +’radio://<frequency>’ (if channels option +is not given) or +’radio://<channel_number>’ (if channels +option is given) as a movie URL. You can see allowed +frequency range by running MPlayer with +’−v’. To start the grabbing subsystem, use +’radio://<frequency or channel>/capture’. +If the capture keyword is not given you can listen to radio +using the line-in cable only. Using capture to listen is not +recommended due to synchronization problems, which makes +this process uncomfortable.

+ +

Available options are:

+ + + + + +
+

device=<value>

+ + + + + +
+

Radio device to use (default: /dev/radio0 for Linux and +/dev/tuner0 for *BSD).

+
+ + + + + +
+

driver=<value>

+ + + + + +
+

Radio driver to use (default: v4l2 if available, +otherwise v4l). Currently, v4l and v4l2 drivers are +supported.

+
+ + + + + +
+

volume=<0..100>

+ + + + + +
+

sound volume for radio device (default 100)

+
+ + + + + +
+

freq_min=<value> (*BSD BT848 only)

+ + + + + +
+

minimum allowed frequency (default: 87.50)

+
+ + + + + +
+

freq_max=<value> (*BSD BT848 only)

+ + + + + +
+

maximum allowed frequency (default: 108.00)

+
+ + + + + +
+ +

channels=<frequency>−<name>,<frequency>−<name>,...

+ + + + + +
+

Set channel list. Use _ for spaces in names (or play with +quoting ;-). The channel names will then be written using +OSD and the slave commands radio_step_channel and +radio_set_channel will be usable for a remote control (see +LIRC). If given, number in movie URL will be treated as +channel position in channel list.
+EXAMPLE:
radio://1, radio://104.4, radio_set_channel +1

+
+ + + + + +
+

adevice=<value> (radio capture only)

+ + + + + +
+

Name of device to capture sound from. Without such a name +capture will be disabled, even if the capture keyword +appears in the URL. For ALSA devices use it in the form +hw=<card>.<device>. If the device name contains +a ’=’, the module will use ALSA to capture, +otherwise OSS.

+
+ + + + + +
+

arate=<value> (radio capture only)

+ + + + + +
+

Rate in samples per second (default: 44100).
+NOTE:
When using audio capture set also −rawaudio +rate=<value> option with the same value as arate. If +you have problems with sound speed (runs too quickly), try +to play with different rate values (e.g. +48000,44100,32000,...).

+
+ + + + + +
+

achannels=<value> (radio capture only)

+ + + + + +
+

Number of audio channels to capture.

+ + + + + +
+

−rawaudio +<option1:option2:...>

+ + + + + +
+

This option lets you play raw audio files. You have to +use −demuxer rawaudio as well. It may also be used to +play audio CDs which are not 44kHz 16-bit stereo. For +playing raw AC-3 streams use −rawaudio format=0x2000 +−demuxer rawaudio.

+ +

Available options are:

+
+ + + + + +
+

channels=<value>

+ + + + + +
+

number of channels

+ + + + + +
+

rate=<value>

+ + + + + +
+

rate in samples per second

+ + + + + +
+

samplesize=<value>

+ + + + + +
+

sample size in bytes

+ + + + + +
+

bitrate=<value>

+ + + + + +
+

bitrate for rawaudio files

+ + + + + +
+

format=<value>

+ + + + + +
+

fourcc in hex

+ + + + + +
+

−rawvideo +<option1:option2:...>

+ + + + + +
+

This option lets you play raw video files. You have to +use −demuxer rawvideo as well.

+ +

Available options are:

+
+ + + + + +
+

fps=<value>

+ + + + + +
+

rate in frames per second (default: 25.0)

+ + + + + +
+

sqcif|qcif|cif|4cif|pal|ntsc

+ + + + + +
+

set standard image size

+ + + + + +
+

w=<value>

+ + + + + +
+

image width in pixels

+ + + + + +
+

h=<value>

+ + + + + +
+

image height in pixels

+ + + + + +
+

i420|yv12|yuy2|y8

+ + + + + +
+

set colorspace

+ + + + + +
+

format=<value>

+ + + + + +
+

colorspace (fourcc) in hex or string constant. Use +−rawvideo format=help for a list of possible +strings.

+ + + + + +
+

size=<value>

+ + + + + +
+

frame size in Bytes

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer foreman.qcif -demuxer rawvideo -rawvideo +qcif

+ + + + + +
+

Play the famous "foreman" sample +video.

+ + + + + +
+

mplayer sample-720x576.yuv -demuxer rawvideo -rawvideo +w=720:h=576

+ + + + + +
+

Play a raw YUV sample.

+ + + + + +
+

−rtsp-port

+ + + + + +
+

Used with ’rtsp://’ URLs to force the +client’s port number. This option may be useful if you +are behind a router and want to forward the RTSP stream from +the server to a specific client.

+
+ + + + + +
+

−rtsp-destination

+ + + + + +
+

Used with ’rtsp://’ URLs to force the +destination IP address to be bound. This option may be +useful with some RTSP server which do not send RTP packets +to the right interface. If the connection to the RTSP server +fails, use −v to see which IP address MPlayer tries to +bind to and try to force it to one assigned to your computer +instead.

+
+ + + + + +
+

−rtsp-stream-over-tcp (LIVE555 and NEMESI +only)

+ + + + + +
+

Used with ’rtsp://’ URLs to specify that the +resulting incoming RTP and RTCP packets be streamed over TCP +(using the same TCP connection as RTSP). This option may be +useful if you have a broken internet connection that does +not pass incoming UDP packets (see +http://www.live555.com/mplayer/).

+
+ + + + + +
+

−saveidx <filename>

+ + + + + +
+

Force index rebuilding and dump the index to +<filename>. Currently this only works with AVI +files.
+NOTE:
This option is obsolete now that MPlayer has +OpenDML support.

+
+ + + + + +
+

−sb <byte position> (also see +−ss)

+ + + + + +
+

Seek to byte position. Useful for playback from CD-ROM +images or VOB files with junk at the beginning.

+
+ + + + + +
+

−speed <0.01−100>

+ + + + + +
+

Slow down or speed up playback by the factor given as +parameter. Not guaranteed to work correctly with −oac +copy.

+
+ + + + + +
+

−srate <Hz>

+ + + + + +
+

Selects the output sample rate to be used (of course +sound cards have limits on this). If the sample frequency +selected is different from that of the current media, the +resample or lavcresample audio filter will be inserted into +the audio filter layer to compensate for the difference. The +type of resampling can be controlled by the −af-adv +option. The default is fast resampling that may cause +distortion.

+
+ + + + + +
+

−ss <time> (also see +−sb)

+ + + + + +
+

Seek to given time position.

+ +

EXAMPLE:

+ + + + + +
+

−ss 56

+ + + + + +
+

Seeks to 56 seconds.

+ + + + + +
+

−ss 01:10:00

+ + + + + +
+

Seeks to 1 hour 10 min.

+ + + + + +
+

−tskeepbroken

+ + + + + +
+

Tells MPlayer not to discard TS packets reported as +broken in the stream. Sometimes needed to play corrupted +MPEG-TS files.

+
+ + + + + +
+

−tsprobe <byte position>

+ + + + + +
+

When playing an MPEG-TS stream, this option lets you +specify how many bytes in the stream you want MPlayer to +search for the desired audio and video IDs.

+
+ + + + + +
+

−tsprog <1−65534>

+ + + + + +
+

When playing an MPEG-TS stream, you can specify with this +option which program (if present) you want to play. Can be +used with −vid and −aid.

+
+ + + + + +
+

−tv <option1:option2:...> (TV/PVR +only)

+ + + + + +
+

This option tunes various properties of the TV capture +module. For watching TV with MPlayer, use +’tv://’ or +’tv://<channel_number>’ or even +’tv://<channel_name> (see option channels for +channel_name below) as a movie URL. You can also use +’tv:///<input_id>’ to start watching a +movie from a composite or S-Video input (see option input +for details).

+ +

Available options are:

+ + + + + +
+

noaudio

+ + + + + +
+

no sound

+
+ + + + + +
+

automute=<0-255> (v4l and v4l2 only)

+ + + + + +
+

If signal strength reported by device is less than this +value, audio and video will be muted. In most cases +automute=100 will be enough. Default is 0 (automute +disabled).

+
+ + + + + +
+

driver=<value>

+ + + + + +
+

See −tv driver=help for a list of compiled-in TV +input drivers. available: dummy, v4l, v4l2, bsdbt848 +(default: autodetect)

+
+ + + + + +
+

device=<value>

+ + + + + +
+

Specify TV device (default: /dev/video0). NOTE: +For the bsdbt848 driver you can provide both bktr and tuner +device names separating them with a comma, tuner after bktr +(e.g. -tv device=/dev/bktr1,/dev/tuner1).

+
+ + + + + +
+

input=<value>

+ + + + + +
+

Specify input (default: 0 (TV), see console output for +available inputs).

+
+ + + + + +
+

freq=<value>

+ + + + + +
+

Specify the frequency to set the tuner to (e.g. 511.250). +Not compatible with the channels parameter.

+
+ + + + + +
+

outfmt=<value>

+ + + + + +
+

Specify the output format of the tuner with a preset +value supported by the V4L driver (yv12, rgb32, rgb24, +rgb16, rgb15, uyvy, yuy2, i420) or an arbitrary format given +as hex value. Try outfmt=help for a list of all available +formats.

+
+ + + + + +
+

width=<value>

+ + + + + +
+

output window width

+
+ + + + + +
+

height=<value>

+ + + + + +
+

output window height

+
+ + + + + +
+

fps=<value>

+ + + + + +
+

framerate at which to capture video (frames per +second)

+
+ + + + + +
+

buffersize=<value>

+ + + + + +
+

maximum size of the capture buffer in megabytes (default: +dynamical)

+
+ + + + + +
+

norm=<value>

+ + + + + +
+

For bsdbt848 and v4l, PAL, SECAM, NTSC are available. For +v4l2, see the console output for a list of all available +norms, also see the normid option below.

+
+ + + + + +
+

normid=<value> (v4l2 only)

+ + + + + +
+

Sets the TV norm to the given numeric ID. The TV norm +depends on the capture card. See the console output for a +list of available TV norms.

+
+ + + + + +
+

channel=<value>

+ + + + + +
+

Set tuner to <value> channel.

+
+ + + + + +
+

chanlist=<value>

+ + + + + +
+

available: europe-east, europe-west, us-bcast, us-cable, +etc

+
+ + + + + +
+ +

channels=<channel>−<name>,<channel>−<name>,...

+ + + + + +
+

Set names for channels. NOTE: If <channel> +is an integer greater than 1000, it will be treated as +frequency (in kHz) rather than channel name from frequency +table.
+Use _ for spaces in names (or play with quoting ;-). The +channel names will then be written using OSD, and the slave +commands tv_step_channel, tv_set_channel and tv_last_channel +will be usable for a remote control (see LIRC). Not +compatible with the frequency parameter.
+NOTE:
The channel number will then be the position in +the ’channels’ list, beginning with 1.
+EXAMPLE:
tv://1, tv://TV1, tv_set_channel 1, +tv_set_channel TV1

+
+ + + + + +
+ +

[brightness|contrast|hue|saturation]=<-100−100>

+ + + + + +
+

Set the image equalizer on the card.

+
+ + + + + +
+

audiorate=<value>

+ + + + + +
+

Set audio capture bitrate.

+
+ + + + + +
+

forceaudio

+ + + + + +
+

Capture audio even if there are no audio sources reported +by v4l.

+
+ + + + + +
+

alsa

+ + + + + +
+

Capture from ALSA.

+
+ + + + + +
+

amode=<0−3>

+ + + + + +
+

Choose an audio mode:

+ + + + + +
+

0: mono
+1: stereo
+2: language 1
+3: language 2

+ + + + + +
+

forcechan=<1−2>

+ + + + + +
+

By default, the count of recorded audio channels is +determined automatically by querying the audio mode from the +TV card. This option allows forcing stereo/ mono recording +regardless of the amode option and the values returned by +v4l. This can be used for troubleshooting when the TV card +is unable to report the current audio mode.

+
+ + + + + +
+

adevice=<value>

+ + + + + +
+

Set an audio device. <value> should be /dev/xxx for +OSS and a hardware ID for ALSA. You must replace any +’:’ by a ’.’ in the hardware ID for +ALSA.

+
+ + + + + +
+

audioid=<value>

+ + + + + +
+

Choose an audio output of the capture card, if it has +more than one.

+
+ + + + + +
+

[volume|bass|treble|balance]=<0−65535> +(v4l1)

+ + + + + +
+

[volume|bass|treble|balance]=<0−100> +(v4l2)

+ + + + + +
+

These options set parameters of the mixer on the video +capture card. They will have no effect, if your card does +not have one. For v4l2 50 maps to the default value of the +control, as reported by the driver.

+
+ + + + + +
+

gain=<0−100> (v4l2)

+ + + + + +
+

Set gain control for video devices (usually webcams) to +the desired value and switch off automatic control. A value +of 0 enables automatic control. If this option is omitted, +gain control will not be modified.

+
+ + + + + +
+

immediatemode=<bool>

+ + + + + +
+

A value of 0 means capture and buffer audio and video +together (default for MEncoder). A value of 1 (default for +MPlayer) means to do video capture only and let the audio go +through a loopback cable from the TV card to the sound +card.

+
+ + + + + +
+

mjpeg

+ + + + + +
+

Use hardware MJPEG compression (if the card supports it). +When using this option, you do not need to specify the width +and height of the output window, because MPlayer will +determine it automatically from the decimation value (see +below).

+
+ + + + + +
+

decimation=<1|2|4>

+ + + + + +
+

choose the size of the picture that will be compressed by +hardware MJPEG compression:

+ + + + + +
+

1: full size 704x576 PAL 704x480 NTSC
+2: medium size 352x288 PAL 352x240 NTSC
+4: small size 176x144 PAL 176x120 NTSC

+ + + + + +
+

quality=<0−100>

+ + + + + +
+

Choose the quality of the JPEG compression (< 60 +recommended for full size).

+
+ + + + + +
+

tdevice=<value>

+ + + + + +
+

Specify TV teletext device (example: /dev/vbi0) (default: +none).

+
+ + + + + +
+

tformat=<format>

+ + + + + +
+

Specify TV teletext display format (default: 0):

+ + + + + +
+

0: opaque
+1: transparent
+2: opaque with inverted colors
+3: transparent with inverted colors

+ + + + + +
+

tpage=<100-899>

+ + + + + +
+

Specify initial TV teletext page number (default: +100).

+
+ + + + + +
+

tlang=<−1−127>

+ + + + + +
+

Specify default teletext language code (default: 0), +which will be used as primary language until a type 28 +packet is received. Useful when the teletext system uses a +non-latin character set, but language codes are not +transmitted via teletext type 28 packets for some reason. To +see a list of supported language codes set this option to +−1.

+ + + + + +
+

−tvscan <option1:option2:...> (TV and +MPlayer only)

+ + + + + +
+

Tune the TV channel scanner. MPlayer will also print +value for "-tv channels=" option, including +existing and just found channels.

+ +

Available suboptions are:

+ + + + + +
+

autostart

+ + + + + +
+

Begin channel scanning immediately after startup +(default: disabled).

+
+ + + + + +
+

period=<0.1-2.0>

+ + + + + +
+

Specify delay in seconds before switching to next channel +(default: 0.5). Lower values will cause faster scanning, but +can detect inactive TV channels as active.

+
+ + + + + +
+

threshold=<1-100>

+ + + + + +
+

Threshold value for the signal strength (in percent), as +reported by the device (default: 50). A signal strength +higher than this value will indicate that the currently +scanning channel is active.

+ + + + + +
+

−user <username> (also see −passwd) +(network only)

+ + + + + +
+

Specify username for HTTP authentication.

+
+ + + + + +
+

−user-agent <string>

+ + + + + +
+

Use <string> as user agent for HTTP streaming.

+
+ + + + + +
+

−vid <ID>

+ + + + + +
+

Select video channel (MPG: 0−15, ASF: 0−255, +MPEG-TS: 17−8190). When playing an MPEG-TS stream, +MPlayer/MEncoder will use the first program (if present) +with the chosen video stream.

+
+ + + + + +
+

−vivo <suboption> (DEBUG +CODE)

+ + + + + +
+

Force audio parameters for the VIVO demuxer (for +debugging purposes). FIXME: Document this.

+
+ +

OSD/SUBTITLE OPTIONS

+ + + + + +
+

NOTE: Also see −vf expand.

+
+ + + + + +
+

−ass (FreeType only)

+ + + + + +
+

Turn on SSA/ASS subtitle rendering. With this option, +libass will be used for SSA/ASS external subtitles and +Matroska tracks. You may also want to use +−embeddedfonts.

+
+ + + + + +
+

−ass-border-color <value>

+ + + + + +
+

Sets the border (outline) color for text subtitles. The +color format is RRGGBBAA.

+
+ + + + + +
+

−ass-bottom-margin <value>

+ + + + + +
+

Adds a black band at the bottom of the frame. The SSA/ASS +renderer can place subtitles there (with +−ass-use-margins).

+
+ + + + + +
+

−ass-color <value>

+ + + + + +
+

Sets the color for text subtitles. The color format is +RRGGBBAA.

+
+ + + + + +
+

−ass-font-scale <value>

+ + + + + +
+

Set the scale coefficient to be used for fonts in the +SSA/ASS renderer.

+
+ + + + + +
+

−ass-force-style +<[Style.]Param=Value[,...]>

+ + + + + +
+

Override some style parameters.

+ +

EXAMPLE:

+ + + + + +
+

−ass-force-style +FontName=Arial,Default.Bold=1

+ + + + + +
+

−ass-hinting <type>

+ + + + + +
+

Set hinting type.

+ + + + + +
+

<type>

+ + + + + +
+

0: No hinting.
+1: FreeType autohinter, light mode.
+2: FreeType autohinter, normal mode.
+3: Font native hinter.
+0-3 + 4: The same, but hinting will only be performed if OSD +is rendered at screen resolution and, therefore, will not be +scaled.
+The default value is 7 (use native hinter for unscaled OSD +and no hinting otherwise).

+ + + + + +
+

−ass-line-spacing <value>

+ + + + + +
+

Set line spacing value for SSA/ASS renderer.

+
+ + + + + +
+

−ass-styles <filename>

+ + + + + +
+

Load all SSA/ASS styles found in the specified file and +use them for rendering text subtitles. The syntax of the +file is exactly like the [V4 Styles] / [V4+ Styles] section +of SSA/ASS.

+
+ + + + + +
+

−ass-top-margin <value>

+ + + + + +
+

Adds a black band at the top of the frame. The SSA/ASS +renderer can place toptitles there (with +−ass-use-margins).

+
+ + + + + +
+

−ass-use-margins

+ + + + + +
+

Enables placing toptitles and subtitles in black borders +when they are available.

+
+ + + + + +
+

−dumpjacosub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based JACOsub subtitle format. Creates a +dumpsub.js file in the current directory.

+
+ + + + + +
+

−dumpmicrodvdsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the MicroDVD subtitle format. Creates a +dumpsub.sub file in the current directory.

+
+ + + + + +
+

−dumpmpsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to MPlayer’s subtitle format, MPsub. Creates a +dump.mpsub file in the current directory.

+
+ + + + + +
+

−dumpsami (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based SAMI subtitle format. Creates a +dumpsub.smi file in the current directory.

+
+ + + + + +
+

−dumpsrtsub (MPlayer only)

+ + + + + +
+

Convert the given subtitle (specified with the −sub +option) to the time-based SubViewer (SRT) subtitle format. +Creates a dumpsub.srt file in the current directory.
+NOTE:
Some broken hardware players choke on SRT subtitle +files with Unix line endings. If you are unlucky enough to +have such a box, pass your subtitle files through unix2dos +or a similar program to replace Unix line endings with +DOS/Windows line endings.

+
+ + + + + +
+

−dumpsub (MPlayer only) (BETA CODE)

+ + + + + +
+

Dumps the subtitle substream from VOB streams. Also see +the −dump*sub and −vobsubout* options.

+
+ + + + + +
+

−embeddedfonts (FreeType only)

+ + + + + +
+

Enables extraction of Matroska embedded fonts (default: +disabled). These fonts can be used for SSA/ASS subtitle +rendering (−ass option). Font files are created in the +~/.mplayer/fonts directory.
+NOTE:
With FontConfig 2.4.2 or newer, embedded fonts are +opened directly from memory, and this option is enabled by +default.

+
+ + + + + +
+

−ffactor <number>

+ + + + + +
+

Resample the font alphamap. Can be:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

plain white fonts

+
+
+ +

0.75

+
+ +

very narrow black outline (default)

+
+
+ +

1

+
+ +

narrow black outline

+
+
+ +

10

+
+ +

bold black outline

+
+
+ + + + + +
+

−flip-hebrew (FriBiDi only)

+ + + + + +
+

Turns on flipping subtitles using FriBiDi.

+
+ + + + + +
+

−noflip-hebrew-commas

+ + + + + +
+

Change FriBiDi’s assumptions about the placements +of commas in subtitles. Use this if commas in subtitles are +shown at the start of a sentence instead of at the end.

+
+ + + + + +
+

−font <path to font.desc +file>

+ + + + + +
+

Search for the OSD/SUB fonts in an alternative directory +(default for normal fonts: ~/.mplayer/font/font.desc, +default for FreeType fonts: ~/.mplayer/subfont.ttf).
+NOTE:
With FreeType, this option determines the path to +the text font file. With fontconfig, this option determines +the fontconfig font name.

+ +

EXAMPLE:

+ + + + + +
+

−font ~/.mplayer/arial-14/font.desc
+−font ~/.mplayer/arialuni.ttf
+−font ’Bitstream Vera Sans’

+ + + + + +
+

−fontconfig (fontconfig only)

+ + + + + +
+

Enables the usage of fontconfig managed fonts.

+
+ + + + + +
+

−forcedsubsonly

+ + + + + +
+

Display only forced subtitles for the DVD subtitle stream +selected by e.g. −slang.

+
+ + + + + +
+

−fribidi-charset <charset name> (FriBiDi +only)

+ + + + + +
+

Specifies the character set that will be passed to +FriBiDi when decoding non-UTF-8 subtitles (default: +ISO8859-8).

+
+ + + + + +
+

−ifo <VOBsub IFO file>

+ + + + + +
+

Indicate the file that will be used to load palette and +frame size for VOBsub subtitles.

+
+ + + + + +
+

−noautosub

+ + + + + +
+

Turns off automatic subtitle file loading.

+
+ + + + + +
+

−osd-duration <time>

+ + + + + +
+

Set the duration of the OSD messages in ms (default: +1000).

+
+ + + + + +
+

−osdlevel <0−3> (MPlayer +only)

+ + + + + +
+

Specifies which mode the OSD should start in.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

subtitles only

+
+ +

1

+
+ +

volume + seek (default)

+
+ +

2

+
+ +

volume + seek + timer + percentage

+
+ +

3

+
+ +

volume + seek + timer + percentage + total time

+
+ + + + + +
+

−overlapsub

+ + + + + +
+

Allows the next subtitle to be displayed while the +current one is still visible (default is to enable the +support only for specific formats).

+
+ + + + + +
+

−sid <ID> (also see −slang, +−vobsubid)

+ + + + + +
+

Display the subtitle stream specified by <ID> +(0−31). MPlayer prints the available subtitle IDs when +run in verbose (−v) mode. If you cannot select one of +the subtitles on a DVD, also try −vobsubid.

+
+ + + + + +
+

−slang <language code[,language code,...]> +(also see −sid)

+ + + + + +
+

Specify a priority list of subtitle languages to use. +Different container formats employ different language codes. +DVDs use ISO 639-1 two letter language codes, Matroska uses +ISO 639-2 three letter language codes while OGM uses a +free-form identifier. MPlayer prints the available languages +when run in verbose (−v) mode.

+ +

EXAMPLE:

+ + + + + +
+

mplayer dvd://1 −slang hu,en

+ + + + + +
+

Chooses the Hungarian subtitle track on a DVD and falls +back on English if Hungarian is not available.

+ + + + + +
+

mplayer −slang jpn example.mkv

+ + + + + +
+

Plays a Matroska file with Japanese subtitles.

+ + + + + +
+

−spuaa <mode>

+ + + + + +
+

Antialiasing/scaling mode for DVD/VOBsub. A value of 16 +may be added to <mode> in order to force scaling even +when original and scaled frame size already match. This can +be employed to e.g. smooth subtitles with gaussian blur. +Available modes are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none (fastest, very ugly)

+
+ +

1

+
+ +

approximate (broken?)

+
+ +

2

+
+ +

full (slow)

+
+ +

3

+
+ +

bilinear (default, fast and not too bad)

+
+ +

4

+
+ +

uses swscaler gaussian blur (looks very good)

+
+ + + + + +
+

−spualign <-1−2>

+ + + + + +
+

Specify how SPU (DVD/VOBsub) subtitles should be +aligned.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

original position

+
+ +

0

+
+ +

Align at top (original behavior, default).

+
+ +

1

+
+ +

Align at center.

+
+ +

2

+
+ +

Align at bottom.

+
+ + + + + +
+

−spugauss <0.0−3.0>

+ + + + + +
+

Variance parameter of gaussian used by −spuaa 4. +Higher means more blur (default: 1.0).

+
+ + + + + +
+

−sub +<subtitlefile1,subtitlefile2,...>

+ + + + + +
+

Use/display these subtitle files. Only one file can be +displayed at the same time.

+
+ + + + + +
+

−sub-bg-alpha <0−255>

+ + + + + +
+

Specify the alpha channel value for subtitles and OSD +backgrounds. Big values mean more transparency. 0 means +completely transparent.

+
+ + + + + +
+

−sub-bg-color <0−255>

+ + + + + +
+

Specify the color value for subtitles and OSD +backgrounds. Currently subtitles are grayscale so this value +is equivalent to the intensity of the color. 255 means white +and 0 black.

+
+ + + + + +
+

−sub-demuxer <[+]name> (−subfile +only) (BETA CODE)

+ + + + + +
+

Force subtitle demuxer type for −subfile. Use a +’+’ before the name to force it, this will skip +some checks! Give the demuxer name as printed by +−sub-demuxer help. For backward compatibility it also +accepts the demuxer ID as defined in subreader.h.

+
+ + + + + +
+

−sub-fuzziness <mode>

+ + + + + +
+

Adjust matching fuzziness when searching for +subtitles:

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

exact match

+
+
+ +

1

+
+ +

Load all subs containing movie name.

+
+
+ +

2

+
+ +

Load all subs in the current directory.

+
+
+ + + + + +
+

−sub-no-text-pp

+ + + + + +
+

Disables any kind of text post processing done after +loading the subtitles. Used for debug purposes.

+
+ + + + + +
+

−subalign <0−2>

+ + + + + +
+

Specify which edge of the subtitles should be aligned at +the height given by −subpos.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Align subtitle top edge (original behavior).

+
+ +

1

+
+ +

Align subtitle center.

+
+ +

2

+
+ +

Align subtitle bottom edge (default).

+
+ + + + + +
+

−subcc

+ + + + + +
+

Display DVD Closed Caption (CC) subtitles. These are +not the VOB subtitles, these are special ASCII +subtitles for the hearing impaired encoded in the VOB +userdata stream on most region 1 DVDs. CC subtitles have not +been spotted on DVDs from other regions so far.

+
+ + + + + +
+

−subcp <codepage> (iconv +only)

+ + + + + +
+

If your system supports iconv(3), you can use this option +to specify the subtitle codepage.

+ +

EXAMPLE:

+ + + + + +
+

−subcp latin2
+−subcp cp1250

+ + + + + +
+

−subcp enca:<language>:<fallback +codepage> (ENCA only)

+ + + + + +
+

You can specify your language using a two letter language +code to make ENCA detect the codepage automatically. If +unsure, enter anything and watch mplayer −v output for +available languages. Fallback codepage specifies the +codepage to use, when autodetection fails.

+ +

EXAMPLE:

+ + + + + +
+

−subcp enca:cs:latin2

+ + + + + +
+

Guess the encoding, assuming the subtitles are Czech, +fall back on latin 2, if the detection fails.

+ + + + + +
+

−subcp enca:pl:cp1250

+ + + + + +
+

Guess the encoding for Polish, fall back on +cp1250.

+ + + + + +
+

−subdelay <sec>

+ + + + + +
+

Delays subtitles by <sec> seconds. Can be +negative.

+
+ + + + + +
+

−subfile <filename> (BETA +CODE)

+ + + + + +
+

Currently useless. Same as −audiofile, but for +subtitle streams (OggDS?).

+
+ + + + + +
+

−subfont <filename> (FreeType +only)

+ + + + + +
+

Sets the subtitle font. If no −subfont is given, +−font is used.

+
+ + + + + +
+

−subfont-autoscale <0−3> (FreeType +only)

+ + + + + +
+

Sets the autoscale mode.
+NOTE:
0 means that text scale and OSD scale are font +heights in points.

+ +

The mode can be:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

no autoscale

+
+
+ +

1

+
+ +

proportional to movie height

+
+
+ +

2

+
+ +

proportional to movie width

+
+
+ +

3

+
+ +

proportional to movie diagonal (default)

+
+
+ + + + + +
+

−subfont-blur <0−8> (FreeType +only)

+ + + + + +
+

Sets the font blur radius (default: 2).

+
+ + + + + +
+

−subfont-encoding <value> (FreeType +only)

+ + + + + +
+

Sets the font encoding. When set to +’unicode’, all the glyphs from the font file +will be rendered and unicode will be used (default: +unicode).

+
+ + + + + +
+

−subfont-osd-scale <0−100> (FreeType +only)

+ + + + + +
+

Sets the autoscale coefficient of the OSD elements +(default: 6).

+
+ + + + + +
+

−subfont-outline <0−8> (FreeType +only)

+ + + + + +
+

Sets the font outline thickness (default: 2).

+
+ + + + + +
+

−subfont-text-scale <0−100> +(FreeType only)

+ + + + + +
+

Sets the subtitle text autoscale coefficient as +percentage of the screen size (default: 5).

+
+ + + + + +
+

−subfps <rate>

+ + + + + +
+

Specify the framerate of the subtitle file (default: +movie fps).
+NOTE:
<rate> > movie fps speeds the subtitles +up for frame-based subtitle files and slows them down for +time-based ones.

+
+ + + + + +
+

−subpos <0−100> (useful with +−vf expand)

+ + + + + +
+

Specify the position of subtitles on the screen. The +value is the vertical position of the subtitle in % of the +screen height.

+
+ + + + + +
+

−subwidth <10−100>

+ + + + + +
+

Specify the maximum width of subtitles on the screen. +Useful for TV-out. The value is the width of the subtitle in +% of the screen width.

+
+ + + + + +
+

−noterm-osd

+ + + + + +
+

Disable the display of OSD messages on the console when +no video output is available.

+
+ + + + + +
+

−term-osd-esc <escape +sequence>

+ + + + + +
+

Specify the escape sequence to use before writing an OSD +message on the console. The escape sequence should move the +pointer to the beginning of the line used for the OSD and +clear it (default: ^[[A\r^[[K).

+
+ + + + + +
+

−unicode

+ + + + + +
+

Tells MPlayer to handle the subtitle file as unicode.

+
+ + + + + +
+

−utf8

+ + + + + +
+

Tells MPlayer to handle the subtitle file as UTF-8.

+
+ + + + + +
+

−vobsub <VOBsub file without +extension>

+ + + + + +
+

Specify a VOBsub file to use for subtitles. Has to be the +full pathname without extension, i.e. without the +’.idx’, ’.ifo’ or +’.sub’.

+
+ + + + + +
+

−vobsubid <0−31>

+ + + + + +
+

Specify the VOBsub subtitle ID.

+
+ +

AUDIO OUTPUT OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−abs <value> (−ao oss only) +(OBSOLETE)

+ + + + + +
+

Override audio driver/card buffer size detection.

+
+ + + + + +
+

−format <format> (also see the format +audio filter)

+ + + + + +
+

Select the sample format used for output from the audio +filter layer to the sound card. The values that +<format> can adopt are listed below in the description +of the format audio filter.

+
+ + + + + +
+

−mixer <device>

+ + + + + +
+

Use a mixer device different from the default /dev/mixer. +For ALSA this is the mixer name.

+
+ + + + + +
+

−mixer-channel <mixer line>[,mixer index] +(−ao oss and −ao alsa only)

+ + + + + +
+

This option will tell MPlayer to use a different channel +for controlling volume than the default PCM. Options for OSS +include vol, pcm, line. For a complete list of +options look for SOUND_DEVICE_NAMES in +/usr/include/linux/soundcard.h. For ALSA you can use the +names e.g. alsamixer displays, like Master, Line, +PCM.
+NOTE:
ALSA mixer channel names followed by a number must +be specified in the <name,number> format, i.e. a +channel labeled ’PCM 1’ in alsamixer must be +converted to PCM,1.

+
+ + + + + +
+

−softvol

+ + + + + +
+

Force the use of the software mixer, instead of using the +sound card mixer.

+
+ + + + + +
+

−softvol-max +<10.0−10000.0>

+ + + + + +
+

Set the maximum amplification level in percent (default: +110). A value of 200 will allow you to adjust the volume up +to a maximum of double the current level. With values below +100 the initial volume (which is 100%) will be above the +maximum, which e.g. the OSD cannot display correctly.

+
+ + + + + +
+

−volstep <0−100>

+ + + + + +
+

Set the step size of mixer volume changes in percent of +the whole range (default: 3).

+
+ +

AUDIO OUTPUT DRIVERS (MPLAYER ONLY)

+ + + + + +
+

Audio output drivers are interfaces to different audio +output facilities. The syntax is:

+
+ + + + + +
+

−ao +<driver1[:suboption1[=value]:...],driver2,...[,]>

+ + + + + +
+

Specify a priority list of audio output drivers to be +used.

+
+ + + + + +
+

If the list has a trailing ’,’ MPlayer will +fall back on drivers not contained in the list. Suboptions +are optional and can mostly be omitted.
+NOTE:
See −ao help for a list of compiled-in audio +output drivers.

+ +

EXAMPLE:

+ + + + + +
+

−ao alsa,oss,

+ + + + + +
+

Try the ALSA driver, then the OSS driver, then +others.

+ + + + + +
+

−ao alsa:noblock:device=hw=0.3

+ + + + + +
+

Sets noblock-mode and the device-name as first card, +fourth device.

+ + + + + +
+

Available audio output drivers are:

+
+ + + + + +
+

alsa

+ + + + + +
+

ALSA 0.9/1.x audio output driver

+ + + + + +
+

noblock

+ + + + + +
+

Sets noblock-mode.

+ + + + + +
+

device=<device>

+ + + + + +
+

Sets the device name. Replace any ’,’ with +’.’ and any ’:’ with ’=’ +in the ALSA device name. For hwac3 output via S/PDIF, use an +"iec958" or "spdif" device, unless you +really know how to set it correctly.

+ + + + + +
+

alsa5

+ + + + + +
+

ALSA 0.5 audio output driver

+
+ + + + + +
+

oss

+ + + + + +
+

OSS audio output driver

+ + + + + +
+

<dsp-device>

+ + + + + +
+

Sets the audio output device (default: +/dev/dsp).

+ + + + + +
+

<mixer-device>

+ + + + + +
+

Sets the audio mixer device (default: +/dev/mixer).

+ + + + + +
+

<mixer-channel>

+ + + + + +
+

Sets the audio mixer channel (default: pcm).

+ + + + + +
+

sdl (SDL only)

+ + + + + +
+

highly platform independent SDL (Simple Directmedia +Layer) library audio output driver

+ + + + + +
+

<driver>

+ + + + + +
+

Explicitly choose the SDL audio driver to use (default: +let SDL choose).

+ + + + + +
+

arts

+ + + + + +
+

audio output through the aRts daemon

+
+ + + + + +
+

esd

+ + + + + +
+

audio output through the ESD daemon

+ + + + + +
+

<server>

+ + + + + +
+

Explicitly choose the ESD server to use (default: +localhost).

+ + + + + +
+

jack

+ + + + + +
+

audio output through JACK (Jack Audio Connection +Kit)

+ + + + + +
+

port=<name>

+ + + + + +
+

Connects to the ports with the given name (default: +physical ports).

+ + + + + +
+

name=<client

+ + + + + +
+

Client name that is passed to JACK (default: MPlayer +[<PID>]). Useful if you want to have certain +connections established automatically.

+ + + + + +
+

(no)estimate

+ + + + + +
+

Estimate the audio delay, supposed to make the video +playback smoother (default: enabled).

+ + + + + +
+

nas

+ + + + + +
+

audio output through NAS

+
+ + + + + +
+

macosx (Mac OS X only)

+ + + + + +
+

native Mac OS X audio output driver

+
+ + + + + + + +
+ +

openal

+
+ +

Experimental, unfinished (will downmix to mono) OpenAL +audio output driver

+
+ + + + + +
+

sgi (SGI only)

+ + + + + +
+

native SGI audio output driver

+ + + + + +
+

<output device name>

+ + + + + +
+

Explicitly choose the output device/interface to use +(default: system-wide default). For example, ’Analog +Out’ or ’Digital Out’.

+ + + + + +
+

sun (Sun only)

+ + + + + +
+

native Sun audio output driver

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the audio device to use (default: +/dev/audio).

+ + + + + +
+

win32 (Windows only)

+ + + + + +
+

native Windows waveout audio output driver

+
+ + + + + +
+

dsound (Windows only)

+ + + + + +
+

DirectX DirectSound audio output driver

+ + + + + +
+

device=<devicenum>

+ + + + + +
+

Sets the device number to use. Playing a file with +−v will show a list of available devices.

+ + + + + +
+

dxr2 (also see −dxr2) (DXR2 only)

+ + + + + +
+

Creative DXR2 specific output driver

+
+ + + + + +
+

ivtv (IVTV only)

+ + + + + +
+

IVTV specific MPEG audio output driver. Works with +−ac hwmpa only.

+
+ + + + + +
+

v4l2 (requires Linux 2.6.22+ kernel)

+ + + + + +
+

Audio output driver for V4L2 cards with hardware MPEG +decoder.

+
+ + + + + +
+

mpegpes (DVB only)

+ + + + + +
+

Audio output driver for DVB cards that writes the output +to an MPEG-PES file if no DVB card is installed.

+ + + + + +
+

card=<1−4>

+ + + + + +
+

DVB card to use if more than one card is +present.

+ + + + + +
+

file=<filename>

+ + + + + +
+

output filename

+ + + + + +
+

null

+ + + + + +
+

Produces no audio output but maintains video playback +speed. Use −nosound for benchmarking.

+
+ + + + + +
+

pcm

+ + + + + +
+

raw PCM/wave file writer audio output

+ + + + + +
+

(no)waveheader

+ + + + + +
+

Include or do not include the wave header (default: +included). When not included, raw PCM will be +generated.

+ + + + + +
+

file=<filename>

+ + + + + +
+

Write the sound to <filename> instead of the +default audiodump.wav. If nowaveheader is specified, the +default is audiodump.pcm.

+ + + + + +
+

fast

+ + + + + +
+

Try to dump faster than realtime. Make sure the output +does not get truncated (usually with "Too many video +packets in buffer" message). It is normal that you get +a "Your system is too SLOW to play this!" +message.

+ + + + + +
+

plugin

+ + + + + +
+

plugin audio output driver

+
+ +

VIDEO OUTPUT OPTIONS (MPLAYER ONLY)

+ + + + + +
+

−adapter <value>

+ + + + + +
+

Set the graphics card that will receive the image. You +can get a list of available cards when you run this option +with −v. Currently only works with the directx video +output driver.

+
+ + + + + +
+

−bpp <depth>

+ + + + + +
+

Override the autodetected color depth. Only supported by +the fbdev, dga, svga, vesa video output drivers.

+
+ + + + + +
+

−border

+ + + + + +
+

Play movie with window border and decorations. Since this +is on by default, use −noborder to disable the +standard window decorations. Supported by the directx video +output driver.

+
+ + + + + +
+

−brightness <-100−100>

+ + + + + +
+

Adjust the brightness of the video signal (default: 0). +Not supported by all video output drivers.

+
+ + + + + +
+

−contrast <-100−100>

+ + + + + +
+

Adjust the contrast of the video signal (default: 0). Not +supported by all video output drivers.

+
+ + + + + +
+

−display <name> (X11 only)

+ + + + + +
+

Specify the hostname and display number of the X server +you want to display on.

+ +

EXAMPLE:

+ + + + + +
+

−display xtest.localdomain:0

+ + + + + +
+

−dr

+ + + + + +
+

Turns on direct rendering (not supported by all codecs +and video outputs)
+WARNING:
May cause OSD/SUB corruption!

+
+ + + + + +
+

−dxr2 <option1:option2:...>

+ + + + + +
+

This option is used to control the dxr2 video output +driver.

+ + + + + +
+

ar-mode=<value>

+ + + + + +
+

aspect ratio mode (0 = normal, 1 = pan-and-scan, 2 = +letterbox (default))

+
+ + + + + +
+

iec958-encoded

+ + + + + +
+

Set iec958 output mode to encoded.

+
+ + + + + +
+

iec958-decoded

+ + + + + +
+

Set iec958 output mode to decoded (default).

+
+ + + + + +
+

macrovision=<value>

+ + + + + +
+

macrovision mode (0 = off (default), 1 = agc, 2 = agc 2 +colorstripe, 3 = agc 4 colorstripe)

+
+ + + + + +
+

mute

+ + + + + +
+

mute sound output

+
+ + + + + +
+

unmute

+ + + + + +
+

unmute sound output

+
+ + + + + +
+

ucode=<value>

+ + + + + +
+

path to the microcode

+ + + + + +
+

TV output

+ + + + + +
+

75ire

+ + + + + +
+

enable 7.5 IRE output mode

+
+ + + + + +
+

no75ire

+ + + + + +
+

disable 7.5 IRE output mode (default)

+
+ + + + + +
+

bw

+ + + + + +
+

b/w TV output

+
+ + + + + +
+

color

+ + + + + +
+

color TV output (default)

+
+ + + + + +
+

interlaced

+ + + + + +
+

interlaced TV output (default)

+
+ + + + + +
+

nointerlaced

+ + + + + +
+

disable interlaced TV output

+
+ + + + + +
+

norm=<value>

+ + + + + +
+

TV norm (ntsc (default), pal, pal60, palm, paln, +palnc)

+
+ + + + + +
+

square-pixel

+ + + + + +
+

set pixel mode to square

+
+ + + + + +
+

ccir601-pixel

+ + + + + +
+

set pixel mode to ccir601

+ + + + + +
+

overlay

+ + + + + +
+

cr-left=<0−500>

+ + + + + +
+

Set the left cropping value (default: 50).

+
+ + + + + +
+

cr-right=<0−500>

+ + + + + +
+

Set the right cropping value (default: 300).

+
+ + + + + +
+

cr-top=<0−500>

+ + + + + +
+

Set the top cropping value (default: 0).

+
+ + + + + +
+

cr-bottom=<0−500>

+ + + + + +
+

Set the bottom cropping value (default: 0).

+
+ + + + + +
+

ck-[r|g|b]=<0−255>

+ + + + + +
+

Set the r(ed), g(reen) or b(lue) gain of the overlay +color-key.

+
+ + + + + +
+

ck-[r|g|b]min=<0−255>

+ + + + + +
+

minimum value for the respective color key

+
+ + + + + +
+

ck-[r|g|b]max=<0−255>

+ + + + + +
+

maximum value for the respective color key

+
+ + + + + +
+

ignore-cache

+ + + + + +
+

Ignore cached overlay settings.

+
+ + + + + +
+

update-cache

+ + + + + +
+

Update cached overlay settings.

+
+ + + + + +
+

ol-osd

+ + + + + +
+

Enable overlay onscreen display.

+
+ + + + + +
+

nool-osd

+ + + + + +
+

Disable overlay onscreen display (default).

+
+ + + + + +
+

ol[h|w|x|y]-cor=<-20−20>

+ + + + + +
+

Adjust the overlay size (h,w) and position (x,y) in case +it does not match the window perfectly (default: 0).

+
+ + + + + +
+

overlay

+ + + + + +
+

Activate overlay (default).

+
+ + + + + +
+

nooverlay

+ + + + + +
+

Activate TVout.

+
+ + + + + +
+

overlay-ratio=<1−2500>

+ + + + + +
+

Tune the overlay (default: 1000).

+ + + + + +
+

−fbmode <modename> (−vo fbdev +only)

+ + + + + +
+

Change video mode to the one that is labeled as +<modename> in /etc/fb.modes.
+NOTE:
VESA framebuffer does not support mode +changing.

+
+ + + + + +
+

−fbmodeconfig <filename> (−vo fbdev +only)

+ + + + + +
+

Override framebuffer mode configuration file (default: +/etc/ fb.modes).

+
+ + + + + +
+

−fs (also see −zoom)

+ + + + + +
+

Fullscreen playback (centers movie, and paints black +bands around it). Not supported by all video output +drivers.

+
+ + + + + +
+

−fsmode-dontuse <0−31> (OBSOLETE, +use the −fs option)

+ + + + + +
+

Try this option if you still experience fullscreen +problems.

+
+ + + + + +
+

−fstype <type1,type2,...> (X11 +only)

+ + + + + +
+

Specify a priority list of fullscreen modes to be used. +You can negate the modes by prefixing them with +’−’. If you experience problems like the +fullscreen window being covered by other windows try using a +different order.
+NOTE:
See −fstype help for a full list of +available modes.

+ +

The available types are:

+
+ + + + + +
+

above

+ + + + + +
+

Use the _NETWM_STATE_ABOVE hint if available.

+ + + + + +
+

below

+ + + + + +
+

Use the _NETWM_STATE_BELOW hint if available.

+ + + + + +
+

fullscreen

+ + + + + +
+

Use the _NETWM_STATE_FULLSCREEN hint if +available.

+ + + + + +
+

layer

+ + + + + +
+

Use the _WIN_LAYER hint with the default layer.

+ + + + + +
+

layer=<0...15>

+ + + + + +
+

Use the _WIN_LAYER hint with the given layer +number.

+ + + + + +
+

netwm

+ + + + + +
+

Force NETWM style.

+ + + + + +
+

none

+ + + + + +
+

Do not set fullscreen window layer.

+ + + + + +
+

stays_on_top

+ + + + + +
+

Use _NETWM_STATE_STAYS_ON_TOP hint if available.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

layer,stays_on_top,above,fullscreen

+ + + + + +
+

Default order, will be used as a fallback if incorrect or +unsupported modes are specified.

+ + + + + +
+

−fullscreen

+ + + + + +
+

Fixes fullscreen switching on OpenBox 1.x.

+ + + + + +
+

−geometry x[%][:y[%]] or +[WxH][+x+y]

+ + + + + +
+

Adjust where the output is on the screen initially. The x +and y specifications are in pixels measured from the +top-left of the screen to the top-left of the image being +displayed, however if a percentage sign is given after the +argument it turns the value into a percentage of the screen +size in that direction. It also supports the standard X11 +−geometry option format. If an external window is +specified using the −wid option, then the x and y +coordinates are relative to the top-left corner of the +window rather than the screen.
+NOTE:
This option is only supported by the x11, xmga, +xv, xvmc, xvidix, gl, gl2, directx and tdfxfb video output +drivers.

+ +

EXAMPLE:

+ + + + + +
+

50:40

+ + + + + +
+

Places the window at x=50, y=40.

+ + + + + +
+

50%:50%

+ + + + + +
+

Places the window in the middle of the screen.

+ + + + + +
+

100%

+ + + + + +
+

Places the window at the middle of the right edge of the +screen.

+ + + + + +
+

100%:100%

+ + + + + +
+

Places the window at the bottom right corner of the +screen.

+ + + + + +
+

−guiwid <window ID> (also see −wid) +(GUI only)

+ + + + + +
+

This tells the GUI to also use an X11 window and stick +itself to the bottom of the video, which is useful to embed +a mini-GUI in a browser (with the MPlayer plugin for +instance).

+
+ + + + + +
+

−hue <-100−100>

+ + + + + +
+

Adjust the hue of the video signal (default: 0). You can +get a colored negative of the image with this option. Not +supported by all video output drivers.

+
+ + + + + +
+

−monitor-dotclock <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the dotclock or pixelclock range of the +monitor.

+
+ + + + + +
+

−monitor-hfreq <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the horizontal frequency range of the +monitor.

+
+ + + + + +
+

−monitor-vfreq <range[,range,...]> +(−vo fbdev and vesa only)

+ + + + + +
+

Specify the vertical frequency range of the monitor.

+
+ + + + + +
+

−monitoraspect <ratio> (also see +−aspect)

+ + + + + +
+

Set the aspect ratio of your monitor or TV screen. A +value of 0 disables a previous setting (e.g. in the config +file). Overrides the −monitorpixelaspect setting if +enabled.

+ +

EXAMPLE:

+ + + + + +
+

−monitoraspect 4:3 or 1.3333
+−monitoraspect 16:9 or 1.7777

+ + + + + +
+

−monitorpixelaspect <ratio> (also see +−aspect)

+ + + + + +
+

Set the aspect of a single pixel of your monitor or TV +screen (default: 1). A value of 1 means square pixels +(correct for (almost?) all LCDs).

+
+ + + + + +
+

−nodouble

+ + + + + +
+

Disables double buffering, mostly for debugging purposes. +Double buffering fixes flicker by storing two frames in +memory, and displaying one while decoding another. It can +affect OSD negatively, but often removes OSD flickering.

+
+ + + + + +
+

−nograbpointer

+ + + + + +
+

Do not grab the mouse pointer after a video mode change +(−vm). Useful for multihead setups.

+
+ + + + + +
+

−nokeepaspect

+ + + + + +
+

Do not keep window aspect ratio when resizing windows. +Only works with the x11, xv, xmga, xvidix, directx video +output drivers. Furthermore under X11 your window manager +has to honor window aspect hints.

+
+ + + + + +
+

−ontop

+ + + + + +
+

Makes the player window stay on top of other windows. +Supported by video output drivers which use X11, except SDL, +as well as directx, macosx, quartz, ggi and gl2.

+
+ + + + + +
+

−panscan <0.0−1.0>

+ + + + + +
+

Enables pan-and-scan functionality (cropping the sides of +e.g. a 16:9 movie to make it fit a 4:3 display without black +bands). The range controls how much of the image is cropped. +Only works with the xv, xmga, mga, gl, gl2, quartz, macosx +and xvidix video output drivers.
+NOTE:
Values between -1 and 0 are allowed as well, but +highly experimental and may crash or worse. Use at your own +risk!

+
+ + + + + +
+

−panscanrange <-19.0−99.0> +(experimental)

+ + + + + +
+

Change the range of the pan-and-scan functionality +(default: 1). Positive values mean multiples of the default +range. Negative numbers mean you can zoom in up to a factor +of −panscanrange+1. E.g. −panscanrange -3 allows +a zoom factor of up to 4. This feature is experimental. Do +not report bugs unless you are using −vo gl.

+
+ + + + + +
+

−refreshrate <Hz>

+ + + + + +
+

Set the monitor refreshrate in Hz. Currently only +supported by −vo directx combined with the −vm +option.

+
+ + + + + +
+

−rootwin

+ + + + + +
+

Play movie in the root window (desktop background). +Desktop background images may cover the movie window, +though. Only works with the x11, xv, xmga, xvidix, quartz, +macosx and directx video output drivers.

+
+ + + + + +
+

−saturation <-100−100>

+ + + + + +
+

Adjust the saturation of the video signal (default: 0). +You can get grayscale output with this option. Not supported +by all video output drivers.

+
+ + + + + +
+

−screenh <pixels>

+ + + + + +
+

Specify the vertical screen resolution for video output +drivers which do not know the screen resolution like fbdev, +x11 and TVout.

+
+ + + + + +
+

−screenw <pixels>

+ + + + + +
+

Specify the horizontal screen resolution for video output +drivers which do not know the screen resolution like fbdev, +x11 and TVout.

+
+ + + + + +
+

−stop-xscreensaver (X11 only)

+ + + + + +
+

Turns off xscreensaver at startup and turns it on again +on exit.

+
+ + + + + +
+

−vm

+ + + + + +
+

Try to change to a different video mode. Supported by the +dga, x11, xv, sdl and directx video output drivers. If used +with the directx video output driver the −screenw, +−screenh, −bpp and −refreshrate options +can be used to set the new display mode.

+
+ + + + + +
+

−vsync

+ + + + + +
+

Enables VBI for the vesa, dfbmga and svga video output +drivers.

+
+ + + + + +
+

−wid <window ID> (also see −guiwid) +(X11, OpenGL and DirectX only)

+ + + + + +
+

This tells MPlayer to attach to an existing window. +Useful to embed MPlayer in a browser (e.g. the plugger +extension).

+
+ + + + + +
+

−xineramascreen <−2−...> (X11 +only)

+ + + + + +
+

In Xinerama configurations (i.e. a single desktop that +spans across multiple displays) this option tells MPlayer +which screen to display the movie on. A value of −2 +means fullscreen across the whole virtual display (in this +case Xinerama information is completely ignored), −1 +means fullscreen on the display the window currently is on. +The initial position set via the −geometry option is +relative to the specified screen. Will usually only work +with "−fstype −fullscreen" or +"−fstype none".

+
+ + + + + +
+

−zrbw (−vo zr only)

+ + + + + +
+

Display in black and white. For optimal performance, this +can be combined with ’−lavdopts gray’.

+
+ + + + + +
+

−zrcrop <[width]x[height]+[x offset]+[y +offset]> (−vo zr only)

+ + + + + +
+

Select a part of the input image to display, multiple +occurrences of this option switch on cinerama mode. In +cinerama mode the movie is distributed over more than one TV +(or beamer) to create a larger image. Options appearing +after the n-th −zrcrop apply to the n-th MJPEG card, +each card should at least have a −zrdev in addition to +the −zrcrop. For examples, see the output of +−zrhelp and the Zr section of the documentation.

+
+ + + + + +
+

−zrdev <device> (−vo zr +only)

+ + + + + +
+

Specify the device special file that belongs to your +MJPEG card, by default the zr video output driver takes the +first v4l device it can find.

+
+ + + + + +
+

−zrfd (−vo zr only)

+ + + + + +
+

Force decimation: Decimation, as specified by +−zrhdec and −zrvdec, only happens if the +hardware scaler can stretch the image to its original size. +Use this option to force decimation.

+
+ + + + + +
+

−zrhdec <1|2|4> (−vo zr +only)

+ + + + + +
+

Horizontal decimation: Ask the driver to send only every +2nd or 4th line/pixel of the input image to the MJPEG card +and use the scaler of the MJPEG card to stretch the image to +its original size.

+
+ + + + + +
+

−zrhelp (−vo zr only)

+ + + + + +
+

Display a list of all −zr* options, their default +values and a cinerama mode example.

+
+ + + + + +
+

−zrnorm <norm> (−vo zr +only)

+ + + + + +
+

Specify the TV norm as PAL or NTSC (default: no +change).

+
+ + + + + +
+

−zrquality <1−20> (−vo zr +only)

+ + + + + +
+

A number from 1 (best) to 20 (worst) representing the +JPEG encoding quality.

+
+ + + + + +
+

−zrvdec <1|2|4> (−vo zr +only)

+ + + + + +
+

Vertical decimation: Ask the driver to send only every +2nd or 4th line/pixel of the input image to the MJPEG card +and use the scaler of the MJPEG card to stretch the image to +its original size.

+
+ + + + + +
+

−zrxdoff <x display offset> (−vo zr +only)

+ + + + + +
+

If the movie is smaller than the TV screen, this option +specifies the x offset from the upper-left corner of the TV +screen (default: centered).

+
+ + + + + +
+

−zrydoff <y display offset> (−vo zr +only)

+ + + + + +
+

If the movie is smaller than the TV screen, this option +specifies the y offset from the upper-left corner of the TV +screen (default: centered).

+
+ +

VIDEO OUTPUT DRIVERS (MPLAYER ONLY)

+ + + + + +
+

Video output drivers are interfaces to different video +output facilities. The syntax is:

+
+ + + + + +
+

−vo +<driver1[:suboption1[=value]:...],driver2,...[,]>

+ + + + + +
+

Specify a priority list of video output drivers to be +used.

+
+ + + + + +
+

If the list has a trailing ’,’ MPlayer will +fall back on drivers not contained in the list. Suboptions +are optional and can mostly be omitted.
+NOTE:
See −vo help for a list of compiled-in video +output drivers.

+ +

EXAMPLE:

+ + + + + +
+

−vo xmga,xv,

+ + + + + +
+

Try the Matrox X11 driver, then the Xv driver, then +others.

+ + + + + +
+

−vo directx:noaccel

+ + + + + +
+

Uses the DirectX driver with acceleration features turned +off.

+ + + + + +
+

Available video output drivers are:

+
+ + + + + +
+

xv (X11 only)

+ + + + + +
+

Uses the XVideo extension of XFree86 4.x to enable +hardware accelerated playback. If you cannot use a hardware +specific driver, this is probably the best option. For +information about what colorkey is used and how it is drawn +run MPlayer with −v option and look out for the lines +tagged with [xv common] at the beginning.

+ + + + + +
+

port=<number>

+ + + + + +
+

Select a specific XVideo port.

+ + + + + +
+

ck=<cur|use|set>

+ + + + + +
+

Select the source from which the colorkey is taken +(default: cur).

+ + + + + + + + + + + + + + + + + +
+ +

cur

+
+ +

The default takes the colorkey currently set in Xv.

+
+ +

use

+
+ +

Use but do not set the colorkey from MPlayer (use +−colorkey option to change it).

+
+ +

set

+
+ +

Same as use but also sets the supplied colorkey.

+
+ + + + + +
+

ck-method=<man|bg|auto>

+ + + + + +
+

Sets the colorkey drawing method (default: man).

+ + + + + + + + + + + + + + + + + +
+ +

man

+
+ +

Draw the colorkey manually (reduces flicker in some +cases).

+
+ +

bg

+
+ +

Set the colorkey as window background.

+
+ +

auto

+
+ +

Let Xv draw the colorkey.

+
+ + + + + +
+

x11 (X11 only)

+ + + + + +
+

Shared memory video output driver without hardware +acceleration that works whenever X11 is present.

+
+ + + + + +
+

xover (X11 only)

+ + + + + +
+

Adds X11 support to all overlay based video output +drivers. Currently only supported by tdfx_vid.

+ + + + + +
+

<vo_driver>

+ + + + + +
+

Select the driver to use as source to overlay on top of +X11.

+ + + + + +
+

xvmc (X11 with −vc ffmpeg12mc only)

+ + + + + +
+

Video output driver that uses the XvMC (X Video Motion +Compensation) extension of XFree86 4.x to speed up MPEG-1/2 +and VCR2 decoding.

+ + + + + +
+

port=<number>

+ + + + + +
+

Select a specific XVideo port.

+ + + + + +
+

(no)benchmark

+ + + + + +
+

Disables image display. Necessary for proper benchmarking +of drivers that change image buffers on monitor retrace only +(nVidia). Default is not to disable image display +(nobenchmark).

+ + + + + +
+

(no)bobdeint

+ + + + + +
+

Very simple deinterlacer. Might not look better than +−vf tfields=1, but it is the only deinterlacer for +xvmc (default: nobobdeint).

+ + + + + +
+

(no)queue

+ + + + + +
+

Queue frames for display to allow more parallel work of +the video hardware. May add a small (not noticeable) +constant A/V desync (default: noqueue).

+ + + + + +
+

(no)sleep

+ + + + + +
+

Use sleep function while waiting for rendering to finish +(not recommended on Linux) (default: nosleep).

+ + + + + +
+

ck=cur|use|set

+ + + + + +
+

Same as −vo xv:ck (see −vo xv).

+ + + + + +
+

ck-method=man|bg|auto

+ + + + + +
+

Same as −vo xv:ck-method (see −vo +xv).

+ + + + + +
+

dga (X11 only)

+ + + + + +
+

Play video through the XFree86 Direct Graphics Access +extension. Considered obsolete.

+
+ + + + + +
+

sdl (SDL only)

+ + + + + +
+

Highly platform independent SDL (Simple Directmedia +Layer) library video output driver. Since SDL uses its own +X11 layer, MPlayer X11 options do not have any effect on +SDL.

+ + + + + +
+

driver=<driver>

+ + + + + +
+

Explicitly choose the SDL driver to use.

+ + + + + +
+

(no)forcexv

+ + + + + +
+

Use XVideo through the sdl video output driver (default: +forcexv).

+ + + + + +
+

(no)hwaccel

+ + + + + +
+

Use hardware accelerated scaler (default: +hwaccel).

+ + + + + +
+

vidix

+ + + + + +
+

VIDIX (VIDeo Interface for *niX) is an interface to the +video acceleration features of different graphics cards. +Very fast video output driver on cards that support +it.

+ + + + + +
+

<subdevice>

+ + + + + +
+

Explicitly choose the VIDIX subdevice driver to use. +Available subdevice drivers are cyberblade, mach64, +mga_crtc2, mga, nvidia, pm2, pm3, radeon, rage128, sis_vid +and unichrome.

+ + + + + +
+

xvidix (X11 only)

+ + + + + +
+

X11 frontend for VIDIX

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

cvidix

+ + + + + +
+

Generic and platform independent VIDIX frontend, can even +run in a text console with nVidia cards.

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

winvidix (Windows only)

+ + + + + +
+

Windows frontend for VIDIX

+ + + + + +
+

<subdevice>

+ + + + + +
+

same as vidix

+ + + + + +
+

directx (Windows only)

+ + + + + +
+

Video output driver that uses the DirectX +interface.

+ + + + + +
+

noaccel

+ + + + + +
+

Turns off hardware acceleration. Try this option if you +have display problems.

+ + + + + +
+

quartz (Mac OS X only)

+ + + + + +
+

Mac OS X Quartz video output driver. Under some +circumstances, it might be more efficient to force a packed +YUV output format, with e.g. −vf format=yuy2.

+ + + + + +
+

device_id=<number>

+ + + + + +
+

Choose the display device to use in fullscreen.

+ + + + + +
+

fs_res=<width>:<height>

+ + + + + +
+

Specify the fullscreen resolution (useful on slow +systems).

+ + + + + +
+

macosx (Mac OS X 10.4 or 10.3.9 with QuickTime +7)

+ + + + + +
+

Mac OS X CoreVideo video output driver

+ + + + + +
+

device_id=<number>

+ + + + + +
+

Choose the display device to use in fullscreen.

+ + + + + +
+

fbdev (Linux only)

+ + + + + +
+

Uses the kernel framebuffer to play video.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (e.g. +/dev/fb0) or the name of the VIDIX subdevice if the device +name starts with ’vidix’ (e.g. +’vidixsis_vid’ for the sis driver).

+ + + + + +
+

fbdev2 (Linux only)

+ + + + + +
+

Uses the kernel framebuffer to play video, alternative +implementation.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

vesa

+ + + + + +
+

Very general video output driver that should work on any +VESA VBE 2.0 compatible card.

+ + + + + +
+

(no)dga

+ + + + + +
+

Turns DGA mode on or off (default: on).

+ + + + + +
+

neotv_pal

+ + + + + +
+

Activate the NeoMagic TV out and set it to PAL +norm.

+ + + + + +
+

neotv_ntsc

+ + + + + +
+

Activate the NeoMagic TV out and set it to NTSC +norm.

+ + + + + +
+

vidix

+ + + + + +
+

Use the VIDIX driver.

+ + + + + +
+

lvo:

+ + + + + +
+

Activate the Linux Video Overlay on top of VESA +mode.

+ + + + + +
+

svga

+ + + + + +
+

Play video using the SVGA library.

+ + + + + +
+

<video mode>

+ + + + + +
+

Specify video mode to use. The mode can be given in a +<width>x<height>x<colors> format, e.g. +640x480x16M or be a graphics mode number, e.g. 84.

+ + + + + +
+

bbosd

+ + + + + +
+

Draw OSD into black bands below the movie +(slower).

+ + + + + +
+

native

+ + + + + +
+

Use only native drawing functions. This avoids direct +rendering, OSD and hardware acceleration.

+ + + + + +
+

retrace

+ + + + + +
+

Force frame switch on vertical retrace. Usable only with +−double. It has the same effect as the −vsync +option.

+ + + + + +
+

sq

+ + + + + +
+

Try to select a video mode with square pixels.

+ + + + + +
+

vidix

+ + + + + +
+

Use svga with VIDIX.

+ + + + + +
+

gl

+ + + + + +
+

OpenGL video output driver, simple version. Video size +must be smaller than the maximum texture size of your OpenGL +implementation. Intended to work even with the most basic +OpenGL implementations, but also makes use of newer +extensions, which allow support for more colorspaces and +direct rendering. Please use −dr if it works with your +OpenGL implementation, since for higher resolutions this +provides a big speedup. The code performs very few +checks, so if a feature does not work, this might be because +it is not supported by your card/OpenGL implementation even +if you do not get any error message. Use glxinfo or a +similar tool to display the supported OpenGL +extensions.

+ + + + + +
+

(no)scaled-osd

+ + + + + +
+

Changes the way the OSD behaves when the size of the +window changes (default: disabled). When enabled behaves +more like the other video output drivers, which is better +for fixed-size fonts. Disabled looks much better with +FreeType fonts and uses the borders in fullscreen mode. Does +not work correctly with ass subtitles (see −ass), you +can instead render them without OpenGL support via −vf +ass.

+ + + + + +
+

osdcolor=<0xRRGGBB>

+ + + + + +
+

Color for OSD (default: 0xffffff, corresponds to +white).

+ + + + + +
+

rectangle=<0,1,2>

+ + + + + +
+

Select usage of rectangular textures which saves video +RAM, but often is slower (default: 0).

+ + + + + +
+

0: Use power-of-two textures (default).
+1: Use the GL_ARB_texture_rectangle extension.
+2: Use the GL_ARB_texture_non_power_of_two extension. In +some cases only supported in software and thus very +slow.

+ + + + + +
+

swapinterval=<n>

+ + + + + +
+

Minimum interval between two buffer swaps, counted in +displayed frames (default: 1). 1 is equivalent to enabling +VSYNC, 0 to disabling VSYNC. Values below 0 will leave it at +the system default. This limits the framerate to (horizontal +refresh rate / n). Requires GLX_SGI_swap_control support to +work. With some (most/all?) implementations this only works +in fullscreen mode.

+ + + + + +
+

yuv=<n>

+ + + + + +
+

Select the type of YUV to RGB conversion.

+ + + + + +
+

0: Use software conversion (default). Compatible with all +OpenGL versions. Provides brightness, contrast and +saturation control.
+1: Use register combiners. This uses an nVidia-specific +extension (GL_NV_register_combiners). At least three texture +units are needed. Provides saturation and hue control. This +method is fast but inexact.
+2: Use a fragment program. Needs the GL_ARB_fragment_program +extension and at least three texture units. Provides +brightness, contrast, saturation and hue control.
+3: Use a fragment program using the POW instruction. Needs +the GL_ARB_fragment_program extension and at least three +texture units. Provides brightness, contrast, saturation, +hue and gamma control. Gamma can also be set independently +for red, green and blue. Method 4 is usually faster.
+4: Use a fragment program with additional lookup. Needs the +GL_ARB_fragment_program extension and at least four texture +units. Provides brightness, contrast, saturation, hue and +gamma control. Gamma can also be set independently for red, +green and blue.
+5: Use ATI-specific method (for older cards). This uses an +ATI-specific extension (GL_ATI_fragment_shader - not +GL_ARB_fragment_shader!). At least three texture units are +needed. Provides saturation and hue control. This method is +fast but inexact.
+6: Use a 3D texture to do conversion via lookup. Needs the +GL_ARB_fragment_program extension and at least four texture +units. Extremely slow (software emulation) on some (all?) +ATI cards since it uses a texture with border pixels. +Provides brightness, contrast, saturation, hue and gamma +control. Gamma can also be set independently for red, green +and blue. Speed depends more on GPU memory bandwidth than +other methods.

+ + + + + +
+

lscale=<n>

+ + + + + +
+

Select the scaling function to use for luminance scaling. +Only valid for yuv modes 2, 3, 4 and 6.

+ + + + + +
+

0: Use simple linear filtering (default).
+1: Use bicubic filtering (better quality). Needs one +additional texture unit. Older cards will not be able to +handle this for chroma at least in fullscreen mode.
+2: Use cubic filtering in horizontal, linear filtering in +vertical direction. Works on a few more cards than method +1.

+ + + + + +
+

cscale=<n>

+ + + + + +
+

Select the scaling function to use for chrominance +scaling. For details see lscale.

+ + + + + +
+

customprog=<filename>

+ + + + + +
+

Load a custom fragment program from <filename>. See +TOOLS/edgedect.fp for an example.

+ + + + + +
+

customtex=<filename>

+ + + + + +
+

Load a custom "gamma ramp" texture from +<filename>. This can be used in combination with yuv=4 +or with the customprog option.

+ + + + + +
+

(no)customtlin

+ + + + + +
+

If enabled (default) use GL_LINEAR interpolation, +otherwise use GL_NEAREST for customtex texture.

+ + + + + +
+

(no)customtrect

+ + + + + +
+

If enabled, use texture_rectangle for customtex texture. +Default is disabled.

+ + + + + +
+

Normally there is no reason to use the following options, +they mostly exist for testing purposes.

+ + + + + +
+

(no)glfinish

+ + + + + +
+

Call glFinish() before swapping buffers. Slower but in +some cases more correct output (default: disabled).

+ + + + + +
+

(no)manyfmts

+ + + + + +
+

Enables support for more (RGB and BGR) color formats +(default: enabled). Needs OpenGL version >= 1.2.

+ + + + + +
+

slice-height=<0−...>

+ + + + + +
+

Number of lines copied to texture in one piece (default: +0). 0 for whole image.
+NOTE:
If YUV colorspace is used (see yuv suboption), +special rules apply:

+ + + + + +
+

If the decoder uses slice rendering (see +−noslices), this setting has no effect, the size of +the slices as provided by the decoder is used.
+If the decoder does not use slice rendering, the default is +16.

+ + + + + +
+

(no)osd

+ + + + + +
+

Enable or disable support for OSD rendering via OpenGL +(default: enabled). This option is for testing; to disable +the OSD use −osdlevel 0 instead.

+ + + + + +
+

(no)aspect

+ + + + + +
+

Enable or disable aspect scaling and pan-and-scan support +(default: enabled). Disabling might increase speed.

+ + + + + +
+

gl2

+ + + + + +
+

OpenGL video output driver, second generation. Supports +OSD and videos larger than the maximum texture +size.

+ + + + + +
+

(no)glfinish

+ + + + + +
+

same as gl (default: enabled)

+ + + + + +
+

yuv=<n>

+ + + + + +
+

Select the type of YUV to RGB conversion. If set to +anything except 0 OSD will be disabled and brightness, +contrast and gamma setting is only available via the global +X server settings. Apart from this the values have the same +meaning as for −vo gl.

+ + + + + +
+

null

+ + + + + +
+

Produces no video output. Useful for benchmarking.

+
+ + + + + +
+

aa

+ + + + + +
+

ASCII art video output driver that works on a text +console. You can get a list and an explanation of available +suboptions executing mplayer −vo aa:help
+NOTE:
Driver does not not handle −aspect +correctly.
+HINT:
You probably have to specify +−monitorpixelaspect. Try mplayer -vo aa +-monitorpixelaspect 0.5.

+
+ + + + + +
+

caca

+ + + + + +
+

Color ASCII art video output driver that works on a text +console.

+
+ + + + + +
+

bl

+ + + + + +
+

Video playback using the Blinkenlights UDP protocol. This +driver is highly hardware specific.

+ + + + + +
+

<subdevice>

+ + + + + +
+

Explicitly choose the Blinkenlights subdevice driver to +use. It is something like arcade:host=localhost:2323 or +hdl:file=name1,file=name2. You must specify a +subdevice.

+ + + + + +
+

ggi

+ + + + + +
+

GGI graphics system video output driver

+ + + + + +
+

<driver>

+ + + + + +
+

Explicitly choose the GGI driver to use. Replace any +’,’ that would appear in the driver string by a +’.’.

+ + + + + +
+

directfb

+ + + + + +
+

Play video using the DirectFB library.

+ + + + + +
+

(no)input

+ + + + + +
+

Use the DirectFB instead of the MPlayer keyboard code +(default: enabled).

+ + + + + +
+

buffermode=single|double|triple

+ + + + + +
+

Double and triple buffering give best results if you want +to avoid tearing issues. Triple buffering is more efficient +than double buffering as it does not block MPlayer while +waiting for the vertical retrace. Single buffering should be +avoided (default: single).

+ + + + + +
+

fieldparity=top|bottom

+ + + + + +
+

Control the output order for interlaced frames (default: +disabled). Valid values are top = top fields first, bottom = +bottom fields first. This option does not have any effect on +progressive film material like most MPEG movies are. You +need to enable this option if you have tearing issues or +unsmooth motions watching interlaced film material.

+ + + + + +
+

layer=N

+ + + + + +
+

Will force layer with ID N for playback (default: -1 - +auto).

+ + + + + +
+

dfbopts=<list>

+ + + + + +
+

Specify a parameter list for DirectFB.

+ + + + + +
+

dfbmga

+ + + + + +
+

Matrox G400/G450/G550 specific video output driver that +uses the DirectFB library to make use of special hardware +features. Enables CRTC2 (second head), displaying video +independently of the first head.

+ + + + + +
+

(no)input

+ + + + + +
+

same as directfb (default: disabled)

+ + + + + +
+

buffermode=single|double|triple

+ + + + + +
+

same as directfb (default: triple)

+ + + + + +
+

fieldparity=top|bottom

+ + + + + +
+

same as directfb

+ + + + + +
+

(no)bes

+ + + + + +
+

Enable the use of the Matrox BES (backend scaler) +(default: disabled). Gives very good results concerning +speed and output quality as interpolated picture processing +is done in hardware. Works only on the primary +head.

+ + + + + +
+

(no)spic

+ + + + + +
+

Make use of the Matrox sub picture layer to display the +OSD (default: enabled).

+ + + + + +
+

(no)crtc2

+ + + + + +
+

Turn on TV-out on the second head (default: enabled). The +output quality is amazing as it is a full interlaced picture +with proper sync to every odd/even field.

+ + + + + +
+

tvnorm=pal|ntsc|auto

+ + + + + +
+

Will set the TV norm of the Matrox card without the need +for modifying /etc/directfbrc (default: disabled). Valid +norms are pal = PAL, ntsc = NTSC. Special norm is auto +(auto-adjust using PAL/NTSC) because it decides which norm +to use by looking at the framerate of the movie.

+ + + + + +
+

mga (Linux only)

+ + + + + +
+

Matrox specific video output driver that makes use of the +YUV back end scaler on Gxxx cards through a kernel module. +If you have a Matrox card, this is the fastest +option.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the Matrox device name to use (default: +/dev/mga_vid).

+ + + + + +
+

xmga (Linux, X11 only)

+ + + + + +
+

The mga video output driver, running in an X11 +window.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the Matrox device name to use (default: +/dev/mga_vid).

+ + + + + +
+

s3fb (Linux only) (see also −vf yuv2 and +−dr)

+ + + + + +
+

S3 Virge specific video output driver. This driver +supports the card’s YUV conversion and scaling, double +buffering and direct rendering features. Use −vf yuy2 +to get hardware-accelerated YUY2 rendering, which is much +faster than YV12 on this card.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

3dfx (Linux only)

+ + + + + +
+

3dfx-specific video output driver that directly uses the +hardware on top of X11. Only 16 bpp are supported.

+
+ + + + + +
+

tdfxfb (Linux only)

+ + + + + +
+

This driver employs the tdfxfb framebuffer driver to play +movies with YUV acceleration on 3dfx cards.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the fbdev device name to use (default: +/dev/fb0).

+ + + + + +
+

tdfx_vid (Linux only)

+ + + + + +
+

3dfx-specific video output driver that works in +combination with the tdfx_vid kernel module.

+ + + + + +
+

<device>

+ + + + + +
+

Explicitly choose the device name to use (default: +/dev/tdfx_vid).

+ + + + + +
+

dxr2 (also see −dxr2) (DXR2 only)

+ + + + + +
+

Creative DXR2 specific video output driver.

+ + + + + +
+

<vo_driver>

+ + + + + +
+

Output video subdriver to use as overlay (x11, +xv).

+ + + + + +
+

dxr3 (DXR3 only)

+ + + + + +
+

Sigma Designs em8300 MPEG decoder chip (Creative DXR3, +Sigma Designs Hollywood Plus) specific video output driver. +Also see the lavc video filter.

+ + + + + +
+

overlay

+ + + + + +
+

Activates the overlay instead of TVOut.

+ + + + + +
+

prebuf

+ + + + + +
+

Turns on prebuffering.

+ + + + + +
+

sync

+ + + + + +
+

Will turn on the new sync-engine.

+ + + + + +
+

norm=<norm>

+ + + + + +
+

Specifies the TV norm.

+ + + + + +
+

0: Does not change current norm (default).
+1: Auto-adjust using PAL/NTSC.
+2: Auto-adjust using PAL/PAL-60.
+3: PAL
+4: PAL-60
+5: NTSC

+ + + + + +
+

<0−3>

+ + + + + +
+

Specifies the device number to use if you have more than +one em8300 card.

+ + + + + +
+

ivtv (IVTV only)

+ + + + + +
+

Conexant CX23415 (iCompression iTVC15) or Conexant +CX23416 (iCompression iTVC16) MPEG decoder chip (Hauppauge +WinTV PVR-150/250/350/500) specific video output driver for +TV-Out. Also see the lavc video filter.

+ + + + + +
+

device

+ + + + + +
+

Explicitly choose the MPEG decoder device name to use +(default: /dev/video16).

+ + + + + +
+

output

+ + + + + +
+

Explicitly choose the TV-Out output to be used for the +video signal.

+ + + + + +
+

v4l2 (requires Linux 2.6.22+ kernel)

+ + + + + +
+

Video output driver for V4L2 compliant cards with +built-in hardware MPEG decoder. Also see the lavc video +filter.

+ + + + + +
+

device

+ + + + + +
+

Explicitly choose the MPEG decoder device name to use +(default: /dev/video16).

+ + + + + +
+

output

+ + + + + +
+

Explicitly choose the TV-Out output to be used for the +video signal.

+ + + + + +
+

mpegpes (DVB only)

+ + + + + +
+

Video output driver for DVB cards that writes the output +to an MPEG-PES file if no DVB card is installed.

+ + + + + +
+

card=<1−4>

+ + + + + +
+

Specifies the device number to use if you have more than +one DVB output card (V3 API only, such as 1.x.y series +drivers).

+ + + + + +
+

<filename>

+ + + + + +
+

output filename (default: ./grab.mpg)

+ + + + + +
+

zr (also see −zr* and +−zrhelp)

+ + + + + +
+

Video output driver for a number of MJPEG +capture/playback cards.

+
+ + + + + +
+

zr2 (also see the zrmjpeg video filter)

+ + + + + +
+

Video output driver for a number of MJPEG +capture/playback cards, second generation.

+ + + + + +
+

dev=<device>

+ + + + + +
+

Specifies the video device to use.

+ + + + + +
+

norm=<PAL|NTSC|SECAM|auto>

+ + + + + +
+

Specifies the video norm to use (default: auto).

+ + + + + +
+

(no)prebuf

+ + + + + +
+

(De)Activate prebuffering, not yet supported.

+ + + + + +
+

md5sum

+ + + + + +
+

Calculate MD5 sums of each frame and write them to a +file. Supports RGB24 and YV12 colorspaces. Useful for +debugging.

+ + + + + +
+

outfile=<value>

+ + + + + +
+

Specify the output filename (default: +./md5sums).

+ + + + + +
+

yuv4mpeg

+ + + + + +
+

Transforms the video stream into a sequence of +uncompressed YUV 4:2:0 images and stores it in a file +(default: ./stream.yuv). The format is the same as the one +employed by mjpegtools, so this is useful if you want to +process the video with the mjpegtools suite. It supports the +YV12, RGB (24 bpp) and BGR (24 bpp) format. You can combine +it with the −fixed-vo option to concatenate files with +the same dimensions and fps value.

+ + + + + +
+

interlaced

+ + + + + +
+

Write the output as interlaced frames, top field +first.

+ + + + + +
+

interlaced_bf

+ + + + + +
+

Write the output as interlaced frames, bottom field +first.

+ + + + + +
+

file=<filename>

+ + + + + +
+

Write the output to <filename> instead of the +default stream.yuv.

+ + + + + +
+

NOTE: If you do not specify any option the output +is progressive (i.e. not interlaced).

+ + + + + +
+

gif89a

+ + + + + +
+

Output each frame into a single animated GIF file in the +current directory. It supports only RGB format with 24 bpp +and the output is converted to 256 colors.

+ + + + + +
+

<fps>

+ + + + + +
+

Float value to specify framerate (default: 5.0).

+ + + + + +
+

<output>

+ + + + + +
+

Specify the output filename (default: +./out.gif).

+ + + + + +
+

NOTE: You must specify the framerate before the +filename or the framerate will be part of the filename.

+ +

EXAMPLE:

+ + + + + +
+

mplayer video.nut −vo +gif89a:fps=15:output=test.gif

+ + + + + +
+

jpeg

+ + + + + +
+

Output each frame into a JPEG file in the current +directory. Each file takes the frame number padded with +leading zeros as name.

+ + + + + +
+

[no]progressive

+ + + + + +
+

Specify standard or progressive JPEG (default: +noprogressive).

+ + + + + +
+

[no]baseline

+ + + + + +
+

Specify use of baseline or not (default: +baseline).

+ + + + + +
+

optimize=<0−100>

+ + + + + +
+

optimization factor (default: 100)

+ + + + + +
+

smooth=<0−100>

+ + + + + +
+

smooth factor (default: 0)

+ + + + + +
+

quality=<0−100>

+ + + + + +
+

quality factor (default: 75)

+ + + + + +
+

outdir=<dirname>

+ + + + + +
+

Specify the directory to save the JPEG files to (default: +./).

+ + + + + +
+

subdirs=<prefix>

+ + + + + +
+

Create numbered subdirectories with the specified prefix +to save the files in instead of the current +directory.

+ + + + + +
+

maxfiles=<value> (subdirs only)

+ + + + + +
+

Maximum number of files to be saved per subdirectory. +Must be equal to or larger than 1 (default: 1000).

+ + + + + +
+

pnm

+ + + + + +
+

Output each frame into a PNM file in the current +directory. Each file takes the frame number padded with +leading zeros as name. It supports PPM, PGM and PGMYUV files +in both raw and ASCII mode. Also see pnm(5), ppm(5) and +pgm(5).

+ + + + + +
+

ppm

+ + + + + +
+

Write PPM files (default).

+ + + + + +
+

pgm

+ + + + + +
+

Write PGM files.

+ + + + + +
+

pgmyuv

+ + + + + +
+

Write PGMYUV files. PGMYUV is like PGM, but it also +contains the U and V plane, appended at the bottom of the +picture.

+ + + + + +
+

raw

+ + + + + +
+

Write PNM files in raw mode (default).

+ + + + + +
+

ascii

+ + + + + +
+

Write PNM files in ASCII mode.

+ + + + + +
+

outdir=<dirname>

+ + + + + +
+

Specify the directory to save the PNM files to (default: +./).

+ + + + + +
+

subdirs=<prefix>

+ + + + + +
+

Create numbered subdirectories with the specified prefix +to save the files in instead of the current +directory.

+ + + + + +
+

maxfiles=<value> (subdirs only)

+ + + + + +
+

Maximum number of files to be saved per subdirectory. +Must be equal to or larger than 1 (default: 1000).

+ + + + + +
+

png

+ + + + + +
+

Output each frame into a PNG file in the current +directory. Each file takes the frame number padded with +leading zeros as name. 24bpp RGB and BGR formats are +supported.

+ + + + + +
+

z=<0-9>

+ + + + + +
+

Specifies the compression level. 0 is no compression, 9 +is maximum compression.

+ + + + + +
+

tga

+ + + + + +
+

Output each frame into a Targa file in the current +directory. Each file takes the frame number padded with +leading zeros as name. The purpose of this video output +driver is to have a simple lossless image writer to use +without any external library. It supports the BGR[A] color +format, with 15, 24 and 32 bpp. You can force a particular +format with the format video filter.

+ +

EXAMPLE:

+ + + + + +
+

mplayer video.nut −vf format=bgr15 −vo +tga

+ +

DECODING/FILTERING OPTIONS

+ + + + + +
+

−ac +<[-|+]codec1,[-|+]codec2,...[,]>

+ + + + + +
+

Specify a priority list of audio codecs to be used, +according to their codec name in codecs.conf. Use a +’-’ before the codec name to omit it. Use a +’+’ before the codec name to force it, this will +likely crash! If the list has a trailing ’,’ +MPlayer will fall back on codecs not contained in the +list.
+NOTE:
See −ac help for a full list of available +codecs.

+ +

EXAMPLE:

+ + + + + +
+

−ac mp3acm

+ + + + + +
+

Force the l3codeca.acm MP3 codec.

+ + + + + +
+

−ac mad,

+ + + + + +
+

Try libmad first, then fall back on others.

+ + + + + +
+

−ac hwac3,a52,

+ + + + + +
+

Try hardware AC-3 passthrough, software AC-3, then +others.

+ + + + + +
+

−ac hwdts,

+ + + + + +
+

Try hardware DTS passthrough, then fall back on +others.

+ + + + + +
+

−ac -ffmp3,

+ + + + + +
+

Skip FFmpeg’s MP3 decoder.

+ + + + + +
+

−af-adv <force=(0−7):list=(filters)> +(also see −af)

+ + + + + +
+

Specify advanced audio filter options:

+ + + + + +
+

force=<0−7>

+ + + + + +
+

Forces the insertion of audio filters to one of the +following:

+ + + + + +
+

0: Use completely automatic filter insertion.
+1: Optimize for accuracy (default).
+2: Optimize for speed. Warning: Some features in the +audio filters may silently fail, and the sound quality may +drop.
+3: Use no automatic insertion of filters and no +optimization. Warning: It may be possible to crash +MPlayer using this setting.
+4: Use automatic insertion of filters according to 0 above, +but use floating point processing when possible.
+5: Use automatic insertion of filters according to 1 above, +but use floating point processing when possible.
+6: Use automatic insertion of filters according to 2 above, +but use floating point processing when possible.
+7: Use no automatic insertion of filters according to 3 +above, and use floating point processing when +possible.

+ + + + + +
+

list=<filters>

+ + + + + +
+

Same as −af.

+ + + + + +
+

−afm <driver1,driver2,...>

+ + + + + +
+

Specify a priority list of audio codec families to be +used, according to their codec name in codecs.conf. Falls +back on the default codecs if none of the given codec +families work.
+NOTE:
See −afm help for a full list of available +codec families.

+ +

EXAMPLE:

+ + + + + +
+

−afm ffmpeg

+ + + + + +
+

Try FFmpeg’s libavcodec codecs first.

+ + + + + +
+

−afm acm,dshow

+ + + + + +
+

Try Win32 codecs first.

+ + + + + +
+

−aspect <ratio> (also see +−zoom)

+ + + + + +
+

Override movie aspect ratio, in case aspect information +is incorrect or missing in the file being played.

+ +

EXAMPLE:

+ + + + + +
+

−aspect 4:3 or −aspect 1.3333
+−aspect 16:9 or −aspect 1.7777

+ + + + + +
+

−noaspect

+ + + + + +
+

Disable automatic movie aspect ratio compensation.

+
+ + + + + +
+

−field-dominance <-1−1>

+ + + + + +
+

Set first field for interlaced content. Useful for +deinterlacers that double the framerate: −vf +tfields=1, −vf yadif=1 and −vo +xvmc:bobdeint.

+ + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

auto (default): If the decoder does not export the +appropriate information, it falls back to 0 (top field +first).

+
+ +

0

+
+ +

top field first

+
+ +

1

+
+ +

bottom field first

+
+ + + + + +
+

−flip

+ + + + + +
+

Flip image upside-down.

+
+ + + + + +
+

−lavdopts <option1:option2:...> (DEBUG +CODE)

+ + + + + +
+

Specify libavcodec decoding parameters. Separate multiple +options with a colon.

+ +

EXAMPLE:

+ + + + + +
+

−lavdopts +gray:skiploopfilter=all:skipframe=nonref

+ + + + + +
+

Available options are:

+ + + + + +
+

bitexact

+ + + + + +
+

Only use bit-exact algorithms in all decoding steps (for +codec testing).

+
+ + + + + +
+

bug=<value>

+ + + + + +
+

Manually work around encoder bugs.

+ + + + + +
+

0: nothing
+1: autodetect bugs (default)
+2 (msmpeg4v3): some old lavc generated msmpeg4v3 files (no +autodetection)
+4 (mpeg4): Xvid interlacing bug (autodetected if +fourcc==XVIX)
+8 (mpeg4): UMP4 (autodetected if fourcc==UMP4)
+16 (mpeg4): padding bug (autodetected)
+32 (mpeg4): illegal vlc bug (autodetected per fourcc)
+64 (mpeg4): Xvid and DivX qpel bug (autodetected per +fourcc/version)
+128 (mpeg4): old standard qpel (autodetected per +fourcc/version)
+256 (mpeg4): another qpel bug (autodetected per +fourcc/version)
+512 (mpeg4): direct-qpel-blocksize bug (autodetected per +fourcc/version)
+1024 (mpeg4): edge padding bug (autodetected per +fourcc/version)

+ + + + + +
+

debug=<value>

+ + + + + +
+

Display debugging information.

+ + + + + +
+

0: disabled
+1: picture info
+2: rate control
+4: bitstream
+8: macroblock (MB) type
+16: per-block quantization parameter (QP)
+32: motion vector
+0x0040: motion vector visualization (use +−noslices)
+0x0080: macroblock (MB) skip
+0x0100: startcode
+0x0200: PTS
+0x0400: error resilience
+0x0800: memory management control operations (H.264)
+0x1000: bugs
+0x2000: Visualize quantization parameter (QP), lower QP are +tinted greener.
+0x4000: Visualize block types.

+ + + + + +
+

ec=<value>

+ + + + + +
+

Set error concealment strategy.

+ + + + + +
+

1: Use strong deblock filter for damaged MBs.
+2: iterative motion vector (MV) search (slow)
+3: all (default)

+ + + + + +
+

er=<value>

+ + + + + +
+

Set error resilience strategy.

+ + + + + +
+

0: disabled
+1: careful (Should work with broken encoders.)
+2: normal (default) (Works with compliant encoders.)
+3: aggressive (More checks, but might cause problems even +for valid bitstreams.)
+4: very aggressive

+ + + + + +
+

fast (MPEG-2, MPEG-4, and H.264 only)

+ + + + + +
+

Enable optimizations which do not comply to the +specification and might potentially cause problems, like +simpler dequantization, simpler motion compensation, +assuming use of the default quantization matrix, assuming +YUV 4:2:0 and skipping a few checks to detect damaged +bitstreams.

+
+ + + + + +
+

gray

+ + + + + +
+

grayscale only decoding (a bit faster than with +color)

+
+ + + + + +
+

idct=<0−99> (see −lavcopts)

+ + + + + +
+

For best decoding quality use the same IDCT algorithm for +decoding and encoding. This may come at a price in accuracy, +though.

+
+ + + + + +
+

lowres=<number>[,<w>]

+ + + + + +
+

Decode at lower resolutions. Low resolution decoding is +not supported by all codecs, and it will often result in +ugly artifacts. This is not a bug, but a side effect of not +decoding at full resolution.

+ + + + + +
+

0: disabled
+1: 1/2 resolution
+2: 1/4 resolution
+3: 1/8 resolution

+ + + + + +
+

If <w> is specified lowres decoding will be used +only if the width of the video is major than or equal to +<w>.

+ + + + + +
+

sb=<number> (MPEG-2 only)

+ + + + + +
+

Skip the given number of macroblock rows at the +bottom.

+
+ + + + + +
+

st=<number> (MPEG-2 only)

+ + + + + +
+

Skip the given number of macroblock rows at the top.

+
+ + + + + +
+

skiploopfilter=<skipvalue> (H.264 only)

+ + + + + +
+

Skips the loop filter (AKA deblocking) during H.264 +decoding. Since the filtered frame is supposed to be used as +reference for decoding dependent frames this has a worse +effect on quality than not doing deblocking on e.g. MPEG-2 +video. But at least for high bitrate HDTV this provides a +big speedup with no visible quality loss.

+ +

<skipvalue> can be either one of the +following:

+ + + + + +
+

none: Never skip.
+default: Skip useless processing steps (e.g. 0 size packets +in AVI).
+nonref: Skip frames that are not referenced (i.e. not used +for decoding other frames, the error cannot "build +up").
+bidir: Skip B-Frames.
+nonkey: Skip all frames except keyframes.
+all: Skip all frames.

+ + + + + +
+

skipidct=<skipvalue> (MPEG-1/2 only)

+ + + + + +
+

Skips the IDCT step. This degrades quality a lot of in +almost all cases (see skiploopfilter for available skip +values).

+
+ + + + + +
+

skipframe=<skipvalue>

+ + + + + +
+

Skips decoding of frames completely. Big speedup, but +jerky motion and sometimes bad artifacts (see skiploopfilter +for available skip values).

+
+ + + + + +
+

threads=<1−8> (MPEG-1/2 only)

+ + + + + +
+

number of threads to use for decoding (default: 1)

+
+ + + + + +
+

vismv=<value>

+ + + + + +
+

Visualize motion vectors.

+ + + + + +
+

0: disabled
+1: Visualize forward predicted MVs of P-frames.
+2: Visualize forward predicted MVs of B-frames.
+4: Visualize backward predicted MVs of B-frames.

+ + + + + +
+

vstats

+ + + + + +
+

Prints some statistics and stores them in +./vstats_*.log.

+ + + + + +
+

−noslices

+ + + + + +
+

Disable drawing video by 16-pixel height slices/bands, +instead draws the whole frame in a single run. May be faster +or slower, depending on video card and available cache. It +has effect only with libmpeg2 and libavcodec codecs.

+
+ + + + + +
+

−nosound

+ + + + + +
+

Do not play/encode sound. Useful for benchmarking.

+
+ + + + + +
+

−novideo

+ + + + + +
+

Do not play/encode video. In many cases this will not +work, use −vc null −vo null instead.

+
+ + + + + +
+

−pp <quality> (also see −vf +pp)

+ + + + + +
+

Set the DLL postprocess level. This option is no longer +usable with −vf pp. It only works with Win32 +DirectShow DLLs with internal postprocessing routines. The +valid range of −pp values varies by codec, it is +mostly 0−6, where 0=disable, 6=slowest/best.

+
+ + + + + +
+

−pphelp (also see −vf pp)

+ + + + + +
+

Show a summary about the available postprocess filters +and their usage.

+
+ + + + + +
+

−ssf <mode>

+ + + + + +
+

Specifies software scaler parameters.

+ +

EXAMPLE:

+ + + + + +
+

−vf scale −ssf lgb=3.0

+ + + + + +
+

lgb=<0−100>

+ + + + + +
+

gaussian blur filter (luma)

+ + + + + +
+

cgb=<0−100>

+ + + + + +
+

gaussian blur filter (chroma)

+ + + + + +
+

ls=<-100−100>

+ + + + + +
+

sharpen filter (luma)

+ + + + + +
+

cs=<-100−100>

+ + + + + +
+

sharpen filter (chroma)

+ + + + + +
+

chs=<h>

+ + + + + +
+

chroma horizontal shifting

+ + + + + +
+

cvs=<v>

+ + + + + +
+

chroma vertical shifting

+ + + + + +
+

−stereo <mode>

+ + + + + +
+

Select type of MP2/MP3 stereo output.

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

stereo

+
+
+ +

1

+
+ +

left channel

+
+
+ +

2

+
+ +

right channel

+
+
+ + + + + +
+

−sws <software scaler type> (also see +−vf scale and −zoom)

+ + + + + +
+

Specify the software scaler algorithm to be used with the +−zoom option. This affects video output drivers which +lack hardware acceleration, e.g. x11.

+ +

Available types are:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

fast bilinear

+
+
+ +

1

+
+ +

bilinear

+
+
+ +

2

+
+ +

bicubic (good quality) (default)

+
+
+ +

3

+
+ +

experimental

+
+
+ +

4

+
+ +

nearest neighbor (bad quality)

+
+
+ +

5

+
+ +

area

+
+
+ +

6

+
+ +

luma bicubic / chroma bilinear

+
+
+ +

7

+
+ +

gauss

+
+
+ +

8

+
+ +

sincR

+
+
+ +

9

+
+ +

lanczos

+
+
+ +

10

+
+ +

natural bicubic spline

+
+
+ + + + + +
+

NOTE: Some −sws options are tunable. The +description of the scale video filter has further +information.

+ + + + + +
+

−vc +<[-|+]codec1,[-|+]codec2,...[,]>

+ + + + + +
+

Specify a priority list of video codecs to be used, +according to their codec name in codecs.conf. Use a +’-’ before the codec name to omit it. Use a +’+’ before the codec name to force it, this will +likely crash! If the list has a trailing ’,’ +MPlayer will fall back on codecs not contained in the +list.
+NOTE:
See −vc help for a full list of available +codecs.

+ +

EXAMPLE:

+ + + + + +
+

−vc divx

+ + + + + +
+

Force Win32/VfW DivX codec, no fallback.

+ + + + + +
+

−vc -divxds,-divx,

+ + + + + +
+

Skip Win32 DivX codecs.

+ + + + + +
+

−vc ffmpeg12,mpeg12,

+ + + + + +
+

Try libavcodec’s MPEG-1/2 codec, then libmpeg2, +then others.

+ + + + + +
+

−vfm <driver1,driver2,...>

+ + + + + +
+

Specify a priority list of video codec families to be +used, according to their names in codecs.conf. Falls back on +the default codecs if none of the given codec families +work.
+NOTE:
See −vfm help for a full list of available +codec families.

+ +

EXAMPLE:

+ + + + + +
+

−vfm ffmpeg,dshow,vfw

+ + + + + +
+

Try the libavcodec, then Directshow, then VfW codecs and +fall back on others, if they do not work.

+ + + + + +
+

−vfm xanim

+ + + + + +
+

Try XAnim codecs first.

+ + + + + +
+

−x <x> (also see −zoom) (MPlayer +only)

+ + + + + +
+

Scale image to width <x> (if software/hardware +scaling is available). Disables aspect calculations.

+
+ + + + + +
+

−xvidopts +<option1:option2:...>

+ + + + + +
+

Specify additional parameters when decoding with +Xvid.
+NOTE:
Since libavcodec is faster than Xvid you might +want to use the libavcodec postprocessing filter (−vf +pp) and decoder (−vfm ffmpeg) instead.

+ +

Xvid’s internal postprocessing filters:

+ + + + + +
+

deblock-chroma (also see −vf pp)

+ + + + + +
+

chroma deblock filter

+ + + + + +
+

deblock-luma (also see −vf pp)

+ + + + + +
+

luma deblock filter

+ + + + + +
+

dering-luma (also see −vf pp)

+ + + + + +
+

luma deringing filter

+ + + + + +
+

dering-chroma (also see −vf pp)

+ + + + + +
+

chroma deringing filter

+ + + + + +
+

filmeffect (also see −vf noise)

+ + + + + +
+

Adds artificial film grain to the video. May increase +perceived quality, while lowering true quality.

+ + + + + +
+

rendering methods:

+ + + + + +
+

dr2

+ + + + + +
+

Activate direct rendering method 2.

+ + + + + +
+

nodr2

+ + + + + +
+

Deactivate direct rendering method 2.

+ + + + + +
+

−xy <value> (also see +−zoom)

+ + + + + +
+

value<=8

+ + + + + +
+

Scale image by factor <value>.

+ + + + + +
+

value>8

+ + + + + +
+

Set width to value and calculate height to keep correct +aspect ratio.

+ + + + + +
+

−y <y> (also see −zoom) (MPlayer +only)

+ + + + + +
+

Scale image to height <y> (if software/hardware +scaling is available). Disables aspect calculations.

+
+ + + + + +
+

−zoom

+ + + + + +
+

Allow software scaling, where available. This will allow +scaling with output drivers (like x11, fbdev) that do not +support hardware scaling where MPlayer disables scaling by +default for performance reasons.

+
+ +

AUDIO FILTERS

+ + + + + +
+

Audio filters allow you to modify the audio stream and +its properties. The syntax is:

+
+ + + + + +
+

−af +<filter1[=parameter1:parameter2:...],filter2,...>

+ + + + + +
+

Setup a chain of audio filters.

+
+ + + + + +
+

NOTE: To get a full list of available audio +filters, see −af help.

+ +

Available filters are:

+
+ + + + + +
+

resample[=srate[:sloppy[:type]]]

+ + + + + +
+

Changes the sample rate of the audio stream. Can be used +if you have a fixed frequency sound card or if you are stuck +with an old sound card that is only capable of max 44.1kHz. +This filter is automatically enabled if necessary. It only +supports 16-bit integer and float in native-endian format as +input.
+NOTE:
With MEncoder, you need to also use −srate +<srate>.

+ + + + + +
+

<srate>

+ + + + + +
+

output sample frequency in Hz. The valid range for this +parameter is 8000 to 192000. If the input and output sample +frequency are the same or if this parameter is omitted the +filter is automatically unloaded. A high sample frequency +normally improves the audio quality, especially when used in +combination with other filters.

+ + + + + +
+

<sloppy>

+ + + + + +
+

Allow (1) or disallow (0) the output frequency to differ +slightly from the frequency given by <srate> (default: +1). Can be used if the startup of the playback is extremely +slow.

+ + + + + +
+

<type>

+ + + + + +
+

Selects which resampling method to use.

+ + + + + +
+

0: linear interpolation (fast, poor quality especially +when upsampling)
+1: polyphase filterbank and integer processing
+2: polyphase filterbank and floating point processing (slow, +best quality)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af resample=44100:0:0

+ + + + + +
+

would set the output frequency of the resample filter to +44100Hz using exact output frequency scaling and linear +interpolation.

+ + + + + +
+ +

lavcresample[=srate[:length[:linear[:count[:cutoff]]]]]

+ + + + + +
+

Changes the sample rate of the audio stream to an integer +<srate> in Hz. It only supports the 16-bit +native-endian format.
+NOTE:
With MEncoder, you need to also use −srate +<srate>.

+ + + + + +
+

<srate>

+ + + + + +
+

the output sample rate

+ + + + + +
+

<length>

+ + + + + +
+

length of the filter with respect to the lower sampling +rate (default: 16)

+ + + + + +
+

<linear>

+ + + + + +
+

if 1 then filters will be linearly interpolated between +polyphase entries

+ + + + + +
+

<count>

+ + + + + +
+

log2 of the number of polyphase entries (..., +10->1024, 11->2048, 12->4096, ...) (default: +10->1024)

+ + + + + +
+

<cutoff>

+ + + + + +
+

cutoff frequency (0.0-1.0), default set depending upon +filter length

+ + + + + +
+

sweep[=speed]

+ + + + + +
+

Produces a sine sweep.

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

Sine function delta, use very low values to hear the +sweep.

+ + + + + +
+

sinesuppress[=freq:decay]

+ + + + + +
+

Remove a sine at the specified frequency. Useful to get +rid of the 50/60Hz noise on low quality audio equipment. It +probably only works on mono input.

+ + + + + +
+

<freq>

+ + + + + +
+

The frequency of the sine which should be removed (in Hz) +(default: 50)

+ + + + + +
+

<decay>

+ + + + + +
+

Controls the adaptivity (a larger value will make the +filter adapt to amplitude and phase changes quicker, a +smaller value will make the adaptation slower) (default: +0.0001). Reasonable values are around 0.001.

+ + + + + +
+

hrtf[=flag]

+ + + + + +
+

Head-related transfer function: Converts multichannel +audio to 2 channel output for headphones, preserving the +spatiality of the sound.

+
+ + + + + +
+

Flag Meaning

+ + + + + +
+

m matrix decoding of the rear channel

+ + + + + +
+

s 2-channel matrix decoding

+ + + + + +
+

0 no matrix decoding (default)

+ + + + + +
+

equalizer=[g1:g2:g3:...:g10]

+ + + + + +
+

10 octave band graphic equalizer, implemented using 10 +IIR band pass filters. This means that it works regardless +of what type of audio is being played back. The center +frequencies for the 10 bands are:

+
+ + + + + +
+

No. frequency

+ + + + + +
+

0 31.25 Hz

+ + + + + +
+

1 62.50 Hz

+ + + + + +
+

2 125.00 Hz

+ + + + + +
+

3 250.00 Hz

+ + + + + +
+

4 500.00 Hz

+ + + + + +
+

5 1.00 kHz

+ + + + + +
+

6 2.00 kHz

+ + + + + +
+

7 4.00 kHz

+ + + + + +
+

8 8.00 kHz

+ + + + + +
+

9 16.00 kHz

+ + + + + +
+

If the sample rate of the sound being played is lower +than the center frequency for a frequency band, then that +band will be disabled. A known bug with this filter is that +the characteristics for the uppermost band are not +completely symmetric if the sample rate is close to the +center frequency of that band. This problem can be worked +around by upsampling the sound using the resample filter +before it reaches this filter.

+ + + + + +
+ +

<g1>:<g2>:<g3>:...:<g10>

+ + + + + +
+

floating point numbers representing the gain in dB for +each frequency band (-12−12)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af equalizer=11:11:10:5:0:-12:0:5:12:12 +media.avi

+ + + + + +
+

Would amplify the sound in the upper and lower frequency +region while canceling it almost completely around +1kHz.

+ + + + + +
+ +

channels=nch[:nr:from1:to1:from2:to2:from3:to3:...]

+ + + + + +
+

Can be used for adding, removing, routing and copying +audio channels. If only <nch> is given the default +routing is used, it works as follows: If the number of +output channels is bigger than the number of input channels +empty channels are inserted (except mixing from mono to +stereo, then the mono channel is repeated in both of the +output channels). If the number of output channels is +smaller than the number of input channels the exceeding +channels are truncated.

+ + + + + +
+

<nch>

+ + + + + +
+

number of output channels (1−6)

+ + + + + +
+

<nr>

+ + + + + +
+

number of routes (1−6)

+ + + + + +
+

<from1:to1:from2:to2:from3:to3:...>

+ + + + + +
+

Pairs of numbers between 0 and 5 that define where to +route each channel.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af channels=4:4:0:1:1:0:2:2:3:3 +media.avi

+ + + + + +
+

Would change the number of channels to 4 and set up 4 +routes that swap channel 0 and channel 1 and leave channel 2 +and 3 intact. Observe that if media containing two channels +was played back, channels 2 and 3 would contain silence but +0 and 1 would still be swapped.

+ + + + + +
+

mplayer −af channels=6:4:0:0:0:1:0:2:0:3 +media.avi

+ + + + + +
+

Would change the number of channels to 6 and set up 4 +routes that copy channel 0 to channels 0 to 3. Channel 4 and +5 will contain silence.

+ + + + + +
+

mplayer −af channels=6:6:0:4:1:0:2:1:3:2:4:3:5:5 +media.avi

+ + + + + +
+

Should make the 6-channel ffdca (DTS) output work +correctly with ALSA.

+ + + + + +
+

format[=format] (also see −format)

+ + + + + +
+

Convert between different sample formats. Automatically +enabled when needed by the sound card or another +filter.

+ + + + + +
+

<format>

+ + + + + +
+

Sets the desired format. The general form is +’sbe’, where ’s’ denotes the sign +(either ’s’ for signed or ’u’ for +unsigned), ’b’ denotes the number of bits per +sample (16, 24 or 32) and ’e’ denotes the +endianness (’le’ means little-endian, +’be’ big-endian and ’ne’ the +endianness of the computer MPlayer is running on). Valid +values (amongst others) are: ’s16le’, +’u32be’ and ’u24ne’. Exceptions to +this rule that are also valid format specifiers: u8, s8, +floatle, floatbe, floatne, mulaw, alaw, mpeg2, ac3 and +imaadpcm.

+ + + + + +
+

volume[=v[:sc]]

+ + + + + +
+

Implements software volume control. Use this filter with +caution since it can reduce the signal to noise ratio of the +sound. In most cases it is best to set the level for the PCM +sound to max, leave this filter out and control the output +level to your speakers with the master volume control of the +mixer. In case your sound card has a digital PCM mixer +instead of an analog one, and you hear distortion, use the +MASTER mixer instead. If there is an external amplifier +connected to the computer (this is almost always the case), +the noise level can be minimized by adjusting the master +level and the volume knob on the amplifier until the hissing +noise in the background is gone.
+This filter has a second feature: It measures the overall +maximum sound level and prints out that level when MPlayer +exits. This volume estimate can be used for setting the +sound level in MEncoder such that the maximum dynamic range +is utilized.
+NOTE:
This filter is not reentrant and can therefore +only be enabled once for every audio stream.

+ + + + + +
+

<v>

+ + + + + +
+

Sets the desired gain in dB for all channels in the +stream from -200dB to +60dB, where -200dB mutes the sound +completely and +60dB equals a gain of 1000 (default: +0).

+ + + + + +
+

<sc>

+ + + + + +
+

Turns soft clipping on (1) or off (0). Soft-clipping can +make the sound more smooth if very high volume levels are +used. Enable this option if the dynamic range of the +loudspeakers is very low.
+WARNING:
This feature creates distortion and should be +considered a last resort.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af volume=10.1:0 media.avi

+ + + + + +
+

Would amplify the sound by 10.1dB and hard-clip if the +sound level is too high.

+ + + + + +
+ +

pan=n[:L00:L01:L02:...L10:L11:L12:...Ln0:Ln1:Ln2:...]

+ + + + + +
+

Mixes channels arbitrarily. Basically a combination of +the volume and the channels filter that can be used to +down-mix many channels to only a few, e.g. stereo to mono or +vary the "width" of the center speaker in a +surround sound system. This filter is hard to use, and will +require some tinkering before the desired result is +obtained. The number of options for this filter depends on +the number of output channels. An example how to downmix a +six-channel file to two channels with this filter can be +found in the examples section near the end.

+ + + + + +
+

<n>

+ + + + + +
+

number of output channels (1−6)

+ + + + + +
+

<Lij>

+ + + + + +
+

How much of input channel i is mixed into output channel +j (0−1). So in principle you first have n numbers +saying what to do with the first input channel, then n +numbers that act on the second input channel etc. If you do +not specify any numbers for some input channels, 0 is +assumed.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af pan=1:0.5:0.5 media.avi

+ + + + + +
+

Would down-mix from stereo to mono.

+ + + + + +
+

mplayer −af pan=3:1:0:0.5:0:1:0.5 +media.avi

+ + + + + +
+

Would give 3 channel output leaving channels 0 and 1 +intact, and mix channels 0 and 1 into output channel 2 +(which could be sent to a subwoofer for example).

+ + + + + +
+

sub[=fc:ch]

+ + + + + +
+

Adds a subwoofer channel to the audio stream. The audio +data used for creating the subwoofer channel is an average +of the sound in channel 0 and channel 1. The resulting sound +is then low-pass filtered by a 4th order Butterworth filter +with a default cutoff frequency of 60Hz and added to a +separate channel in the audio stream.
+Warning:
Disable this filter when you are playing DVDs +with Dolby Digital 5.1 sound, otherwise this filter will +disrupt the sound to the subwoofer.

+ + + + + +
+

<fc>

+ + + + + +
+

cutoff frequency in Hz for the low-pass filter (20Hz to +300Hz) (default: 60Hz) For the best result try setting the +cutoff frequency as low as possible. This will improve the +stereo or surround sound experience.

+ + + + + +
+

<ch>

+ + + + + +
+

Determines the channel number in which to insert the +sub-channel audio. Channel number can be between 0 and 5 +(default: 5). Observe that the number of channels will +automatically be increased to <ch> if +necessary.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af sub=100:4 −channels 5 +media.avi

+ + + + + +
+

Would add a sub-woofer channel with a cutoff frequency of +100Hz to output channel 4.

+ + + + + +
+

center

+ + + + + +
+

Creates a center channel from the front channels. May +currently be low quality as it does not implement a +high-pass filter for proper extraction yet, but averages and +halves the channels instead.

+ + + + + +
+

<ch>

+ + + + + +
+

Determines the channel number in which to insert the +center channel. Channel number can be between 0 and 5 +(default: 5). Observe that the number of channels will +automatically be increased to <ch> if +necessary.

+ + + + + +
+

surround[=delay]

+ + + + + +
+

Decoder for matrix encoded surround sound like Dolby +Surround. Many files with 2 channel audio actually contain +matrixed surround sound. Requires a sound card supporting at +least 4 channels.

+ + + + + +
+

<delay>

+ + + + + +
+

delay time in ms for the rear speakers (0 to 1000) +(default: 20) This delay should be set as follows: If d1 is +the distance from the listening position to the front +speakers and d2 is the distance from the listening position +to the rear speakers, then the delay should be set to 15ms +if d1 <= d2 and to 15 + 5*(d1-d2) if d1 > d2.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af surround=15 −channels 4 +media.avi

+ + + + + +
+

Would add surround sound decoding with 15ms delay for the +sound to the rear speakers.

+ + + + + +
+

delay[=ch1:ch2:...]

+ + + + + +
+

Delays the sound to the loudspeakers such that the sound +from the different channels arrives at the listening +position simultaneously. It is only useful if you have more +than 2 loudspeakers.

+ + + + + +
+

ch1,ch2,...

+ + + + + +
+

The delay in ms that should be imposed on each channel +(floating point number between 0 and 1000).

+ + + + + +
+

To calculate the required delay for the different +channels do as follows:

+
+ + + + + + + + + + + + + + +
+ +

1.

+
+ +

Measure the distance to the loudspeakers in meters in +relation to your listening position, giving you the +distances s1 to s5 (for a 5.1 system). There is no point in +compensating for the subwoofer (you will not hear the +difference anyway).

+
+ +

2.

+
+ +

Subtract the distances s1 to s5 from the maximum +distance, i.e. s[i] = max(s) - s[i]; i = 1...5.

+
+ +

3.

+
+ +

Calculate the required delays in ms as d[i] = +1000*s[i]/342; i = 1...5.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af delay=10.5:10.5:0:0:7:0 +media.avi

+ + + + + +
+

Would delay front left and right by 10.5ms, the two rear +channels and the sub by 0ms and the center channel by +7ms.

+ + + + + +
+

export[=mmapped_file[:nsamples]]

+ + + + + +
+

Exports the incoming signal to other processes using +memory mapping (mmap()). Memory mapped areas contain a +header:

+ +
int nch                      /*number of channels*/
+int size                     /*buffer size*/
+unsigned long long counter   /*Used to keep sync, updated every
+                               time new data is exported.*/
+
+ +

The rest is payload (non-interleaved) 16 bit +data.

+ + + + + +
+

<mmapped_file>

+ + + + + +
+

file to map data to (default: ~/.mplayer/ +mplayer-af_export)

+ + + + + +
+

<nsamples>

+ + + + + +
+

number of samples per channel (default: 512)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

mplayer −af export=/tmp/mplayer-af_export:1024 +media.avi

+ + + + + +
+

Would export 1024 samples per channel to +’/tmp/mplayer-af_export’.

+ + + + + +
+

extrastereo[=mul]

+ + + + + +
+

(Linearly) increases the difference between left and +right channels which adds some sort of "live" +effect to playback.

+ + + + + +
+

<mul>

+ + + + + +
+

Sets the difference coefficient (default: 2.5). 0.0 means +mono sound (average of both channels), with 1.0 sound will +be unchanged, with -1.0 left and right channels will be +swapped.

+ + + + + +
+

volnorm[=method:target]

+ + + + + +
+

Maximizes the volume without distorting the +sound.

+ + + + + +
+

<method>

+ + + + + +
+

Sets the used method.

+ + + + + +
+

1: Use a single sample to smooth the variations via the +standard weighted mean over past samples (default).
+2: Use several samples to smooth the variations via the +standard weighted mean over past samples.

+ + + + + +
+

<target>

+ + + + + +
+

Sets the target amplitude as a fraction of the maximum +for the sample type (default: 0.25).

+ + + + + +
+

ladspa=file:label[:controls...]

+ + + + + +
+

Load a LADSPA (Linux Audio Developer’s Simple +Plugin API) plugin. This filter is reentrant, so multiple +LADSPA plugins can be used at once.

+ + + + + +
+

<file>

+ + + + + +
+

Specifies the LADSPA plugin library file. If LADSPA_PATH +is set, it searches for the specified file. If it is not +set, you must supply a fully specified pathname.

+ + + + + +
+

<label>

+ + + + + +
+

Specifies the filter within the library. Some libraries +contain only one filter, but others contain many of them. +Entering ’help’ here, will list all available +filters within the specified library, which eliminates the +use of ’listplugins’ from the LADSPA +SDK.

+ + + + + +
+

<controls>

+ + + + + +
+

Controls are zero or more floating point values that +determine the behavior of the loaded plugin (for example +delay, threshold or gain). In verbose mode (add −v to +the MPlayer command line), all available controls and their +valid ranges are printed. This eliminates the use of +’analyseplugin’ from the LADSPA SDK.

+ + + + + +
+

comp

+ + + + + +
+

Compressor/expander filter usable for microphone input. +Prevents artifacts on very loud sound and raises the volume +on very low sound. This filter is untested, maybe even +unusable.

+
+ + + + + +
+

gate

+ + + + + +
+

Noise gate filter similar to the comp audio filter. This +filter is untested, maybe even unusable.

+
+ + + + + +
+

karaoke

+ + + + + +
+

Simple voice removal filter exploiting the fact that +voice is usually recorded with mono gear and later +’center’ mixed onto the final audio stream. +Beware that this filter will turn your signal into mono. +Works well for 2 channel tracks; do not bother trying it on +anything but 2 channel stereo.

+
+ +

VIDEO FILTERS

+ + + + + +
+

Video filters allow you to modify the video stream and +its properties. The syntax is:

+
+ + + + + +
+

−vf +<filter1[=parameter1:parameter2:...],filter2,...>

+ + + + + +
+

Setup a chain of video filters.

+
+ + + + + +
+

Many parameters are optional and set to default values if +omitted. To explicitly use a default value set a parameter +to ’-1’. Parameters w:h means width x height in +pixels, x:y means x;y position counted from the upper left +corner of the bigger image.
+NOTE:
To get a full list of available video filters, see +−vf help.

+ +

Video filters are managed in lists. There are a few +commands to manage the filter list.

+
+ + + + + +
+

−vf-add +<filter1[,filter2,...]>

+ + + + + +
+

Appends the filters given as arguments to the filter +list.

+
+ + + + + +
+

−vf-pre +<filter1[,filter2,...]>

+ + + + + +
+

Prepends the filters given as arguments to the filter +list.

+
+ + + + + +
+

−vf-del <index1[,index2,...]>

+ + + + + +
+

Deletes the filters at the given indexes. Index numbers +start at 0, negative numbers address the end of the list (-1 +is the last).

+
+ + + + + +
+

−vf-clr

+ + + + + +
+

Completely empties the filter list.

+
+ + + + + +
+

With filters that support it, you can access parameters +by their name.

+
+ + + + + +
+

−vf <filter>=help

+ + + + + +
+

Prints the parameter names and parameter value ranges for +a particular filter.

+
+ + + + + +
+

−vf +<filter=named_parameter1=value1[:named_parameter2=value2:...]>

+ + + + + +
+

Sets a named parameter to the given value. Use on and off +or yes and no to set flag parameters.

+
+ + + + + +
+

Available filters are:

+
+ + + + + +
+

crop[=w:h:x:y]

+ + + + + +
+

Crops the given part of the image and discards the rest. +Useful to remove black bands from widescreen +movies.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

Cropped width and height, defaults to original width and +height.

+ + + + + +
+

<x>,<y>

+ + + + + +
+

Position of the cropped picture, defaults to +center.

+ + + + + +
+

cropdetect[=limit:round]

+ + + + + +
+

Calculates necessary cropping parameters and prints the +recommended parameters to stdout.

+ + + + + +
+

<limit>

+ + + + + +
+

Threshold, which can be optionally specified from nothing +(0) to everything (255) (default: 24).

+ + + + + +
+

<round>

+ + + + + +
+

Value which the width/height should be divisible by +(default: 16). The offset is automatically adjusted to +center the video. Use 2 to get only even dimensions (needed +for 4:2:2 video). 16 is best when encoding to most video +codecs.

+ + + + + +
+

rectangle[=w:h:x:y]

+ + + + + +
+

The plugin responds to the input.conf directive +’change_rectangle’ that takes two +parameters.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

width and height (default: -1, maximum possible width +where boundaries are still visible.)

+ + + + + +
+

<x>,<y>

+ + + + + +
+

top left corner position (default: -1, uppermost +leftmost)

+ + + + + +
+

expand[=w:h:x:y:o:a:r]

+ + + + + +
+

Expands (not scales) movie resolution to the given value +and places the unscaled original at coordinates x, y. Can be +used for placing subtitles/OSD in the resulting black +bands.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

Expanded width,height (default: original width,height). +Negative values for w and h are treated as offsets to the +original size.

+ +

EXAMPLE:

+ + + + + +
+

expand=0:-50:0:0

+ + + + + +
+

Adds a 50 pixel border to the bottom of the +picture.

+ + + + + +
+

<x>,<y>

+ + + + + +
+

position of original image on the expanded image +(default: center)

+
+ + + + + +
+

<o>

+ + + + + +
+

OSD/subtitle rendering

+ + + + + +
+

0: disable (default)
+1: enable

+ + + + + +
+

<a>

+ + + + + +
+

Expands to fit an aspect instead of a resolution +(default: 0).

+ +

EXAMPLE:

+ + + + + +
+

expand=800:::::4/3

+ + + + + +
+

Expands to 800x600, unless the source is higher +resolution, in which case it expands to fill a 4/3 +aspect.

+ + + + + +
+

<r>

+ + + + + +
+

Rounds up to make both width and height divisible by +<r> (default: 1).

+ + + + + +
+

flip (also see −flip)

+ + + + + +
+

Flips the image upside down.

+
+ + + + + +
+

mirror

+ + + + + +
+

Mirrors the image on the Y axis.

+
+ + + + + +
+

rotate[=<0−7>]

+ + + + + +
+

Rotates the image by 90 degrees and optionally flips it. +For values between 4−7 rotation is only done if the +movie geometry is portrait and not landscape.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Rotate by 90 degrees clockwise and flip (default).

+
+ +

1

+
+ +

Rotate by 90 degrees clockwise.

+
+ +

2

+
+ +

Rotate by 90 degrees counterclockwise.

+
+ +

3

+
+ +

Rotate by 90 degrees counterclockwise and flip.

+
+ + + + + +
+ +

scale[=w:h[:ilaced[:chr_drop[:par[:par2[:presize[:noup[:arnd]]]]]]]]

+ + + + + +
+

Scales the image with the software scaler (slow) and +performs a YUV<−>RGB colorspace conversion (also +see −sws).

+ + + + + +
+

<w>,<h>

+ + + + + +
+

scaled width/height (default: original +width/height)
+NOTE:
If −zoom is used, and underlying filters +(including libvo) are incapable of scaling, it defaults to +d_width/d_height!

+ + + + + +
+

0: scaled d_width/d_height
+-1: original width/height
+-2: Calculate w/h using the other dimension and the +prescaled aspect ratio.
+-3: Calculate w/h using the other dimension and the original +aspect ratio.
+-(n+8): Like -n above, but rounding the dimension to the +closest multiple of 16.

+ + + + + +
+

<ilaced>

+ + + + + +
+

Toggle interlaced scaling.

+ + + + + +
+

0: off (default)
+1: on

+ + + + + +
+

<chr_drop>

+ + + + + +
+

chroma skipping

+ + + + + +
+

0: Use all available input lines for chroma.
+1: Use only every 2. input line for chroma.
+2: Use only every 4. input line for chroma.
+3: Use only every 8. input line for chroma.

+ + + + + +
+

<par>[:<par2>] (also see −sws)

+ + + + + +
+

Set some scaling parameters depending on the type of +scaler selected with −sws.

+ + + + + +
+

−sws 2 (bicubic): B (blurring) and C (ringing)
+0.00:0.60 default
+0.00:0.75 VirtualDub’s "precise bicubic"
+0.00:0.50 Catmull-Rom spline
+0.33:0.33 Mitchell-Netravali spline
+1.00:0.00 cubic B-spline
+−sws 7 (gaussian): sharpness (0 (soft) − 100 +(sharp))
+−sws 9 (lanczos): filter length (1−10)

+ + + + + +
+

<presize>

+ + + + + +
+

Scale to preset sizes.

+ + + + + +
+

qntsc: 352x240 (NTSC quarter screen)
+qpal: 352x288 (PAL quarter screen)
+ntsc: 720x480 (standard NTSC)
+pal: 720x576 (standard PAL)
+sntsc: 640x480 (square pixel NTSC)
+spal: 768x576 (square pixel PAL)

+ + + + + +
+

<noup>

+ + + + + +
+

Disallow upscaling past the original dimensions.

+ + + + + +
+

0: Allow upscaling (default).
+1: Disallow upscaling if one dimension exceeds its original +value.
+2: Disallow upscaling if both dimensions exceed their +original values.

+ + + + + +
+

<arnd>

+ + + + + +
+

Accurate rounding for the vertical scaler, which may be +faster or slower than the default rounding.

+ + + + + +
+

0: Disable accurate rounding (default).
+1: Enable accurate rounding.

+ + + + + +
+

dsize[=aspect|w:h:aspect-method:r]

+ + + + + +
+

Changes the intended display size/aspect at an arbitrary +point in the filter chain. Aspect can be given as a fraction +(4/3) or floating point number (1.33). Alternatively, you +may specify the exact display width and height desired. Note +that this filter does not do any scaling itself; it +just affects what later scalers (software or hardware) will +do when auto-scaling to correct aspect.

+ + + + + +
+

<w>,<h>

+ + + + + +
+

New display width and height. Can also be these special +values:

+ + + + + +
+

0: original display width and height
+-1: original video width and height (default)
+-2: Calculate w/h using the other dimension and the original +display aspect ratio.
+-3: Calculate w/h using the other dimension and the original +video aspect ratio.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

dsize=800:-2

+ + + + + +
+

Specifies a display resolution of 800x600 for a 4/3 +aspect video, or 800x450 for a 16/9 aspect video.

+ + + + + +
+

<aspect-method>

+ + + + + +
+

Modifies width and height according to original aspect +ratios.

+ + + + + +
+

-1: Ignore original aspect ratio (default).
+0: Keep display aspect ratio by using <w> and +<h> as maximum resolution.
+1: Keep display aspect ratio by using <w> and +<h> as minimum resolution.
+2: Keep video aspect ratio by using <w> and <h> +as maximum resolution.
+3: Keep video aspect ratio by using <w> and <h> +as minimum resolution.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

dsize=800:600:0

+ + + + + +
+

Specifies a display resolution of at most 800x600, or +smaller, in order to keep aspect.

+ + + + + +
+

<r>

+ + + + + +
+

Rounds up to make both width and height divisible by +<r> (default: 1).

+ + + + + +
+

yuy2

+ + + + + +
+

Forces software YV12/I420/422P to YUY2 conversion. Useful +for video cards/drivers with slow YV12 but fast YUY2 +support.

+
+ + + + + +
+

yvu9

+ + + + + +
+

Forces software YVU9 to YV12 colorspace conversion. +Deprecated in favor of the software scaler.

+
+ + + + + +
+

yuvcsp

+ + + + + +
+

Clamps YUV color values to the CCIR 601 range without +doing real conversion.

+
+ + + + + +
+

rgb2bgr[=swap]

+ + + + + +
+

RGB 24/32 <−> BGR 24/32 colorspace +conversion.

+ + + + + +
+

swap

+ + + + + +
+

Also perform R <-> B swapping.

+ + + + + +
+

palette

+ + + + + +
+

RGB/BGR 8 −> 15/16/24/32bpp colorspace +conversion using palette.

+
+ + + + + +
+

format[=fourcc]

+ + + + + +
+

Restricts the colorspace for the next filter without +doing any conversion. Use together with the scale filter for +a real conversion.
+NOTE:
For a list of available formats see +format=fmt=help.

+ + + + + +
+

<fourcc>

+ + + + + +
+

format name like rgb15, bgr24, yv12, etc (default: +yuy2)

+ + + + + +
+

noformat[=fourcc]

+ + + + + +
+

Restricts the colorspace for the next filter without +doing any conversion. Unlike the format filter, this will +allow any colorspace except the one you +specify.
+NOTE:
For a list of available formats see +noformat=fmt=help.

+ + + + + +
+

<fourcc>

+ + + + + +
+

format name like rgb15, bgr24, yv12, etc (default: +yv12)

+ + + + + +
+

pp[=filter1[:option1[:option2...]]/[-]filter2...] +(also see −pphelp)

+ + + + + +
+

Enables the specified chain of postprocessing subfilters. +Subfilters must be separated by ’/’ and can be +disabled by prepending a ’−’. Each +subfilter and some options have a short and a long name that +can be used interchangeably, i.e. dr/dering are the same. +All subfilters share common options to determine their +scope:

+ + + + + +
+

a/autoq

+ + + + + +
+

Automatically switch the subfilter off if the CPU is too +slow.

+ + + + + +
+

c/chrom

+ + + + + +
+

Do chrominance filtering, too (default).

+ + + + + +
+

y/nochrom

+ + + + + +
+

Do luminance filtering only (no chrominance).

+ + + + + +
+

n/noluma

+ + + + + +
+

Do chrominance filtering only (no luminance).

+ + + + + +
+

NOTE: −pphelp shows a list of available +subfilters.

+ +

Available subfilters are

+ + + + + +
+

hb/hdeblock[:difference[:flatness]]

+ + + + + +
+

horizontal deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

vb/vdeblock[:difference[:flatness]]

+ + + + + +
+

vertical deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

ha/hadeblock[:difference[:flatness]]

+ + + + + +
+

accurate horizontal deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

va/vadeblock[:difference[:flatness]]

+ + + + + +
+

accurate vertical deblocking filter

+ + + + + +
+

<difference>: Difference factor where higher values +mean more deblocking (default: 32).
+<flatness>: Flatness threshold where lower values mean +more deblocking (default: 39).

+ + + + + +
+

The horizontal and vertical deblocking filters share the +difference and flatness values so you cannot set different +horizontal and vertical thresholds.

+
+ + + + + +
+

h1/x1hdeblock

+ + + + + +
+

experimental horizontal deblocking filter

+
+ + + + + +
+

v1/x1vdeblock

+ + + + + +
+

experimental vertical deblocking filter

+
+ + + + + +
+

dr/dering

+ + + + + +
+

deringing filter

+
+ + + + + +
+ +

tn/tmpnoise[:threshold1[:threshold2[:threshold3]]]

+ + + + + +
+

temporal noise reducer

+ + + + + +
+

<threshold1>: larger -> stronger filtering
+<threshold2>: larger -> stronger filtering
+<threshold3>: larger -> stronger filtering

+ + + + + +
+

al/autolevels[:f/fullyrange]

+ + + + + +
+

automatic brightness / contrast correction

+ + + + + +
+

f/fullyrange: Stretch luminance to +(0−255).

+ + + + + +
+

lb/linblenddeint

+ + + + + +
+

Linear blend deinterlacing filter that deinterlaces the +given block by filtering all lines with a (1 2 1) +filter.

+
+ + + + + +
+

li/linipoldeint

+ + + + + +
+

Linear interpolating deinterlacing filter that +deinterlaces the given block by linearly interpolating every +second line.

+
+ + + + + +
+

ci/cubicipoldeint

+ + + + + +
+

Cubic interpolating deinterlacing filter deinterlaces the +given block by cubically interpolating every second +line.

+
+ + + + + +
+

md/mediandeint

+ + + + + +
+

Median deinterlacing filter that deinterlaces the given +block by applying a median filter to every second line.

+
+ + + + + +
+

fd/ffmpegdeint

+ + + + + +
+

FFmpeg deinterlacing filter that deinterlaces the given +block by filtering every second line with a (-1 4 2 4 -1) +filter.

+
+ + + + + +
+

l5/lowpass5

+ + + + + +
+

Vertically applied FIR lowpass deinterlacing filter that +deinterlaces the given block by filtering all lines with a +(-1 2 6 2 -1) filter.

+
+ + + + + +
+

fq/forceQuant[:quantizer]

+ + + + + +
+

Overrides the quantizer table from the input with the +constant quantizer you specify.

+ + + + + +
+

<quantizer>: quantizer to use

+ + + + + +
+

de/default

+ + + + + +
+

default pp filter combination (hb:a,vb:a,dr:a)

+
+ + + + + +
+

fa/fast

+ + + + + +
+

fast pp filter combination (h1:a,v1:a,dr:a)

+
+ + + + + +
+

ac

+ + + + + +
+

high quality pp filter combination +(ha:a:128:7,va:a,dr:a)

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

−vf pp=hb/vb/dr/al

+ + + + + +
+

horizontal and vertical deblocking, deringing and +automatic brightness/contrast

+ + + + + +
+

−vf pp=de/-al

+ + + + + +
+

default filters without brightness/contrast +correction

+ + + + + +
+

−vf pp=default/tmpnoise:1:2:3

+ + + + + +
+

Enable default filters & temporal denoiser.

+ + + + + +
+

−vf pp=hb:y/vb:a

+ + + + + +
+

Horizontal deblocking on luminance only, and switch +vertical deblocking on or off automatically depending on +available CPU time.

+ + + + + +
+

spp[=quality[:qp[:mode]]]

+ + + + + +
+

Simple postprocessing filter that compresses and +decompresses the image at several (or − in the case of +quality level 6 − all) shifts and averages the +results.

+ + + + + +
+

<quality>

+ + + + + +
+

0−6 (default: 3)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<mode>

+ + + + + +
+

0: hard thresholding (default)
+1: soft thresholding (better deringing, but blurrier)
+4: like 0, but also use B-frames’ QP (may cause +flicker)
+5: like 1, but also use B-frames’ QP (may cause +flicker)

+ + + + + +
+

uspp[=quality[:qp]]

+ + + + + +
+

Ultra simple & slow postprocessing filter that +compresses and decompresses the image at several (or − +in the case of quality level 8 − all) shifts and +averages the results. The way this differs from the behavior +of spp is that uspp actually encodes & decodes each case +with libavcodec Snow, whereas spp uses a simplified intra +only 8x8 DCT similar to MJPEG.

+ + + + + +
+

<quality>

+ + + + + +
+

0−8 (default: 3)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+ + + + + +
+

fspp[=quality[:qp[:strength[:bframes]]]]

+ + + + + +
+

faster version of the simple postprocessing +filter

+ + + + + +
+

<quality>

+ + + + + +
+

4−5 (equivalent to spp; default: 4)

+
+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<-15−32>

+ + + + + +
+

Filter strength, lower values mean more details but also +more artifacts, while higher values make the image smoother +but also blurrier (default: 0 − PSNR optimal).

+
+ + + + + +
+

<bframes>

+ + + + + +
+

0: do not use QP from B-frames (default)
+1: use QP from B-frames too (may cause flicker)

+ + + + + +
+

pp7[=qp[:mode]]

+ + + + + +
+

Variant of the spp filter, similar to spp=6 with 7 point +DCT where only the center sample is used after +IDCT.

+ + + + + +
+

<qp>

+ + + + + +
+

Force quantization parameter (default: 0, use QP from +video).

+
+ + + + + +
+

<mode>

+ + + + + +
+

0: hard thresholding
+1: soft thresholding (better deringing, but blurrier)
+2: medium thresholding (default, good results)

+ + + + + +
+

qp=equation

+ + + + + +
+

quantization parameter (QP) change filter

+ + + + + +
+

<equation>

+ + + + + +
+

some equation like "2+2*sin(PI*qp)"

+ + + + + +
+

geq=equation

+ + + + + +
+

generic equation change filter

+ + + + + +
+

<equation>

+ + + + + +
+

Some equation, e.g. ’p(W-X\,Y)’ to flip the +image horizontally. You can use whitespace to make the +equation more readable. There are a couple of constants that +can be used in the equation:

+ + + + + +
+

PI: the number pi
+E: the number e
+X / Y: the coordinates of the current sample
+W / H: width and height of the image
+SW / SH: width/height scale depending on the currently +filtered plane, e.g. 1,1 and 0.5,0.5 for YUV 4:2:0.
+p(x,y): returns the value of the pixel at location x/y of +the current plane.

+ + + + + +
+

test

+ + + + + +
+

Generate various test patterns.

+
+ + + + + +
+

rgbtest

+ + + + + +
+

Generate an RGB test pattern useful for detecting RGB vs +BGR issues. You should see a red, green and blue stripe from +top to bottom.

+
+ + + + + +
+

lavc[=quality:fps]

+ + + + + +
+

Fast software YV12 to MPEG-1 conversion with libavcodec +for use with DVB/DXR3/IVTV/V4L2.

+ + + + + +
+

<quality>

+ + + + + +
+

1−31: fixed qscale
+32−: fixed bitrate in kbits

+
+ + + + + +
+

<fps>

+ + + + + +
+

force output fps (float value) (default: 0, autodetect +based on height)

+ + + + + +
+

dvbscale[=aspect]

+ + + + + +
+

Set up optimal scaling for DVB cards, scaling the x axis +in hardware and calculating the y axis scaling in software +to keep aspect. Only useful together with expand and +scale.

+ + + + + +
+

<aspect>

+ + + + + +
+

Control aspect ratio, calculate as DVB_HEIGHT*ASPECTRATIO +(default: 576*4/3=768), set it to 576*(16/9)=1024 for a 16:9 +TV.

+ + + + + +
+

EXAMPLE:

+ + + + + +
+

−vf +dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc

+ + + + + +
+

FIXME: Explain what this does.

+ + + + + +
+ +

noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]]

+ + + + + +
+

Adds noise.

+ + + + + +
+

<0−100>

+ + + + + +
+

luma noise

+ + + + + +
+

<0−100>

+ + + + + +
+

chroma noise

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

u

+
+ +

uniform noise (gaussian otherwise)

+
+ +

t

+
+ +

temporal noise (noise pattern changes between +frames)

+
+ +

a

+
+ +

averaged temporal noise (smoother, but a lot slower)

+
+ +

h

+
+ +

high quality (slightly better looking, slightly +slower)

+
+ +

p

+
+ +

mix random noise with a (semi)regular pattern

+
+ + + + + +
+ +

denoise3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]

+ + + + + +
+

This filter aims to reduce image noise producing smooth +images and making still images really still (This should +enhance compressibility.).

+ + + + + +
+

<luma_spatial>

+ + + + + +
+

spatial luma strength (default: 4)

+ + + + + +
+

<chroma_spatial>

+ + + + + +
+

spatial chroma strength (default: 3)

+ + + + + +
+

<luma_tmp>

+ + + + + +
+

luma temporal strength (default: 6)

+ + + + + +
+

<chroma_tmp>

+ + + + + +
+

chroma temporal strength (default: +luma_tmp*chroma_spatial/luma_spatial)

+ + + + + +
+ +

hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]

+ + + + + +
+

High precision/quality version of the denoise3d filter. +Parameters and usage are the same.

+
+ + + + + +
+

eq[=brightness:contrast] (OBSOLETE)

+ + + + + +
+

Software equalizer with interactive controls just like +the hardware equalizer, for cards/drivers that do not +support brightness and contrast controls in hardware. Might +also be useful with MEncoder, either for fixing poorly +captured movies, or for slightly reducing contrast to mask +artifacts and get by with lower bitrates.

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial brightness

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial contrast

+ + + + + +
+ +

eq2[=gamma:contrast:brightness:saturation:rg:gg:bg:weight]

+ + + + + +
+

Alternative software equalizer that uses lookup tables +(very slow), allowing gamma correction in addition to simple +brightness and contrast adjustment. Note that it uses the +same MMX optimized code as −vf eq if all gamma values +are 1.0. The parameters are given as floating point +values.

+ + + + + +
+

<0.1−10>

+ + + + + +
+

initial gamma value (default: 1.0)

+ + + + + +
+

<-2−2>

+ + + + + +
+

initial contrast, where negative values result in a +negative image (default: 1.0)

+ + + + + +
+

<-1−1>

+ + + + + +
+

initial brightness (default: 0.0)

+ + + + + +
+

<0−3>

+ + + + + +
+

initial saturation (default: 1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the red component (default: 1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the green component (default: +1.0)

+ + + + + +
+

<0.1−10>

+ + + + + +
+

gamma value for the blue component (default: +1.0)

+ + + + + +
+

<0−1>

+ + + + + +
+

The weight parameter can be used to reduce the effect of +a high gamma value on bright image areas, e.g. keep them +from getting overamplified and just plain white. A value of +0.0 turns the gamma correction all the way down while 1.0 +leaves it at its full strength (default: 1.0).

+ + + + + +
+

hue[=hue:saturation]

+ + + + + +
+

Software equalizer with interactive controls just like +the hardware equalizer, for cards/drivers that do not +support hue and saturation controls in hardware.

+ + + + + +
+

<-180−180>

+ + + + + +
+

initial hue (default: 0.0)

+ + + + + +
+

<-100−100>

+ + + + + +
+

initial saturation, where negative values result in a +negative chroma (default: 1.0)

+ + + + + +
+

halfpack[=f]

+ + + + + +
+

Convert planar YUV 4:2:0 to half-height packed 4:2:2, +downsampling luma but keeping all chroma samples. Useful for +output to low-resolution display devices when hardware +downscaling is poor quality or is not available. Can also be +used as a primitive luma-only deinterlacer with very low CPU +usage.

+ + + + + +
+

<f>

+ + + + + +
+

By default, halfpack averages pairs of lines when +downsampling. Any value different from 0 or 1 gives the +default (averaging) behavior.

+ + + + + +
+

0: Only use even lines when downsampling.
+1: Only use odd lines when downsampling.

+ + + + + +
+

ilpack[=mode]

+ + + + + +
+

When interlaced video is stored in YUV 4:2:0 formats, +chroma interlacing does not line up properly due to vertical +downsampling of the chroma channels. This filter packs the +planar 4:2:0 data into YUY2 (4:2:2) format with the chroma +lines in their proper locations, so that in any given +scanline, the luma and chroma data both come from the same +field.

+ + + + + +
+

<mode>

+ + + + + +
+

Select the sampling mode.

+ + + + + +
+

0: nearest-neighbor sampling, fast but incorrect
+1: linear interpolation (default)

+ + + + + +
+

harddup

+ + + + + +
+

Only useful with MEncoder. If harddup is used when +encoding, it will force duplicate frames to be encoded in +the output. This uses slightly more space, but is necessary +for output to MPEG files or if you plan to demux and remux +the video stream after encoding. Should be placed at or near +the end of the filter chain unless you have a good reason to +do otherwise.

+
+ + + + + +
+

softskip

+ + + + + +
+

Only useful with MEncoder. Softskip moves the frame +skipping (dropping) step of encoding from before the filter +chain to some point during the filter chain. This allows +filters which need to see all frames (inverse telecine, +temporal denoising, etc.) to function properly. Should be +placed after the filters which need to see all frames and +before any subsequent filters that are CPU-intensive.

+
+ + + + + +
+

decimate[=max:hi:lo:frac]

+ + + + + +
+

Drops frames that do not differ greatly from the previous +frame in order to reduce framerate. The main use of this +filter is for very-low-bitrate encoding (e.g. streaming over +dialup modem), but it could in theory be used for fixing +movies that were inverse-telecined incorrectly.

+ + + + + +
+

<max>

+ + + + + +
+

Sets the maximum number of consecutive frames which can +be dropped (if positive), or the minimum interval between +dropped frames (if negative).

+ + + + + +
+

<hi>,<lo>,<frac>

+ + + + + +
+

A frame is a candidate for dropping if no 8x8 region +differs by more than a threshold of <hi>, and if not +more than <frac> portion (1 meaning the whole image) +differs by more than a threshold of <lo>. Values of +<hi> and <lo> are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of +64 corresponds to 1 unit of difference for each pixel, or +the same spread out differently over the block.

+ + + + + +
+

dint[=sense:level]

+ + + + + +
+

The drop-deinterlace (dint) filter detects and drops the +first from a set of interlaced video frames.

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

relative difference between neighboring pixels (default: +0.1)

+ + + + + +
+

<0.0−1.0>

+ + + + + +
+

What part of the image has to be detected as interlaced +to drop the frame (default: 0.15).

+ + + + + +
+

lavcdeint (OBSOLETE)

+ + + + + +
+

FFmpeg deinterlacing filter, same as −vf pp=fd

+
+ + + + + +
+ +

kerndeint[=thresh[:map[:order[:sharp[:twoway]]]]]

+ + + + + +
+

Donald Graft’s adaptive kernel deinterlacer. +Deinterlaces parts of a video if a configurable threshold is +exceeded.

+ + + + + +
+

<0−255>

+ + + + + +
+

threshold (default: 10)

+ + + + + +
+

<map>

+ + + + + +
+

0: Ignore pixels exceeding the threshold (default).
+1: Paint pixels exceeding the threshold white.

+ + + + + +
+

<order>

+ + + + + +
+

0: Leave fields alone (default).
+1: Swap fields.

+ + + + + +
+

<sharp>

+ + + + + +
+

0: Disable additional sharpening (default).
+1: Enable additional sharpening.

+ + + + + +
+

<twoway>

+ + + + + +
+

0: Disable twoway sharpening (default).
+1: Enable twoway sharpening.

+ + + + + +
+

unsharp[=l|cWxH:amount[:l|cWxH:amount]]

+ + + + + +
+

unsharp mask / gaussian blur

+ + + + + +
+

l

+ + + + + +
+

Apply effect on luma component.

+
+ + + + + +
+

c

+ + + + + +
+

Apply effect on chroma components.

+
+ + + + + +
+

<width>x<height>

+ + + + + +
+

width and height of the matrix, odd sized in both +directions (min = 3x3, max = 13x11 or 11x13, usually +something between 3x3 and 7x7)

+
+ + + + + +
+

amount

+ + + + + +
+

Relative amount of sharpness/blur to add to the image (a +sane range should be -1.5−1.5).

+ + + + + +
+

<0: blur
+>0: sharpen

+ + + + + +
+

swapuv

+ + + + + +
+

Swap U & V plane.

+
+ + + + + +
+

il[=d|i][s][:[d|i][s]]

+ + + + + +
+

(De)interleaves lines. The goal of this filter is to add +the ability to process interlaced images pre-field without +deinterlacing them. You can filter your interlaced DVD and +play it on a TV without breaking the interlacing. While +deinterlacing (with the postprocessing filter) removes +interlacing permanently (by smoothing, averaging, etc) +deinterleaving splits the frame into 2 fields (so called +half pictures), so you can process (filter) them +independently and then re-interleave them.

+ + + + + + + + + + + + + + + + + + + + +
+ +

d

+
+ +

deinterleave (placing one above the other)

+
+
+ +

i

+
+ +

interleave

+
+
+ +

s

+
+ +

swap fields (exchange even & odd lines)

+
+
+ + + + + +
+

fil[=i|d]

+ + + + + +
+

(De)interleaves lines. This filter is very similar to the +il filter but much faster, the main disadvantage is that it +does not always work. Especially if combined with other +filters it may produce randomly messed up images, so be +happy if it works but do not complain if it does not for +your combination of filters.

+ + + + + + + + + + + + +
+ +

d

+
+ +

Deinterleave fields, placing them side by side.

+
+ +

i

+
+ +

Interleave fields again (reversing the effect of +fil=d).

+
+ + + + + +
+

field[=n]

+ + + + + +
+

Extracts a single field from an interlaced image using +stride arithmetic to avoid wasting CPU time. The optional +argument n specifies whether to extract the even or the odd +field (depending on whether n is even or odd).

+
+ + + + + +
+

detc[=var1=value1:var2=value2:...]

+ + + + + +
+

Attempts to reverse the ’telecine’ process to +recover a clean, non-interlaced stream at film framerate. +This was the first and most primitive inverse telecine +filter to be added to MPlayer/MEncoder. It works by latching +onto the telecine 3:2 pattern and following it as long as +possible. This makes it suitable for perfectly-telecined +material, even in the presence of a fair degree of noise, +but it will fail in the presence of complex post-telecine +edits. Development on this filter is no longer taking place, +as ivtc, pullup, and filmdint are better for most +applications. The following arguments (see syntax above) may +be used to control detc’s behavior:

+ + + + + +
+

<dr>

+ + + + + +
+

Set the frame dropping mode.

+ + + + + +
+

0: Do not drop frames to maintain fixed output framerate +(default).
+1: Always drop a frame when there have been no drops or +telecine merges in the past 5 frames.
+2: Always maintain exact 5:4 input to output frame +ratio.
+NOTE:
Use mode 1 or 2 with MEncoder.

+ + + + + +
+

<am>

+ + + + + +
+

Analysis mode.

+ + + + + +
+

0: Fixed pattern with initial frame number specified by +<fr>.
+1: aggressive search for telecine pattern (default)

+ + + + + +
+

<fr>

+ + + + + +
+

Set initial frame number in sequence. 0−2 are the +three clean progressive frames; 3 and 4 are the two +interlaced frames. The default, -1, means ’not in +telecine sequence’. The number specified here is the +type for the imaginary previous frame before the movie +starts.

+
+ + + + + +
+

<t0>, <t1>, <t2>, <t3>

+ + + + + +
+

Threshold values to be used in certain modes.

+ + + + + +
+

ivtc[=1]

+ + + + + +
+

Experimental ’stateless’ inverse telecine +filter. Rather than trying to lock on to a pattern like the +detc filter does, ivtc makes its decisions independently for +each frame. This will give much better results for material +that has undergone heavy editing after telecine was applied, +but as a result it is not as forgiving of noisy input, for +example TV capture. The optional parameter (ivtc=1) +corresponds to the dr=1 option for the detc filter, and +should be used with MEncoder but not with MPlayer. As with +detc, you must specify the correct output framerate +(−ofps 24000/1001) when using MEncoder. Further +development on ivtc has stopped, as the pullup and filmdint +filters appear to be much more accurate.

+
+ + + + + +
+

pullup[=jl:jr:jt:jb:sb:mp]

+ + + + + +
+

Third-generation pulldown reversal (inverse telecine) +filter, capable of handling mixed hard-telecine, 24000/1001 +fps progressive, and 30000/1001 fps progressive content. The +pullup filter is designed to be much more robust than detc +or ivtc, by taking advantage of future context in making its +decisions. Like ivtc, pullup is stateless in the sense that +it does not lock onto a pattern to follow, but it instead +looks forward to the following fields in order to identify +matches and rebuild progressive frames. It is still under +development, but believed to be quite accurate.

+ + + + + +
+

jl, jr, jt, and jb

+ + + + + +
+

These options set the amount of "junk" to +ignore at the left, right, top, and bottom of the image, +respectively. Left/right are in units of 8 pixels, while +top/bottom are in units of 2 lines. The default is 8 pixels +on each side.

+
+ + + + + +
+

sb (strict breaks)

+ + + + + +
+

Setting this option to 1 will reduce the chances of +pullup generating an occasional mismatched frame, but it may +also cause an excessive number of frames to be dropped +during high motion sequences. Conversely, setting it to -1 +will make pullup match fields more easily. This may help +processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames +in the output.

+
+ + + + + +
+

mp (metric plane)

+ + + + + +
+

This option may be set to 1 or 2 to use a chroma plane +instead of the luma plane for doing pullup’s +computations. This may improve accuracy on very clean source +material, but more likely will decrease accuracy, especially +if there is chroma noise (rainbow effect) or any grayscale +video. The main purpose of setting mp to a chroma plane is +to reduce CPU load and make pullup usable in realtime on +slow machines.

+ + + + + +
+

NOTE: Always follow pullup with the softskip +filter when encoding to ensure that pullup is able to see +each frame. Failure to do so will lead to incorrect output +and will usually crash, due to design limitations in the +codec/filter layer.

+ + + + + +
+

filmdint[=options]

+ + + + + +
+

Inverse telecine filter, similar to the pullup filter +above. It is designed to handle any pulldown pattern, +including mixed soft and hard telecine and limited support +for movies that are slowed down or sped up from their +original framerate for TV. Only the luma plane is used to +find the frame breaks. If a field has no match, it is +deinterlaced with simple linear approximation. If the source +is MPEG-2, this must be the first filter to allow access to +the field-flags set by the MPEG-2 decoder. Depending on the +source MPEG, you may be fine ignoring this advice, as long +as you do not see lots of "Bottom-first field" +warnings. With no options it does normal inverse telecine, +and should be used together with mencoder −fps +30000/1001 −ofps 24000/1001. When this filter is used +with mplayer, it will result in an uneven framerate during +playback, but it is still generally better than using pp=lb +or no deinterlacing at all. Multiple options can be +specified separated by /.

+ + + + + +
+

crop=<w>:<h>:<x>:<y>

+ + + + + +
+

Just like the crop filter, but faster, and works on mixed +hard and soft telecined content as well as when y is not a +multiple of 4. If x or y would require cropping fractional +pixels from the chroma planes, the crop area is extended. +This usually means that x and y must be even.

+
+ + + + + +
+

io=<ifps>:<ofps>

+ + + + + +
+

For each ifps input frames the filter will output ofps +frames. The ratio of ifps/ofps should match the +−fps/−ofps ratio. This could be used to filter +movies that are broadcast on TV at a frame rate different +from their original framerate.

+
+ + + + + +
+

luma_only=<n>

+ + + + + +
+

If n is nonzero, the chroma plane is copied unchanged. +This is useful for YV12 sampled TV, which discards one of +the chroma fields.

+
+ + + + + +
+

mmx2=<n>

+ + + + + +
+

On x86, if n=1, use MMX2 optimized functions, if n=2, use +3DNow! optimized functions, otherwise, use plain C. If this +option is not specified, MMX2 and 3DNow! are auto-detected, +use this option to override auto-detection.

+
+ + + + + +
+

fast=<n>

+ + + + + +
+

The larger n will speed up the filter at the expense of +accuracy. The default value is n=3. If n is odd, a frame +immediately following a frame marked with the +REPEAT_FIRST_FIELD MPEG flag is assumed to be progressive, +thus filter will not spend any time on soft-telecined MPEG-2 +content. This is the only effect of this flag if MMX2 or +3DNow! is available. Without MMX2 and 3DNow, if n=0 or 1, +the same calculations will be used as with n=2 or 3. If n=2 +or 3, the number of luma levels used to find the frame +breaks is reduced from 256 to 128, which results in a faster +filter without losing much accuracy. If n=4 or 5, a faster, +but much less accurate metric will be used to find the frame +breaks, which is more likely to misdetect high vertical +detail as interlaced content.

+
+ + + + + +
+

verbose=<n>

+ + + + + +
+

If n is nonzero, print the detailed metrics for each +frame. Useful for debugging.

+
+ + + + + +
+

dint_thres=<n>

+ + + + + +
+

Deinterlace threshold. Used during de-interlacing of +unmatched frames. Larger value means less deinterlacing, use +n=256 to completely turn off deinterlacing. Default is +n=8.

+
+ + + + + +
+

comb_thres=<n>

+ + + + + +
+

Threshold for comparing a top and bottom fields. Defaults +to 128.

+
+ + + + + +
+

diff_thres=<n>

+ + + + + +
+

Threshold to detect temporal change of a field. Default +is 128.

+
+ + + + + +
+

sad_thres=<n>

+ + + + + +
+

Sum of Absolute Difference threshold, default is +64.

+ + + + + +
+

softpulldown

+ + + + + +
+

This filter works only correct with MEncoder and acts on +the MPEG-2 flags used for soft 3:2 pulldown (soft telecine). +If you want to use the ivtc or detc filter on movies that +are partly soft telecined, inserting this filter before them +should make them more reliable.

+
+ + + + + +
+

divtc[=options]

+ + + + + +
+

Inverse telecine for deinterlaced video. If 3:2-pulldown +telecined video has lost one of the fields or is +deinterlaced using a method that keeps one field and +interpolates the other, the result is a juddering video that +has every fourth frame duplicated. This filter is intended +to find and drop those duplicates and restore the original +film framerate. When using this filter, you must specify +−ofps that is 4/5 of the fps of the input file and +place the softskip later in the filter chain to make sure +that divtc sees all the frames. Two different modes are +available: One pass mode is the default and is +straightforward to use, but has the disadvantage that any +changes in the telecine phase (lost frames or bad edits) +cause momentary judder until the filter can resync again. +Two pass mode avoids this by analyzing the whole video +beforehand so it will have forward knowledge about the phase +changes and can resync at the exact spot. These passes do +not correspond to pass one and two of the encoding +process. You must run an extra pass using divtc pass one +before the actual encoding throwing the resulting video +away. Use −nosound −ovc raw −o /dev/null +to avoid wasting CPU power for this pass. You may add +something like crop=2:2:0:0 after divtc to speed things up +even more. Then use divtc pass two for the actual encoding. +If you use multiple encoder passes, use divtc pass two for +all of them. The options are:

+ + + + + +
+

pass=1|2

+ + + + + +
+

Use two pass mode.

+
+ + + + + +
+

file=<filename>

+ + + + + +
+

Set the two pass log filename (default: +"framediff.log").

+
+ + + + + +
+

threshold=<value>

+ + + + + +
+

Set the minimum strength the telecine pattern must have +for the filter to believe in it (default: 0.5). This is used +to avoid recognizing false pattern from the parts of the +video that are very dark or very still.

+
+ + + + + +
+

window=<numframes>

+ + + + + +
+

Set the number of past frames to look at when searching +for pattern (default: 30). Longer window improves the +reliability of the pattern search, but shorter window +improves the reaction time to the changes in the telecine +phase. This only affects the one pass mode. The two pass +mode currently uses fixed window that extends to both future +and past.

+
+ + + + + +
+

phase=0|1|2|3|4

+ + + + + +
+

Sets the initial telecine phase for one pass mode +(default: 0). The two pass mode can see the future, so it is +able to use the correct phase from the beginning, but one +pass mode can only guess. It catches the correct phase when +it finds it, but this option can be used to fix the possible +juddering at the beginning. The first pass of the two pass +mode also uses this, so if you save the output from the +first pass, you get constant phase result.

+
+ + + + + +
+

deghost=<value>

+ + + + + +
+

Set the deghosting threshold (0−255 for one pass +mode, -255−255 for two pass mode, default 0). If +nonzero, deghosting mode is used. This is for video that has +been deinterlaced by blending the fields together instead of +dropping one of the fields. Deghosting amplifies any +compression artifacts in the blended frames, so the +parameter value is used as a threshold to exclude those +pixels from deghosting that differ from the previous frame +less than specified value. If two pass mode is used, then +negative value can be used to make the filter analyze the +whole video in the beginning of pass-2 to determine whether +it needs deghosting or not and then select either zero or +the absolute value of the parameter. Specify this option for +pass-2, it makes no difference on pass-1.

+ + + + + +
+

phase[=t|b|p|a|u|T|B|A|U][:v]

+ + + + + +
+

Delay interlaced video by one field time so that the +field order changes. The intended use is to fix PAL movies +that have been captured with the opposite field order to the +film-to-video transfer. The options are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

t

+
+ +

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field.

+
+ +

b

+
+ +

Capture bottom-first, transfer top-first. Filter will +delay the top field.

+
+ +

p

+
+ +

Capture and transfer with the same field order. This +mode only exists for the documentation of the other options +to refer to, but if you actually select it, the filter will +faithfully do nothing ;-)

+
+ +

a

+
+ +

Capture field order determined automatically by field +flags, transfer opposite. Filter selects among t and b modes +on a frame by frame basis using field flags. If no field +information is available, then this works just like u.

+
+ +

u

+
+ +

Capture unknown or varying, transfer opposite. Filter +selects among t and b on a frame by frame basis by analyzing +the images and selecting the alternative that produces best +match between the fields.

+
+ +

T

+
+ +

Capture top-first, transfer unknown or varying. Filter +selects among t and p using image analysis.

+
+ +

B

+
+ +

Capture bottom-first, transfer unknown or varying. +Filter selects among b and p using image analysis.

+
+ +

A

+
+ +

Capture determined by field flags, transfer unknown or +varying. Filter selects among t, b and p using field flags +and image analysis. If no field information is available, +then this works just like U. This is the default mode.

+
+ +

U

+
+ +

Both capture and transfer unknown or varying. Filter +selects among t, b and p using image analysis only.

+
+ +

v

+
+ +

Verbose operation. Prints the selected mode for each +frame and the average squared difference between fields for +t, b, and p alternatives.

+
+ + + + + +
+

telecine[=start]

+ + + + + +
+

Apply 3:2 ’telecine’ process to increase +framerate by 20%. This most likely will not work correctly +with MPlayer, but it can be used with ’mencoder +−fps 30000/1001 −ofps 30000/1001 −vf +telecine’. Both fps options are essential! (A/V sync +will break if they are wrong.) The optional start parameter +tells the filter where in the telecine pattern to start +(0−3).

+
+ + + + + +
+

tinterlace[=mode]

+ + + + + +
+

Temporal field interlacing − merge pairs of frames +into an interlaced frame, halving the framerate. Even frames +are moved into the upper field, odd frames to the lower +field. This can be used to fully reverse the effect of the +tfields filter (in mode 0). Available modes are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Move odd frames into the upper field, even into the +lower field, generating a full-height frame at half +framerate.

+
+ +

1

+
+ +

Only output odd frames, even frames are dropped; height +unchanged.

+
+ +

2

+
+ +

Only output even frames, odd frames are dropped; height +unchanged.

+
+ +

3

+
+ +

Expand each frame to full height, but pad alternate +lines with black; framerate unchanged.

+
+ +

4

+
+ +

Interleave even lines from even frames with odd lines +from odd frames. Height unchanged at half framerate.

+
+ + + + + +
+

tfields[=mode[:field_dominance]]

+ + + + + +
+

Temporal field separation − split fields into +frames, doubling the output framerate. Like the telecine +filter, tfields will only work properly with MEncoder, and +only if both −fps and −ofps are set to the +desired (double) framerate!

+ + + + + +
+

<mode>

+ + + + + +
+

0: Leave fields unchanged (will jump/flicker).
+1: Interpolate missing lines. (The algorithm used might not +be so good.)
+2: Translate fields by 1/4 pixel with linear interpolation +(no jump).
+4: Translate fields by 1/4 pixel with 4tap filter (higher +quality) (default).

+ + + + + +
+

<field_dominance> (DEPRECATED)

+ + + + + +
+

-1: auto (default) Only works if the decoder exports the +appropriate information and no other filters which discard +that information come before tfields in the filter chain, +otherwise it falls back to 0 (top field first).
+0: top field first
+1: bottom field first
+NOTE:
This option will possibly be removed in a future +version. Use −field-dominance instead.

+ + + + + +
+

yadif=[mode[:field_dominance]]

+ + + + + +
+

Yet another deinterlacing filter

+ + + + + +
+

<mode>

+ + + + + +
+

0: Output 1 frame for each frame.
+1: Output 1 frame for each field.
+2: Like 0 but skips spatial interlacing check.
+3: Like 1 but skips spatial interlacing check.

+ + + + + +
+

<field_dominance> (DEPRECATED)

+ + + + + +
+

Operates like tfields.
+NOTE:
This option will possibly be removed in a future +version. Use −field-dominance instead.

+ + + + + +
+

mcdeint=[mode[:parity[:qp]]]

+ + + + + +
+

Motion compensating deinterlacer. It needs one field per +frame as input and must thus be used together with tfields=1 +or yadif=1/3 or equivalent.

+ + + + + +
+

<mode>

+ + + + + +
+

0: fast
+1: medium
+2: slow, iterative motion estimation
+3: extra slow, like 2 plus multiple reference +frames

+ + + + + +
+

<parity>

+ + + + + +
+

0 or 1 selects which field to use (note: no autodetection +yet!).

+ + + + + +
+

<qp>

+ + + + + +
+

Higher values should result in a smoother motion vector +field but less optimal individual vectors.

+ + + + + +
+

boxblur=radius:power[:radius:power]

+ + + + + +
+

box blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength

+ + + + + +
+

<power>

+ + + + + +
+

number of filter applications

+ + + + + +
+ +

sab=radius:pf:colorDiff[:radius:pf:colorDiff]

+ + + + + +
+

shape adaptive blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength (~0.1−4.0) (slower if +larger)

+ + + + + +
+

<pf>

+ + + + + +
+

prefilter strength (~0.1−2.0)

+ + + + + +
+

<colorDiff>

+ + + + + +
+

maximum difference between pixels to still be considered +(~0.1−100.0)

+ + + + + +
+ +

smartblur=radius:strength:threshold[:radius:strength:threshold]

+ + + + + +
+

smart blur

+ + + + + +
+

<radius>

+ + + + + +
+

blur filter strength (~0.1−5.0) (slower if +larger)

+ + + + + +
+

<strength>

+ + + + + +
+

blur (0.0−1.0) or sharpen (-1.0−0.0)

+ + + + + +
+

<threshold>

+ + + + + +
+

filter all (0), filter flat areas (0−30) or filter +edges (-30−0)

+ + + + + +
+

perspective=x0:y0:x1:y1:x2:y2:x3:y3:t

+ + + + + +
+

Correct the perspective of movies not filmed +perpendicular to the screen.

+ + + + + +
+

<x0>,<y0>,...

+ + + + + +
+

coordinates of the top left, top right, bottom left, +bottom right corners

+ + + + + +
+

<t>

+ + + + + +
+

linear (0) or cubic resampling (1)

+ + + + + +
+

2xsai

+ + + + + +
+

Scale and smooth the image with the 2x scale and +interpolate algorithm.

+
+ + + + + +
+

1bpp

+ + + + + +
+

1bpp bitmap to YUV/BGR 8/15/16/32 conversion

+
+ + + + + +
+

down3dright[=lines]

+ + + + + +
+

Reposition and resize stereoscopic images. Extracts both +stereo fields and places them side by side, resizing them to +maintain the original movie aspect.

+ + + + + +
+

<lines>

+ + + + + +
+

number of lines to select from the middle of the image +(default: 12)

+ + + + + +
+

bmovl=hidden:opaque:fifo

+ + + + + +
+

The bitmap overlay filter reads bitmaps from a FIFO and +displays them on top of the movie, allowing some +transformations on the image. Also see TOOLS/bmovl-test.c +for a small bmovl test program.

+ + + + + +
+

<hidden>

+ + + + + +
+

Set the default value of the ’hidden’ flag +(0=visible, 1=hidden).

+ + + + + +
+

<opaque>

+ + + + + +
+

Set the default value of the ’opaque’ flag +(0=transparent, 1=opaque).

+ + + + + +
+

<fifo>

+ + + + + +
+

path/filename for the FIFO (named pipe connecting +’mplayer −vf bmovl’ to the controlling +application)

+ + + + + +
+

FIFO commands are:

+ + + + + +
+

RGBA32 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*4 Bytes of raw RGBA32 +data.

+ + + + + +
+

ABGR32 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*4 Bytes of raw ABGR32 +data.

+ + + + + +
+

RGB24 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*3 Bytes of raw RGB24 +data.

+ + + + + +
+

BGR24 width height xpos ypos alpha clear

+ + + + + +
+

followed by width*height*3 Bytes of raw BGR24 +data.

+ + + + + +
+

ALPHA width height xpos ypos alpha

+ + + + + +
+

Change alpha transparency of the specified area.

+ + + + + +
+

CLEAR width height xpos ypos

+ + + + + +
+

Clear area.

+ + + + + +
+

OPAQUE

+ + + + + +
+

Disable all alpha transparency. Send "ALPHA 0 0 0 0 +0" to enable it again.

+ + + + + +
+

HIDE

+ + + + + +
+

Hide bitmap.

+ + + + + +
+

SHOW

+ + + + + +
+

Show bitmap.

+ + + + + +
+

Arguments are:

+ + + + + +
+

<width>, <height>

+ + + + + +
+

image/area size

+ + + + + +
+

<xpos>, <ypos>

+ + + + + +
+

Start blitting at position x/y.

+ + + + + +
+

<alpha>

+ + + + + +
+

Set alpha difference. If you set this to -255 you can +then send a sequence of ALPHA-commands to set the area to +-225, -200, -175 etc for a nice fade-in-effect! ;)

+ + + + + +
+

0: same as original
+255: Make everything opaque.
+-255: Make everything transparent.

+ + + + + +
+

<clear>

+ + + + + +
+

Clear the framebuffer before blitting.

+ + + + + +
+

0: The image will just be blitted on top of the old one, +so you do not need to send 1.8MB of RGBA32 data every time a +small part of the screen is updated.
+1: clear

+ + + + + +
+

framestep=I|[i]step

+ + + + + +
+

Renders only every nth frame or every intra frame +(keyframe).

+ +

If you call the filter with I (uppercase) as the +parameter, then only keyframes are rendered. For DVDs +it generally means one in every 15/12 frames +(IBBPBBPBBPBBPBB), for AVI it means every scene change or +every keyint value (see −lavcopts keyint= value if you +use MEncoder to encode the video).

+ +

When a keyframe is found, an ’I!’ string +followed by a newline character is printed, leaving the +current line of MPlayer/ MEncoder output on the screen, +because it contains the time (in seconds) and frame number +of the keyframe (You can use this information to split the +AVI.).

+ +

If you call the filter with a numeric parameter +’step’ then only one in every ’step’ +frames is rendered.

+ +

If you put an ’i’ (lowercase) before the +number then an ’I!’ is printed (like the I +parameter).

+ +

If you give only the i then nothing is done to the +frames, only I! is printed.

+
+ + + + + +
+

tile=xtiles:ytiles:output:start:delta

+ + + + + +
+

Tile a series of images into a single, bigger image. If +you omit a parameter or use a value less than 0, then the +default value is used. You can also stop when you are +satisfied (... −vf tile=10:5 ...). It is probably a +good idea to put the scale filter before the tile :-)

+ +

The parameters are:

+
+ + + + + +
+

<xtiles>

+ + + + + +
+

number of tiles on the x axis (default: 5)

+ + + + + +
+

<ytiles>

+ + + + + +
+

number of tiles on the y axis (default: 5)

+ + + + + +
+

<output>

+ + + + + +
+

Render the tile when ’output’ number of +frames are reached, where ’output’ should be a +number less than xtile * ytile. Missing tiles are left +blank. You could, for example, write an 8 * 7 tile every 50 +frames to have one image every 2 seconds @ 25 fps.

+ + + + + +
+

<start>

+ + + + + +
+

outer border thickness in pixels (default: 2)

+ + + + + +
+

<delta>

+ + + + + +
+

inner border thickness in pixels (default: 4)

+ + + + + +
+

delogo[=x:y:w:h:t]

+ + + + + +
+

Suppresses a TV station logo by a simple interpolation of +the surrounding pixels. Just set a rectangle covering the +logo and watch it disappear (and sometimes something even +uglier appear − your mileage may vary).

+ + + + + +
+

<x>,<y>

+ + + + + +
+

top left corner of the logo

+ + + + + +
+

<w>,<h>

+ + + + + +
+

width and height of the cleared rectangle

+ + + + + + + +
+ +

<t>

+
+ +

Thickness of the fuzzy edge of the rectangle (added to w +and h). When set to -1, a green rectangle is drawn on the +screen to simplify finding the right x,y,w,h parameters.

+
+ + + + + +
+ +

remove-logo=/path/to/logo_bitmap_file_name.pgm

+ + + + + +
+

Suppresses a TV station logo, using a PGM or PPM image +file to determine which pixels comprise the logo. The width +and height of the image file must match those of the video +stream being processed. Uses the filter image and a circular +blur algorithm to remove the logo.

+ + + + + +
+

/path/to/logo_bitmap_file_name.pgm

+ + + + + +
+

[path] + filename of the filter image.

+ + + + + +
+

zrmjpeg[=options]

+ + + + + +
+

Software YV12 to MJPEG encoder for use with the zr2 video +output device.

+ + + + + +
+

maxheight=<h>|maxwidth=<w>

+ + + + + +
+

These options set the maximum width and height the zr +card can handle (the MPlayer filter layer currently cannot +query those).

+
+ + + + + +
+

{dc10+,dc10,buz,lml33}-{PAL|NTSC}

+ + + + + +
+

Use these options to set maxwidth and maxheight +automatically to the values known for card/mode combo. For +example, valid options are: dc10-PAL and buz-NTSC (default: +dc10+PAL)

+
+ + + + + +
+

color|bw

+ + + + + +
+

Select color or black and white encoding. Black and white +encoding is faster. Color is the default.

+
+ + + + + +
+

hdec={1,2,4}

+ + + + + +
+

Horizontal decimation 1, 2 or 4.

+
+ + + + + +
+

vdec={1,2,4}

+ + + + + +
+

Vertical decimation 1, 2 or 4.

+
+ + + + + +
+

quality=1−20

+ + + + + +
+

Set JPEG compression quality [BEST] 1 − 20 [VERY +BAD].

+
+ + + + + +
+

fd|nofd

+ + + + + +
+

By default, decimation is only performed if the Zoran +hardware can upscale the resulting MJPEG images to the +original size. The option fd instructs the filter to always +perform the requested decimation (ugly).

+ + + + + +
+

screenshot

+ + + + + +
+

Allows acquiring screenshots of the movie using slave +mode commands that can be bound to keypresses. See the slave +mode documentation and the INTERACTIVE CONTROL section for +details. Files named ’shotNNNN.png’ will be +saved in the working directory, using the first available +number - no files will be overwritten. The filter has no +overhead when not used and accepts an arbitrary colorspace, +so it is safe to add it to the configuration file.

+ + + + + +
+

ass

+ + + + + +
+

Moves SSA/ASS subtitle rendering to an arbitrary point in +the filter chain. Only useful with the −ass +option.

+ +

EXAMPLE:

+ + + + + +
+

−vf ass,screenshot

+ + + + + +
+

Moves SSA/ASS rendering before the screenshot filter. +Screenshots taken this way will contain subtitles.

+ + + + + +
+

blackframe[=amount:threshold]

+ + + + + +
+

Detect frames that are (almost) completely black. Can be +useful to detect chapter transitions or commercials. Output +lines consist of the frame number of the detected frame, the +percentage of blackness, the frame type and the frame number +of the last encountered keyframe.

+ + + + + +
+

<amount>

+ + + + + +
+

Percentage of the pixels that have to be below the +threshold (default: 98).

+
+ + + + + +
+

<threshold>

+ + + + + +
+

Threshold below which a pixel value is considered black +(default: 32).

+ +

GENERAL ENCODING OPTIONS (MENCODER ONLY)

+ + + + + +
+

−audio-delay <any floating-point +number>

+ + + + + +
+

Delays either audio or video by setting a delay field in +the header (default: 0.0). This does not delay either stream +while encoding, but the player will see the delay field and +compensate accordingly. Positive values delay the audio, and +negative values delay the video. Note that this is the exact +opposite of the −delay option. For example, if a video +plays correctly with −delay 0.2, you can fix the video +with MEncoder by using −audio-delay -0.2.

+ +

Currently, this option only works with the default muxer +(−of avi). If you are using a different muxer, then +you must use −delay instead.

+
+ + + + + +
+

−audio-density <1−50>

+ + + + + +
+

Number of audio chunks per second (default is 2 for 0.5s +long audio chunks).
+NOTE:
CBR only, VBR ignores this as it puts each packet +in a new chunk.

+
+ + + + + +
+

−audio-preload +<0.0−2.0>

+ + + + + +
+

Sets up the audio buffering time interval (default: +0.5s).

+
+ + + + + +
+

−fafmttag <format>

+ + + + + +
+

Can be used to override the audio format tag of the +output file.

+ +

EXAMPLE:

+ + + + + +
+

−fafmttag 0x55

+ + + + + +
+

Will have the output file contain 0x55 (mp3) as audio +format tag.

+ + + + + +
+

−ffourcc <fourcc>

+ + + + + +
+

Can be used to override the video fourcc of the output +file.

+ +

EXAMPLE:

+ + + + + +
+

−ffourcc div3

+ + + + + +
+

Will have the output file contain ’div3’ as +video fourcc.

+ + + + + +
+

−force-avi-aspect +<0.2−3.0>

+ + + + + +
+

Override the aspect stored in the AVI OpenDML vprp +header. This can be used to change the aspect ratio with +’−ovc copy’.

+
+ + + + + +
+

−frameno-file <filename> +(DEPRECATED)

+ + + + + +
+

Specify the name of the audio file with framenumber +mappings created in the first (audio only) pass of a special +three pass encoding mode.
+NOTE:
Using this mode will most likely give you A-V +desync. Do not use it. It is kept for backwards +compatibility only and will possibly be removed in a future +version.

+
+ + + + + +
+

−hr-edl-seek

+ + + + + +
+

Use a more precise, but much slower method for skipping +areas. Areas marked for skipping are not seeked over, +instead all frames are decoded, but only the necessary +frames are encoded. This allows starting at non-keyframe +boundaries.
+NOTE:
Not guaranteed to work right with +’−ovc copy’.

+
+ + + + + +
+

−info <option1:option2:...> (AVI +only)

+ + + + + +
+

Specify the info header of the resulting AVI file.

+ +

Available options are:

+ + + + + +
+

help

+ + + + + +
+

Show this description.

+
+ + + + + +
+

name=<value>

+ + + + + +
+

title of the work

+
+ + + + + +
+

artist=<value>

+ + + + + +
+

artist or author of the work

+
+ + + + + +
+

genre=<value>

+ + + + + +
+

original work category

+
+ + + + + +
+

subject=<value>

+ + + + + +
+

contents of the work

+
+ + + + + +
+

copyright=<value>

+ + + + + +
+

copyright information

+
+ + + + + +
+

srcform=<value>

+ + + + + +
+

original format of the digitized material

+
+ + + + + +
+

comment=<value>

+ + + + + +
+

general comments about the work

+ + + + + +
+

−noautoexpand

+ + + + + +
+

Do not automatically insert the expand filter into the +MEncoder filter chain. Useful to control at which point of +the filter chain subtitles are rendered when hardcoding +subtitles onto a movie.

+
+ + + + + +
+

−noencodedups

+ + + + + +
+

Do not attempt to encode duplicate frames in duplicate; +always output zero-byte frames to indicate duplicates. +Zero-byte frames will be written anyway unless a filter or +encoder capable of doing duplicate encoding is loaded. +Currently the only such filter is harddup.

+
+ + + + + +
+

−noodml (−of avi only)

+ + + + + +
+

Do not write OpenDML index for AVI files >1GB.

+
+ + + + + +
+

−noskip

+ + + + + +
+

Do not skip frames.

+
+ + + + + +
+

−o <filename>

+ + + + + +
+

Outputs to the given filename.
+If you want a default output filename, you can put this +option in the MEncoder config file.

+
+ + + + + +
+

−oac <codec name>

+ + + + + +
+

Encode with the given audio codec (no default +set).
+NOTE:
Use −oac help to get a list of available +audio codecs.

+ +

EXAMPLE:

+ + + + + +
+

−oac copy

+ + + + + +
+

no encoding, just streamcopy

+ + + + + +
+

−oac pcm

+ + + + + +
+

Encode to uncompressed PCM.

+ + + + + +
+

−oac mp3lame

+ + + + + +
+

Encode to MP3 (using LAME).

+ + + + + +
+

−oac lavc

+ + + + + +
+

Encode with a libavcodec codec.

+ + + + + +
+

−of <format> (BETA CODE!)

+ + + + + +
+

Encode to the specified container format (default: +AVI).
+NOTE:
Use −of help to get a list of available +container formats.

+ +

EXAMPLE:

+ + + + + +
+

−of avi

+ + + + + +
+

Encode to AVI.

+ + + + + +
+

−of mpeg

+ + + + + +
+

Encode to MPEG (also see −mpegopts).

+ + + + + +
+

−of lavf

+ + + + + +
+

Encode with libavformat muxers (also see +−lavfopts).

+ + + + + +
+

−of rawvideo

+ + + + + +
+

raw video stream (no muxing − one video stream +only)

+ + + + + +
+

−of rawaudio

+ + + + + +
+

raw audio stream (no muxing − one audio stream +only)

+ + + + + +
+

−ofps <fps>

+ + + + + +
+

Specify a frames per second (fps) value for the output +file, which can be different from that of the source +material. Must be set for variable fps (ASF, some MOV) and +progressive (30000/1001 fps telecined MPEG) files.

+
+ + + + + +
+

−ovc <codec name>

+ + + + + +
+

Encode with the given video codec (no default +set).
+NOTE:
Use −ovc help to get a list of available +video codecs.

+ +

EXAMPLE:

+ + + + + +
+

−ovc copy

+ + + + + +
+

no encoding, just streamcopy

+ + + + + +
+

−ovc raw

+ + + + + +
+

Encode to an arbitrary uncompressed format (use +’−vf format’ to select).

+ + + + + +
+

−ovc lavc

+ + + + + +
+

Encode with a libavcodec codec.

+ + + + + +
+

−passlogfile <filename>

+ + + + + +
+

Dump first pass information to <filename> instead +of the default divx2pass.log in two pass encoding mode.

+
+ + + + + +
+

−skiplimit <value>

+ + + + + +
+

Specify the maximum number of frames that may be skipped +after encoding one frame (−noskiplimit for +unlimited).

+
+ + + + + +
+

−vobsubout <basename>

+ + + + + +
+

Specify the basename for the output .idx and .sub files. +This turns off subtitle rendering in the encoded movie and +diverts it to VOBsub subtitle files.

+
+ + + + + +
+

−vobsuboutid <langid>

+ + + + + +
+

Specify the language two letter code for the subtitles. +This overrides what is read from the DVD or the .ifo +file.

+
+ + + + + +
+

−vobsuboutindex <index>

+ + + + + +
+

Specify the index of the subtitles in the output files +(default: 0).

+
+ +

CODEC SPECIFIC ENCODING OPTIONS (MENCODER ONLY)

+ + + + + +
+

You can specify codec specific encoding parameters using +the following syntax:

+
+ + + + + +
+

−<codec>opts +<option1[=value],option2,...>

+ + + + + +
+

Where <codec> may be: lavc, xvidenc, lame, toolame, +twolame, nuv, xvfw, faac, x264enc, mpeg, lavf.

+
+ + + + + +
+

lame (−lameopts)

+ + + + + +
+

help

+ + + + + +
+

get help

+
+ + + + + +
+

vbr=<0−4>

+ + + + + +
+

variable bitrate method

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

cbr

+
+
+ +

1

+
+ +

mt

+
+
+ +

2

+
+ +

rh (default)

+
+
+ +

3

+
+ +

abr

+
+
+ +

4

+
+ +

mtrh

+
+
+ + + + + +
+

abr

+ + + + + +
+

average bitrate

+
+ + + + + +
+

cbr

+ + + + + +
+

constant bitrate Also forces CBR mode encoding on +subsequent ABR presets modes.

+
+ + + + + +
+

br=<0−1024>

+ + + + + +
+

bitrate in kbps (CBR and ABR only)

+
+ + + + + +
+

q=<0−9>

+ + + + + +
+

quality (0 − highest, 9 − lowest) (VBR +only)

+
+ + + + + +
+

aq=<0−9>

+ + + + + +
+

algorithmic quality (0 − best/slowest, 9 − +worst/fastest)

+
+ + + + + +
+

ratio=<1−100>

+ + + + + +
+

compression ratio

+
+ + + + + +
+

vol=<0−10>

+ + + + + +
+

audio input gain

+
+ + + + + +
+

mode=<0−3>

+ + + + + +
+

(default: auto)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

stereo

+
+
+ +

1

+
+ +

joint-stereo

+
+
+ +

2

+
+ +

dualchannel

+
+
+ +

3

+
+ +

mono

+
+
+ + + + + +
+

padding=<0−2>

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none

+
+
+ +

1

+
+ +

all

+
+
+ +

2

+
+ +

adjust

+
+
+ + + + + +
+

fast

+ + + + + +
+

Switch on faster encoding on subsequent VBR presets +modes. This results in slightly lower quality and higher +bitrates.

+
+ + + + + +
+

highpassfreq=<freq>

+ + + + + +
+

Set a highpass filtering frequency in Hz. Frequencies +below the specified one will be cut off. A value of -1 will +disable filtering, a value of 0 will let LAME choose values +automatically.

+
+ + + + + +
+

lowpassfreq=<freq>

+ + + + + +
+

Set a lowpass filtering frequency in Hz. Frequencies +above the specified one will be cut off. A value of -1 will +disable filtering, a value of 0 will let LAME choose values +automatically.

+
+ + + + + +
+

preset=<value>

+ + + + + +
+

preset values

+ + + + + +
+

help

+ + + + + +
+

Print additional options and information about presets +settings.

+
+ + + + + +
+

medium

+ + + + + +
+

VBR encoding, good quality, 150−180 kbps bitrate +range

+
+ + + + + +
+

standard

+ + + + + +
+

VBR encoding, high quality, 170−210 kbps bitrate +range

+
+ + + + + +
+

extreme

+ + + + + +
+

VBR encoding, very high quality, 200−240 kbps +bitrate range

+
+ + + + + +
+

insane

+ + + + + +
+

CBR encoding, highest preset quality, 320 kbps +bitrate

+
+ + + + + +
+

<8−320>

+ + + + + +
+

ABR encoding at average given kbps bitrate

+ + + + + +
+

EXAMPLES:

+ + + + + +
+

fast:preset=standard

+ + + + + +
+

suitable for most people and most music types and already +quite high quality

+ + + + + +
+

cbr:preset=192

+ + + + + +
+

Encode with ABR presets at a 192 kbps forced constant +bitrate.

+ + + + + +
+

preset=172

+ + + + + +
+

Encode with ABR presets at a 172 kbps average +bitrate.

+ + + + + +
+

preset=extreme

+ + + + + +
+

for people with extremely good hearing and similar +equipment

+ + + + + +
+

toolame and twolame (−toolameopts and +−twolameopts respectively)

+ + + + + +
+

br=<32−384>

+ + + + + +
+

In CBR mode this parameter indicates the bitrate in kbps, +when in VBR mode it is the minimum bitrate allowed per +frame. VBR mode will not work with a value below 112.

+
+ + + + + +
+

vbr=<-50−50> (VBR only)

+ + + + + +
+

variability range; if negative the encoder shifts the +average bitrate towards the lower limit, if positive towards +the higher. When set to 0 CBR is used (default).

+
+ + + + + +
+

maxvbr=<32−384> (VBR only)

+ + + + + +
+

maximum bitrate allowed per frame, in kbps

+
+ + + + + +
+

mode=<stereo | jstereo | mono | +dual>

+ + + + + +
+

(default: mono for 1-channel audio, stereo otherwise)

+
+ + + + + +
+

psy=<-1−4>

+ + + + + +
+

psychoacoustic model (default: 2)

+
+ + + + + +
+

errprot=<0 | 1>

+ + + + + +
+

Include error protection.

+
+ + + + + +
+

debug=<0−10>

+ + + + + +
+

debug level

+ + + + + +
+

faac (−faacopts)

+ + + + + +
+

br=<bitrate>

+ + + + + +
+

average bitrate in kbps (mutually exclusive with +quality)

+
+ + + + + +
+

quality=<1−1000>

+ + + + + +
+

quality mode, the higher the better (mutually exclusive +with br)

+
+ + + + + +
+

object=<1−4>

+ + + + + +
+

object type complexity

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

MAIN (default)

+
+
+ +

2

+
+ +

LOW

+
+
+ +

3

+
+ +

SSR

+
+
+ +

4

+
+ +

LTP (extremely slow)

+
+
+ + + + + +
+

mpeg=<2|4>

+ + + + + +
+

MPEG version (default: 4)

+
+ + + + + +
+

tns

+ + + + + +
+

Enables temporal noise shaping.

+
+ + + + + +
+

cutoff=<0−sampling_rate/2>

+ + + + + +
+

cutoff frequency (default: sampling_rate/2)

+
+ + + + + +
+

raw

+ + + + + +
+

Stores the bitstream as raw payload with extradata in the +container header (default: 0, corresponds to ADTS). Do not +set this flag if not explicitly required or you will not be +able to remux the audio stream later on.

+ + + + + +
+

lavc (−lavcopts)

+ + + + + +
+

Many libavcodec (lavc for short) options are tersely +documented. Read the source for full details.

+ +

EXAMPLE:

+ + + + + +
+

vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250

+ + + + + +
+

acodec=<value>

+ + + + + +
+

audio codec (default: mp2)

+ + + + + +
+

ac3

+ + + + + +
+

Dolby Digital (AC-3)

+ + + + + +
+

adpcm_*

+ + + + + +
+

Adaptive PCM formats - see the HTML documentation for +details.

+ + + + + +
+

flac

+ + + + + +
+

Free Lossless Audio Codec (FLAC)

+ + + + + +
+

g726

+ + + + + +
+

G.726 ADPCM

+ + + + + +
+

libamr_nb

+ + + + + +
+

3GPP Adaptive Multi-Rate (AMR) narrow-band

+ + + + + +
+

libamr_wb

+ + + + + +
+

3GPP Adaptive Multi-Rate (AMR) wide-band

+ + + + + +
+

libfaac

+ + + + + +
+

Advanced Audio Coding (AAC) - using FAAC

+ + + + + +
+

libmp3lame

+ + + + + +
+

MPEG-1 audio layer 3 (MP3) - using LAME

+ + + + + +
+

mp2

+ + + + + +
+

MPEG-1 audio layer 2 (MP2)

+ + + + + +
+

pcm_*

+ + + + + +
+

PCM formats - see the HTML documentation for +details.

+ + + + + +
+

roq_dpcm

+ + + + + +
+

Id Software RoQ DPCM

+ + + + + +
+

sonic

+ + + + + +
+

experimental simple lossy codec

+ + + + + +
+

sonicls

+ + + + + +
+

experimental simple lossless codec

+ + + + + +
+

vorbis

+ + + + + +
+

Vorbis

+ + + + + +
+

wmav1

+ + + + + +
+

Windows Media Audio v1

+ + + + + +
+

wmav2

+ + + + + +
+

Windows Media Audio v2

+ + + + + +
+

abitrate=<value>

+ + + + + +
+

audio bitrate in kbps (default: 224)

+
+ + + + + +
+

atag=<value>

+ + + + + +
+

Use the specified Windows audio format tag (e.g. +atag=0x55).

+
+ + + + + +
+

bit_exact

+ + + + + +
+

Use only bit exact algorithms (except (I)DCT). +Additionally bit_exact disables several optimizations and +thus should only be used for regression tests, which need +binary identical files even if the encoder version changes. +This also suppresses the user_data header in MPEG-4 streams. +Do not use this option unless you know exactly what you are +doing.

+
+ + + + + +
+

threads=<1−8>

+ + + + + +
+

Maximum number of threads to use (default: 1). May have a +slight negative effect on motion estimation.

+ + + + + +
+

vcodec=<value>

+ + + + + +
+

Employ the specified codec (default: mpeg4).

+ + + + + +
+

asv1

+ + + + + +
+

ASUS Video v1

+ + + + + +
+

asv2

+ + + + + +
+

ASUS Video v2

+ + + + + +
+

dvvideo

+ + + + + +
+

Sony Digital Video

+ + + + + +
+

ffv1

+ + + + + +
+

FFmpeg’s lossless video codec

+ + + + + +
+

ffvhuff

+ + + + + +
+

nonstandard 20% smaller HuffYUV using YV12

+ + + + + +
+

flv

+ + + + + +
+

Sorenson H.263 used in Flash Video

+ + + + + +
+

h261

+ + + + + +
+

H.261

+ + + + + +
+

h263

+ + + + + +
+

H.263

+ + + + + +
+

h263p

+ + + + + +
+

H.263+

+ + + + + +
+

huffyuv

+ + + + + +
+

HuffYUV

+ + + + + +
+

libtheora

+ + + + + +
+

Theora

+ + + + + +
+

libx264

+ + + + + +
+

x264 H.264/AVC MPEG-4 Part 10

+ + + + + +
+

libxvid

+ + + + + +
+

Xvid MPEG-4 Part 2 (ASP)

+ + + + + +
+

ljpeg

+ + + + + +
+

Lossless JPEG

+ + + + + +
+

mjpeg

+ + + + + +
+

Motion JPEG

+ + + + + +
+

mpeg1video

+ + + + + +
+

MPEG-1 video

+ + + + + +
+

mpeg2video

+ + + + + +
+

MPEG-2 video

+ + + + + +
+

mpeg4

+ + + + + +
+

MPEG-4 (DivX 4/5)

+ + + + + +
+

msmpeg4

+ + + + + +
+

DivX 3

+ + + + + +
+

msmpeg4v2

+ + + + + +
+

MS MPEG4v2

+ + + + + +
+

roqvideo

+ + + + + +
+

ID Software RoQ Video

+ + + + + +
+

rv10

+ + + + + +
+

an old RealVideo codec

+ + + + + +
+

snow (also see: vstrict)

+ + + + + +
+

FFmpeg’s experimental wavelet-based codec

+ + + + + +
+

svq1

+ + + + + +
+

Apple Sorenson Video 1

+ + + + + +
+

wmv1

+ + + + + +
+

Windows Media Video, version 1 (AKA WMV7)

+ + + + + +
+

wmv2

+ + + + + +
+

Windows Media Video, version 2 (AKA WMV8)

+ + + + + +
+

vqmin=<1−31>

+ + + + + +
+

minimum quantizer (pass 1/2)

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

Not recommended (much larger file, little quality +difference and weird side effects: msmpeg4, h263 will be +very low quality, ratecontrol will be confused resulting in +lower quality and some decoders will not be able to decode +it).

+
+ +

2

+
+ +

Recommended for normal mpeg4/mpeg1video encoding +(default).

+
+ +

3

+
+ +

Recommended for h263(p)/msmpeg4. The reason for +preferring 3 over 2 is that 2 could lead to overflows. (This +will be fixed for h263(p) by changing the quantizer per MB +in the future, msmpeg4 cannot be fixed as it does not +support that.)

+
+ + + + + +
+

lmin=<0.01−255.0>

+ + + + + +
+

Minimum frame-level Lagrange multiplier for ratecontrol +(default: 2.0). Lavc will rarely use quantizers below the +value of lmin. Lowering lmin will make lavc more likely to +choose lower quantizers for some frames, but not lower than +the value of vqmin. Likewise, raising lmin will make lavc +less likely to choose low quantizers, even if vqmin would +have allowed them. You probably want to set lmin +approximately equal to vqmin. When adaptive quantization is +in use, changing lmin/lmax may have less of an effect; see +mblmin/mblmax.

+ + + + + +
+

lmax=<0.01−255.0>

+ + + + + +
+

maximum Lagrange multiplier for ratecontrol (default: +31.0)

+ + + + + +
+

mblmin=<0.01−255.0>

+ + + + + +
+

Minimum macroblock-level Lagrange multiplier for +ratecontrol (default:2.0). This parameter affects adaptive +quantization options like qprd, lumi_mask, etc..

+ + + + + +
+

mblmax=<0.01−255.0>

+ + + + + +
+

Maximum macroblock-level Lagrange multiplier for +ratecontrol (default: 31.0).

+ + + + + +
+

vqscale=<0−31>

+ + + + + +
+

Constant quantizer / constant quality encoding (selects +fixed quantizer mode). A lower value means better quality +but larger files (default: -1). In case of snow codec, value +0 means lossless encoding. Since the other codecs do not +support this, vqscale=0 will have an undefined effect. 1 is +not recommended (see vqmin for details).

+
+ + + + + +
+

vqmax=<1−31>

+ + + + + +
+

Maximum quantizer (pass 1/2), 10−31 should be a +sane range (default: 31).

+
+ + + + + +
+

mbqmin=<1−31>

+ + + + + +
+

obsolete, use vqmin

+
+ + + + + +
+

mbqmax=<1−31>

+ + + + + +
+

obsolete, use vqmax

+
+ + + + + +
+

vqdiff=<1−31>

+ + + + + +
+

maximum quantizer difference between consecutive I- or +P-frames (pass 1/2) (default: 3)

+
+ + + + + +
+

vmax_b_frames=<0−4>

+ + + + + +
+

maximum number of B-frames between non-B-frames:

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

no B-frames (default)

+
+
+ +

0−2

+
+ +

sane range for MPEG-4

+
+
+ + + + + +
+

vme=<0−5>

+ + + + + +
+

motion estimation method. Available methods are:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

none (very low quality)

+
+ +

1

+
+ +

full (slow, currently unmaintained and disabled)

+
+ +

2

+
+ +

log (low quality, currently unmaintained and +disabled)

+
+ +

3

+
+ +

phods (low quality, currently unmaintained and +disabled)

+
+ +

4

+
+ +

EPZS: size=1 diamond, size can be adjusted with the *dia +options (default)

+
+ +

5

+
+ +

X1 (experimental, currently aliased to EPZS)

+
+ +

8

+
+ +

iter (iterative overlapped block, only used in snow)

+
+ + + + + +
+

NOTE: 0−3 currently ignores the amount of +bits spent, so quality may be low.

+ + + + + +
+

me_range=<0−9999>

+ + + + + +
+

motion estimation search range (default: 0 +(unlimited))

+
+ + + + + +
+

mbd=<0−2> (see also *cmp, +qpel)

+ + + + + +
+

Macroblock decision algorithm (high quality mode), encode +each macro block in all modes and choose the best. This is +slow but results in better quality and file size. When mbd +is set to 1 or 2, the value of mbcmp is ignored when +comparing macroblocks. If any comparison setting (precmp, +subcmp, cmp, or mbcmp) is nonzero, however, a slower but +better half-pel motion search will be used, regardless of +what mbd is set to. If qpel is set, quarter-pel motion +search will be used regardless.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Use comparison function given by mbcmp (default).

+
+ +

1

+
+ +

Select the MB mode which needs the fewest bits +(=vhq).

+
+ +

2

+
+ +

Select the MB mode which has the best rate +distortion.

+
+ + + + + +
+

vhq

+ + + + + +
+

Same as mbd=1, kept for compatibility reasons.

+
+ + + + + +
+

v4mv

+ + + + + +
+

Allow 4 motion vectors per macroblock (slightly better +quality). Works better if used with mbd>0.

+
+ + + + + +
+

obmc

+ + + + + +
+

overlapped block motion compensation (H.263+)

+
+ + + + + +
+

loop

+ + + + + +
+

loop filter (H.263+) note, this is broken

+
+ + + + + +
+

inter_threshold <-1000−1000>

+ + + + + +
+

Does absolutely nothing at the moment.

+
+ + + + + +
+

keyint=<0−300>

+ + + + + +
+

maximum interval between keyframes in frames (default: +250 or one keyframe every ten seconds in a 25fps movie. This +is the recommended default for MPEG-4). Most codecs require +regular keyframes in order to limit the accumulation of +mismatch error. Keyframes are also needed for seeking, as +seeking is only possible to a keyframe - but keyframes need +more space than other frames, so larger numbers here mean +slightly smaller files but less precise seeking. 0 is +equivalent to 1, which makes every frame a keyframe. Values +>300 are not recommended as the quality might be bad +depending upon decoder, encoder and luck. It is a common for +MPEG-1/2 to use values <=30.

+
+ + + + + +
+ +

sc_threshold=<-1000000000−1000000000>

+ + + + + +
+

Threshold for scene change detection. A keyframe is +inserted by libavcodec when it detects a scene change. You +can specify the sensitivity of the detection with this +option. -1000000000 means there is a scene change detected +at every frame, 1000000000 means no scene changes are +detected (default: 0).

+
+ + + + + +
+

sc_factor=<any positive integer>

+ + + + + +
+

Causes frames with higher quantizers to be more likely to +trigger a scene change detection and make libavcodec use an +I-frame (default: 1). 1−16 is a sane range. Values +between 2 and 6 may yield increasing PSNR (up to +approximately 0.04 dB) and better placement of I-frames in +high-motion scenes. Higher values than 6 may give very +slightly better PSNR (approximately 0.01 dB more than +sc_factor=6), but noticably worse visual quality.

+
+ + + + + +
+

vb_strategy=<0−2> (pass one +only)

+ + + + + +
+

strategy to choose between I/P/B-frames:

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Always use the maximum number of B-frames (default).

+
+ +

1

+
+ +

Avoid B-frames in high motion scenes. See the +b_sensitivity option to tune this strategy.

+
+ +

2

+
+ +

Places B-frames more or less optimally to yield maximum +quality (slower). You may want to reduce the speed impact of +this option by tuning the option brd_scale.

+
+ + + + + +
+

b_sensitivity=<any integer greater than +0>

+ + + + + +
+

Adjusts how sensitively vb_strategy=1 detects motion and +avoids using B-frames (default: 40). Lower sensitivities +will result in more B-frames. Using more B-frames usually +improves PSNR, but too many B-frames can hurt quality in +high-motion scenes. Unless there is an extremely high amount +of motion, b_sensitivity can safely be lowered below the +default; 10 is a reasonable value in most cases.

+
+ + + + + +
+

brd_scale=<0−10>

+ + + + + +
+

Downscales frames for dynamic B-frame decision (default: +0). Each time brd_scale is increased by one, the frame +dimensions are divided by two, which improves speed by a +factor of four. Both dimensions of the fully downscaled +frame must be even numbers, so brd_scale=1 requires the +original dimensions to be multiples of four, brd_scale=2 +requires multiples of eight, etc. In other words, the +dimensions of the original frame must both be divisible by +2^(brd_scale+1) with no remainder.

+
+ + + + + +
+

bidir_refine=<0−4>

+ + + + + +
+

Refine the two motion vectors used in bidirectional +macroblocks, rather than re-using vectors from the forward +and backward searches. This option has no effect without +B-frames.

+ + + + + + + + + + + + +
+ +

0

+
+ +

Disabled (default).

+
+ +

1−4

+
+ +

Use a wider search (larger values are slower).

+
+ + + + + +
+

vpass=<1−3>

+ + + + + +
+

Activates internal two (or more) pass mode, only specify +if you wish to use two (or more) pass encoding.

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

first pass (also see turbo)

+
+ +

2

+
+ +

second pass

+
+ +

3

+
+ +

Nth pass (second and subsequent passes of N-pass +encoding)

+
+ + + + + +
+

Here is how it works, and how to use it:
+The first pass (vpass=1) writes the statistics file. You +might want to deactivate some CPU-hungry options, like +"turbo" mode does.
+In two pass mode, the second pass (vpass=2) reads the +statistics file and bases ratecontrol decisions on it.
+In N-pass mode, the second pass (vpass=3, that is not a +typo) does both: It first reads the statistics, then +overwrites them. You might want to backup divx2pass.log +before doing this if there is any possibility that you will +have to cancel MEncoder. You can use all encoding options, +except very CPU-hungry options like "qns".
+You can run this same pass over and over to refine the +encode. Each subsequent pass will use the statistics from +the previous pass to improve. The final pass can include any +CPU-hungry encoding options.
+If you want a 2 pass encode, use first vpass=1, and then +vpass=2.
+If you want a 3 or more pass encode, use vpass=1 for the +first pass and then vpass=3 and then vpass=3 again and again +until you are satisfied with the encode.

+ + + + + +
+

huffyuv:

+ + + + + +
+

pass 1

+ + + + + +
+

Saves statistics.

+ + + + + +
+

pass 2

+ + + + + +
+

Encodes with an optimal Huffman table based upon +statistics from the first pass.

+ + + + + +
+

turbo (two pass only)

+ + + + + +
+

Dramatically speeds up pass one using faster algorithms +and disabling CPU-intensive options. This will probably +reduce global PSNR a little bit (around 0.01dB) and change +individual frame type and PSNR a little bit more (up to +0.03dB).

+
+ + + + + +
+

aspect=<x/y>

+ + + + + +
+

Store movie aspect internally, just like with MPEG files. +Much nicer than rescaling, because quality is not decreased. +Only MPlayer will play these files correctly, other players +will display them with wrong aspect. The aspect parameter +can be given as a ratio or a floating point number.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

aspect=16/9 or aspect=1.78

+ + + + + +
+

autoaspect

+ + + + + +
+

Same as the aspect option, but automatically computes +aspect, taking into account all the adjustments +(crop/expand/scale/ etc.) made in the filter chain. Does not +incur a performance penalty, so you can safely leave it +always on.

+
+ + + + + +
+

vbitrate=<value>

+ + + + + +
+

Specify bitrate (pass 1/2) (default: 800).
+WARNING:
1kbit = 1000 bits

+ + + + + +
+

4−16000

+ + + + + +
+

(in kbit)

+ + + + + +
+

16001−24000000

+ + + + + +
+

(in bit)

+ + + + + +
+

vratetol=<value>

+ + + + + +
+

approximated file size tolerance in kbit. +1000−100000 is a sane range. (warning: 1kbit = 1000 +bits) (default: 8000)
+NOTE:
vratetol should not be too large during the second +pass or there might be problems if vrc_(min|max)rate is +used.

+
+ + + + + +
+

vrc_maxrate=<value>

+ + + + + +
+

maximum bitrate in kbit/sec (pass 1/2) (default: 0, +unlimited)

+
+ + + + + +
+

vrc_minrate=<value>

+ + + + + +
+

minimum bitrate in kbit/sec (pass 1/2) (default: 0, +unlimited)

+
+ + + + + +
+

vrc_buf_size=<value>

+ + + + + +
+

buffer size in kbit (pass 1/2). For MPEG-1/2 this also +sets the vbv buffer size, use 327 for VCD, 917 for SVCD and +1835 for DVD.

+
+ + + + + +
+

vrc_buf_aggressivity

+ + + + + +
+

currently useless

+
+ + + + + +
+

vrc_strategy

+ + + + + +
+

Ratecontrol method. Note that some of the +ratecontrol-affecting options will have no effect if +vrc_strategy is not set to 0.

+ + + + + + + + + + + + +
+ +

0

+
+ +

Use internal lavc ratecontrol (default).

+
+ +

1

+
+ +

Use Xvid ratecontrol (experimental; requires MEncoder to +be compiled with support for Xvid 1.1 or higher).

+
+ + + + + +
+

vb_qfactor=<-31.0−31.0>

+ + + + + +
+

quantizer factor between B- and non-B-frames (pass 1/2) +(default: 1.25)

+
+ + + + + +
+

vi_qfactor=<-31.0−31.0>

+ + + + + +
+

quantizer factor between I- and non-I-frames (pass 1/2) +(default: 0.8)

+
+ + + + + +
+

vb_qoffset=<-31.0−31.0>

+ + + + + +
+

quantizer offset between B- and non-B-frames (pass 1/2) +(default: 1.25)

+
+ + + + + +
+

vi_qoffset=<-31.0−31.0>

+ + + + + +
+

(pass 1/2) (default: 0.0)
+if v{b|i}_qfactor > 0
+I/B-frame quantizer = P-frame quantizer * v{b|i}_qfactor + +v{b|i}_qoffset
+else
+do normal ratecontrol (do not lock to next P-frame +quantizer) and set q= -q * v{b|i}_qfactor + +v{b|i}_qoffset
+HINT:
To do constant quantizer encoding with different +quantizers for I/P- and B-frames you can use: lmin= +<ip_quant>:lmax= <ip_quant>:vb_qfactor= +<b_quant/ip_quant>.

+
+ + + + + +
+

vqblur=<0.0−1.0> (pass one)

+ + + + + +
+

Quantizer blur (default: 0.5), larger values will average +the quantizer more over time (slower change).

+ + + + + + + + + + + + +
+ +

0.0

+
+ +

Quantizer blur disabled.

+
+ +

1.0

+
+ +

Average the quantizer over all previous frames.

+
+ + + + + +
+

vqblur=<0.0−99.0> (pass two)

+ + + + + +
+

Quantizer gaussian blur (default: 0.5), larger values +will average the quantizer more over time (slower +change).

+
+ + + + + +
+

vqcomp=<0.0−1.0>

+ + + + + +
+

Quantizer compression, vrc_eq depends upon this (pass +1/2) (default: 0.5). For instance, assuming the default rate +control equation is used, if vqcomp=1.0, the ratecontrol +allocates to each frame the number of bits needed to encode +them all at the same QP. If vqcomp=0.0, the ratecontrol +allocates the same number of bits to each frame, i.e. strict +CBR. NOTE: Those are extreme settings and should +never be used. Perceptual quality will be optimal somewhere +in between these two extremes.

+
+ + + + + +
+

vrc_eq=<equation>

+ + + + + +
+

main ratecontrol equation (pass 1/2)

+ + + + + +
+

1

+ + + + + +
+

constant bitrate

+
+ + + + + +
+

tex

+ + + + + +
+

constant quality

+
+ + + + + +
+

1+(tex/avgTex-1)*qComp

+ + + + + +
+

approximately the equation of the old ratecontrol +code

+
+ + + + + +
+

tex^qComp

+ + + + + +
+

with qcomp 0.5 or something like that (default)

+ + + + + +
+

infix operators:

+ + + + + +
+

+,-,*,/,^

+ + + + + +
+

variables:

+ + + + + +
+

tex

+ + + + + +
+

texture complexity

+
+ + + + + +
+

iTex,pTex

+ + + + + +
+

intra, non-intra texture complexity

+
+ + + + + +
+

avgTex

+ + + + + +
+

average texture complexity

+
+ + + + + +
+

avgIITex

+ + + + + +
+

average intra texture complexity in I-frames

+
+ + + + + +
+

avgPITex

+ + + + + +
+

average intra texture complexity in P-frames

+
+ + + + + +
+

avgPPTex

+ + + + + +
+

average non-intra texture complexity in P-frames

+
+ + + + + +
+

avgBPTex

+ + + + + +
+

average non-intra texture complexity in B-frames

+
+ + + + + +
+

mv

+ + + + + +
+

bits used for motion vectors

+
+ + + + + +
+

fCode

+ + + + + +
+

maximum length of motion vector in log2 scale

+
+ + + + + +
+

iCount

+ + + + + +
+

number of intra macroblocks / number of macroblocks

+
+ + + + + +
+

var

+ + + + + +
+

spatial complexity

+
+ + + + + +
+

mcVar

+ + + + + +
+

temporal complexity

+
+ + + + + +
+

qComp

+ + + + + +
+

qcomp from the command line

+
+ + + + + +
+

isI, isP, isB

+ + + + + +
+

Is 1 if picture type is I/P/B else 0.

+
+ + + + + +
+

Pi,E

+ + + + + +
+

See your favorite math book.

+ + + + + +
+

functions:

+ + + + + +
+

max(a,b),min(a,b)

+ + + + + +
+

maximum / minimum

+
+ + + + + +
+

gt(a,b)

+ + + + + +
+

is 1 if a>b, 0 otherwise

+
+ + + + + +
+

lt(a,b)

+ + + + + +
+

is 1 if a<b, 0 otherwise

+
+ + + + + +
+

eq(a,b)

+ + + + + +
+

is 1 if a==b, 0 otherwise

+
+ + + + + +
+

sin, cos, tan, sinh, cosh, tanh, exp, log, abs

+ + + + + +
+

vrc_override=<options>

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...) (pass 1/2). The options are +<start-frame>, <end-frame>, +<quality>[/<start-frame>, <end-frame>, +<quality>[/...]]:

+ + + + + +
+

quality (2−31)

+ + + + + +
+

quantizer

+ + + + + +
+

quality (-500−0)

+ + + + + +
+

quality correction in %

+ + + + + +
+

vrc_init_cplx=<0−1000>

+ + + + + +
+

initial complexity (pass 1)

+
+ + + + + +
+

vrc_init_occupancy=<0.0−1.0>

+ + + + + +
+

initial buffer occupancy, as a fraction of vrc_buf_size +(default: 0.9)

+
+ + + + + +
+

vqsquish=<0|1>

+ + + + + +
+

Specify how to keep the quantizer between qmin and qmax +(pass 1/2).

+ + + + + + + + + + + + +
+ +

0

+
+ +

Use clipping.

+
+ +

1

+
+ +

Use a nice differentiable function (default).

+
+ + + + + +
+

vlelim=<-1000−1000>

+ + + + + +
+

Sets single coefficient elimination threshold for +luminance. Negative values will also consider the DC +coefficient (should be at least -4 or lower for encoding at +quant=1):

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+
+ +

-4

+
+ +

JVT recommendation

+
+
+ + + + + +
+

vcelim=<-1000−1000>

+ + + + + +
+

Sets single coefficient elimination threshold for +chrominance. Negative values will also consider the DC +coefficient (should be at least -4 or lower for encoding at +quant=1):

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+
+ +

7

+
+ +

JVT recommendation

+
+
+ + + + + +
+

vstrict=<-2|-1|0|1>

+ + + + + +
+

strict standard compliance

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled

+
+ +

1

+
+ +

Only recommended if you want to feed the output into the +MPEG-4 reference decoder.

+
+ +

-1

+
+ +

Allow libavcodec specific extensions (default).

+
+ +

-2

+
+ +

Enables experimental codecs and features which may not +be playable with future MPlayer versions (snow).

+
+ + + + + +
+

vdpart

+ + + + + +
+

Data partitioning. Adds 2 Bytes per video packet, +improves error-resistance when transferring over unreliable +channels (e.g. streaming over the internet). Each video +packet will be encoded in 3 separate partitions:

+ + + + + +
+

1. MVs

+ + + + + +
+

movement

+ + + + + +
+

2. DC coefficients

+ + + + + +
+

low res picture

+ + + + + +
+

3. AC coefficients

+ + + + + +
+

details

+ + + + + +
+

MV & DC are most important, losing them looks far +worse than losing the AC and the 1. & 2. partition. (MV +& DC) are far smaller than the 3. partition (AC) meaning +that errors will hit the AC partition much more often than +the MV & DC partitions. Thus, the picture will look +better with partitioning than without, as without +partitioning an error will trash AC/DC/MV equally.

+ + + + + +
+

vpsize=<0−10000> (also see +vdpart)

+ + + + + +
+

Video packet size, improves error-resistance.

+ + + + + +
+

0

+ + + + + +
+

disabled (default)

+ + + + + +
+

100−1000

+ + + + + +
+

good choice

+ + + + + +
+

ss

+ + + + + +
+

slice structured mode for H.263+

+
+ + + + + +
+

gray

+ + + + + +
+

grayscale only encoding (faster)

+
+ + + + + +
+

vfdct=<0−10>

+ + + + + +
+

DCT algorithm

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Automatically select a good one (default).

+
+
+ +

1

+
+ +

fast integer

+
+
+ +

2

+
+ +

accurate integer

+
+
+ +

3

+
+ +

MMX

+
+
+ +

4

+
+ +

mlib

+
+
+ +

5

+
+ +

AltiVec

+
+
+ +

6

+
+ +

floating point AAN

+
+
+ + + + + +
+

idct=<0−99>

+ + + + + +
+

IDCT algorithm
+NOTE:
To the best of our knowledge all these IDCTs do +pass the IEEE1180 tests.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Automatically select a good one (default).

+
+ +

1

+
+ +

JPEG reference integer

+
+ +

2

+
+ +

simple

+
+ +

3

+
+ +

simplemmx

+
+ +

4

+
+ +

libmpeg2mmx (inaccurate, do not use for encoding with +keyint >100)

+
+ +

5

+
+ +

ps2

+
+ +

6

+
+ +

mlib

+
+ +

7

+
+ +

arm

+
+ +

8

+
+ +

AltiVec

+
+ +

9

+
+ +

sh4

+
+ +

10

+
+ +

simplearm

+
+ +

11

+
+ +

H.264

+
+ +

12

+
+ +

VP3

+
+ +

13

+
+ +

IPP

+
+ +

14

+
+ +

xvidmmx

+
+ +

15

+
+ +

CAVS

+
+ +

16

+
+ +

simplearmv5te

+
+ +

17

+
+ +

simplearmv6

+
+ + + + + +
+

lumi_mask=<0.0−1.0>

+ + + + + +
+

Luminance masking is a ’psychosensory’ +setting that is supposed to make use of the fact that the +human eye tends to notice fewer details in very bright parts +of the picture. Luminance masking compresses bright areas +stronger than medium ones, so it will save bits that can be +spent again on other frames, raising overall subjective +quality, while possibly reducing PSNR.
+WARNING:
Be careful, overly large values can cause +disastrous things.
+WARNING:
Large values might look good on some monitors +but may look horrible on other monitors.

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.3

+ + + + + +
+

sane range

+ + + + + +
+

dark_mask=<0.0−1.0>

+ + + + + +
+

Darkness masking is a ’psychosensory’ setting +that is supposed to make use of the fact that the human eye +tends to notice fewer details in very dark parts of the +picture. Darkness masking compresses dark areas stronger +than medium ones, so it will save bits that can be spent +again on other frames, raising overall subjective quality, +while possibly reducing PSNR.
+WARNING:
Be careful, overly large values can cause +disastrous things.
+WARNING:
Large values might look good on some monitors +but may look horrible on other monitors / TV / TFT.

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.3

+ + + + + +
+

sane range

+ + + + + +
+

tcplx_mask=<0.0−1.0>

+ + + + + +
+

Temporal complexity masking (default: 0.0 (disabled)). +Imagine a scene with a bird flying across the whole scene; +tcplx_mask will raise the quantizers of the bird’s +macroblocks (thus decreasing their quality), as the human +eye usually does not have time to see all the bird’s +details. Be warned that if the masked object stops (e.g. the +bird lands) it is likely to look horrible for a short period +of time, until the encoder figures out that the object is +not moving and needs refined blocks. The saved bits will be +spent on other parts of the video, which may increase +subjective quality, provided that tcplx_mask is carefully +chosen.

+
+ + + + + +
+

scplx_mask=<0.0−1.0>

+ + + + + +
+

Spatial complexity masking. Larger values help against +blockiness, if no deblocking filter is used for decoding, +which is maybe not a good idea.
+Imagine a scene with grass (which usually has great spatial +complexity), a blue sky and a house; scplx_mask will raise +the quantizers of the grass’ macroblocks, thus +decreasing its quality, in order to spend more bits on the +sky and the house.
+HINT:
Crop any black borders completely as they will +reduce the quality of the macroblocks (also applies without +scplx_mask).

+ + + + + +
+

0.0

+ + + + + +
+

disabled (default)

+ + + + + +
+

0.0−0.5

+ + + + + +
+

sane range

+ + + + + +
+

NOTE: This setting does not have the same effect +as using a custom matrix that would compress high +frequencies harder, as scplx_mask will reduce the quality of +P blocks even if only DC is changing. The result of +scplx_mask will probably not look as good.

+ + + + + +
+

p_mask=<0.0−1.0> (also see +vi_qfactor)

+ + + + + +
+

Reduces the quality of inter blocks. This is equivalent +to increasing the quality of intra blocks, because the same +average bitrate will be distributed by the rate controller +to the whole video sequence (default: 0.0 (disabled)). +p_mask=1.0 doubles the bits allocated to each intra +block.

+
+ + + + + +
+

border_mask=<0.0−1.0>

+ + + + + +
+

border-processing for MPEG-style encoders. Border +processing increases the quantizer for macroblocks which are +less than 1/5th of the frame width/height away from the +frame border, since they are often visually less +important.

+
+ + + + + +
+

naq

+ + + + + +
+

Normalize adaptive quantization (experimental). When +using adaptive quantization (*_mask), the average per-MB +quantizer may no longer match the requested frame-level +quantizer. Naq will attempt to adjust the per-MB quantizers +to maintain the proper average.

+
+ + + + + +
+

ildct

+ + + + + +
+

Use interlaced DCT.

+
+ + + + + +
+

ilme

+ + + + + +
+

Use interlaced motion estimation (mutually exclusive with +qpel).

+
+ + + + + +
+

alt

+ + + + + +
+

Use alternative scantable.

+
+ + + + + +
+

top=<-1−1>

+ + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

automatic

+
+
+ +

0

+
+ +

bottom field first

+
+
+ +

1

+
+ +

top field first

+
+
+ + + + + +
+

format=<value>

+ + + + + +
+

YV12

+ + + + + +
+

default

+ + + + + +
+

444P

+ + + + + +
+

for ffv1

+ + + + + +
+

422P

+ + + + + +
+

for HuffYUV, lossless JPEG, dv and ffv1

+ + + + + +
+

411P

+ + + + + +
+

for lossless JPEG, dv and ffv1

+ + + + + +
+

YVU9

+ + + + + +
+

for lossless JPEG, ffv1 and svq1

+ + + + + +
+

BGR32

+ + + + + +
+

for lossless JPEG and ffv1

+ + + + + +
+

pred

+ + + + + +
+

(for HuffYUV)

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

left prediction

+
+
+ +

1

+
+ +

plane/gradient prediction

+
+
+ +

2

+
+ +

median prediction

+
+
+ + + + + +
+

pred

+ + + + + +
+

(for lossless JPEG)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

left prediction

+
+
+ +

1

+
+ +

top prediction

+
+
+ +

2

+
+ +

topleft prediction

+
+
+ +

3

+
+ +

plane/gradient prediction

+
+
+ +

6

+
+ +

mean prediction

+
+
+ + + + + +
+

coder

+ + + + + +
+

(for ffv1)

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

vlc coding (Golomb-Rice)

+
+
+ +

1

+
+ +

arithmetic coding (CABAC)

+
+
+ + + + + +
+

context

+ + + + + +
+

(for ffv1)

+ + + + + + + + + + + + + + +
+ +

0

+
+ +

small context model

+
+
+ +

1

+
+ +

large context model

+
+
+ + + + + +
+

(for ffvhuff)

+ + + + + + + + + + + + +
+ +

0

+
+ +

predetermined Huffman tables (builtin or two pass)

+
+ +

1

+
+ +

adaptive Huffman tables

+
+ + + + + +
+

qpel

+ + + + + +
+

Use quarter pel motion compensation (mutually exclusive +with ilme).
+HINT:
This seems only useful for high bitrate +encodings.

+
+ + + + + +
+

mbcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for the macroblock decision, +has only an effect if mbd=0.

+ + + + + +
+

0 (SAD)

+ + + + + +
+

sum of absolute differences, fast (default)

+ + + + + +
+

1 (SSE)

+ + + + + +
+

sum of squared errors

+ + + + + +
+

2 (SATD)

+ + + + + +
+

sum of absolute Hadamard transformed differences

+ + + + + +
+

3 (DCT)

+ + + + + +
+

sum of absolute DCT transformed differences

+ + + + + +
+

4 (PSNR)

+ + + + + +
+

sum of squared quantization errors (avoid, low +quality)

+ + + + + +
+

5 (BIT)

+ + + + + +
+

number of bits needed for the block

+ + + + + +
+

6 (RD)

+ + + + + +
+

rate distortion optimal, slow

+ + + + + +
+

7 (ZERO)

+ + + + + +
+

0

+ + + + + +
+

8 (VSAD)

+ + + + + +
+

sum of absolute vertical differences

+ + + + + +
+

9 (VSSE)

+ + + + + +
+

sum of squared vertical differences

+ + + + + +
+

10 (NSSE)

+ + + + + +
+

noise preserving sum of squared differences

+ + + + + +
+

11 (W53)

+ + + + + +
+

5/3 wavelet, only used in snow

+ + + + + +
+

12 (W97)

+ + + + + +
+

9/7 wavelet, only used in snow

+ + + + + +
+

+256

+ + + + + +
+

Also use chroma, currently does not work (correctly) with +B-frames.

+ + + + + +
+

ildctcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for interlaced DCT decision +(see mbcmp for available comparison functions).

+
+ + + + + +
+

precmp=<0−2000>

+ + + + + +
+

Sets the comparison function for motion estimation pre +pass (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

cmp=<0−2000>

+ + + + + +
+

Sets the comparison function for full pel motion +estimation (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

subcmp=<0−2000>

+ + + + + +
+

Sets the comparison function for sub pel motion +estimation (see mbcmp for available comparison functions) +(default: 0).

+
+ + + + + +
+

skipcmp=<0−2000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

nssew=<0−1000000>

+ + + + + +
+

This setting controls NSSE weight, where larger weights +will result in more noise. 0 NSSE is identical to SSE You +may find this useful if you prefer to keep some noise in +your encoded video rather than filtering it away before +encoding (default: 8).

+
+ + + + + +
+

predia=<-99−6>

+ + + + + +
+

diamond type and size for motion estimation pre-pass

+
+ + + + + +
+

dia=<-99−6>

+ + + + + +
+

Diamond type & size for motion estimation. Motion +search is an iterative process. Using a small diamond does +not limit the search to finding only small motion vectors. +It is just somewhat more likely to stop before finding the +very best motion vector, especially when noise is involved. +Bigger diamonds allow a wider search for the best motion +vector, thus are slower but result in better quality.
+Big normal diamonds are better quality than shape-adaptive +diamonds.
+Shape-adaptive diamonds are a good tradeoff between speed +and quality.
+NOTE:
The sizes of the normal diamonds and shape +adaptive ones do not have the same meaning.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

-3

+
+ +

shape adaptive (fast) diamond with size 3

+
+ +

-2

+
+ +

shape adaptive (fast) diamond with size 2

+
+ +

-1

+
+ +

uneven multi-hexagon search (slow)

+
+ +

1

+
+ +

normal size=1 diamond (default) =EPZS type diamond

+
+ + + + + +
+

0
+000
+0

+
+ + + + + + + + +
+ +

2

+
+ +

normal size=2 diamond

+
+
+ + + + + +
+

0
+000
+00000
+000
+0

+ + + + + +
+

trell

+ + + + + +
+

Trellis searched quantization. This will find the optimal +encoding for each 8x8 block. Trellis searched quantization +is quite simply an optimal quantization in the PSNR versus +bitrate sense (Assuming that there would be no rounding +errors introduced by the IDCT, which is obviously not the +case.). It simply finds a block for the minimum of error and +lambda*bits.

+ + + + + +
+

lambda

+ + + + + +
+

quantization parameter (QP) dependent constant

+ + + + + +
+

bits

+ + + + + +
+

amount of bits needed to encode the block

+ + + + + +
+

error

+ + + + + +
+

sum of squared errors of the quantization

+ + + + + +
+

cbp

+ + + + + +
+

Rate distorted optimal coded block pattern. Will select +the coded block pattern which minimizes distortion + +lambda*rate. This can only be used together with trellis +quantization.

+
+ + + + + +
+

mv0

+ + + + + +
+

Try to encode each MB with MV=<0,0> and choose the +better one. This has no effect if mbd=0.

+
+ + + + + +
+

mv0_threshold=<any non-negative +integer>

+ + + + + +
+

When surrounding motion vectors are <0,0> and the +motion estimation score of the current block is less than +mv0_threshold, <0,0> is used for the motion vector and +further motion estimation is skipped (default: 256). +Lowering mv0_threshold to 0 can give a slight (0.01dB) PSNR +increase and possibly make the encoded video look slightly +better; raising mv0_threshold past 320 results in diminished +PSNR and visual quality. Higher values speed up encoding +very slightly (usually less than 1%, depending on the other +options used).
+NOTE:
This option does not require mv0 to be +enabled.

+
+ + + + + +
+

qprd (mbd=2 only)

+ + + + + +
+

rate distorted optimal quantization parameter (QP) for +the given lambda of each macroblock

+
+ + + + + +
+

last_pred=<0−99>

+ + + + + +
+

amount of motion predictors from the previous +frame

+ + + + + + + + + + + + +
+ +

0

+
+ +

(default)

+
+ +

a

+
+ +

Will use 2a+1 x 2a+1 macroblock square of motion vector +predictors from the previous frame.

+
+ + + + + +
+

preme=<0−2>

+ + + + + +
+

motion estimation pre-pass

+ + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled

+
+
+ +

1

+
+ +

only after I-frames (default)

+
+
+ +

2

+
+ +

always

+
+
+ + + + + +
+

subq=<1−8>

+ + + + + +
+

subpel refinement quality (for qpel) (default: 8 (high +quality))
+NOTE:
This has a significant effect on speed.

+
+ + + + + +
+

refs=<1−8>

+ + + + + +
+

number of reference frames to consider for motion +compensation (Snow only) (default: 1)

+
+ + + + + +
+

psnr

+ + + + + +
+

print the PSNR (peak signal to noise ratio) for the whole +video after encoding and store the per frame PSNR in a file +with a name like ’psnr_hhmmss.log’. Returned +values are in dB (decibel), the higher the better.

+
+ + + + + +
+

mpeg_quant

+ + + + + +
+

Use MPEG quantizers instead of H.263.

+
+ + + + + +
+

aic

+ + + + + +
+

Enable AC prediction for MPEG-4 or advanced intra +prediction for H.263+. This will improve quality very +slightly (around 0.02 dB PSNR) and slow down encoding very +slightly (about 1%).
+NOTE:
vqmin should be 8 or larger for H.263+ AIC.

+
+ + + + + +
+

aiv

+ + + + + +
+

alternative inter vlc for H.263+

+
+ + + + + +
+

umv

+ + + + + +
+

unlimited MVs (H.263+ only) Allows encoding of +arbitrarily long MVs.

+
+ + + + + +
+

ibias=<-256−256>

+ + + + + +
+

intra quantizer bias (256 equals 1.0, MPEG style +quantizer default: 96, H.263 style quantizer default: +0)
+NOTE:
The H.263 MMX quantizer cannot handle positive +biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot +handle negative biases (set vfdct=1 or 2).

+
+ + + + + +
+

pbias=<-256−256>

+ + + + + +
+

inter quantizer bias (256 equals 1.0, MPEG style +quantizer default: 0, H.263 style quantizer default: +-64)
+NOTE:
The H.263 MMX quantizer cannot handle positive +biases (set vfdct=1 or 2), the MPEG MMX quantizer cannot +handle negative biases (set vfdct=1 or 2).
+HINT:
A more positive bias (-32 − -16 instead of +-64) seems to improve the PSNR.

+
+ + + + + +
+

nr=<0−100000>

+ + + + + +
+

Noise reduction, 0 means disabled. 0−600 is a +useful range for typical content, but you may want to turn +it up a bit more for very noisy content (default: 0). Given +its small impact on speed, you might want to prefer to use +this over filtering noise away with video filters like +denoise3d or hqdn3d.

+
+ + + + + +
+

qns=<0−3>

+ + + + + +
+

Quantizer noise shaping. Rather than choosing +quantization to most closely match the source video in the +PSNR sense, it chooses quantization such that noise (usually +ringing) will be masked by similar-frequency content in the +image. Larger values are slower but may not result in better +quality. This can and should be used together with trellis +quantization, in which case the trellis quantization +(optimal for constant weight) will be used as startpoint for +the iterative search.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

Only lower the absolute value of coefficients.

+
+ +

2

+
+ +

Only change coefficients before the last non-zero +coefficient + 1.

+
+ +

3

+
+ +

Try all.

+
+ + + + + +
+

inter_matrix=<comma separated +matrix>

+ + + + + +
+

Use custom inter matrix. It needs a comma separated +string of 64 integers.

+
+ + + + + +
+

intra_matrix=<comma separated +matrix>

+ + + + + +
+

Use custom intra matrix. It needs a comma separated +string of 64 integers.

+
+ + + + + +
+

vqmod_amp

+ + + + + +
+

experimental quantizer modulation

+
+ + + + + +
+

vqmod_freq

+ + + + + +
+

experimental quantizer modulation

+
+ + + + + +
+

dc

+ + + + + +
+

intra DC precision in bits (default: 8). If you specify +vcodec=mpeg2video this value can be 8, 9, 10 or 11.

+
+ + + + + +
+

cgop (also see sc_threshold)

+ + + + + +
+

Close all GOPs. Currently it only works if scene change +detection is disabled (sc_threshold=1000000000).

+
+ + + + + +
+

(no)lowdelay

+ + + + + +
+

Sets the low delay flag for MPEG-1/2 (disables +B-frames).

+
+ + + + + +
+

vglobal=<0−3>

+ + + + + +
+

Control writing global video headers.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Codec decides where to write global headers +(default).

+
+ +

1

+
+ +

Write global headers only in extradata (needed for +.mp4/MOV/NUT).

+
+ +

2

+
+ +

Write global headers only in front of keyframes.

+
+ +

3

+
+ +

Combine 1 and 2.

+
+ + + + + +
+

aglobal=<0−3>

+ + + + + +
+

Same as vglobal for audio headers.

+
+ + + + + +
+

level=<value>

+ + + + + +
+

Set CodecContext Level. Use 31 or 41 to play video on a +Playstation 3.

+
+ + + + + +
+

skip_exp=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

skip_factor=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

skip_threshold=<0−1000000>

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

nuv (−nuvopts)

+ + + + + +
+

Nuppel video is based on RTJPEG and LZO. By default +frames are first encoded with RTJPEG and then compressed +with LZO, but it is possible to disable either or both of +the two passes. As a result, you can in fact output raw +i420, LZO compressed i420, RTJPEG, or the default LZO +compressed RTJPEG.
+NOTE:
The nuvrec documentation contains some advice and +examples about the settings to use for the most common TV +encodings.

+
+ + + + + +
+

c=<0−20>

+ + + + + +
+

chrominance threshold (default: 1)

+
+ + + + + +
+

l=<0−20>

+ + + + + +
+

luminance threshold (default: 1)

+
+ + + + + +
+

lzo

+ + + + + +
+

Enable LZO compression (default).

+
+ + + + + +
+

nolzo

+ + + + + +
+

Disable LZO compression.

+
+ + + + + +
+

q=<3−255>

+ + + + + +
+

quality level (default: 255)

+
+ + + + + +
+

raw

+ + + + + +
+

Disable RTJPEG encoding.

+
+ + + + + +
+

rtjpeg

+ + + + + +
+

Enable RTJPEG encoding (default).

+
+ + + + + +
+

xvidenc (−xvidencopts)

+ + + + + +
+

There are three modes available: constant bitrate (CBR), +fixed quantizer and two pass.

+
+ + + + + +
+

pass=<1|2>

+ + + + + +
+

Specify the pass in two pass mode.

+
+ + + + + +
+

turbo (two pass only)

+ + + + + +
+

Dramatically speeds up pass one using faster algorithms +and disabling CPU-intensive options. This will probably +reduce global PSNR a little bit and change individual frame +type and PSNR a little bit more.

+
+ + + + + +
+

bitrate=<value> (CBR or two pass +mode)

+ + + + + +
+

Sets the bitrate to be used in kbits/second if <16000 +or in bits/second if >16000. If <value> is +negative, Xvid will use its absolute value as the target +size (in kBytes) of the video and compute the associated +bitrate automagically (default: 687 kbits/s).

+
+ + + + + +
+

fixed_quant=<1−31>

+ + + + + +
+

Switch to fixed quantizer mode and specify the quantizer +to be used.

+
+ + + + + +
+

zones=<zone0>[/<zone1>[/...]] (CBR or two +pass mode)

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...). Each zone is +<start-frame>,<mode>,<value> where +<mode> may be

+ + + + + + + + + + + + +
+ +

q

+
+ +

Constant quantizer override, where +value=<2.0−31.0> represents the quantizer +value.

+
+ +

w

+
+ +

Ratecontrol weight override, where +value=<0.01−2.00> represents the quality +correction in %.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

zones=90000,q,20

+ + + + + +
+

Encodes all frames starting with frame 90000 at constant +quantizer 20.

+ + + + + +
+

zones=0,w,0.1/10001,w,1.0/90000,q,20

+ + + + + +
+

Encode frames 0−10000 at 10% bitrate, encode frames +90000 up to the end at constant quantizer 20. Note that the +second zone is needed to delimit the first zone, as without +it everything up until frame 89999 would be encoded at 10% +bitrate.

+ + + + + +
+

me_quality=<0−6>

+ + + + + +
+

This option controls the motion estimation subsystem. The +higher the value, the more precise the estimation should be +(default: 6). The more precise the motion estimation is, the +more bits can be saved. Precision is gained at the expense +of CPU time so decrease this setting if you need realtime +encoding.

+
+ + + + + +
+

(no)qpel

+ + + + + +
+

MPEG-4 uses a half pixel precision for its motion search +by default. The standard proposes a mode where encoders are +allowed to use quarter pixel precision. This option usually +results in a sharper image. Unfortunately it has a great +impact on bitrate and sometimes the higher bitrate use will +prevent it from giving a better image quality at a fixed +bitrate. It is better to test with and without this option +and see whether it is worth activating.

+
+ + + + + +
+

(no)gmc

+ + + + + +
+

Enable Global Motion Compensation, which makes Xvid +generate special frames (GMC-frames) which are well suited +for Pan/Zoom/ Rotating images. Whether or not the use of +this option will save bits is highly dependent on the source +material.

+
+ + + + + +
+

(no)trellis

+ + + + + +
+

Trellis Quantization is a kind of adaptive quantization +method that saves bits by modifying quantized coefficients +to make them more compressible by the entropy encoder. Its +impact on quality is good, and if VHQ uses too much CPU for +you, this setting can be a good alternative to save a few +bits (and gain quality at fixed bitrate) at a lesser cost +than with VHQ (default: on).

+
+ + + + + +
+

(no)cartoon

+ + + + + +
+

Activate this if your encoded sequence is an +anime/cartoon. It modifies some Xvid internal thresholds so +Xvid takes better decisions on frame types and motion +vectors for flat looking cartoons.

+
+ + + + + +
+

(no)chroma_me

+ + + + + +
+

The usual motion estimation algorithm uses only the +luminance information to find the best motion vector. +However for some video material, using the chroma planes can +help find better vectors. This setting toggles the use of +chroma planes for motion estimation (default: on).

+
+ + + + + +
+

(no)chroma_opt

+ + + + + +
+

Enable a chroma optimizer prefilter. It will do some +extra magic on color information to minimize the +stepped-stairs effect on edges. It will improve quality at +the cost of encoding speed. It reduces PSNR by nature, as +the mathematical deviation to the original picture will get +bigger, but the subjective image quality will raise. Since +it works with color information, you might want to turn it +off when encoding in grayscale.

+
+ + + + + +
+

(no)hq_ac

+ + + + + +
+

Activates high-quality prediction of AC coefficients for +intra frames from neighbor blocks (default: on).

+
+ + + + + +
+

vhq=<0−4>

+ + + + + +
+

The motion search algorithm is based on a search in the +usual color domain and tries to find a motion vector that +minimizes the difference between the reference frame and the +encoded frame. With this setting activated, Xvid will also +use the frequency domain (DCT) to search for a motion vector +that minimizes not only the spatial difference but also the +encoding length of the block. Fastest to slowest:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

off

+
+
+ +

1

+
+ +

mode decision (inter/intra MB) (default)

+
+
+ +

2

+
+ +

limited search

+
+
+ +

3

+
+ +

medium search

+
+
+ +

4

+
+ +

wide search

+
+
+ + + + + +
+

(no)lumi_mask

+ + + + + +
+

Adaptive quantization allows the macroblock quantizers to +vary inside each frame. This is a +’psychosensory’ setting that is supposed to make +use of the fact that the human eye tends to notice fewer +details in very bright and very dark parts of the picture. +It compresses those areas more strongly than medium ones, +which will save bits that can be spent again on other +frames, raising overall subjective quality and possibly +reducing PSNR.

+
+ + + + + +
+

(no)grayscale

+ + + + + +
+

Make Xvid discard chroma planes so the encoded video is +grayscale only. Note that this does not speed up encoding, +it just prevents chroma data from being written in the last +stage of encoding.

+
+ + + + + +
+

(no)interlacing

+ + + + + +
+

Encode the fields of interlaced video material. Turn this +option on for interlaced content.
+NOTE:
Should you rescale the video, you would need an +interlace-aware resizer, which you can activate with +−vf scale=<width>:<height>:1.

+
+ + + + + +
+

min_iquant=<0−31>

+ + + + + +
+

minimum I-frame quantizer (default: 2)

+
+ + + + + +
+

max_iquant=<0−31>

+ + + + + +
+

maximum I-frame quantizer (default: 31)

+
+ + + + + +
+

min_pquant=<0−31>

+ + + + + +
+

minimum P-frame quantizer (default: 2)

+
+ + + + + +
+

max_pquant=<0−31>

+ + + + + +
+

maximum P-frame quantizer (default: 31)

+
+ + + + + +
+

min_bquant=<0−31>

+ + + + + +
+

minimum B-frame quantizer (default: 2)

+
+ + + + + +
+

max_bquant=<0−31>

+ + + + + +
+

maximum B-frame quantizer (default: 31)

+
+ + + + + +
+

min_key_interval=<value> (two pass +only)

+ + + + + +
+

minimum interval between keyframes (default: 0)

+
+ + + + + +
+

max_key_interval=<value>

+ + + + + +
+

maximum interval between keyframes (default: 10*fps)

+
+ + + + + +
+

quant_type=<h263|mpeg>

+ + + + + +
+

Sets the type of quantizer to use. For high bitrates, you +will find that MPEG quantization preserves more detail. For +low bitrates, the smoothing of H.263 will give you less +block noise. When using custom matrices, MPEG quantization +must be used.

+
+ + + + + +
+

quant_intra_matrix=<filename>

+ + + + + +
+

Load a custom intra matrix file. You can build such a +file with xvid4conf’s matrix editor.

+
+ + + + + +
+

quant_inter_matrix=<filename>

+ + + + + +
+

Load a custom inter matrix file. You can build such a +file with xvid4conf’s matrix editor.

+
+ + + + + +
+

keyframe_boost=<0−1000> (two pass mode +only)

+ + + + + +
+

Shift some bits from the pool for other frame types to +intra frames, thus improving keyframe quality. This amount +is an extra percentage, so a value of 10 will give your +keyframes 10% more bits than normal (default: 0).

+
+ + + + + +
+

kfthreshold=<value> (two pass mode +only)

+ + + + + +
+

Works together with kfreduction. Determines the minimum +distance below which you consider that two frames are +considered consecutive and treated differently according to +kfreduction (default: 10).

+
+ + + + + +
+

kfreduction=<0−100> (two pass mode +only)

+ + + + + +
+

The above two settings can be used to adjust the size of +keyframes that you consider too close to the first (in a +row). kfthreshold sets the range in which keyframes are +reduced, and kfreduction determines the bitrate reduction +they get. The last I-frame will get treated normally +(default: 30).

+
+ + + + + +
+

max_bframes=<0−4>

+ + + + + +
+

Maximum number of B-frames to put between I/P-frames +(default: 2).

+
+ + + + + +
+

bquant_ratio=<0−1000>

+ + + + + +
+

quantizer ratio between B- and non-B-frames, 150=1.50 +(default: 150)

+
+ + + + + +
+

bquant_offset=<-1000−1000>

+ + + + + +
+

quantizer offset between B- and non-B-frames, 100=1.00 +(default: 100)

+
+ + + + + +
+

bf_threshold=<-255−255>

+ + + + + +
+

This setting allows you to specify what priority to place +on the use of B-frames. The higher the value, the higher the +probability of B-frames being used (default: 0). Do not +forget that B-frames usually have a higher quantizer, and +therefore aggressive production of B-frames may cause worse +visual quality.

+
+ + + + + +
+

(no)closed_gop

+ + + + + +
+

This option tells Xvid to close every GOP (Group Of +Pictures bounded by two I-frames), which makes GOPs +independent from each other. This just implies that the last +frame of the GOP is either a P-frame or a N-frame but not a +B-frame. It is usually a good idea to turn this option on +(default: on).

+
+ + + + + +
+

(no)packed

+ + + + + +
+

This option is meant to solve frame-order issues when +encoding to container formats like AVI that cannot cope with +out-of-order frames. In practice, most decoders (both +software and hardware) are able to deal with frame-order +themselves, and may get confused when this option is turned +on, so you can safely leave if off, unless you really know +what you are doing.
+WARNING:
This will generate an illegal bitstream, and +will not be decodable by ISO-MPEG-4 decoders except +DivX/libavcodec/ Xvid.
+WARNING:
This will also store a fake DivX version in the +file so the bug autodetection of some decoders might be +confused.

+
+ + + + + +
+

frame_drop_ratio=<0−100> (max_bframes=0 +only)

+ + + + + +
+

This setting allows the creation of variable framerate +video streams. The value of the setting specifies a +threshold under which, if the difference of the following +frame to the previous frame is below or equal to this +threshold, a frame gets not coded (a so called n-vop is +placed in the stream). On playback, when reaching an n-vop +the previous frame will be displayed.
+WARNING:
Playing with this setting may result in a jerky +video, so use it at your own risks!

+
+ + + + + +
+

rc_reaction_delay_factor=<value>

+ + + + + +
+

This parameter controls the number of frames the CBR rate +controller will wait before reacting to bitrate changes and +compensating for them to obtain a constant bitrate over an +averaging range of frames.

+
+ + + + + +
+

rc_averaging_period=<value>

+ + + + + +
+

Real CBR is hard to achieve. Depending on the video +material, bitrate can be variable, and hard to predict. +Therefore Xvid uses an averaging period for which it +guarantees a given amount of bits (minus a small variation). +This settings expresses the "number of frames" for +which Xvid averages bitrate and tries to achieve CBR.

+
+ + + + + +
+

rc_buffer=<value>

+ + + + + +
+

size of the rate control buffer

+
+ + + + + +
+ +

curve_compression_high=<0−100>

+ + + + + +
+

This setting allows Xvid to take a certain percentage of +bits away from high bitrate scenes and give them back to the +bit reservoir. You could also use this if you have a clip +with so many bits allocated to high-bitrate scenes that the +low(er)-bitrate scenes start to look bad (default: 0).

+
+ + + + + +
+ +

curve_compression_low=<0−100>

+ + + + + +
+

This setting allows Xvid to give a certain percentage of +extra bits to the low bitrate scenes, taking a few bits from +the entire clip. This might come in handy if you have a few +low-bitrate scenes that are still blocky (default: 0).

+
+ + + + + +
+ +

overflow_control_strength=<0−100>

+ + + + + +
+

During pass one of two pass encoding, a scaled bitrate +curve is computed. The difference between that expected +curve and the result obtained during encoding is called +overflow. Obviously, the two pass rate controller tries to +compensate for that overflow, distributing it over the next +frames. This setting controls how much of the overflow is +distributed every time there is a new frame. Low values +allow lazy overflow control, big rate bursts are compensated +for more slowly (could lead to lack of precision for small +clips). Higher values will make changes in bit +redistribution more abrupt, possibly too abrupt if you set +it too high, creating artifacts (default: 5).
+NOTE:
This setting impacts quality a lot, play with it +carefully!

+
+ + + + + +
+ +

max_overflow_improvement=<0−100>

+ + + + + +
+

During the frame bit allocation, overflow control may +increase the frame size. This parameter specifies the +maximum percentage by which the overflow control is allowed +to increase the frame size, compared to the ideal curve +allocation (default: 5).

+
+ + + + + +
+ +

max_overflow_degradation=<0−100>

+ + + + + +
+

During the frame bit allocation, overflow control may +decrease the frame size. This parameter specifies the +maximum percentage by which the overflow control is allowed +to decrease the frame size, compared to the ideal curve +allocation (default: 5).

+
+ + + + + +
+

container_frame_overhead=<0...>

+ + + + + +
+

Specifies a frame average overhead per frame, in bytes. +Most of the time users express their target bitrate for +video w/o taking care of the video container overhead. This +small but (mostly) constant overhead can cause the target +file size to be exceeded. Xvid allows users to set the +amount of overhead per frame the container generates (give +only an average per frame). 0 has a special meaning, it lets +Xvid use its own default values (default: 24 − AVI +average overhead).

+
+ + + + + +
+

profile=<profile_name>

+ + + + + +
+

Restricts options and VBV (peak bitrate over a short +period) according to the Simple, Advanced Simple and DivX +profiles. The resulting videos should be playable on +standalone players adhering to these profile +specifications.

+ + + + + +
+

unrestricted

+ + + + + +
+

no restrictions (default)

+ + + + + +
+

sp0

+ + + + + +
+

simple profile at level 0

+ + + + + +
+

sp1

+ + + + + +
+

simple profile at level 1

+ + + + + +
+

sp2

+ + + + + +
+

simple profile at level 2

+ + + + + +
+

sp3

+ + + + + +
+

simple profile at level 3

+ + + + + +
+

asp0

+ + + + + +
+

advanced simple profile at level 0

+ + + + + +
+

asp1

+ + + + + +
+

advanced simple profile at level 1

+ + + + + +
+

asp2

+ + + + + +
+

advanced simple profile at level 2

+ + + + + +
+

asp3

+ + + + + +
+

advanced simple profile at level 3

+ + + + + +
+

asp4

+ + + + + +
+

advanced simple profile at level 4

+ + + + + +
+

asp5

+ + + + + +
+

advanced simple profile at level 5

+ + + + + +
+

dxnhandheld

+ + + + + +
+

DXN handheld profile

+ + + + + +
+

dxnportntsc

+ + + + + +
+

DXN portable NTSC profile

+ + + + + +
+

dxnportpal

+ + + + + +
+

DXN portable PAL profile

+ + + + + +
+

dxnhtntsc

+ + + + + +
+

DXN home theater NTSC profile

+ + + + + +
+

dxnhtpal

+ + + + + +
+

DXN home theater PAL profile

+ + + + + +
+

dxnhdtv

+ + + + + +
+

DXN HDTV profile

+ + + + + +
+

NOTE: These profiles should be used in conjunction +with an appropriate −ffourcc. Generally DX50 is +applicable, as some players do not recognize Xvid but most +recognize DivX.

+ + + + + +
+

par=<mode>

+ + + + + +
+

Specifies the Pixel Aspect Ratio mode (not to be confused +with DAR, the Display Aspect Ratio). PAR is the ratio of the +width and height of a single pixel. So both are related like +this: DAR = PAR * (width/height).
+MPEG-4 defines 5 pixel aspect ratios and one extended one, +giving the opportunity to specify a specific pixel aspect +ratio. 5 standard modes can be specified:

+ + + + + +
+

vga11

+ + + + + +
+

It is the usual PAR for PC content. Pixels are a square +unit.

+ + + + + +
+

pal43

+ + + + + +
+

PAL standard 4:3 PAR. Pixels are rectangles.

+ + + + + +
+

pal169

+ + + + + +
+

same as above

+ + + + + +
+

ntsc43

+ + + + + +
+

same as above

+ + + + + +
+

ntsc169

+ + + + + +
+

same as above (Do not forget to give the exact +ratio.)

+ + + + + +
+

ext

+ + + + + +
+

Allows you to specify your own pixel aspect ratio with +par_width and par_height.

+ + + + + +
+

NOTE: In general, setting aspect and autoaspect +options is enough.

+ + + + + +
+

par_width=<1−255> (par=ext +only)

+ + + + + +
+

Specifies the width of the custom pixel aspect ratio.

+
+ + + + + +
+

par_height=<1−255> (par=ext +only)

+ + + + + +
+

Specifies the height of the custom pixel aspect +ratio.

+
+ + + + + +
+

aspect=<x/y | f (float value)>

+ + + + + +
+

Store movie aspect internally, just like MPEG files. Much +nicer solution than rescaling, because quality is not +decreased. MPlayer and a few others players will play these +files correctly, others will display them with the wrong +aspect. The aspect parameter can be given as a ratio or a +floating point number.

+
+ + + + + +
+

(no)autoaspect

+ + + + + +
+

Same as the aspect option, but automatically computes +aspect, taking into account all the adjustments +(crop/expand/scale/ etc.) made in the filter chain.

+
+ + + + + +
+

psnr

+ + + + + +
+

Print the PSNR (peak signal to noise ratio) for the whole +video after encoding and store the per frame PSNR in a file +with a name like ’psnr_hhmmss.log’ in the +current directory. Returned values are in dB (decibel), the +higher the better.

+
+ + + + + +
+

debug

+ + + + + +
+

Save per-frame statistics in ./xvid.dbg. (This is not the +two pass control file.)

+ + + + + +
+

The following option is only available in Xvid 1.1.x.

+
+ + + + + +
+

bvhq=<0|1>

+ + + + + +
+

This setting allows vector candidates for B-frames to be +used for the encoding chosen using a rate distortion +optimized operator, which is what is done for P-frames by +the vhq option. This produces nicer-looking B-frames while +incurring almost no performance penalty (default: 1).

+
+ + + + + +
+

The following option is only available in the 1.2.x +version of Xvid.

+
+ + + + + +
+

threads=<0−n>

+ + + + + +
+

Create n threads to run the motion estimation (default: +0). The maximum number of threads that can be used is the +picture height divided by 16.

+
+ + + + + +
+

x264enc (−x264encopts)

+ + + + + +
+

bitrate=<value>

+ + + + + +
+

Sets the average bitrate to be used in kbits/second +(default: off). Since local bitrate may vary, this average +may be inaccurate for very short videos (see ratetol). +Constant bitrate can be achieved by combining this with +vbv_maxrate, at significant reduction in quality.

+
+ + + + + +
+

qp=<0−51>

+ + + + + +
+

This selects the quantizer to use for P-frames. I- and +B-frames are offset from this value by ip_factor and +pb_factor, respectively. 20−40 is a useful range. +Lower values result in better fidelity, but higher bitrates. +0 is lossless. Note that quantization in H.264 works +differently from MPEG-1/2/4: H.264’s quantization +parameter (QP) is on a logarithmic scale. The mapping is +approximately H264QP = 12 + 6*log2(MPEGQP). For example, +MPEG at QP=2 is equivalent to H.264 at QP=18.

+
+ + + + + +
+

crf=<1.0−50.0>

+ + + + + +
+

Enables constant quality mode, and selects the quality. +The scale is similar to QP. Like the bitrate-based modes, +this allows each frame to use a different QP based on the +frame’s complexity.

+
+ + + + + +
+

pass=<1−3>

+ + + + + +
+

Enable 2 or 3-pass mode. It is recommended to always +encode in 2 or 3-pass mode as it leads to a better bit +distribution and improves overall quality.

+ + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

first pass

+
+ +

2

+
+ +

second pass (of two pass encoding)

+
+ +

3

+
+ +

Nth pass (second and third passes of three pass +encoding)

+
+ + + + + +
+

Here is how it works, and how to use it:
+The first pass (pass=1) collects statistics on the video and +writes them to a file. You might want to deactivate some +CPU-hungry options, apart from the ones that are on by +default.
+In two pass mode, the second pass (pass=2) reads the +statistics file and bases ratecontrol decisions on it.
+In three pass mode, the second pass (pass=3, that is not a +typo) does both: It first reads the statistics, then +overwrites them. You can use all encoding options, except +very CPU-hungry options.
+The third pass (pass=3) is the same as the second pass, +except that it has the second pass’ statistics to work +from. You can use all encoding options, including CPU-hungry +ones.
+The first pass may use either average bitrate or constant +quantizer. ABR is recommended, since it does not require +guessing a quantizer. Subsequent passes are ABR, and must +specify bitrate.

+ + + + + +
+

turbo=<0−2>

+ + + + + +
+

Fast first pass mode. During the first pass of a two or +more pass encode it is possible to gain speed by disabling +some options with negligible or even no impact on the final +pass output quality.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

Reduce subq, frameref and disable some inter-macroblock +partition analysis modes.

+
+ +

2

+
+ +

Reduce subq and frameref to 1, use a diamond ME search +and disable all partition analysis modes.

+
+ + + + + +
+

Level 1 can increase first pass speed up to 2x with no +change in the global PSNR of the final pass compared to a +full quality first pass.
+Level 2 can increase first pass speed up to 4x with about ++/- 0.05dB change in the global PSNR of the final pass +compared to a full quality first pass.

+ + + + + +
+

keyint=<value>

+ + + + + +
+

Sets maximum interval between IDR-frames (default: 250). +Larger values save bits, thus improve quality, at the cost +of seeking precision. Unlike MPEG-1/2/4, H.264 does not +suffer from DCT drift with large values of keyint.

+
+ + + + + +
+

keyint_min=<1−keyint/2>

+ + + + + +
+

Sets minimum interval between IDR-frames (default: 25). +If scenecuts appear within this interval, they are still +encoded as I-frames, but do not start a new GOP. In H.264, +I-frames do not necessarily bound a closed GOP because it is +allowable for a P-frame to be predicted from more frames +than just the one frame before it (also see frameref). +Therefore, I-frames are not necessarily seekable. IDR-frames +restrict subsequent P-frames from referring to any frame +prior to the IDR-frame.

+
+ + + + + +
+

scenecut=<-1−100>

+ + + + + +
+

Controls how aggressively to insert extra I-frames +(default: 40). With small values of scenecut, the codec +often has to force an I-frame when it would exceed keyint. +Good values of scenecut may find a better location for the +I-frame. Large values use more I-frames than necessary, thus +wasting bits. -1 disables scene-cut detection, so I-frames +are inserted only once every other keyint frames, even if a +scene-cut occurs earlier. This is not recommended and wastes +bitrate as scenecuts encoded as P-frames are just as big as +I-frames, but do not reset the "keyint +counter".

+
+ + + + + +
+

frameref=<1−16>

+ + + + + +
+

Number of previous frames used as predictors in B- and +P-frames (default: 1). This is effective in anime, but in +live-action material the improvements usually drop off very +rapidly above 6 or so reference frames. This has no effect +on decoding speed, but does increase the memory needed for +decoding. Some decoders can only handle a maximum of 15 +reference frames.

+
+ + + + + +
+

bframes=<0−16>

+ + + + + +
+

maximum number of consecutive B-frames between I- and +P-frames (default: 0)

+
+ + + + + +
+

(no)b_adapt

+ + + + + +
+

Automatically decides when to use B-frames and how many, +up to the maximum specified above (default: on). If this +option is disabled, then the maximum number of B-frames is +used.

+
+ + + + + +
+

b_bias=<-100−100>

+ + + + + +
+

Controls the decision performed by b_adapt. A higher +b_bias produces more B-frames (default: 0).

+
+ + + + + +
+

(no)b_pyramid

+ + + + + +
+

Allows B-frames to be used as references for predicting +other frames. For example, consider 3 consecutive B-frames: +I0 B1 B2 B3 P4. Without this option, B-frames follow the +same pattern as MPEG-[124]. So they are coded in the order +I0 P4 B1 B2 B3, and all the B-frames are predicted from I0 +and P4. With this option, they are coded as I0 P4 B2 B1 B3. +B2 is the same as above, but B1 is predicted from I0 and B2, +and B3 is predicted from B2 and P4. This usually results in +slightly improved compression, at almost no speed cost. +However, this is an experimental option: it is not fully +tuned and may not always help. Requires bframes >= 2. +Disadvantage: increases decoding delay to 2 frames.

+
+ + + + + +
+

(no)deblock

+ + + + + +
+

Use deblocking filter (default: on). As it takes very +little time compared to its quality gain, it is not +recommended to disable it.

+
+ + + + + +
+ +

deblock=<-6−6>,<-6−6>

+ + + + + +
+

The first parameter is AlphaC0 (default: 0). This adjusts +thresholds for the H.264 in-loop deblocking filter. First, +this parameter adjusts the maximum amount of change that the +filter is allowed to cause on any one pixel. Secondly, this +parameter affects the threshold for difference across the +edge being filtered. A positive value reduces blocking +artifacts more, but will also smear details.
+The second parameter is Beta (default: 0). This affects the +detail threshold. Very detailed blocks are not filtered, +since the smoothing caused by the filter would be more +noticeable than the original blocking.
+The default behavior of the filter almost always achieves +optimal quality, so it is best to either leave it alone, or +make only small adjustments. However, if your source +material already has some blocking or noise which you would +like to remove, it may be a good idea to turn it up a little +bit.

+
+ + + + + +
+

(no)cabac

+ + + + + +
+

Use CABAC (Context-Adaptive Binary Arithmetic Coding) +(default: on). Slightly slows down encoding and decoding, +but should save 10-15% bitrate. Unless you are looking for +decoding speed, you should not disable it.

+
+ + + + + +
+

qp_min=<1−51> (ABR or two +pass)

+ + + + + +
+

Minimum quantizer, 10−30 seems to be a useful range +(default: 10).

+
+ + + + + +
+

qp_max=<1−51> (ABR or two +pass)

+ + + + + +
+

maximum quantizer (default: 51)

+
+ + + + + +
+

qp_step=<1−50> (ABR or two +pass)

+ + + + + +
+

maximum value by which the quantizer may be +incremented/decremented between frames (default: 4)

+
+ + + + + +
+

ratetol=<0.1−100.0> (ABR or two +pass)

+ + + + + +
+

allowed variance in average bitrate (no particular units) +(default: 1.0)

+
+ + + + + +
+

vbv_maxrate=<value> (ABR or two +pass)

+ + + + + +
+

maximum local bitrate, in kbits/second (default: +disabled)

+
+ + + + + +
+

vbv_bufsize=<value> (ABR or two +pass)

+ + + + + +
+

averaging period for vbv_maxrate, in kbits (default: +none, must be specified if vbv_maxrate is enabled)

+
+ + + + + +
+

vbv_init=<0.0−1.0> (ABR or two +pass)

+ + + + + +
+

initial buffer occupancy, as a fraction of vbv_bufsize +(default: 0.9)

+
+ + + + + +
+

ip_factor=<value>

+ + + + + +
+

quantizer factor between I- and P-frames (default: +1.4)

+
+ + + + + +
+

pb_factor=<value>

+ + + + + +
+

quantizer factor between P- and B-frames (default: +1.3)

+
+ + + + + +
+

qcomp=<0−1> (ABR or two pass)

+ + + + + +
+

quantizer compression (default: 0.6). A lower value makes +the bitrate more constant, while a higher value makes the +quantization parameter more constant.

+
+ + + + + +
+

cplx_blur=<0−999> (two pass +only)

+ + + + + +
+

Temporal blur of the estimated frame complexity, before +curve compression (default: 20). Lower values allow the +quantizer value to jump around more, higher values force it +to vary more smoothly. cplx_blur ensures that each I-frame +has quality comparable to the following P-frames, and +ensures that alternating high and low complexity frames +(e.g. low fps animation) do not waste bits on fluctuating +quantizer.

+
+ + + + + +
+

qblur=<0−99> (two pass only)

+ + + + + +
+

Temporal blur of the quantization parameter, after curve +compression (default: 0.5). Lower values allow the quantizer +value to jump around more, higher values force it to vary +more smoothly.

+
+ + + + + +
+ +

zones=<zone0>[/<zone1>[/...]]

+ + + + + +
+

User specified quality for specific parts (ending, +credits, ...). Each zone is +<start-frame>,<end-frame>,<option> where +option may be

+ + + + + +
+

q=<0−51>

+ + + + + +
+

quantizer

+ + + + + +
+

b=<0.01−100.0>

+ + + + + +
+

bitrate multiplier

+ + + + + +
+

NOTE: The quantizer option is not strictly +enforced. It affects only the planning stage of ratecontrol, +and is still subject to overflow compensation and +qp_min/qp_max.

+ + + + + +
+

direct_pred=<name>

+ + + + + +
+

Determines the type of motion prediction used for direct +macroblocks in B-frames.

+ + + + + + + + +
+ +

none

+
+ +

Direct macroblocks are not used.

+
+
+ + + + + +
+

spatial

+ + + + + +
+

Motion vectors are extrapolated from neighboring blocks. +(default)

+ + + + + +
+

temporal

+ + + + + +
+

Motion vectors are interpolated from the following +P-frame.

+ + + + + + + +
+ +

auto

+
+ +

The codec selects between spatial and temporal for each +frame.

+
+ + + + + +
+

Spatial and temporal are approximately the same speed and +PSNR, the choice between them depends on the video content. +Auto is slightly better, but slower. Auto is most effective +when combined with multipass. direct_pred=none is both +slower and lower quality.

+ + + + + +
+

(no)weight_b

+ + + + + +
+

Use weighted prediction in B-frames. Without this option, +bidirectionally predicted macroblocks give equal weight to +each reference frame. With this option, the weights are +determined by the temporal position of the B-frame relative +to the references. Requires bframes > 1.

+
+ + + + + +
+

partitions=<list>

+ + + + + +
+

Enable some optional macroblock types (default: +p8x8,b8x8,i8x8,i4x4).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

p8x8

+
+ +

Enable types p16x8, p8x16, p8x8.

+
+ +

p4x4

+
+ +

Enable types p8x4, p4x8, p4x4. p4x4 is recommended only +with subq >= 5, and only at low resolutions.

+
+ +

b8x8

+
+ +

Enable types b16x8, b8x16, b8x8.

+
+ +

i8x8

+
+ +

Enable type i8x8. i8x8 has no effect unless 8x8dct is +enabled.

+
+ +

i4x4

+
+ +

Enable type i4x4.

+
+ +

all

+
+ +

Enable all of the above types.

+
+ +

none

+
+ +

Disable all of the above types.

+
+ + + + + +
+

Regardless of this option, macroblock types p16x16, +b16x16, and i16x16 are always enabled.
+The idea is to find the type and size that best describe a +certain area of the picture. For example, a global pan is +better represented by 16x16 blocks, while small moving +objects are better represented by smaller blocks.

+ + + + + +
+

(no)8x8dct

+ + + + + +
+

Adaptive spatial transform size: allows macroblocks to +choose between 4x4 and 8x8 DCT. Also allows the i8x8 +macroblock type. Without this option, only 4x4 DCT is +used.

+
+ + + + + +
+

me=<name>

+ + + + + +
+

Select fullpixel motion estimation algorithm.

+ + + + + + + + + + + + + + + + + + + + + + +
+ +

dia

+
+ +

diamond search, radius 1 (fast)

+
+ +

hex

+
+ +

hexagon search, radius 2 (default)

+
+ +

umh

+
+ +

uneven multi-hexagon search (slow)

+
+ +

esa

+
+ +

exhaustive search (very slow, and no better than +umh)

+
+ + + + + +
+

me_range=<4−64>

+ + + + + +
+

radius of exhaustive or multi-hexagon motion search +(default: 16)

+
+ + + + + +
+

subq=<1−7>

+ + + + + +
+

Adjust subpel refinement quality. This parameter controls +quality versus speed tradeoffs involved in the motion +estimation decision process. subq=5 can compress up to 10% +better than subq=1.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

1

+
+ +

Runs fullpixel precision motion estimation on all +candidate macroblock types. Then selects the best type. Then +refines the motion of that type to fast quarterpixel +precision (fastest).

+
+ +

2

+
+ +

Runs halfpixel precision motion estimation on all +candidate macroblock types. Then selects the best type. Then +refines the motion of that type to fast quarterpixel +precision.

+
+ +

3

+
+ +

As 2, but uses a slower quarterpixel refinement.

+
+ +

4

+
+ +

Runs fast quarterpixel precision motion estimation on +all candidate macroblock types. Then selects the best type. +Then finishes the quarterpixel refinement for that type.

+
+ +

5

+
+ +

Runs best quality quarterpixel precision motion +estimation on all candidate macroblock types, before +selecting the best type (default).

+
+ +

6

+
+ +

Enables rate-distortion optimization of macroblock types +in I- and P-frames.

+
+ +

7

+
+ +

Enables rate-distortion optimization of motion vectors +and intra modes. (best)

+
+ + + + + +
+

In the above, "all candidates" does not exactly +mean all enabled types: 4x4, 4x8, 8x4 are tried only if 8x8 +is better than 16x16.

+ + + + + +
+

(no)chroma_me

+ + + + + +
+

Takes into account chroma information during subpixel +motion search (default: enabled). Requires subq>=5.

+
+ + + + + +
+

(no)mixed_refs

+ + + + + +
+

Allows each 8x8 or 16x8 motion partition to independently +select a reference frame. Without this option, a whole +macroblock must use the same reference. Requires +frameref>1.

+
+ + + + + +
+

(no)brdo

+ + + + + +
+

Enables rate-distortion optimization of macroblock types +in B-frames. Requires subq>=6.

+
+ + + + + +
+

(no)bime

+ + + + + +
+

Refine the two motion vectors used in bidirectional +macroblocks, rather than re-using vectors from the forward +and backward searches. This option has no effect without +B-frames.

+
+ + + + + +
+

trellis=<0−2>

+ + + + + +
+

rate-distortion optimal quantization

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

disabled (default)

+
+ +

1

+
+ +

enabled only for the final encode

+
+ +

2

+
+ +

enabled during all mode decisions (slow, requires +subq>=6)

+
+ + + + + +
+

deadzone_inter=<0−32>

+ + + + + +
+

Set the size of the inter luma quantization deadzone for +non-trellis quantization (default: 21). Lower values help to +preserve fine details and film grain (typically useful for +high bitrate/quality encode), while higher values help +filter out these details to save bits that can be spent +again on other macroblocks and frames (typically useful for +bitrate-starved encodes). It is recommended that you start +by tweaking deadzone_intra before changing this +parameter.

+
+ + + + + +
+

deadzone_intra=<0−32>

+ + + + + +
+

Set the size of the intra luma quantization deadzone for +non-trellis quantization (default: 11). This option has the +same effect as deadzone_inter except that it affects intra +frames. It is recommended that you start by tweaking this +parameter before changing deadzone_inter.

+
+ + + + + +
+

(no)fast_pskip

+ + + + + +
+

Performs early skip detection in P-frames (default: +enabled). This usually improves speed at no cost, but it can +sometimes produce artifacts in areas with no details, like +sky.

+
+ + + + + +
+

(no)dct_decimate

+ + + + + +
+

Eliminate dct blocks in P-frames containing only a small +single coefficient (default: enabled). This will remove some +details, so it will save bits that can be spent again on +other frames, hopefully raising overall subjective quality. +If you are compressing non-anime content with a high target +bitrate, you may want to disable this to preserve as much +detail as possible.

+
+ + + + + +
+

nr=<0−100000>

+ + + + + +
+

Noise reduction, 0 means disabled. 100−1000 is a +useful range for typical content, but you may want to turn +it up a bit more for very noisy content (default: 0). Given +its small impact on speed, you might want to prefer to use +this over filtering noise away with video filters like +denoise3d or hqdn3d.

+
+ + + + + +
+

chroma_qp_offset=<-12−12>

+ + + + + +
+

Use a different quantizer for chroma as compared to luma. +Useful values are in the range <-2−2> (default: +0).

+
+ + + + + +
+

cqm=<flat|jvt|<filename>>

+ + + + + +
+

Either uses a predefined custom quantization matrix or +loads a JM format matrix file.

+ + + + + +
+

flat

+ + + + + +
+

Use the predefined flat 16 matrix (default).

+ + + + + +
+

jvt

+ + + + + +
+

Use the predefined JVT matrix.

+ + + + + +
+

<filename>

+ + + + + +
+

Use the provided JM format matrix file.

+ + + + + +
+

NOTE: Windows CMD.EXE users may experience +problems with parsing the command line if they attempt to +use all the CQM lists. This is due to a command line length +limitation. In this case it is recommended the lists be put +into a JM format CQM file and loaded as specified +above.

+ + + + + +
+

cqm4iy=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 intra luminance matrix, given as a list of 16 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4ic=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 intra chrominance matrix, given as a list of +16 comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4py=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 inter luminance matrix, given as a list of 16 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm4pc=<list> (also see cqm)

+ + + + + +
+

Custom 4x4 inter chrominance matrix, given as a list of +16 comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm8iy=<list> (also see cqm)

+ + + + + +
+

Custom 8x8 intra luminance matrix, given as a list of 64 +comma separated values in the 1−255 range.

+
+ + + + + +
+

cqm8py=<list> (also see cqm)

+ + + + + +
+

Custom 8x8 inter luminance matrix, given as a list of 64 +comma separated values in the 1−255 range.

+
+ + + + + +
+

level_idc=<10−51>

+ + + + + +
+

Set the bitstream’s level as defined by annex A of +the H.264 standard (default: 51 - Level 5.1). This is used +for telling the decoder what capabilities it needs to +support. Use this parameter only if you know what it means, +and you have a need to set it.

+
+ + + + + +
+

threads=<0−16>

+ + + + + +
+

Spawn threads to encode in parallel on multiple CPUs +(default: 1). This has a slight penalty to compression +quality. 0 or ’auto’ tells x264 to detect how +many CPUs you have and pick an appropriate number of +threads.

+
+ + + + + +
+

(no)global_header

+ + + + + +
+

Causes SPS and PPS to appear only once, at the beginning +of the bitstream (default: disabled). Some players, such as +the Sony PSP, require the use of this option. The default +behavior causes SPS and PPS to repeat prior to each IDR +frame.

+
+ + + + + +
+

(no)interlaced

+ + + + + +
+

Treat the video content as interlaced.

+
+ + + + + +
+

log=<-1−3>

+ + + + + +
+

Adjust the amount of logging info printed to the +screen.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

-1

+
+ +

none

+
+ +

0

+
+ +

Print errors only.

+
+ +

1

+
+ +

warnings

+
+ +

2

+
+ +

PSNR and other analysis statistics when the encode +finishes (default)

+
+ +

3

+
+ +

PSNR, QP, frametype, size, and other statistics for +every frame

+
+ + + + + +
+

(no)psnr

+ + + + + +
+

Print signal-to-noise ratio statistics.
+NOTE:
The ’Y’, ’U’, +’V’, and ’Avg’ PSNR fields in the +summary are not mathematically sound (they are simply the +average of per-frame PSNRs). They are kept only for +comparison to the JM reference codec. For all other +purposes, please use either the ’Global’ PSNR, +or the per-frame PSNRs printed by log=3.

+
+ + + + + +
+

(no)ssim

+ + + + + +
+

Print the Structural Similarity Metric results. This is +an alternative to PSNR, and may be better correlated with +the perceived quality of the compressed video.

+
+ + + + + +
+

(no)visualize

+ + + + + +
+

Enable x264 visualizations during encoding. If the x264 +on your system supports it, a new window will be opened +during the encoding process, in which x264 will attempt to +present an overview of how each frame gets encoded. Each +block type on the visualized movie will be colored as +follows:

+ + + + + +
+

red/pink

+ + + + + +
+

intra block

+ + + + + +
+

blue

+ + + + + +
+

inter block

+ + + + + +
+

green

+ + + + + +
+

skip block

+ + + + + +
+

yellow

+ + + + + +
+

B-block

+ + + + + +
+

This feature can be considered experimental and subject +to change. In particular, it depends on x264 being compiled +with visualizations enabled. Note that as of writing this, +x264 pauses after encoding and visualizing each frame, +waiting for the user to press a key, at which point the next +frame will be encoded.

+ + + + + +
+

xvfw (−xvfwopts)

+ + + + + +
+

Encoding with Video for Windows codecs is mostly obsolete +unless you wish to encode to some obscure fringe codec.

+
+ + + + + +
+

codec=<name>

+ + + + + +
+

The name of the binary codec file with which to +encode.

+
+ + + + + +
+

compdata=<file>

+ + + + + +
+

The name of the codec settings file (like firstpass.mcf) +created by vfw2menc.

+
+ + + + + +
+

MPEG muxer (−mpegopts)

+ + + + + +
+

The MPEG muxer can generate 5 types of streams, each of +which has reasonable default parameters that the user can +override. Generally, when generating MPEG files, it is +advisable to disable MEncoder’s frame-skip code (see +−noskip, −mc as well as the harddup and softskip +video filters).

+ +

EXAMPLE:

+ + + + + +
+

format=mpeg2:tsaf:vbitrate=8000

+ + + + + +
+

format=<mpeg1 | mpeg2 | xvcd | xsvcd | dvd | pes1 | +pes2>

+ + + + + +
+

stream format (default: mpeg2). pes1 and pes2 are very +broken formats (no pack header and no padding), but VDR uses +them; do not choose them unless you know exactly what you +are doing.

+
+ + + + + +
+

size=<up to 65535>

+ + + + + +
+

Pack size in bytes, do not change unless you know exactly +what you are doing (default: 2048).

+
+ + + + + +
+

muxrate=<int>

+ + + + + +
+

Nominal muxrate in kbit/s used in the pack headers +(default: 1800 kb/s). Will be updated as necessary in the +case of ’format=mpeg1’ or +’mpeg2’.

+
+ + + + + +
+

tsaf

+ + + + + +
+

Sets timestamps on all frames, if possible; recommended +when format=dvd. If dvdauthor complains with a message like +"..audio sector out of range...", you probably did +not enable this option.

+
+ + + + + +
+

interleaving2

+ + + + + +
+

Uses a better algorithm to interleave audio and video +packets, based on the principle that the muxer will always +try to fill the stream with the largest percentage of free +space.

+
+ + + + + +
+

vdelay=<1−32760>

+ + + + + +
+

Initial video delay time, in milliseconds (default: 0), +use it if you want to delay video with respect to audio. It +doesn’t work with :drop.

+
+ + + + + +
+

adelay=<1−32760>

+ + + + + +
+

Initial audio delay time, in milliseconds (default: 0), +use it if you want to delay audio with respect to video.

+
+ + + + + +
+

drop

+ + + + + +
+

When used with vdelay the muxer drops the part of audio +that was anticipated.

+
+ + + + + +
+

vwidth, vheight=<1−4095>

+ + + + + +
+

Set the video width and height when video is +MPEG-1/2.

+
+ + + + + +
+

vpswidth, vpsheight=<1−4095>

+ + + + + +
+

Set pan and scan video width and height when video is +MPEG-2.

+
+ + + + + +
+

vaspect=<1 | 4/3 | 16/9 | 221/100>

+ + + + + +
+

Sets the display aspect ratio for MPEG-2 video. Do not +use it on MPEG-1 or the resulting aspect ratio will be +completely wrong.

+
+ + + + + +
+

vbitrate=<int>

+ + + + + +
+

Sets the video bitrate in kbit/s for MPEG-1/2 video.

+
+ + + + + +
+

vframerate=<24000/1001 | 24 | 25 | 30000/1001 | 30 +| 50 | 60000/1001 | 60 >

+ + + + + +
+

Sets the framerate for MPEG-1/2 video. This option will +be ignored if used with the telecine option.

+
+ + + + + +
+

telecine

+ + + + + +
+

Enables 3:2 pulldown soft telecine mode: The muxer will +make the video stream look like it was encoded at 30000/1001 +fps. It only works with MPEG-2 video when the output +framerate is 24000/1001 fps, convert it with −ofps if +necessary. Any other framerate is incompatible with this +option.

+
+ + + + + +
+

film2pal

+ + + + + +
+

Enables FILM to PAL and NTSC to PAL soft telecine mode: +The muxer will make the video stream look like it was +encoded at 25 fps. It only works with MPEG-2 video when the +output framerate is 24000/1001 fps, convert it with +−ofps if necessary. Any other framerate is +incompatible with this option.

+
+ + + + + +
+

tele_src and tele_dest

+ + + + + +
+

Enables arbitrary telecining using Donand Graft’s +DGPulldown code. You need to specify the original and the +desired framerate; the muxer will make the video stream look +like it was encoded at the desired framerate. It only works +with MPEG-2 video when the input framerate is smaller than +the output framerate and the framerate increase is <= +1.5.

+
+ + + + + +
+

EXAMPLE:

+ + + + + +
+

tele_src=25,tele_dest=30000/1001

+ + + + + +
+

PAL to NTSC telecining

+ + + + + +
+

vbuf_size=<40−1194>

+ + + + + +
+

Sets the size of the video decoder’s buffer, +expressed in kilobytes. Specify it only if the bitrate of +the video stream is too high for the chosen format and if +you know perfectly well what you are doing. A too high value +may lead to an unplayable movie, depending on the +player’s capabilities. When muxing HDTV video a value +of 400 should suffice.

+
+ + + + + +
+

abuf_size=<4−64>

+ + + + + +
+

Sets the size of the audio decoder’s buffer, +expressed in kilobytes. The same principle as for vbuf_size +applies.

+
+ + + + + +
+

FFmpeg libavformat demuxers +(−lavfdopts)

+ + + + + +
+

analyzeduration=<value>

+ + + + + +
+

Maximum length in seconds to analyze the stream +properties.

+
+ + + + + +
+

format=<value>

+ + + + + +
+

Force a specific libavformat demuxer.

+
+ + + + + +
+

probesize=<value>

+ + + + + +
+

Maximum amount of data to probe during the detection +phase. In the case of MPEG-TS this value identifies the +maximum number of TS packets to scan.

+
+ + + + + +
+

FFmpeg libavformat muxers (−lavfopts) (also see +−of lavf)

+ + + + + +
+

delay=<value>

+ + + + + +
+

Currently only meaningful for MPEG[12]: Maximum allowed +distance, in seconds, between the reference timer of the +output stream (SCR) and the decoding timestamp (DTS) for any +stream present (demux to decode delay). Default is 0.7 (as +mandated by the standards defined by MPEG). Higher values +require larger buffers and must not be used.

+
+ + + + + +
+

format=<container_format>

+ + + + + +
+

Override which container format to mux into (default: +autodetect from output file extension).

+ + + + + +
+

mpg

+ + + + + +
+

MPEG-1 systems and MPEG-2 PS

+ + + + + +
+

asf

+ + + + + +
+

Advanced Streaming Format

+ + + + + +
+

avi

+ + + + + +
+

Audio Video Interleave file

+ + + + + +
+

wav

+ + + + + +
+

Waveform Audio

+ + + + + +
+

swf

+ + + + + +
+

Macromedia Flash

+ + + + + +
+

flv

+ + + + + +
+

Macromedia Flash video files

+ + + + + +
+

rm

+ + + + + +
+

RealAudio and RealVideo

+ + + + + +
+

au

+ + + + + +
+

SUN AU format

+ + + + + +
+

nut

+ + + + + +
+

NUT open container format (experimental)

+ + + + + +
+

mov

+ + + + + +
+

QuickTime

+ + + + + +
+

mp4

+ + + + + +
+

MPEG-4 format

+ + + + + +
+

dv

+ + + + + +
+

Sony Digital Video container

+ + + + + +
+

muxrate=<rate>

+ + + + + +
+

Nominal bitrate of the multiplex, in bits per second; +currently it is meaningful only for MPEG[12]. Sometimes +raising it is necessary in order to avoid "buffer +underflows".

+
+ + + + + +
+

packetsize=<size>

+ + + + + +
+

Size, expressed in bytes, of the unitary packet for the +chosen format. When muxing to MPEG[12] implementations the +default values are: 2324 for [S]VCD, 2048 for all others +formats.

+
+ + + + + +
+

preload=<distance>

+ + + + + +
+

Currently only meaningful for MPEG[12]: Initial distance, +in seconds, between the reference timer of the output stream +(SCR) and the decoding timestamp (DTS) for any stream +present (demux to decode delay).

+
+ +

ENVIRONMENT VARIABLES

+ + + + + +
+

There are a number of environment variables that can be +used to control the behavior of MPlayer and MEncoder.

+
+ + + + + +
+

MPLAYER_CHARSET (also see +−msgcharset)

+ + + + + +
+

Convert console messages to the specified charset +(default: autodetect). A value of "noconv" means +no conversion.

+
+ + + + + +
+

MPLAYER_HOME

+ + + + + +
+

Directory where MPlayer looks for user settings.

+
+ + + + + +
+

MPLAYER_VERBOSE (also see −v and +−msglevel)

+ + + + + +
+

Set the initial verbosity level across all message +modules (default: 0). The resulting verbosity corresponds to +that of −msglevel 5 plus the value of +MPLAYER_VERBOSE.

+
+ + + + + +
+

libaf:

+ + + + + +
+

LADSPA_PATH

+ + + + + +
+

If LADSPA_PATH is set, it searches for the specified +file. If it is not set, you must supply a fully specified +pathname. FIXME: This is also mentioned in the ladspa +section.

+
+ + + + + +
+

libdvdcss:

+ + + + + +
+

DVDCSS_CACHE

+ + + + + +
+

Specify a directory in which to store title key values. +This will speed up descrambling of DVDs which are in the +cache. The DVDCSS_CACHE directory is created if it does not +exist, and a subdirectory is created named after the +DVD’s title or manufacturing date. If DVDCSS_CACHE is +not set or is empty, libdvdcss will use the default value +which is "${HOME}/.dvdcss/" under Unix and +"C:\Documents and Settings\$USER\Application +Data\dvdcss\" under Win32. The special value +"off" disables caching.

+
+ + + + + +
+

DVDCSS_METHOD

+ + + + + +
+

Sets the authentication and decryption method that +libdvdcss will use to read scrambled discs. Can be one of +title, key or disc.

+ + + + + +
+

key

+ + + + + +
+

is the default method. libdvdcss will use a set of +calculated player keys to try and get the disc key. This can +fail if the drive does not recognize any of the player +keys.

+ + + + + +
+

disc

+ + + + + +
+

is a fallback method when key has failed. Instead of +using player keys, libdvdcss will crack the disc key using a +brute force algorithm. This process is CPU intensive and +requires 64 MB of memory to store temporary data.

+ + + + + +
+

title

+ + + + + +
+

is the fallback when all other methods have failed. It +does not rely on a key exchange with the DVD drive, but +rather uses a crypto attack to guess the title key. On rare +cases this may fail because there is not enough encrypted +data on the disc to perform a statistical attack, but in the +other hand it is the only way to decrypt a DVD stored on a +hard disc, or a DVD with the wrong region on an RPC2 +drive.

+ + + + + +
+

DVDCSS_RAW_DEVICE

+ + + + + +
+

Specify the raw device to use. Exact usage will depend on +your operating system, the Linux utility to set up raw +devices is raw(8) for instance. Please note that on most +operating systems, using a raw device requires highly +aligned buffers: Linux requires a 2048 bytes alignment +(which is the size of a DVD sector).

+
+ + + + + +
+

DVDCSS_VERBOSE

+ + + + + +
+

Sets the libdvdcss verbosity level.

+ + + + + + + + + + + + + + + + + +
+ +

0

+
+ +

Outputs no messages at all.

+
+ +

1

+
+ +

Outputs error messages to stderr.

+
+ +

2

+
+ +

Outputs error messages and debug messages to stderr.

+
+ + + + + +
+

DVDREAD_NOKEYS

+ + + + + +
+

Skip retrieving all keys on startup. Currently +disabled.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libao2:

+ + + + + +
+

AO_SUN_DISABLE_SAMPLE_TIMING

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

AUDIODEV

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

AUDIOSERVER

+ + + + + +
+

Specifies the Network Audio System server to which the +nas audio output driver should connect and the transport +that should be used. If unset DISPLAY is used instead. The +transport can be one of tcp and unix. Syntax is +tcp/<somehost>:<someport>, +<somehost>:<instancenumber> or +[unix]:<instancenumber>. The NAS base port is 8000 and +<instancenumber> is added to that.

+
+ + + + + +
+

EXAMPLES:

+ + + + + +
+

AUDIOSERVER=somehost:0

+ + + + + +
+

Connect to NAS server on somehost using default port and +transport.

+ + + + + +
+

AUDIOSERVER=tcp/somehost:8000

+ + + + + +
+

Connect to NAS server on somehost listening on TCP port +8000.

+ + + + + +
+

AUDIOSERVER=(unix)?:0

+ + + + + +
+

Connect to NAS server instance 0 on localhost using unix +domain sockets.

+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

vidix:

+ + + + + +
+

VIDIX_CRT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

osdep:

+ + + + + + + + +
+ +

TERM

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libvo:

+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

FRAMEBUFFER

+ + + + + +
+

FIXME: Document this.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libmpdemux:

+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

HOMEPATH

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

http_proxy

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

LOGNAME

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

USERPROFILE

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

libmpcodecs:

+ + + + + +
+

XANIM_MOD_DIR

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

GUI:

+ + + + + +
+

CHARSET

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

DISPLAY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + + + + +
+ +

HOME

+
+ +

FIXME: Document this.

+
+
+ + + + + +
+

libavformat:

+ + + + + +
+

AUDIO_FLIP_LEFT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_DEV

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_FORMAT

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

BKTR_FREQUENCY

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

http_proxy

+ + + + + +
+

FIXME: Document this.

+
+ + + + + +
+

no_proxy

+ + + + + +
+

FIXME: Document this.

+
+ +

FILES

+ + + + + +
+

/usr/local/etc/mplayer/mplayer.conf

+ + + + + +
+

MPlayer system-wide settings

+
+ + + + + +
+

/usr/local/etc/mplayer/mencoder.conf

+ + + + + +
+

MEncoder system-wide settings

+
+ + + + + +
+

~/.mplayer/config

+ + + + + +
+

MPlayer user settings

+
+ + + + + +
+

~/.mplayer/mencoder.conf

+ + + + + +
+

MEncoder user settings

+
+ + + + + +
+

~/.mplayer/input.conf

+ + + + + +
+

input bindings (see ’−input keylist’ +for the full list)

+
+ + + + + +
+

~/.mplayer/gui.conf

+ + + + + +
+

GUI configuration file

+
+ + + + + +
+

~/.mplayer/gui.pl

+ + + + + +
+

GUI playlist

+
+ + + + + +
+

~/.mplayer/font/

+ + + + + +
+

font directory (There must be a font.desc file and files +with .RAW extension.)

+
+ + + + + +
+

~/.mplayer/DVDkeys/

+ + + + + +
+

cached CSS keys

+
+ + + + + +
+

Assuming that /path/to/movie.avi is played, MPlayer +searches for sub files

+ + + + + +
+

in this order:

+ + + + + +
+

/path/to/movie.sub
+~/.mplayer/sub/movie.sub

+ +

EXAMPLES OF MPLAYER USAGE

+ + + + + +
+

Quickstart DVD playing:

+ +
mplayer dvd://1
+
+ +

Play in Japanese with English subtitles:

+ +
mplayer dvd://1 −alang ja −slang en
+
+ +

Play only chapters 5, 6, 7:

+ +
mplayer dvd://1 −chapter 5-7
+
+ +

Play only titles 5, 6, 7:

+ +
mplayer dvd://5-7
+
+ +

Play a multiangle DVD:

+ +
mplayer dvd://1 −dvdangle 2
+
+ +

Play from a different DVD device:

+ +
mplayer dvd://1 −dvd-device /dev/dvd2
+
+ +

Play DVD video from a directory with VOB +files:

+ +
mplayer dvd://1 −dvd-device /path/to/directory/
+
+ +

Copy a DVD title to hard disk, saving to file +title1.vob :

+ +
mplayer dvd://1 −dumpstream −dumpfile title1.vob
+
+ +

Stream from HTTP:

+ +
mplayer http://mplayer.hq/example.avi
+
+ +

Stream using RTSP:

+ +
mplayer rtsp://server.example.com/streamName
+
+ +

Convert subtitles to MPsub format:

+ +
mplayer dummy.avi −sub source.sub −dumpmpsub
+
+ +

Convert subtitles to MPsub format without watching the +movie:

+ +
mplayer /dev/zero −rawvideo pal:fps=xx −demuxer rawvideo −vc null −vo null −noframedrop −benchmark −sub source.sub −dumpmpsub
+
+ +

input from standard V4L:

+ +
mplayer tv:// −tv driver=v4l:width=640:height=480:outfmt=i420 −vc rawi420 −vo xv
+
+ +

Playback on Zoran cards (old style, +deprecated):

+ +
mplayer −vo zr −vf scale=352:288 file.avi
+
+ +

Playback on Zoran cards (new style):

+ +
mplayer −vo zr2 −vf scale=352:288,zrmjpeg file.avi
+
+ +

Play a 6-channel AAC file with only two +speakers:

+ +
mplayer −rawaudio format=0xff −demuxer rawaudio −af pan=2:.32:.32:.39:.06:.06:.39:.17:-.17:-.17:.17:.33:.33 adts_he-aac160_51.aac
+
+ +

You might want to play a bit with the pan values (e.g +multiply with a value) to increase volume or avoid +clipping.

+ +

checkerboard invert with geq filter:

+ +
mplayer −vf geq=’128+(p(XY)-128)*(0.5-gt(mod(X/SW128)64))*(0.5-gt(mod(Y/SH128)64))*4’
+
+
+ +

EXAMPLES OF MENCODER USAGE

+ + + + + + +
+

Encode DVD title #2, only selected chapters:

+ +
mencoder dvd://2 −chapter 10-15 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode DVD title #2, resizing to 640x480:

+ +
mencoder dvd://2 −vf scale=640:480 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode DVD title #2, resizing to 512xHHH (keep aspect +ratio):

+ +
mencoder dvd://2 −vf scale −zoom −xy 512 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

The same, but with bitrate set to 1800kbit and +optimized macroblocks:

+ +
mencoder dvd://2 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mpeg4:mbd=1:vbitrate=1800
+
+ +

The same, but with MJPEG compression:

+ +
mencoder dvd://2 −o title2.avi −oac copy −ovc lavc −lavcopts vcodec=mjpeg:mbd=1:vbitrate=1800
+
+ +

Encode all *.jpg files in the current +directory:

+ +
mencoder "mf://*.jpg" −mf fps=25 −o output.avi −ovc lavc −lavcopts vcodec=mpeg4
+
+ +

Encode from a tuner (specify a format with −vf +format):

+ +
mencoder −tv driver=v4l:width=640:height=480 tv:// −o tv.avi −ovc raw
+
+ +

Encode from a pipe:

+ +
rar p test-SVCD.rar | mencoder −ovc lavc −lavcopts vcodec=mpeg4:vbitrate=800 −ofps 24 −
+
+
+ +

BUGS

+ + + + + + +
+

Don’t panic. If you find one, report it to us, but +please make sure you have read all of the documentation +first. Also look out for smileys. :) Many bugs are the +result of incorrect setup or parameter usage. The bug +reporting section of the documentation +(http://www.mplayerhq.hu/DOCS/HTML/en/bugreports.html) +explains how to create useful bug reports.

+
+ +

AUTHORS

+ + + + + +
+

MPlayer was initially written by Arpad Gereoffy. See the +AUTHORS file for a list of some of the many other +contributors.

+ +

MPlayer is (C) 2000−2007 The MPlayer Team

+ +

This man page was written mainly by Gabucino, Jonas +Jermann and Diego Biurrun. It is maintained by Diego +Biurrun. Please send mails about it to the MPlayer-DOCS +mailing list. Translation specific mails belong on the +MPlayer-translations mailing list.

+
+
+ + diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/mencoder.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mencoder.exe new file mode 100644 index 0000000..df8e2d8 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mencoder.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer.exe new file mode 100644 index 0000000..7e25a84 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/config b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/config new file mode 100644 index 0000000..0c717bf --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/config @@ -0,0 +1,22 @@ +## MPlayer Windows configuration + +## It's better to leave this enabled on Windows, since the console is slow. +quiet=yes + +## Frame dropping +#framedrop=yes + +## drive letter of your DVD +#dvd-device=d: + +## Uncomment this for AC-3 passthrough. +#afm=hwac3 + +## You can use the DirectX or OpenGL video output, default is directx. +#vo=directx +#vo=gl2 + +## video filtering and postprocessing +## eq is useful if your video card does not support video overlay. +#vf=pp,eq +#vf=eq,pp=lb/hb/vb diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/input.conf b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/input.conf new file mode 100644 index 0000000..f7ab3e6 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/input.conf @@ -0,0 +1,152 @@ +## +## MPlayer input control file +## +## You are able to redefine default keyboard/joystick/mouse/LIRC bindings, or +## add new ones here. +## See DOCS/tech/slave.txt for possible commands that can be bound. +## Also see mplayer -input cmdlist for other possible options. +## The file should be placed in the $HOME/.mplayer directory. +## + +RIGHT seek +10 +LEFT seek -10 +DOWN seek -60 +UP seek +60 +PGUP seek 600 +PGDWN seek -600 +m mute +# switch_audio # switch audio streams ++ audio_delay 0.100 +- audio_delay -0.100 +[ speed_mult 0.9091 # scale playback speed +] speed_mult 1.1 +{ speed_mult 0.5 +} speed_mult 2.0 +BS speed_set 1.0 # reset speed to normal +q quit +ESC quit +ENTER pt_step 1 1 # skip to next file +p pause +. frame_step # advance one frame and pause +SPACE pause +HOME pt_up_step 1 +END pt_up_step -1 +> pt_step 1 # skip to next file +< pt_step -1 # previous +INS alt_src_step 1 +DEL alt_src_step -1 +o osd +I osd_show_property_text "${filename}" # display filename in osd +z sub_delay -0.1 # subtract 100 ms delay from subs +x sub_delay +0.1 # add +9 volume -1 +/ volume -1 +0 volume 1 +* volume 1 +1 contrast -1 +2 contrast 1 +3 brightness -1 +4 brightness 1 +5 hue -1 +6 hue 1 +7 saturation -1 +8 saturation 1 +( balance -0.1 # adjust audio balance in favor of left +) balance +0.1 # right +d frame_drop +r sub_pos -1 # move subtitles up +t sub_pos +1 # down +#? sub_step +1 # immediately display next subtitle +#? sub_step -1 # previous +#? sub_scale +0.1 # increase subtitle font size +#? sub_scale -0.1 # decrease subtitle font size +f vo_fullscreen +T vo_ontop # toggle video window ontop of other windows +w panscan -0.1 # zoom out with -panscan 0 -fs +e panscan +0.1 # in +s screenshot # take a png screenshot with -vf screenshot + # S will take a png screenshot of every frame + +h tv_step_channel 1 +l tv_step_channel -1 +n tv_step_norm +b tv_step_chanlist + +## +## GUI +## + +#l gui_loadfile +#t gui_loadsubtitle +#a gui_about +#s gui_stop +#p gui_playlist +#r gui_preferences +#c gui_skinbrowser + +## +## Joystick section +## WARNING: joystick support has to be explicitly enabled at +## compiletime with --enable-joystick +## + +JOY_RIGHT seek 10 +JOY_LEFT seek -10 +JOY_UP seek 60 +JOY_DOWN seek -60 +JOY_BTN0 pause +JOY_BTN1 osd +JOY_BTN2 volume 1 +JOY_BTN3 volume -1 + +## +## Apple Remote section +## + +AR_PLAY pause +AR_PLAY_HOLD quit +AR_NEXT seek 30 +AR_NEXT_HOLD seek 120 +AR_PREV seek -10 +AR_PREV_HOLD seek -120 +AR_MENU osd +AR_MENU_HOLD mute +AR_VUP volume 1 +AR_VDOWN volume -1 + +## +## OSD Menu movement keys +## +## If you are using only the keyboard it is enough to define one command (like +## "menu up"), because then that single key will display the menu, which can +## then be navigated with the cursor keys and ENTER. +## +## LIRC users should bind each "menu" command to a button on their remote. +## +## The set_menu command directly displays the (sub)menu specified as +## its argument. Usage should be self-explanatory (although not likely +## to be needed), after reading input.conf. +## + +#MOUSE_BTN0 menu up +#y menu down +#y menu ok +#y menu cancel +#y menu hide +#y set_menu general_pref + +## +## DVDNAV +## Requires dvdnav:// +## + +KP8 dvdnav 1 # DVDNav UP +KP2 dvdnav 2 # DVDNav DOWN +KP4 dvdnav 3 # DVDNav LEFT +KP6 dvdnav 4 # DVDNav RIGHT +KP5 dvdnav 5 # DVDNav MENU +KP_ENTER dvdnav 6 # DVDNav SELECT (ok) +KP7 dvdnav 7 # DVDNav PREVIOUS menu (in the order chapter->title->root) + +#? seek_chapter -1 # skip to previous dvd chapter +#? seek_chapter +1 # next diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/subfont.ttf b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/subfont.ttf new file mode 100644 index 0000000..8f43790 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/mplayer/subfont.ttf differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/mplayer/vfw2menc.exe b/iidx/bme2ac workspace djt custom songs/videos/mplayer/vfw2menc.exe new file mode 100644 index 0000000..2b26857 Binary files /dev/null and b/iidx/bme2ac workspace djt custom songs/videos/mplayer/vfw2menc.exe differ diff --git a/iidx/bme2ac workspace djt custom songs/videos/source/bme2picseq.c b/iidx/bme2ac workspace djt custom songs/videos/source/bme2picseq.c new file mode 100644 index 0000000..fcbc888 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/source/bme2picseq.c @@ -0,0 +1,651 @@ +//bme2picseq by ryuuou +//looks up the picture references in .bme files and outputa a sequence of pictures +//those pictures can be used as a base for a 30.00fps movie for IIDX AC + +//LOTS of code reuse from bme2ac + +#include "common.h" + +#define BMS_BPM_CUST 8 +#define BMS_BPM 3 +#define BMS_STOP 9 +#define BMS_MSIZE 2 +#define BMS_BGA 4 +#define BMS_LAYER 7 + +#define ONE_TYPE_BPM 4 +#define ONE_STOP 0xF +#define ONE_BGA 0x11 +#define ONE_LAYER 0x12 + +typedef struct +{ + int length; + byte* data; + float bpmchange[MAXWAVS]; + int bpmchangecount; + float* msize; + int mcount; + float bpm; + int stopcount; + float stops[MAXWAVS]; + + unsigned char picnames[MAXWAVS+1][64]; + int numpics; + byte *picdata[MAXWAVS+1]; + int piclen[MAXWAVS+1]; + int layer; +} bmsfile; + +typedef struct +{ + unsigned int time; + byte type; + byte data1; + unsigned short int data2; + + void *prev; + void *next; +} event; + + +event *onechart; +bmsfile *bms; + +void add_event(event ev) +{ + event *temp, *ev_n; + + if(!onechart) + { + onechart = malloc(sizeof(event)); + memcpy(onechart, &ev, sizeof(event)); + onechart->prev = onechart->next = NULL; + return; + } + + temp = onechart; + + while(temp->next != NULL && temp->time <= ev.time) + { + temp = temp->next; + } + + ev_n = malloc(sizeof(event)); + memcpy(ev_n, &ev, sizeof(event)); + + if(temp->time <= ev.time) + { + if(temp->next) + ((event*)temp->next)->prev = ev_n; + + ev_n->next = temp->next; + temp->next = ev_n; + + ev_n->prev = temp; + + } + else + { + if(temp->prev) + ((event*)temp->prev)->next = ev_n; + else + onechart = ev_n; + + ev_n->next = temp; + ev_n->prev = temp->prev; + + temp->prev = ev_n; + } +} + + +void parsebms() +{ + int i,j,k,l; + char *data; + event bpmev; + int measure, channel; + byte measure_c[4]; + + measure_c[3] = '\n'; + + printf("parsing bms..."); + + data = bms->data; + + for(k = 0; k < bms->length - 5; k++) + { + if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] == ' ') + { + k += 5; + sscanf((const char*)(data+k), "%f", &(bms->bpm)); + printf("%.2fbpm...", bms->bpm); + + if(bms->bpm-(int)bms->bpm < 0.01 && !(bms->bpm > 655.35)) + { + bpmev.data1 = 1; + bpmev.data2 = (unsigned short int)(bms->bpm); + } + else + { + bpmev.data1 = 100; + bpmev.data2 = (unsigned short int)bms->bpm*100; + } + bpmev.time = 0; + bpmev.type = ONE_TYPE_BPM; + add_event(bpmev); + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'P' && data[k+3] == 'M' && data[k+4] != ' ') + { + j = strtoi(data+k+4) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->bpmchange[j])); + bms->bpmchangecount++; + } + else if(data[k] == '#' && data[k+1] == 'S' && data[k+2] == 'T' && data[k+3] == 'O' && data[k+4] == 'P') + { + j = strtoi(data+k+5) - 1; + k += 7; + sscanf((const char*)(data+k), "%f", &(bms->stops[j])); + bms->stopcount++; + } + else if(data[k] == '#' && data[k+1] == 'B' && data[k+2] == 'M' && data[k+3] == 'P') + { + l = 0; + j = strtoi(data+k+4); + k += 7; + while((data[k+l] != '\n') && (data[k+l] != '\r') && k+l < bms->length) + l++; + + memcpy(bms->picnames[j], data+k, l); + + bms->numpics++; + } + if(data[k] == '#' && data[k+6] == ':') + { + measure_c[0] = data[k+1]; + measure_c[1] = data[k+2]; + measure_c[2] = data[k+3]; + sscanf(measure_c, "%d", &measure); + + if(measure > bms->mcount) bms->mcount = measure; + } + } + + bms->msize = malloc(sizeof(float)*(bms->mcount+1)); + + for(j = 0; j <= bms->mcount; j++) + bms->msize[j] = 1.; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + sscanf(data+j+4, "%d", &channel); + if(channel == BMS_MSIZE) + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf((const char*)(data+j+7), "%f", &(bms->msize[measure])); + } + } + } +} + + +int convert_to_1_events() +{ + int i,j,k; + char measure_c[4]; + int measure,channel; + float mtime; + int notecount; + int denom, nume; + + byte ev_type; + float ev_time; + byte ev_data1; + int bms_ev; + int count; + event temp; + + unsigned short int ev_data2; + + char *data; + + measure_c[3] = '\0'; + + temp.next = temp.prev = NULL; + + printf("building image chain...\n"); + + data = bms->data; + count = 0; + + for(j = 0; j < bms->length-6; j++) + { + if(data[j] == '#' && data[j+6] == ':') + { + measure_c[0] = data[j+1]; + measure_c[1] = data[j+2]; + measure_c[2] = data[j+3]; + sscanf(measure_c, "%d", &measure); + sscanf(data+j+4, "%d", &channel); + + ev_data1 = 0; + ev_data2 = 0; + ev_time = 0; + ev_type = 0; + switch(channel) + { + case BMS_BPM: + case BMS_BPM_CUST: + ev_type = ONE_TYPE_BPM; + break; + + case BMS_STOP: + ev_type = ONE_STOP; + break; + + case BMS_BGA: + ev_type = ONE_BGA; + break; + + case BMS_LAYER: + ev_type = ONE_LAYER; + break; + + default: + continue; + } + + mtime = 0; + for(k = 0; k < measure; k++) + mtime += bms->msize[k]; + + denom = 0; + for(k = j+7; (data[k] != '\n') && (data[k] != '\r') && (data[k] != '#') && (k<=bms->length); k+=2) + denom++; + + k = j + 7; + nume = 0; + + for(k = j+7; nume < denom; k+=2) + { + ev_time = mtime + ((float)nume/(float)denom)*bms->msize[measure]; + ev_time *= 4. * 60. * 1000./ bms->bpm; + nume++; + + bms_ev = strtoi(data+k); + + if(!bms_ev) + continue; + + if(channel == BMS_BPM_CUST) + { + if(bms->bpmchange[bms_ev-1] - (int)bms->bpmchange[bms_ev-1] < 0.01 && !(bms->bpmchange[bms_ev-1] > 655.35)) + { + ev_data1 = 1; + ev_data2 = (unsigned short int)(bms->bpmchange[bms_ev-1]); + } + else + { + ev_data1 = 100; + ev_data2 = (unsigned short int)bms->bpmchange[bms_ev-1]*100; + } + } + else if(channel == BMS_BPM) + { + ev_data1 = 1; + ev_data2 = (unsigned short)strtoi_h(data+k); + } + else if(channel == BMS_STOP) + { + ev_data2 = (unsigned short)strtoi(data+k) - 1; + } + else if(channel == BMS_BGA) + { + count++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + else if(channel == BMS_LAYER) + { + count++; + bms->layer++; + ev_data2 = (unsigned short)strtoi(data+k); + + if(!bms->piclen[ev_data2]) + ev_data2 = MAXWAVS; + } + + temp.time = ev_time; + temp.type = ev_type; + temp.data1 = ev_data1; + temp.data2 = ev_data2; + + add_event(temp); + } + } + } + return count; +} + +void adjust_bpm() +{ + int i; + + float oldbpm = 0; + float newbpm = 0; + int stime = 0; + int tdiff = 0; + event *temp; + event help; + event *tadjust; + + temp = onechart; + + oldbpm = bms->bpm; + + do + { + if(temp->type == ONE_TYPE_BPM) + { + newbpm = temp->data2 / temp->data1; + stime = temp->time; + + if(oldbpm == newbpm) + continue; + + tadjust = temp; + + while(tadjust = tadjust->next) + { + tdiff = tadjust->time - stime; + tdiff = (int)roundf((float)tdiff * oldbpm / newbpm); + tadjust->time = stime + tdiff; + } + + oldbpm = newbpm; + } + } + while(temp = temp->next); +} + +void add_stop_events() +{ + int i; + + float bpm; + + float tdiff = 0; + event *temp; + event *helper; + event bpm_help; + + temp = onechart; + + bpm = bms->bpm; + + do + { + if(temp->type == ONE_STOP) + { + helper = onechart; + do + { + if(helper->type == ONE_TYPE_BPM) + { + bpm = (float)helper->data2 / (float)helper->data1; + } + } while((helper = helper->next) && (helper->time <= temp->time)); + + tdiff = bms->stops[temp->data2] / 192.; + tdiff = tdiff * 4. * 60. * 1000. / bpm; + + helper = temp->next; + + do + { + if(helper->time > temp->time) + helper->time += tdiff; + } + while(helper = helper->next); + } + } + while(temp = temp->next); +} + + + +int load_pics() +{ + int i, fail=0; + FILE *f; + + printf("loading picture files..."); + + strcpy(bms->picnames[MAXWAVS], "BLACK.bmp"); + bms->numpics++; + + for(i = 0; i <= MAXWAVS; i++) + { + if(!(bms->picnames[i][0])) continue; + f = fopen(bms->picnames[i], "rb"); + if(f == NULL) + { + if(!fail) + printf("failed to load pictures:\n"); + fail++; + printf("%s ", bms->picnames[i]); + continue; + } + + fseek(f, 0, SEEK_END); + bms->piclen[i] = (int)ftell(f); + fseek(f, 0, SEEK_SET); + + bms->picdata[i] = malloc(bms->piclen[i]); + + fread(bms->picdata[i],bms->piclen[i], 1, f); + fclose(f); + bms->piclen[MAXWAVS] = bms->piclen[i]; + } + if(fail) + printf("\nout of %d pictures, %d were not found\n", bms->numpics, fail); + else + printf("all pictures loaded successfully\n"); + + return fail; +} + +void blitbmp(byte* dest, int index, int layer) +{ + int h,w; + int i, k; + int rsize; + byte rs,gs,bs; + byte *sline, *dline; + byte *rd,*gd,*bd; + int offsetw, offseth; + + byte *data; + + if(!bms->piclen[index]) + return; + + data = bms->picdata[index]; + h = *((int*)(data+22)); + w = *((int*)(data+18)); + rsize = w*3; + if(rsize%4) + rsize += 4-(rsize%4); + + data += *((int*)(data+10)); + + dest += *((int*)(dest+10)); + + offsetw = (256 - w) / 2; + offseth = 256 - h; + + for(i = 0; i < h; i++) + { + sline = data + i*rsize; + dline = dest + ((offseth+i)*256 + offsetw)*3; + + if(!layer) + { + memcpy(dline, sline, w*3); + } + else + { + for(k = 0; k < 3*w; k+=3) + { + rs = *(sline+k); + gs = *(sline+k+1); + bs = *(sline+k+2); + + rd = dline+k; + gd = dline+k+1; + bd = dline+k+2; + + if(rs != 0 && gs != 0 && bs != 0) + { + *rd = rs; + *gd = gs; + *bd = bs; + } + } + } + } + +} + +void write_seq() +{ + unsigned char filename[32]; + FILE *out; + event *temp; + int i,k,off; + float time; + int maxtime; + int index; + byte *buf; + byte *data; + + temp = onechart; + + buf = malloc(bms->piclen[MAXWAVS]); + + do + { + if(temp->type == ONE_BGA) + maxtime = temp->time + 40; + } + while(temp = temp->next); + + time = -6.*1000./30. - 0.005; + + index = MAXWAVS; + for(i = 0; time < maxtime; i++) + { + memcpy(buf, bms->picdata[MAXWAVS], bms->piclen[MAXWAVS]); + + temp = onechart; + do + { + if(temp->type == ONE_BGA) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + blitbmp(buf, index, 0); + + if(bms->layer) + { + temp = onechart; + do + { + if(temp->type == ONE_LAYER) + index = temp->data2; + } + while((temp = temp->next) && (temp->time <= time)); + + if(index != MAXWAVS) + blitbmp(buf, index, 1); + } + + sprintf(filename, "BMEIMGSEQ_%05d.bmp", i); + out = fopen(filename, "wb"); + fwrite(buf, bms->piclen[MAXWAVS], 1, out); + fclose(out); + + time += 1000./30.; + } + +} + +int main(int argc, const char* argv[]) +{ + FILE *f; + + //printf("bme2picseq v0.1 by ryuuou\n\tProduces a 30fps series of pictures from bme files"); + + + if(argc < 2) + { + printf("USAGE: bme2picseq \n"); + + return 0; + } + + f = fopen(argv[1], "rb"); + + if(f == NULL) + { + printf("file not found: %s\n", argv[1]); + + return 0; + } + + printf("processing %s...", argv[1]); + bms = malloc(sizeof(bmsfile)); + memset(bms, 0, sizeof(bmsfile)); + + fseek(f, 0, SEEK_END); + bms->length = (int)ftell(f); + fseek(f, 0, SEEK_SET); + bms->data = malloc(bms->length); + fread(bms->data, bms->length, 1, f); + fclose(f); + + parsebms(); + + load_pics(); + + if(!bms->piclen[MAXWAVS]) + { + printf("BLACK.bmp missing, aborting"); + return 0; + } + + if(!convert_to_1_events()) + { + printf("no video event, aborting\n"); + return 0; + } + adjust_bpm(); + add_stop_events(); + + write_seq(); + + printf("done.\n"); + //getchar(); + return 0; +} + diff --git a/iidx/bme2ac workspace djt custom songs/videos/source/common.h b/iidx/bme2ac workspace djt custom songs/videos/source/common.h new file mode 100644 index 0000000..0f87b20 --- /dev/null +++ b/iidx/bme2ac workspace djt custom songs/videos/source/common.h @@ -0,0 +1,77 @@ +//common.h + + +#include +#include +#include +#include + + +#define MAXWAVS (36*36-1) //wav files from 01-0A-0Z-10-ZZ (you get it) = 36*36 - 1 +#define CHARTCOUNT 7 //beginner + (normal,hyper,another times two), what about kaiden in gold cs? + +#define PNEWLINE printf("\n") //used too often + +#define CIELMOD8(a) (!(a%8)?(a):((a)+(8-(a)%8))) //rounds (a) up to the next mod 8 int + +typedef unsigned char byte; + +//chartorder inside .1 file: h7, n7, a7, b, h14, n14, a14 +const char *BMENAMES[] = { "h7.bme", "n7.bme", "a7.bme", "b.bme", "h14.bme", "n14.bme", "a14.bme" }; //we use constant filenames here for ease of coding/use +const char *CHARTNAMES[] = { "h7", "n7", "a7", "b", "h14", "n14", "a14" }; +int style; //produce files for this iidx version; 0 == Troopers, 1 == GOLD, 2 == DistorteD and Happy Sky +float factor; //us this factor to strech .1 event time indices (based on version); 1 for Troopers, FPS/1000 for everything else + + +//helper functions for BME numbering weirdness; +//converts a number to a 01-ZZ style string and places that in the first two bytes of str +void itostr(char *str, int i) +{ + str[0] = i / 36; //works because this floors + if(str[0] > 9) + str[0] += 7; //there's a gap of 8 characters between '9' and 'A' + str[0] += 48; //fancy charactermap magic + + str[1] = i % 36; //mod operator = <3 + if(str[1] > 9) + str[1] += 7; + str[1] += 48; +} + +//the above in inverse; convert a BME-style numbering to int. +//stupidly tries to convert the first two bytes of *str +int strtoi(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 36*a + b; + + return i; +} + + +//does the same as the above but converts from hex instead +int strtoi_h(char *str) +{ + int a,b,i; + + a = str[0] - 48; + if(a > 9) + a -= 7; + + b = str[1] - 48; + if(b > 9) + b -= 7; + + i = 16*a + b; + + return i; +} diff --git a/iidx/e-amu emu/[アーケード] e-amuサーãƒã‚™ & ICカードユニットemu [20100315].zip b/iidx/e-amu emu/[アーケード] e-amuサーãƒã‚™ & ICカードユニットemu [20100315].zip new file mode 100644 index 0000000..7e1b080 Binary files /dev/null and b/iidx/e-amu emu/[アーケード] e-amuサーãƒã‚™ & ICカードユニットemu [20100315].zip differ diff --git a/iidx/e-amu emu/e-amuemu_1-12-56-0.rar b/iidx/e-amu emu/e-amuemu_1-12-56-0.rar new file mode 100644 index 0000000..0938b97 Binary files /dev/null and b/iidx/e-amu emu/e-amuemu_1-12-56-0.rar differ diff --git a/iidx/e-amu emu/uploadilcloud.com-iccaemu+bin.zip b/iidx/e-amu emu/uploadilcloud.com-iccaemu+bin.zip new file mode 100644 index 0000000..f3e8415 Binary files /dev/null and b/iidx/e-amu emu/uploadilcloud.com-iccaemu+bin.zip differ diff --git a/iidx/gcz2tga/gcz2tga.exe b/iidx/gcz2tga/gcz2tga.exe new file mode 100644 index 0000000..7c9b1b2 Binary files /dev/null and b/iidx/gcz2tga/gcz2tga.exe differ diff --git a/iidx/gcz2tga_v1/gcz2tga.exe b/iidx/gcz2tga_v1/gcz2tga.exe new file mode 100644 index 0000000..0625330 Binary files /dev/null and b/iidx/gcz2tga_v1/gcz2tga.exe differ diff --git a/iidx/gcz2tga_v2/gcz2tga.exe b/iidx/gcz2tga_v2/gcz2tga.exe new file mode 100644 index 0000000..7c9b1b2 Binary files /dev/null and b/iidx/gcz2tga_v2/gcz2tga.exe differ diff --git a/iidx/gcz2tga_v3/gcz2tga.c b/iidx/gcz2tga_v3/gcz2tga.c new file mode 100644 index 0000000..70e5b8e --- /dev/null +++ b/iidx/gcz2tga_v3/gcz2tga.c @@ -0,0 +1,306 @@ +/* gcz2tga.c: Slice up a directory full of GCZ (texture) files into TGA files. + * + * Credit goes to afwefwe for reverse-engineering the texture format + * and LZSS compression */ + +#include +#include +#include + +/* Assuming x86, usual endian crap is not accounted for */ +typedef unsigned char u8_t; +typedef unsigned short u16_t; +typedef unsigned int u32_t; + +struct image +{ + unsigned int width, height; + u8_t *planes; +}; + +struct clip +{ + short x, y, w, h; +}; + +static u16_t swab16(u16_t in) +{ + /* GC headers are big-endian */ + return ((in & 0xFF) << 8) | (in >> 8); +} + +static void unpack_gc(struct image *out, u8_t *in, size_t out_sz) +{ + unsigned int npixels; + unsigned int i; + unsigned int j; + u16_t *pixels; + u16_t *pheight; + u16_t *pwidth; + u16_t *pmagic; + u16_t pixel; + + pmagic = (u16_t *) in; + pheight = (u16_t *) (in + 14); + pwidth = (u16_t *) (in + 12); + + if (*pmagic != 0x4347) { + fprintf(stderr, "(FAIL: Invalid header)\n"); + exit(EXIT_FAILURE); + } + + /* Set up output image struct */ + in += 24; + out->width = swab16(*pwidth); + out->height = swab16(*pheight); + out->planes = malloc(out->width * out->height * 4); + + /* Clamp W/H (don't know why this is necessary but it is) */ + out->width = out->width > 1024 ? 1024 : out->width; + out->height = out->height > 1024 ? 1024 : out->height; + + fprintf(stderr, "(%dx%d)", out->width, out->height); + + /* Unpack pixels */ + pixels = (u16_t *) in; + npixels = out->width * out->height; + + if (out_sz > npixels * 4) { + /* Deep image (i.e. 32-bit) */ + memcpy(out->planes, pixels, npixels * 4); + } else { + /* Shallow image (i.e. 16-bit) */ + for (i = 0, j = 0 ; i < npixels ; i++) { + pixel = pixels[i]; + out->planes[j++] = ((pixel ) & 0x1F) << 3; /* B */ + out->planes[j++] = ((pixel >> 5) & 0x1F) << 3; /* G */ + out->planes[j++] = ((pixel >> 10) ) << 3; /* R */ + out->planes[j++] = pixel & 0x8000 ? 0xFF : 0x00; /* A */ + } + } +} + +static u8_t *expand_lzss(u8_t *lzss, size_t *pout_sz) +{ + static u8_t ring[0x1000]; + unsigned int ring_pos = 0x0FEE; + unsigned int chunk_offset; + unsigned int chunk_length; + u32_t control_word = 1; + size_t length; + u8_t cmd1; + u8_t cmd2; + u8_t *out; + u8_t *pos; + u8_t *in; + + /* Header = 32 bit unpacked file length */ + length = *((u32_t *) lzss); + *pout_sz = length; + + if (length > 8000000) { + fprintf(stderr, "(FAIL: Unreasonably large expanded size %d)\n", + length); + + exit(EXIT_FAILURE); + } + + out = malloc(length * 2); /* Seems to overrun */ + pos = out; + in = lzss + 4; + + while (length > 0) { + if (control_word == 1) { + /* Read a control byte */ + control_word = 0x100 | *in++; + } + + /* Decode a byte according to the current control byte bit */ + if (control_word & 1) { + /* Straight copy */ + *pos++ = *in; + ring[ring_pos] = *in++; + + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } else { + /* Reference to data in ring buffer */ + cmd1 = *in++; + cmd2 = *in++; + + chunk_length = (cmd2 & 0x0F) + 3; + chunk_offset = ((cmd2 & 0xF0) << 4) | cmd1; + + for ( ; chunk_length > 0 ; chunk_length--) { + /* Copy historical data to output AND current ring pos */ + *pos++ = ring[chunk_offset]; + ring[ring_pos] = ring[chunk_offset]; + + /* Update counters */ + chunk_offset = (chunk_offset + 1) % 0x1000; + ring_pos = (ring_pos + 1) % 0x1000; + length--; + } + } + + /* Get next control bit */ + control_word >>= 1; + } + + return out; +} + +static void readfile(const char *filename, u8_t **data, long *nbytes) +{ + FILE *f; + + f = fopen(filename, "rb"); + if (f == NULL) abort(); + + fseek(f, 0, SEEK_END); + *nbytes = ftell(f); + fseek(f, 0, SEEK_SET); + + *data = malloc(*nbytes); + fread(*data, *nbytes, 1, f); + + fclose(f); +} + +void put8(FILE *f, unsigned char val) +{ + fwrite(&val, 1, 1, f); +} + +void put16(FILE *f, unsigned short val) +{ + fwrite(&val, 2, 1, f); +} + +void split_images(const char *in_dir, const char *out_dir, + struct image *images, int nimages) +{ + struct clip *clips; + char filename[512]; + long nbytes; + u8_t *data; + char *name; + FILE *f; + int i; + int j; + int k; + + /* Read file and get TOC */ + sprintf(filename, "%s/system.idx", in_dir); + readfile(filename, &data, &nbytes); + clips = (struct clip *) (data + 0x01BC); + name = (char *) (data + 8 + *((long *) data)); + + /* Guess how many clips there are with a heuristic */ + for (i = 0 ; clips[i].w != 0 && clips[i].h != 0 ; i++) { + sprintf(filename, "%s/%s.tga", out_dir, name); + name += strlen(name) + 3; + + f = fopen(filename, "wb"); + if (f == NULL) abort(); + + /* Locate the correct source image */ + j = 0; + while (clips[i].y > images[j].height) { + clips[i].y -= images[j].height; + j++; + } + + /* Write header */ + put8(f, 0); put8(f, 0); put8(f, 2); + put16(f, 0); put16(f, 0); put8(f, 0); + put16(f, 0); put16(f, 0); put16(f, clips[i].w); put16(f, clips[i].h); + put8(f, 32); put8(f, 32); + + /* Write scanlines */ + for (k = 0 ; k < clips[i].h ; k++) { + if (clips[i].y == images[j].height) { + clips[i].y = 0; + j++; + } + + fwrite(images[j].planes + ((images[j].width * clips[i].y) + + clips[i].x) * 4, clips[i].w, 4, f); + clips[i].y++; + } + + /* Close output file */ + fclose(f); + } + + /* Cleanup */ + free(data); +} + +int main(int argc, char **argv) +{ + char *in_dir; + char *out_dir; + + struct image images[32]; + char filename[256]; + unsigned int i; + long filesize; + u8_t *lzss, *gc; + size_t out_sz; + FILE *f; + + /* Usage */ + if (argc != 3) { + fprintf(stderr, "Usage: %s [indir] [outdir]\n", argv[0]); + return EXIT_FAILURE; + } + + /* Setup */ + memset(images, 0, sizeof(images)); + in_dir = argv[1]; + out_dir = argv[2]; + + for (i = 0 ; i < 32 ; i++) { + /* Open 0.gcz, 1.gcz etc ... */ + sprintf(filename, "%s/%d.gcz", in_dir, i); + f = fopen(filename, "rb"); + if (f == NULL) break; + + /* Read entire file */ + fseek(f, 0, SEEK_END); + filesize = ftell(f); + fseek(f, 0, SEEK_SET); + + fprintf(stderr, "%s: fread", filename); + lzss = malloc(filesize); + fread(lzss, filesize, 1, f); + fclose(f); + + /* Decompress */ + fprintf(stderr, "(OK) expand_lzss"); + gc = expand_lzss(lzss, &out_sz); + free(lzss); + + /* Unpack GC to 32-bit RGBA */ + fprintf(stderr, "(OK) unpack_gc"); + unpack_gc(&images[i], gc, out_sz); + free(gc); + + fprintf(stderr, "(OK)\n"); + } + + /* Sanity check */ + if (i == 0) { + fprintf(stderr, "No GCZ files found\n"); + exit(EXIT_FAILURE); + } + + /* Emit pile of TGAs */ + fprintf(stderr, "split_images"); + split_images(in_dir, out_dir, images, i); + fprintf(stderr, "(OK)\n\n"); + + return 0; +} + diff --git a/iidx/gcz2tga_v3/gcz2tga.exe b/iidx/gcz2tga_v3/gcz2tga.exe new file mode 100644 index 0000000..9db1e0b Binary files /dev/null and b/iidx/gcz2tga_v3/gcz2tga.exe differ diff --git a/iidx/libacio_real/libacio_real.dll b/iidx/libacio_real/libacio_real.dll new file mode 100644 index 0000000..6119e22 Binary files /dev/null and b/iidx/libacio_real/libacio_real.dll differ diff --git a/iidx/misc tools unsorted/2dx2wavs.exe b/iidx/misc tools unsorted/2dx2wavs.exe new file mode 100644 index 0000000..9e1e953 Binary files /dev/null and b/iidx/misc tools unsorted/2dx2wavs.exe differ diff --git a/iidx/misc tools unsorted/bemaniMDE.exe b/iidx/misc tools unsorted/bemaniMDE.exe new file mode 100644 index 0000000..5f650b6 Binary files /dev/null and b/iidx/misc tools unsorted/bemaniMDE.exe differ diff --git a/iidx/misc tools unsorted/bmx2bemani.exe b/iidx/misc tools unsorted/bmx2bemani.exe new file mode 100644 index 0000000..e1b5a8a Binary files /dev/null and b/iidx/misc tools unsorted/bmx2bemani.exe differ diff --git a/iidx/misc tools unsorted/bmx2wav101020.zip b/iidx/misc tools unsorted/bmx2wav101020.zip new file mode 100644 index 0000000..70f7014 Binary files /dev/null and b/iidx/misc tools unsorted/bmx2wav101020.zip differ diff --git a/iidx/misc tools unsorted/buildImgFS.exe b/iidx/misc tools unsorted/buildImgFS.exe new file mode 100644 index 0000000..49d929c Binary files /dev/null and b/iidx/misc tools unsorted/buildImgFS.exe differ diff --git a/iidx/misc tools unsorted/convert_keysounds.bat b/iidx/misc tools unsorted/convert_keysounds.bat new file mode 100644 index 0000000..91872e8 --- /dev/null +++ b/iidx/misc tools unsorted/convert_keysounds.bat @@ -0,0 +1,15 @@ +command /c rem +mkdir "%~dps0old" +move "%~dps0*.wav" "%~dps0old" +for %%f in ("%~dps0old\*.wav") do ( + rename "%%~sf" "temp.wav" + sox -G -S "%%~spftemp.wav" -e ms-adpcm "%%~spfout.wav" + move "%%~spfout.wav" "%~dps0%%~nf.wav" + rename "%%~spftemp.wav" "%%~nf.wav" +) +for %%f in ("%~dps0*.ogg") do ( + rename "%%~sf" "temp.ogg" + sox -G -S "%%~spftemp.ogg" -e ms-adpcm "%%~spfout.wav" + rename "%%~spfout.wav" "%%~nf.wav" + rename "%%~spftemp.ogg" "%%~nf.ogg" +) \ No newline at end of file diff --git a/iidx/misc tools unsorted/dumpImgFS.exe b/iidx/misc tools unsorted/dumpImgFS.exe new file mode 100644 index 0000000..45aa52d Binary files /dev/null and b/iidx/misc tools unsorted/dumpImgFS.exe differ diff --git a/iidx/misc tools unsorted/dumpMD.exe b/iidx/misc tools unsorted/dumpMD.exe new file mode 100644 index 0000000..9c08a50 Binary files /dev/null and b/iidx/misc tools unsorted/dumpMD.exe differ diff --git a/iidx/misc tools unsorted/image.png b/iidx/misc tools unsorted/image.png new file mode 100644 index 0000000..a7ae31e Binary files /dev/null and b/iidx/misc tools unsorted/image.png differ diff --git a/iidx/misc tools unsorted/image1.png b/iidx/misc tools unsorted/image1.png new file mode 100644 index 0000000..d80a527 Binary files /dev/null and b/iidx/misc tools unsorted/image1.png differ diff --git a/iidx/misc tools unsorted/image2.png b/iidx/misc tools unsorted/image2.png new file mode 100644 index 0000000..3ec59a7 Binary files /dev/null and b/iidx/misc tools unsorted/image2.png differ diff --git a/iidx/misc tools unsorted/image3.png b/iidx/misc tools unsorted/image3.png new file mode 100644 index 0000000..251f8cf Binary files /dev/null and b/iidx/misc tools unsorted/image3.png differ diff --git a/iidx/misc tools unsorted/image4.png b/iidx/misc tools unsorted/image4.png new file mode 100644 index 0000000..cf48570 Binary files /dev/null and b/iidx/misc tools unsorted/image4.png differ diff --git a/iidx/misc tools unsorted/libsndfile-1.dll b/iidx/misc tools unsorted/libsndfile-1.dll new file mode 100644 index 0000000..545ffb5 Binary files /dev/null and b/iidx/misc tools unsorted/libsndfile-1.dll differ diff --git a/iidx/misc tools unsorted/readme b/iidx/misc tools unsorted/readme new file mode 100644 index 0000000..2bc31b2 --- /dev/null +++ b/iidx/misc tools unsorted/readme @@ -0,0 +1,55 @@ +I don't have enough time to work on some projects right now, and similar things are already out there so this is nothing new, so I'll put these up here for now. + +Most of these will require vcredist_x86.exe 2013 to be installed. + +BMx->IIDX: +bmx2bemani with user interface +Requires libsndfile-1.dll to be alongside bmx2bemani.exe. Usage should be somewhat obvious. Audio must be converted to appropriate formats. You can use the following scripts to facilitate this (assumes sox available through global path or in directory, get it at http://sourceforge.net/projects/sox/files/sox/ ): +convert_keysounds.bat (wav/ogg -> ms-adpcm, run .bat in directory along side .bmx/keysounds) +revert_keysounds.bat (restore wav/ogg files, same usage as convert_keysounds) +soxstat.bat (useful stats for volume adjustment, etc) + +Preview related stuff: +bmx2wav (not my tool, use to create single complete audio from bmx+wavs) +wav2previews.bat (batch script to make preview clips from complete audio, modify as needed, drag and drop .wav onto .bat) +wav2preview (convert preview clip to _pre.2dx, drag and drop preview .wav onto .exe) + +Tricoro and up music_data binary editor: +bemaniMDE GUI editor +Usage should be obvious. Currently, you must save any edits to each song before going to another song, sorry. + +Data extraction: +dumpImgFS (extract files from .ifs from almost any bemani game, retains directory structure and file names used inside the IFS files, drag and drop .ifs file on dumpImgFS.exe) +txp2tga (extracts textures from txp .bin format graphics used in Resort Anthem and others, operates on .bin file directly) +tex2tga (extracts textures from new graphics formats used in Tricoro, Sunny Park, etc. Extract raw files from .ifs using dumpImgFS first, then run tex2tga where texturelist.xml resides) +dumpMD (music_data dumper, for tricoro/spada, outputs TSV text file) +2dx2wavs (maybe not very good/useful... extracts unmodified ms-adpcm .wavs from .2dx, at least for IIDX/popn .2dx files, meaningless naming) + +Texture creation: +tga2tex +Converts 32 bit TGA format images to compressed and hashed-filename format texture file used by Tricoro/Sunny Park/etc in .ifs file. Image format must be 32 bit TGA with alpha channel (even if no transparencies are used), UNCOMPRESSED (if using GIMP, RLE encoding disabled) and with origin at TOP-LEFT. This is the same format output by tex2tga, so if you are going to use this to replace game textures, use the extracted textures as a template as they must also be exactly the same resolutions. You should be able to drag and drop a .tga file onto tga2tex.exe, and it should output a file with 16 characters. Command line usage would be tga2tex.exe . Place this file into the tex\ directory from the extracted IFS data (should overwrite an existing texture), and rebuild IFS. Compression algorithm is a bit slow, I will improve this some time.... + +IFS creation: +buildImgFS +Create .ifs for songs/textures. Usage is buildImgFS where is iidx/popn/gfdm/tex (I forget, I might have added support for others, just use iidx or tex if in doubt) where iidx, popn, gfdm are used if you are building .ifs for songs for those games, and tex if building ifs for graphics. Make sure to use the same exact directory structure, folder names, and file names obtained from dumpImgFS, with _imgfs removed from top directory name. No game DLL modifications or anything needed; drop in replacements. + + +If you are specifically interested in graphic/texture modification/injection then hopefully these images will better explain the process (refer to descriptions above for notes on specific tools used in the process), for any and all textures in various games (similar process for building song or other ifs as well): + +http://s30.postimg.org/c9pi9p8u9/image.png +1. Use dumpImgFS to extract the raw files from the .ifs containing the textures you want to modify. DO NOT modify any filenames or file structure, these are the filenames and folder names given by Konami and used by the game. + +http://s29.postimg.org/jio3viwpz/image.png +2. Use tex2tga to convert the raw texture files to TGA as shown. The output is inside the tex folder in the IFS extracted data. Modify the textures as needed using the extracted TGA as a template. Make sure the format is 32 bit TGA (includes alpha channel), no compression, origin at top-left. Save as same file name (important for hashed file name used in ifs). + +http://s28.postimg.org/kwc2g0zdp/image.png +3. Use tga2tex to compress and name the texture for reinsertion into an ifs as shown. Again, do not modify any file names. + +http://s27.postimg.org/c59mzn2wz/image.png +4. Replace the texture file in the tex\ directory of the extracted ifs data and overwrite the existing file. + +http://s14.postimg.org/t2j2qpwup/image.png +5. Finally, remove _imgfs from the top directory folder name, and rebuild the ifs using buildImgFS as shown. The resulting .ifs file can just be directly dropped in place of the stock ifs file, no need for any other modifications to the game. + +I'll try to write better documentation later, just leaving these here for now. Let me know if some instruction is incorrect or insufficient/unclear. + diff --git a/iidx/misc tools unsorted/revert_keysounds.bat b/iidx/misc tools unsorted/revert_keysounds.bat new file mode 100644 index 0000000..64e6bad --- /dev/null +++ b/iidx/misc tools unsorted/revert_keysounds.bat @@ -0,0 +1,3 @@ +del "%~dps0*.wav" +move "%~dps0old\*.wav" "%~dps0." +rmdir "%~dps0old" \ No newline at end of file diff --git a/iidx/misc tools unsorted/soxstat.bat b/iidx/misc tools unsorted/soxstat.bat new file mode 100644 index 0000000..e997860 --- /dev/null +++ b/iidx/misc tools unsorted/soxstat.bat @@ -0,0 +1,2 @@ +sox.exe "%~fs1" -n stat +PAUSE \ No newline at end of file diff --git a/iidx/misc tools unsorted/tex2tga.exe b/iidx/misc tools unsorted/tex2tga.exe new file mode 100644 index 0000000..d365323 Binary files /dev/null and b/iidx/misc tools unsorted/tex2tga.exe differ diff --git a/iidx/misc tools unsorted/tga2tex.exe b/iidx/misc tools unsorted/tga2tex.exe new file mode 100644 index 0000000..fa6c343 Binary files /dev/null and b/iidx/misc tools unsorted/tga2tex.exe differ diff --git a/iidx/misc tools unsorted/txp2tga.exe b/iidx/misc tools unsorted/txp2tga.exe new file mode 100644 index 0000000..88fbdad Binary files /dev/null and b/iidx/misc tools unsorted/txp2tga.exe differ diff --git a/iidx/misc tools unsorted/wav2preview.exe b/iidx/misc tools unsorted/wav2preview.exe new file mode 100644 index 0000000..ac6f70a Binary files /dev/null and b/iidx/misc tools unsorted/wav2preview.exe differ diff --git a/iidx/misc tools unsorted/wav2previews.bat b/iidx/misc tools unsorted/wav2previews.bat new file mode 100644 index 0000000..aef4336 --- /dev/null +++ b/iidx/misc tools unsorted/wav2previews.bat @@ -0,0 +1,8 @@ +@ECHO OFF +sox.exe "%~fs1" -n stat +set /p vol= "Volume: " +sox.exe -G -S "%~fs1" -e ms-adpcm "%~dps0_pre1.wav" vol %vol% trim 00:00:15 =00:00:25 fade t 0 00:00:10 00:00:01.5 +sox.exe -G -S "%~fs1" -e ms-adpcm "%~dps0_pre2.wav" vol %vol% trim 00:00:30 =00:00:40 fade t 0 00:00:10 00:00:01.5 +sox.exe -G -S "%~fs1" -e ms-adpcm "%~dps0_pre3.wav" vol %vol% trim 00:00:45 =00:00:55 fade t 0 00:00:10 00:00:01.5 +sox.exe -G -S "%~fs1" -e ms-adpcm "%~dps0_pre4.wav" vol %vol% trim 00:01:00 =00:01:10 fade t 0 00:00:10 00:00:01.5 +sox.exe -G -S "%~fs1" -e ms-adpcm "%~dps0_pre5.wav" vol %vol% trim 00:01:15 =00:01:25 fade t 0 00:00:10 00:00:01.5 diff --git a/iidx/packgcz/packgcz.exe b/iidx/packgcz/packgcz.exe new file mode 100644 index 0000000..442bf01 Binary files /dev/null and b/iidx/packgcz/packgcz.exe differ diff --git a/misc/BeMedia Suite/BeMedia Suite 2007-08-28.zip b/misc/BeMedia Suite/BeMedia Suite 2007-08-28.zip new file mode 100644 index 0000000..abe08e8 Binary files /dev/null and b/misc/BeMedia Suite/BeMedia Suite 2007-08-28.zip differ diff --git a/misc/BeMedia Suite/BeMediaRipper-223.zip b/misc/BeMedia Suite/BeMediaRipper-223.zip new file mode 100644 index 0000000..65e8a4e Binary files /dev/null and b/misc/BeMedia Suite/BeMediaRipper-223.zip differ diff --git a/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemani 2 BMS.zip b/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemani 2 BMS.zip new file mode 100644 index 0000000..bbcd367 Binary files /dev/null and b/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemani 2 BMS.zip differ diff --git a/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemedia Ripper.zip b/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemedia Ripper.zip new file mode 100644 index 0000000..e75e633 Binary files /dev/null and b/misc/BeMedia Suite/Old Bemedia Suit stuff/Bemedia Ripper.zip differ diff --git a/misc/BemaniExplorer beta5r7/Changelog.txt b/misc/BemaniExplorer beta5r7/Changelog.txt new file mode 100644 index 0000000..81ecaef --- /dev/null +++ b/misc/BemaniExplorer beta5r7/Changelog.txt @@ -0,0 +1,59 @@ +BETA1 -> BETA2 + +Added .2dx support +Fixed loading .ifs that contain solely audio + +BETA2 -> BETA3 + +Added a seperate load thread, UI now no longer freezes while loading +Added a progress bar for all of you who like knowing how far it is with loading +Possible compatibility improvements +Temporary dirty fix for extraction failing when cache had just been cleared + +BETA3 -> BETA4 + +Added .sd9 support (right click icon/open button/treeview) +Minor improvements + +BETA4 -> BETA4FIX + +Fixed .2dx files stucking after creating cache + +BETA4 -> BETA5 + +Performance improvements +Changed lame progressbar to a circular one +Fixed failing to open an archive after the cache was cleared +Binary files are now included in the executable +TargaImage is now included in the executable +Changed the horribly misspelled "dependancies" to "runtimes" (in the packed version) +??? =) + +BETA5 -> BETA5 R1 + +Fixed application occasionally failing to load one archive after the other with an image selected + +BETA5 R1 -> BETA5 R2 + +Added a notification for available updates (only visible when running out-of-date version >BETA5 R2) + +BETA5 R2 -> BETA5 R3 + +Added a bug-report generation tool + +BETA5 R3 -> BETA5 R4 + +Added a debug console for troubleshooting + +BETA5 R4 -> BETA R5 + +Cache now relies on md5 checksum instead of file name +Added pirate-chan ^w^ + +BETA5 R5 -> BETA5 R6 + +Fixed the problem occuring with read-only .ifs / .2dx files + +BETA5 R6 -> BETA5 R7 + +Fixed arrow-navigation in the file treeview \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/Help.txt b/misc/BemaniExplorer beta5r7/Help.txt new file mode 100644 index 0000000..f19ab74 --- /dev/null +++ b/misc/BemaniExplorer beta5r7/Help.txt @@ -0,0 +1,2 @@ +Anyone here speaking (near-)fluent English and Japanese? +I could use some help correcting the Google Translate derps. \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/License.txt b/misc/BemaniExplorer beta5r7/License.txt new file mode 100644 index 0000000..57bee6a --- /dev/null +++ b/misc/BemaniExplorer beta5r7/License.txt @@ -0,0 +1,14 @@ +This software is licensed under: + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Intl. + BY-NC-SA + +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +TargaImage.dll is licensed under CPOL: +http://www.codeproject.com/info/cpol10.aspx + +(For developers) +Yes, you are allowed to decompile the program and use bits of the +code in one (or multiple) of your projects, but abide by the license and give +proper credit where necessary. \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/Notice.txt b/misc/BemaniExplorer beta5r7/Notice.txt new file mode 100644 index 0000000..c352153 --- /dev/null +++ b/misc/BemaniExplorer beta5r7/Notice.txt @@ -0,0 +1,6 @@ +TargaImage.dll by David Polomis modified by Arena for transperancy fix +TargaImage.dll is licensed under CPOL: +http://www.codeproject.com/info/cpol10.aspx +TargaImage.dll is now included in the program + +Binaries by Mutiny \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/Reporting Bugs.txt b/misc/BemaniExplorer beta5r7/Reporting Bugs.txt new file mode 100644 index 0000000..39c4a30 --- /dev/null +++ b/misc/BemaniExplorer beta5r7/Reporting Bugs.txt @@ -0,0 +1,22 @@ +Please use the following steps to report bugs: + +1) Open BemaniExplorer +2) Right-click the titlebar +3) Click BUG REPORT +4) Fill out the form +5) Generate the report +6) Optional, but please do: Upload the report (for ex. Dropbox or Pastebin) +7) PM the report to Arena + +NOTE: You do not have to include the log files in your upload + they are automatically included in the bug report file + +If you have a very specific bug (e.g. the program not outputting any errors) +please debug before you open the archive/file(s) and attach the debug log. + +This can be done by: + +1) Right-click the titlebar +2) Open the DEBUG CONSOLE +3) Open your archive/file(s) +4) Right click the debug console and click EXPORT \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/Usage.txt b/misc/BemaniExplorer beta5r7/Usage.txt new file mode 100644 index 0000000..7c18a38 --- /dev/null +++ b/misc/BemaniExplorer beta5r7/Usage.txt @@ -0,0 +1,30 @@ +1) Open BemaniExplorer.exe as Administrator +2) Open .ifs or .2dx file +3) You can export all by right-clicking the B icon/open button/treeview +4) You can export single by right-clicking the image +5) You can convert .sd9 files by right-clicking the B icon/open button/treeview + +> Please report bugs to Arena (PM) + +> Requirements: + Windows XP or higher + .NET Framework 3.0 + VCRedist_x86 2013 + 2GB of usable system RAM (x86 4GB> preferred, x64 6GB> preferred) + any CPU + +> Notes: + Image parsing is done with the CPU, loading times may vary depending + on your CPU. + + If you report errors, please include all the available logs. + + The usage of the application beyond this point is the full responsibility + of whoever uses it. + + If in any case file damage or physical damage occurs with this program as + a cause (I'm pretty certain it wont), the end user is responsible. + + (For developers) the cache folder is now hidden to prevent unexperienced people + from faffing about and breaking the program, you can get to it by adding "\cache" to + the directory where the .exe is located in \ No newline at end of file diff --git a/misc/BemaniExplorer beta5r7/program/BemaniExplorer.exe b/misc/BemaniExplorer beta5r7/program/BemaniExplorer.exe new file mode 100644 index 0000000..c4f3638 Binary files /dev/null and b/misc/BemaniExplorer beta5r7/program/BemaniExplorer.exe differ diff --git a/misc/BemaniExplorer beta5r7/runtimes/dotnetfx30SP1setup.exe b/misc/BemaniExplorer beta5r7/runtimes/dotnetfx30SP1setup.exe new file mode 100644 index 0000000..4127be8 Binary files /dev/null and b/misc/BemaniExplorer beta5r7/runtimes/dotnetfx30SP1setup.exe differ diff --git a/misc/BemaniExplorer beta5r7/runtimes/vcredist_x86.exe b/misc/BemaniExplorer beta5r7/runtimes/vcredist_x86.exe new file mode 100644 index 0000000..b795578 Binary files /dev/null and b/misc/BemaniExplorer beta5r7/runtimes/vcredist_x86.exe differ diff --git a/misc/Bemedia Player/BeMedia Player.exe b/misc/Bemedia Player/BeMedia Player.exe new file mode 100644 index 0000000..5cfdf7d Binary files /dev/null and b/misc/Bemedia Player/BeMedia Player.exe differ diff --git a/misc/Bemedia Player/bass23.dll b/misc/Bemedia Player/bass23.dll new file mode 100644 index 0000000..45ac307 Binary files /dev/null and b/misc/Bemedia Player/bass23.dll differ diff --git a/misc/eaLocalServer.exe b/misc/eaLocalServer.exe new file mode 100644 index 0000000..d71089d Binary files /dev/null and b/misc/eaLocalServer.exe differ diff --git a/misc/spicetools/spicetools-20191404/api/cpp/README.md b/misc/spicetools/spicetools-20191404/api/cpp/README.md new file mode 100644 index 0000000..979bb7d --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/README.md @@ -0,0 +1,8 @@ +# SpiceAPI C++ Library +This library is still a bit experimental and might contain bugs. + +To include it into your project, it's recommended to just copy the +files into your source directory. + +To use the wrappers, RapidJSON is required and you might need to +adjust the include paths for your project's build. diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/LICENSE b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.cpp b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.cpp new file mode 100644 index 0000000..674ef22 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.cpp @@ -0,0 +1,174 @@ +#include +#include +#include "connection.h" + +namespace spiceapi { + + // settings + static const size_t RECEIVE_BUFFER_SIZE = 64 * 1024; + static const int RECEIVE_TIMEOUT = 1000; +} + +spiceapi::Connection::Connection(std::string host, uint16_t port, std::string password) { + this->host = host; + this->port = port; + this->password = password; + this->socket = INVALID_SOCKET; + this->cipher = nullptr; + + // WSA startup + WSADATA wsa_data; + int error = WSAStartup(MAKEWORD(2, 2), &wsa_data); + if (error) { + std::cerr << "Failed to start WSA: " << error << std::endl; + exit(1); + } +} + +spiceapi::Connection::~Connection() { + + // clean up + if (this->cipher != nullptr) + delete this->cipher; + + // cleanup WSA + WSACleanup(); +} + +void spiceapi::Connection::cipher_alloc() { + + // delete old cipher + if (this->cipher != nullptr) { + delete this->cipher; + this->cipher = nullptr; + } + + // create new cipher if password is set + if (this->password.length() > 0) { + this->cipher = new RC4( + (uint8_t *) this->password.c_str(), + strlen(this->password.c_str())); + } +} + +bool spiceapi::Connection::check() { + int result = 0; + + // check if socket is invalid + if (this->socket == INVALID_SOCKET) { + + // get all addresses + addrinfo *addr_list; + addrinfo hints{}; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + if ((result = getaddrinfo( + this->host.c_str(), + std::to_string(this->port).c_str(), + &hints, + &addr_list))) { + std::cerr << "getaddrinfo failed: " << result << std::endl; + return false; + } + + // check all addresses + for (addrinfo *addr = addr_list; addr != NULL; addr = addr->ai_next) { + + // try open socket + this->socket = ::socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); + if (this->socket == INVALID_SOCKET) { + std::cerr << "socket failed: " << WSAGetLastError() << std::endl; + freeaddrinfo(addr_list); + return false; + } + + // try connect + result = connect(this->socket, addr->ai_addr, (int) addr->ai_addrlen); + if (result == SOCKET_ERROR) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + continue; + } + + // configure socket + int opt_val; + opt_val = 1; + setsockopt(this->socket, IPPROTO_TCP, TCP_NODELAY, (const char*) &opt_val, sizeof(opt_val)); + opt_val = RECEIVE_TIMEOUT; + setsockopt(this->socket, SOL_SOCKET, SO_RCVTIMEO, (const char*) &opt_val, sizeof(opt_val)); + + // connection successful + this->cipher_alloc(); + break; + } + + // check if successful + freeaddrinfo(addr_list); + if (this->socket == INVALID_SOCKET) { + return false; + } + } + + // socket probably still valid + return true; +} + +void spiceapi::Connection::change_pass(std::string password) { + this->password = password; + this->cipher_alloc(); +} + +std::string spiceapi::Connection::request(std::string json) { + + // check connection + if (!this->check()) + return ""; + + // crypt + auto json_len = strlen(json.c_str()) + 1; + uint8_t* json_data = new uint8_t[json_len]; + memcpy(json_data, json.c_str(), json_len); + if (this->cipher != nullptr) + this->cipher->crypt(json_data, json_len); + + // send + auto send_result = send(this->socket, (const char*) json_data, (int) json_len, 0); + delete[] json_data; + if (send_result == SOCKET_ERROR || send_result < (int) json_len) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + return ""; + } + + // receive + uint8_t receive_data[RECEIVE_BUFFER_SIZE]; + size_t receive_data_len = 0; + int receive_result; + while ((receive_result = recv( + this->socket, + (char*) &receive_data[receive_data_len], + sizeof(receive_data), 0)) > 0) { + + // check for buffer overflow + if (receive_data_len + receive_result >= sizeof(receive_data)) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + return ""; + } + + // crypt + if (this->cipher != nullptr) + this->cipher->crypt(&receive_data[receive_data_len], (size_t) receive_result); + + // increase received data length + receive_data_len += receive_result; + + // check for message end + if (receive_data[receive_data_len - 1] == 0) + break; + } + + // return resulting json + return std::string((const char*) &receive_data[0], receive_data_len - 1); +} diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.h b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.h new file mode 100644 index 0000000..a747584 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/connection.h @@ -0,0 +1,31 @@ +#ifndef SPICEAPI_CONNECTION_H +#define SPICEAPI_CONNECTION_H + +#include +#include +#include "rc4.h" + +namespace spiceapi { + + class Connection { + private: + std::string host; + uint16_t port; + std::string password; + SOCKET socket; + RC4* cipher; + + void cipher_alloc(); + + public: + Connection(std::string host, uint16_t port, std::string password = ""); + ~Connection(); + + bool check(); + void change_pass(std::string password); + std::string request(std::string json); + + }; +} + +#endif //SPICEAPI_CONNECTION_H diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.cpp b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.cpp new file mode 100644 index 0000000..f8e06f1 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.cpp @@ -0,0 +1,45 @@ +#include "rc4.h" +#include + +spiceapi::RC4::RC4(uint8_t *key, size_t key_size) { + + // initialize S-BOX + for (size_t i = 0; i < std::size(s_box); i++) + s_box[i] = (uint8_t) i; + + // check key size + if (!key_size) + return; + + // KSA + size_t j = 0; + for (size_t i = 0; i < std::size(s_box); i++) { + + // update + j = (j + s_box[i] + key[i % key_size]) % std::size(s_box); + + // swap + auto tmp = s_box[i]; + s_box[i] = s_box[j]; + s_box[j] = tmp; + } +} + +void spiceapi::RC4::crypt(uint8_t *data, size_t size) { + + // iterate all bytes + for (size_t pos = 0; pos < size; pos++) { + + // update + a = (a + 1) % std::size(s_box); + b = (b + s_box[a]) % std::size(s_box); + + // swap + auto tmp = s_box[a]; + s_box[a] = s_box[b]; + s_box[b] = tmp; + + // crypt + data[pos] ^= s_box[(s_box[a] + s_box[b]) % std::size(s_box)]; + } +} diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.h b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.h new file mode 100644 index 0000000..39e04e3 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/rc4.h @@ -0,0 +1,21 @@ +#ifndef SPICEAPI_RC4_H +#define SPICEAPI_RC4_H + +#include + +namespace spiceapi { + + class RC4 { + private: + uint8_t s_box[256]; + size_t a = 0, b = 0; + + public: + + RC4(uint8_t *key, size_t key_size); + + void crypt(uint8_t *data, size_t size); + }; +} + +#endif //SPICEAPI_RC4_H diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.cpp b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.cpp new file mode 100644 index 0000000..19fcbcf --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.cpp @@ -0,0 +1,570 @@ +#include "wrappers.h" +#include +#include + +/* + * RapidJSON dependency + * You might need to adjust the paths when importing into your own project. + */ +#include "external/rapidjson/document.h" +#include "external/rapidjson/writer.h" +using namespace rapidjson; + + +namespace spiceapi { + + static inline std::string doc2str(Document &doc) { + StringBuffer sb; + rapidjson::Writer writer(sb); + doc.Accept(writer); + return sb.GetString(); + } + + static inline Document request_gen(const char *module, const char *function) { + + // create document + Document doc; + doc.SetObject(); + + // add attributes + auto &alloc = doc.GetAllocator(); + doc.AddMember("id", msg_gen_id(), alloc); + doc.AddMember("module", StringRef(module), alloc); + doc.AddMember("function", StringRef(function), alloc); + + // add params + Value noparam(kArrayType); + doc.AddMember("params", noparam, alloc); + + // return document + return doc; + } + + static inline Document *response_get(std::string json) { + + // parse document + Document *doc = new Document(); + doc->Parse(json.c_str()); + + // check for parse error + if (doc->HasParseError()) { + delete doc; + return nullptr; + } + + // check id + auto it_id = doc->FindMember("id"); + if (it_id == doc->MemberEnd() || !(*it_id).value.IsUint64()) { + delete doc; + return nullptr; + } + + // check errors + auto it_errors = doc->FindMember("errors"); + if (it_errors == doc->MemberEnd() || !(*it_errors).value.IsArray()) { + delete doc; + return nullptr; + } + + // check error count + if ((*it_errors).value.Size() > 0) { + delete doc; + return nullptr; + } + + // check data + auto it_data = doc->FindMember("data"); + if (it_data == doc->MemberEnd() || !(*it_data).value.IsArray()) { + delete doc; + return nullptr; + } + + // return document + return doc; + } +} + +uint64_t spiceapi::msg_gen_id() { + static uint64_t id_global = 0; + + // check if global ID was initialized + if (id_global == 0) { + + // generate a new ID + std::random_device rd; + std::mt19937_64 gen(rd()); + std::uniform_int_distribution dist(1, (uint64_t) std::llround(std::pow(2, 63))); + id_global = dist(gen); + + } else { + + // increase by one + id_global++; + } + + // return global ID + return id_global; +} + +bool spiceapi::analogs_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + AnalogState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::analogs_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::analogs_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::buttons_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + ButtonState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::buttons_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::buttons_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::card_insert(spiceapi::Connection &con, size_t index, const char *card_id) { + auto req = request_gen("card", "insert"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(index, alloc); + params.PushBack(StringRef(card_id), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::coin_get(Connection &con, int &coins) { + auto req = request_gen("coin", "insert"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + coins = (*res)["data"][0].GetInt(); + delete res; + return true; +} + +bool spiceapi::coin_set(Connection &con, int coins) { + auto req = request_gen("coin", "set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(coins, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::coin_insert(Connection &con, int coins) { + auto req = request_gen("coin", "insert"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(coins, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_raise(spiceapi::Connection &con, const char *signal) { + auto req = request_gen("control", "raise"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(signal), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_exit(spiceapi::Connection &con) { + auto req = request_gen("control", "exit"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_session_refresh(spiceapi::Connection &con) { + auto req = request_gen("control", "session_refresh"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto key = (*res)["data"][0].GetString(); + con.change_pass(key); + delete res; + return true; +} + +bool spiceapi::iidx_ticker_get(spiceapi::Connection &con, char *ticker) { + auto req = request_gen("iidx", "ticker_get"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto data = (*res)["data"][0].GetString(); + strncpy(ticker, data, 9); + ticker[9] = 0x00; + delete res; + return true; +} + +bool spiceapi::iidx_ticker_set(spiceapi::Connection &con, const char *ticker) { + auto req = request_gen("iidx", "ticker_set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(ticker), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::iidx_ticker_reset(spiceapi::Connection &con) { + auto req = request_gen("iidx", "ticker_reset"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::info_avs(spiceapi::Connection &con, spiceapi::InfoAvs &info) { + auto req = request_gen("info", "avs"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.model = data["model"].GetString(); + info.dest = data["dest"].GetString(); + info.spec = data["spec"].GetString(); + info.rev = data["rev"].GetString(); + info.ext = data["ext"].GetString(); + delete res; + return true; +} + +bool spiceapi::info_launcher(spiceapi::Connection &con, spiceapi::InfoLauncher &info) { + auto req = request_gen("info", "launcher"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.version = data["version"].GetString(); + info.compile_date = data["compile_date"].GetString(); + info.compile_time = data["compile_time"].GetString(); + info.system_time = data["system_time"].GetString(); + for (auto &arg : data["args"].GetArray()) + info.args.push_back(arg.GetString()); + delete res; + return true; +} + +bool spiceapi::info_memory(spiceapi::Connection &con, spiceapi::InfoMemory &info) { + auto req = request_gen("info", "memory"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.mem_total = data["mem_total"].GetUint64(); + info.mem_total_used = data["mem_total_used"].GetUint64(); + info.mem_used = data["mem_used"].GetUint64(); + info.vmem_total = data["vmem_total"].GetUint64(); + info.vmem_total_used = data["vmem_total_used"].GetUint64(); + info.vmem_used = data["vmem_used"].GetUint64(); + delete res; + return true; +} + +bool spiceapi::keypads_write(spiceapi::Connection &con, unsigned int keypad, const char *input) { + auto req = request_gen("keypads", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + params.PushBack(StringRef(input), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::keypads_set(spiceapi::Connection &con, unsigned int keypad, std::vector &keys) { + auto req = request_gen("keypads", "set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + for (auto &key : keys) + params.PushBack(StringRef(&key, 1), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::keypads_get(spiceapi::Connection &con, unsigned int keypad, std::vector &keys) { + auto req = request_gen("keypads", "get"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) + keys.push_back(val.GetString()[0]); + delete res; + return true; +} + +bool spiceapi::lights_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + LightState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::lights_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::lights_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::memory_write(spiceapi::Connection &con, const char *dll_name, const char *hex, uint32_t offset) { + auto req = request_gen("memory", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(StringRef(hex), alloc); + params.PushBack(offset, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::memory_read(spiceapi::Connection &con, const char *dll_name, uint32_t offset, uint32_t size, + std::string &hex) { + auto req = request_gen("memory", "read"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(offset, alloc); + params.PushBack(size, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + hex = (*res)["data"][0].GetString(); + delete res; + return true; +} + +bool spiceapi::memory_signature(spiceapi::Connection &con, const char *dll_name, const char *signature, + const char *replacement, uint32_t offset, uint32_t usage, uint32_t &file_offset) { + auto req = request_gen("memory", "signature"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(StringRef(signature), alloc); + params.PushBack(StringRef(replacement), alloc); + params.PushBack(offset, alloc); + params.PushBack(usage, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + file_offset = (*res)["data"][0].GetUint(); + delete res; + return true; +} + +bool spiceapi::touch_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + TouchState state; + state.id = val[0].GetUint64(); + state.x = val[1].GetInt64(); + state.y = val[2].GetInt64(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::touch_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(state.id, alloc); + state_val.PushBack(state.x, alloc); + state_val.PushBack(state.y, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::touch_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) + params.PushBack(state.id, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} diff --git a/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.h b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.h new file mode 100644 index 0000000..ba60d89 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/cpp/spiceapi/wrappers.h @@ -0,0 +1,91 @@ +#ifndef SPICEAPI_WRAPPERS_H +#define SPICEAPI_WRAPPERS_H + +#include +#include +#include "connection.h" + +namespace spiceapi { + + struct AnalogState { + std::string name; + float value; + }; + + struct ButtonState { + std::string name; + float value; + }; + + struct LightState { + std::string name; + float value; + }; + + struct InfoAvs { + std::string model, dest, spec, rev, ext; + }; + + struct InfoLauncher { + std::string version; + std::string compile_date, compile_time, system_time; + std::vector args; + }; + + struct InfoMemory { + uint64_t mem_total, mem_total_used, mem_used; + uint64_t vmem_total, vmem_total_used, vmem_used; + }; + + struct TouchState { + uint64_t id; + int64_t x, y; + }; + + uint64_t msg_gen_id(); + + bool analogs_read(Connection &con, std::vector &states); + bool analogs_write(Connection &con, std::vector &states); + bool analogs_write_reset(Connection &con, std::vector &states); + + bool buttons_read(Connection &con, std::vector &states); + bool buttons_write(Connection &con, std::vector &states); + bool buttons_write_reset(Connection &con, std::vector &states); + + bool card_insert(Connection &con, size_t index, const char *card_id); + + bool coin_get(Connection &con, int &coins); + bool coin_set(Connection &con, int coins); + bool coin_insert(Connection &con, int coins=1); + + bool control_raise(Connection &con, const char *signal); + bool control_exit(Connection &con); + bool control_session_refresh(Connection &con); + + bool iidx_ticker_get(Connection &con, char *ticker); + bool iidx_ticker_set(Connection &con, const char *ticker); + bool iidx_ticker_reset(Connection &con); + + bool info_avs(Connection &con, InfoAvs &info); + bool info_launcher(Connection &con, InfoLauncher &info); + bool info_memory(Connection &con, InfoMemory &info); + + bool keypads_write(Connection &con, unsigned int keypad, const char *input); + bool keypads_set(Connection &con, unsigned int keypad, std::vector &keys); + bool keypads_get(Connection &con, unsigned int keypad, std::vector &keys); + + bool lights_read(Connection &con, std::vector &states); + bool lights_write(Connection &con, std::vector &states); + bool lights_write_reset(Connection &con, std::vector &states); + + bool memory_write(Connection &con, const char *dll_name, const char *hex, uint32_t offset); + bool memory_read(Connection &con, const char *dll_name, uint32_t offset, uint32_t size, std::string &hex); + bool memory_signature(Connection &con, const char *dll_name, const char *signature, const char *replacement, + uint32_t offset, uint32_t usage, uint32_t &file_offset); + + bool touch_read(Connection &con, std::vector &states); + bool touch_write(Connection &con, std::vector &states); + bool touch_write_reset(Connection &con, std::vector &states); +} + +#endif //SPICEAPI_WRAPPERS_H diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/LICENSE b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/spiceapi.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/spiceapi.dart new file mode 100644 index 0000000..b094915 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/spiceapi.dart @@ -0,0 +1,22 @@ +library spiceapi; +import 'dart:io'; +import 'dart:convert'; +import 'dart:async'; +import 'dart:math'; +part "src/connection.dart"; +part "src/request.dart"; +part "src/response.dart"; +part "src/exceptions.dart"; +part "src/rc4.dart"; +part "src/wrappers/analogs.dart"; +part "src/wrappers/buttons.dart"; +part "src/wrappers/card.dart"; +part "src/wrappers/coin.dart"; +part "src/wrappers/control.dart"; +part "src/wrappers/info.dart"; +part "src/wrappers/keypads.dart"; +part "src/wrappers/lights.dart"; +part "src/wrappers/memory.dart"; +part "src/wrappers/touch.dart"; +part "src/wrappers/iidx.dart"; +part "src/wrappers/touch.dart"; diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/connection.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/connection.dart new file mode 100644 index 0000000..5b031ea --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/connection.dart @@ -0,0 +1,192 @@ +part of spiceapi; + + +class Connection { + + // settings + static const _TIMEOUT = Duration(seconds: 2); + static const _BUFFER_SIZE = 1024 * 8; + + // state + final String host, pass; + final int port; + var resource; + List _dataBuffer; + StreamController _responses; + StreamController _connections; + Socket _socket; + RC4 _cipher; + bool _disposed = false; + + Connection(this.host, this.port, this.pass, + {this.resource, bool refreshSession=true}) { + + // initialize + _dataBuffer = List(); + _responses = StreamController.broadcast(); + _connections = StreamController.broadcast(); + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + + // connect + Socket.connect(host, port, timeout: _TIMEOUT).then((socket) async { + + // remember socket + this._socket = socket; + + // listen to data + socket.listen((data) { + + // cipher + if (_cipher != null) + _cipher.crypt(data); + + // add data to buffer + _dataBuffer.addAll(data); + + // check buffer size + if (_dataBuffer.length > _BUFFER_SIZE) { + socket.destroy(); + return; + } + + // check for completed message + for (int i = 0; i < _dataBuffer.length; i++) { + if (_dataBuffer[i] == 0) { + + // get message data and remove from buffer + var msgData = List.from(_dataBuffer.getRange(0, i)); + _dataBuffer.removeRange(0, i + 1); + + // check data length + if (msgData.length > 0) { + + // convert to JSON + var msgStr = utf8.decode(msgData, allowMalformed: false); + + // build response + var res = Response.fromJson(msgStr); + this._responses.add(res); + } + } + } + + }, onError: (e) { + + // dispose on listen error + this.dispose(); + + }, onDone: () { + + // dispose on listen done + this.dispose(); + + }); + + // refresh session + bool error = false; + if (refreshSession) { + try { + await controlRefreshSession(this); + } on Error { + error = true; + } on TimeoutException { + error = true; + } + } + + // mark as connected + if (!this._connections.isClosed) + this._connections.add(this); + if (error) + this.dispose(); + + }, onError: (e) { + + // dispose on connection error + this.dispose(); + }); + } + + void changePass(String pass) { + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + else + _cipher = null; + } + + void dispose() { + if (_socket != null) + _socket.destroy(); + if (_responses != null) + _responses.close(); + if (_connections != null) + _connections.close(); + this._disposed = true; + this.free(); + } + + bool isDisposed() { + return this._disposed; + } + + void free() { + + // release optional resource + if (this.resource != null) { + this.resource.release(); + this.resource = null; + } + } + + bool isFree() { + return this.resource == null; + } + + Future onConnect() { + return _connections.stream.first; + } + + bool isValid() { + return this._socket != null && !this._disposed; + } + + Future request(Request req) { + + // add response listener + var res = _awaitResponse(req._id); + + // write request + _writeRequest(req); + + // return future response + return res.then((res) { + + // validate first + res.validate(); + + // return it + return res; + }); + } + + void _writeRequest(Request req) async { + + // convert to JSON + var json = req.toJson() + "\x00"; + var jsonEncoded = utf8.encode(json); + + // cipher + if (_cipher != null) + _cipher.crypt(jsonEncoded); + + // write to socket + this._socket.add(jsonEncoded); + } + + Future _awaitResponse(int id) { + return _responses.stream.timeout(_TIMEOUT).firstWhere( + (res) => res._id == id, orElse: null); + } + +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/exceptions.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/exceptions.dart new file mode 100644 index 0000000..3fa292e --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/exceptions.dart @@ -0,0 +1,11 @@ +part of spiceapi; + +class APIError implements Exception { + String cause; + APIError(this.cause); + + @override + String toString() { + return this.cause; + } +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/rc4.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/rc4.dart new file mode 100644 index 0000000..68b7f48 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/rc4.dart @@ -0,0 +1,48 @@ +part of spiceapi; + +class RC4 { + + // state + int _a = 0; + int _b = 0; + List _sBox = List(256); + + RC4(List key) { + + // init sBox + for (int i = 0; i < 256; i++) { + _sBox[i] = i; + } + + // process key + int j = 0; + for (int i = 0; i < 256; i++) { + + // update + j = (j + _sBox[i] + key[i % key.length]) % 256; + + // swap + var tmp = _sBox[i]; + _sBox[i] = _sBox[j]; + _sBox[j] = tmp; + } + } + + void crypt(List inData) { + for (int i = 0; i < inData.length; i++) { + + // update + _a = (_a + 1) % 256; + _b = (_b + _sBox[_a]) % 256; + + // swap + var tmp = _sBox[_a]; + _sBox[_a] = _sBox[_b]; + _sBox[_b] = tmp; + + // crypt + inData[i] ^= _sBox[(_sBox[_a] + _sBox[_b]) % 256]; + } + } + +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/request.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/request.dart new file mode 100644 index 0000000..39a4982 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/request.dart @@ -0,0 +1,45 @@ +part of spiceapi; + +class Request { + + static int _lastID = 0; + + // contents + int _id; + String _module; + String _function; + List _params; + + Request(String module, String function, {id}) { + + // automatic ID iteration + if (id == null) { + if (++_lastID >= pow(2, 32)) + _lastID = 1; + id = _lastID; + } else + _lastID = id; + + // build contents + this._id = id; + this._module = module; + this._function = function; + this._params = List(); + } + + String toJson() { + return jsonEncode( + { + "id": this._id, + "module": this._module, + "function": this._function, + "params": this._params, + } + ); + } + + void addParam(param) { + this._params.add(param); + } + +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/response.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/response.dart new file mode 100644 index 0000000..1940f21 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/response.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +class Response { + + String _json; + int _id; + List _errors; + List _data; + + Response.fromJson(String json) { + this._json = json; + var obj = jsonDecode(json); + this._id = obj["id"]; + this._errors = obj["errors"]; + this._data = obj["data"]; + } + + void validate() { + + // check for errors + if (_errors.length > 0) { + // TODO: add all errors + throw APIError(_errors[0].toString()); + } + } + + List getData() { + return _data; + } + + String toJson() { + return _json; + } + +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/analogs.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/analogs.dart new file mode 100644 index 0000000..cd4df26 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/analogs.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class AnalogState { + String name; + double state; + bool active; + + AnalogState(this.name, this.state); + AnalogState._fromRead(this.name, this.state, this.active); +} + +Future> analogsRead(Connection con) { + var req = Request("analogs", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(AnalogState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future analogsWrite(Connection con, List states) { + var req = Request("analogs", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future analogsWriteReset(Connection con, List names) { + var req = Request("analogs", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/buttons.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/buttons.dart new file mode 100644 index 0000000..58889cc --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/buttons.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class ButtonState { + String name; + double state; + bool active; + + ButtonState(this.name, this.state); + ButtonState._fromRead(this.name, this.state, this.active); +} + +Future> buttonsRead(Connection con) { + var req = Request("buttons", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(ButtonState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future buttonsWrite(Connection con, List states) { + var req = Request("buttons", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future buttonsWriteReset(Connection con, List names) { + var req = Request("buttons", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/card.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/card.dart new file mode 100644 index 0000000..2a42d63 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/card.dart @@ -0,0 +1,8 @@ +part of spiceapi; + +Future cardInsert(Connection con, int unit, String cardID) { + var req = Request("card", "insert"); + req.addParam(unit); + req.addParam(cardID); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/coin.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/coin.dart new file mode 100644 index 0000000..5c82694 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/coin.dart @@ -0,0 +1,21 @@ +part of spiceapi; + +Future coinGet(Connection con) { + var req = Request("coin", "get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future coinSet(Connection con, int amount) { + var req = Request("coin", "set"); + req.addParam(amount); + return con.request(req); +} + +Future coinInsert(Connection con, [int amount=1]) { + var req = Request("coin", "insert"); + if (amount != 1) + req.addParam(amount); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/control.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/control.dart new file mode 100644 index 0000000..4252639 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/control.dart @@ -0,0 +1,21 @@ +part of spiceapi; + +Future controlRaise(Connection con, String signal) { + var req = Request("control", "raise"); + req.addParam(signal); + return con.request(req); +} + +Future controlExit(Connection con, int code) { + var req = Request("control", "exit"); + req.addParam(code); + return con.request(req); +} + +Future controlRefreshSession(Connection con) { + var rnd = new Random(); + var req = Request("control", "session_refresh", id: rnd.nextInt(pow(2, 32))); + return con.request(req).then((res) { + con.changePass(res.getData()[0]); + }); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/iidx.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/iidx.dart new file mode 100644 index 0000000..60562d1 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/iidx.dart @@ -0,0 +1,19 @@ +part of spiceapi; + +Future iidxTickerGet(Connection con) { + var req = Request("iidx", "ticker_get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future iidxTickerSet(Connection con, String text) { + var req = Request("iidx", "ticker_set"); + req.addParam(text); + return con.request(req); +} + +Future iidxTickerReset(Connection con) { + var req = Request("iidx", "ticker_reset"); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/info.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/info.dart new file mode 100644 index 0000000..34cc9de --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/info.dart @@ -0,0 +1,22 @@ +part of spiceapi; + +Future infoAVS(Connection con) { + var req = Request("info", "avs"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoLauncher(Connection con) { + var req = Request("info", "launcher"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoMemory(Connection con) { + var req = Request("info", "memory"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/keypads.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/keypads.dart new file mode 100644 index 0000000..76be9e5 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/keypads.dart @@ -0,0 +1,28 @@ +part of spiceapi; + +Future keypadsWrite(Connection con, int unit, String input) { + var req = Request("keypads", "write"); + req.addParam(unit); + req.addParam(input); + return con.request(req); +} + +Future keypadsSet(Connection con, int unit, String buttons) { + var req = Request("keypads", "set"); + req.addParam(unit); + for (int i = 0; i < buttons.length; i++) + req.addParam(buttons[i]); + return con.request(req); +} + +Future keypadsGet(Connection con, int unit) { + var req = Request("keypads", "get"); + req.addParam(unit); + return con.request(req).then((res) { + String buttons = ""; + for (var obj in res.getData()) { + buttons += obj; + } + return buttons; + }); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/lights.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/lights.dart new file mode 100644 index 0000000..04138a3 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/lights.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class LightState { + String name; + double state; + bool active; + + LightState(this.name, this.state); + LightState._fromRead(this.name, this.state, this.active); +} + +Future> lightsRead(Connection con) { + var req = Request("lights", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(LightState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future lightsWrite(Connection con, List states) { + var req = Request("lights", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future lightsWriteReset(Connection con, List names) { + var req = Request("lights", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/memory.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/memory.dart new file mode 100644 index 0000000..7f529cc --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/memory.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +Future memoryWrite(Connection con, + String dllName, String data, int offset) { + var req = Request("memory", "write"); + req.addParam(dllName); + req.addParam(data); + req.addParam(offset); + return con.request(req); +} + +Future memoryRead(Connection con, + String dllName, int offset, int size) { + var req = Request("memory", "read"); + req.addParam(dllName); + req.addParam(offset); + req.addParam(size); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future memorySignature(Connection con, + String dllName, String signature, String replacement, + int offset, int usage) { + var req = Request("memory", "signature"); + req.addParam(dllName); + req.addParam(signature); + req.addParam(replacement); + req.addParam(offset); + req.addParam(usage); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/touch.dart b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/touch.dart new file mode 100644 index 0000000..8ddbe65 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/dart/spiceapi/src/wrappers/touch.dart @@ -0,0 +1,53 @@ +part of spiceapi; + +class TouchState { + int id; + int x, y; + + TouchState(this.id, this.x, this.y); +} + +Future> touchRead(Connection con) { + var req = Request("touch", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(TouchState( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future touchWrite(Connection con, List states) { + var req = Request("touch", "write"); + + // add params + for (var state in states) { + var obj = [ + state.id, + state.x, + state.y + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future touchWriteReset(Connection con, List touchIDs) { + var req = Request("touch", "write_reset"); + + // add params + for (var id in touchIDs) + req.addParam(id); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20191404/api/python/.gitignore b/misc/spicetools/spicetools-20191404/api/python/.gitignore new file mode 100644 index 0000000..0447b8b --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/.gitignore @@ -0,0 +1,116 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/LICENSE b/misc/spicetools/spicetools-20191404/api/python/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/__init__.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/__init__.py new file mode 100644 index 0000000..5cd290a --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/__init__.py @@ -0,0 +1,14 @@ +from .connection import Connection +from .request import Request +from .analogs import * +from .buttons import * +from .card import * +from .coin import * +from .control import * +from .exceptions import * +from .iidx import * +from .info import * +from .keypads import * +from .lights import * +from .memory import * +from .touch import * diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/analogs.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/analogs.py new file mode 100644 index 0000000..c8a128c --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/analogs.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def analogs_read(con: Connection): + res = con.request(Request("analogs", "read")) + return res.get_data() + + +def analogs_write(con: Connection, analog_state_list): + req = Request("analogs", "write") + for state in analog_state_list: + req.add_param(state) + con.request(req) + + +def analogs_write_reset(con: Connection, analog_names=None): + req = Request("analogs", "write_reset") + + # reset all analogs + if not analog_names: + con.request(req) + return + + # reset specified analogs + for analog_name in analog_names: + req.add_param(analog_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/buttons.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/buttons.py new file mode 100644 index 0000000..8ee6810 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/buttons.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def buttons_read(con: Connection): + res = con.request(Request("buttons", "read")) + return res.get_data() + + +def buttons_write(con: Connection, button_state_list): + req = Request("buttons", "write") + for state in button_state_list: + req.add_param(state) + con.request(req) + + +def buttons_write_reset(con: Connection, button_names=None): + req = Request("buttons", "write_reset") + + # reset all buttons + if not button_names: + con.request(req) + return + + # reset specified buttons + for button_name in button_names: + req.add_param(button_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/card.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/card.py new file mode 100644 index 0000000..d579ed8 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/card.py @@ -0,0 +1,9 @@ +from .connection import Connection +from .request import Request + + +def card_insert(con: Connection, unit: int, card_id: str): + req = Request("card", "insert") + req.add_param(unit) + req.add_param(card_id) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/coin.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/coin.py new file mode 100644 index 0000000..5707d65 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/coin.py @@ -0,0 +1,20 @@ +from .connection import Connection +from .request import Request + + +def coin_get(con: Connection): + res = con.request(Request("coin", "get")) + return res.get_data()[0] + + +def coin_set(con: Connection, amount: int): + req = Request("coin", "set") + req.add_param(amount) + con.request(req) + + +def coin_insert(con: Connection, amount=1): + req = Request("coin", "insert") + if amount != 1: + req.add_param(amount) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/connection.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/connection.py new file mode 100644 index 0000000..ddcacf4 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/connection.py @@ -0,0 +1,139 @@ +import os +import socket +from .request import Request +from .response import Response +from .rc4 import rc4 +from .exceptions import MalformedRequestException, APIError + + +class Connection: + """ Container for managing a single connection to the API server. + """ + + def __init__(self, host: str, port: int, password: str): + """Default constructor. + + :param host: the host string to connect to + :param port: the port of the host + :param password: the connection password string + """ + self.host = host + self.port = port + self.password = password + self.socket = None + self.cipher = None + self.reconnect() + + def reconnect(self, refresh_session=True): + """Reconnect to the server. + + This opens a new connection and closes the previous one, if existing. + """ + + # close old socket + self.close() + + # create new socket + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.settimeout(3) + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + self.socket.connect((self.host, self.port)) + + # cipher + self.change_password(self.password) + + # refresh session + if refresh_session: + from .control import control_session_refresh + control_session_refresh(self) + + def change_password(self, password): + """Allows to change the password on the fly. + + The cipher will be rebuilt. + """ + if len(self.password) > 0: + self.cipher = rc4(password.encode("UTF-8")) + else: + self.cipher = None + + def close(self): + """Close the active connection, if existing.""" + + # check if socket is existing + if self.socket: + + # close and delete socket + self.socket.close() + self.socket = None + + def request(self, request: Request): + """Send a request to the server and receive the answer. + + :param request: request object + :return: response object + """ + + # check if disconnected + if not self.socket: + raise RuntimeError("No active connection.") + + # build data + data = request.to_json().encode("UTF-8") + b"\x00" + if self.cipher: + data_list = list(data) + data_cipher = [] + for b in data_list: + data_cipher.append(b ^ next(self.cipher)) + data = bytes(data_cipher) + + # send request + if os.name != 'nt': + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1) + self.socket.send(data) + + # get answer + answer_data = [] + while not len(answer_data) or answer_data[-1] != 0: + + # receive data + if os.name != 'nt': + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1) + receive_data = self.socket.recv(4096) + + # check length + if len(receive_data): + + # check cipher + if self.cipher: + + # add decrypted data + for b in receive_data: + answer_data.append(int(b ^ next(self.cipher))) + else: + + # add plaintext + for b in receive_data: + answer_data.append(int(b)) + else: + raise RuntimeError("Connection was closed.") + + # check for empty response + if len(answer_data) <= 1: + + # empty response means the JSON couldn't be parsed + raise MalformedRequestException() + + # build response + response = Response(bytes(answer_data[:-1]).decode("UTF-8")) + if len(response.get_errors()): + raise APIError(response.get_errors()) + + # check ID + req_id = request.get_id() + res_id = response.get_id() + if req_id != res_id: + raise RuntimeError(f"Unexpected response ID: {res_id} (expected {req_id})") + + # return response object + return response diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/control.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/control.py new file mode 100644 index 0000000..d117e41 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/control.py @@ -0,0 +1,27 @@ +import random +from .connection import Connection +from .request import Request + + +def control_raise(con: Connection, signal: str): + req = Request("control", "raise") + req.add_param(signal) + con.request(req) + + +def control_exit(con: Connection, code=None): + req = Request("control", "exit") + if code: + req.add_param(code) + try: + con.request(req) + except RuntimeError: + pass # we expect the connection to get killed + + +def control_session_refresh(con: Connection): + res = con.request(Request("control", "session_refresh", req_id=random.randint(1, 2**64))) + + # apply new password + password = res.get_data()[0] + con.change_password(password) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/exceptions.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/exceptions.py new file mode 100644 index 0000000..8a4d050 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/exceptions.py @@ -0,0 +1,10 @@ + + +class APIError(Exception): + + def __init__(self, errors): + super().__init__("\r\n".join(errors)) + + +class MalformedRequestException(Exception): + pass diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/iidx.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/iidx.py new file mode 100644 index 0000000..b2736e1 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/iidx.py @@ -0,0 +1,18 @@ +from .connection import Connection +from .request import Request + + +def iidx_ticker_get(con: Connection): + res = con.request(Request("iidx", "ticker_get")) + return res.get_data() + + +def iidx_ticker_set(con: Connection, text: str): + req = Request("iidx", "ticker_set") + req.add_param(text) + con.request(req) + + +def iidx_ticker_reset(con: Connection): + req = Request("iidx", "ticker_reset") + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/info.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/info.py new file mode 100644 index 0000000..3b4245c --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/info.py @@ -0,0 +1,17 @@ +from .connection import Connection +from .request import Request + + +def info_avs(con: Connection): + res = con.request(Request("info", "avs")) + return res.get_data()[0] + + +def info_launcher(con: Connection): + res = con.request(Request("info", "launcher")) + return res.get_data()[0] + + +def info_memory(con: Connection): + res = con.request(Request("info", "memory")) + return res.get_data()[0] diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/keypads.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/keypads.py new file mode 100644 index 0000000..17980e1 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/keypads.py @@ -0,0 +1,24 @@ +from .connection import Connection +from .request import Request + + +def keypads_write(con: Connection, keypad: int, input_values: str): + req = Request("keypads", "write") + req.add_param(keypad) + req.add_param(input_values) + con.request(req) + + +def keypads_set(con: Connection, keypad: int, input_values: str): + req = Request("keypads", "set") + req.add_param(keypad) + for value in input_values: + req.add_param(value) + con.request(req) + + +def keypads_get(con: Connection, keypad: int): + req = Request("keypads", "get") + req.add_param(keypad) + res = con.request(req) + return res.get_data() diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/lights.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/lights.py new file mode 100644 index 0000000..038373d --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/lights.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def lights_read(con: Connection): + res = con.request(Request("lights", "read")) + return res.get_data() + + +def lights_write(con: Connection, light_state_list): + req = Request("lights", "write") + for state in light_state_list: + req.add_param(state) + con.request(req) + + +def lights_write_reset(con: Connection, light_names=None): + req = Request("lights", "write_reset") + + # reset all lights + if not light_names: + con.request(req) + return + + # reset specified lights + for light_name in light_names: + req.add_param(light_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/memory.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/memory.py new file mode 100644 index 0000000..cf3c01a --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/memory.py @@ -0,0 +1,31 @@ +from .connection import Connection +from .request import Request + + +def memory_write(con: Connection, dll_name: str, data: str, offset: int): + req = Request("memory", "write") + req.add_param(dll_name) + req.add_param(data) + req.add_param(offset) + con.request(req) + + +def memory_read(con: Connection, dll_name: str, offset: int, size: int): + req = Request("memory", "read") + req.add_param(dll_name) + req.add_param(offset) + req.add_param(size) + res = con.request(req) + return res.get_data()[0] + + +def memory_signature(con: Connection, dll_name: str, signature: str, + replacement: str, offset: int, usage: int): + req = Request("memory", "signature") + req.add_param(dll_name) + req.add_param(signature) + req.add_param(replacement) + req.add_param(offset) + req.add_param(usage) + res = con.request(req) + return res.get_data()[0] diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/rc4.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/rc4.py new file mode 100644 index 0000000..076ba7e --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/rc4.py @@ -0,0 +1,24 @@ + + +def rc4_ksa(key): + n = len(key) + j = 0 + s_box = list(range(256)) + for i in range(256): + j = (j + s_box[i] + key[i % n]) % 256 + s_box[i], s_box[j] = s_box[j], s_box[i] + return s_box + + +def rc4_prga(s_box): + i = 0 + j = 0 + while True: + i = (i + 1) % 256 + j = (j + s_box[i]) % 256 + s_box[i], s_box[j] = s_box[j], s_box[i] + yield s_box[(s_box[i] + s_box[j]) % 256] + + +def rc4(key): + return rc4_prga(rc4_ksa(key)) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/request.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/request.py new file mode 100644 index 0000000..d088c09 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/request.py @@ -0,0 +1,63 @@ +import json +from threading import Lock + + +class Request: + + # global ID pool + GLOBAL_ID = 1 + GLOBAL_ID_LOCK = Lock() + + def __init__(self, module: str, function: str, req_id=None): + + # use global ID + with Request.GLOBAL_ID_LOCK: + if req_id is None: + + # reset at max value + Request.GLOBAL_ID += 1 + if Request.GLOBAL_ID >= 2 ** 64: + Request.GLOBAL_ID = 1 + + # get ID and increase by one + req_id = Request.GLOBAL_ID + + else: + + # carry over ID + Request.GLOBAL_ID = req_id + + # remember ID + self._id = req_id + + # build data dict + self.data = { + "id": req_id, + "module": module, + "function": function, + "params": [] + } + + @staticmethod + def from_json(request_json: str): + req = Request("", "", 0) + req.data = json.loads(request_json) + req._id = req.data["id"] + return req + + def get_id(self): + return self._id + + def to_json(self): + return json.dumps( + self.data, + ensure_ascii=False, + check_circular=False, + allow_nan=False, + indent=None, + separators=(",", ":"), + sort_keys=False + ) + + def add_param(self, param): + self.data["params"].append(param) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/response.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/response.py new file mode 100644 index 0000000..72214ff --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/response.py @@ -0,0 +1,30 @@ +import json + + +class Response: + + def __init__(self, response_json: str): + self._res = json.loads(response_json) + self._id = self._res["id"] + self._errors = self._res["errors"] + self._data = self._res["data"] + + def to_json(self): + return json.dumps( + self._res, + ensure_ascii=True, + check_circular=False, + allow_nan=False, + indent=2, + separators=(",", ": "), + sort_keys=False + ) + + def get_id(self): + return self._id + + def get_errors(self): + return self._errors + + def get_data(self): + return self._data diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceapi/touch.py b/misc/spicetools/spicetools-20191404/api/python/spiceapi/touch.py new file mode 100644 index 0000000..72afd7d --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceapi/touch.py @@ -0,0 +1,21 @@ +from .connection import Connection +from .request import Request + + +def touch_read(con: Connection): + res = con.request(Request("touch", "read")) + return res.get_data() + + +def touch_write(con: Connection, touch_points): + req = Request("touch", "write") + for state in touch_points: + req.add_param(state) + con.request(req) + + +def touch_write_reset(con: Connection, touch_ids): + req = Request("touch", "write_reset") + for touch_id in touch_ids: + req.add_param(touch_id) + con.request(req) diff --git a/misc/spicetools/spicetools-20191404/api/python/spiceremote.py b/misc/spicetools/spicetools-20191404/api/python/spiceremote.py new file mode 100644 index 0000000..1c718d1 --- /dev/null +++ b/misc/spicetools/spicetools-20191404/api/python/spiceremote.py @@ -0,0 +1,554 @@ +from datetime import datetime +import tkinter as tk +import tkinter.ttk as ttk +import tkinter.messagebox +try: + import spiceapi +except ModuleNotFoundError: + raise RuntimeError("spiceapi module not installed") + + +NSEW = tk.N+tk.S+tk.E+tk.W + + +def api_action(func): + def wrapper(*args, **kwargs): + try: + func(*args, **kwargs) + except spiceapi.APIError as e: + tk.messagebox.showerror(title="API Error", message=str(e)) + except ValueError as e: + tk.messagebox.showerror(title="Input Error", message=str(e)) + except (ConnectionResetError, BrokenPipeError, RuntimeError) as e: + tk.messagebox.showerror(title="Connection Error", message=str(e)) + except AttributeError: + tk.messagebox.showerror(title="Error", message="No active connection.") + except BaseException as e: + tk.messagebox.showerror(title="Exception", message=str(e)) + return wrapper + + +class TextField(ttk.Frame): + """Simple text field with a scroll bar to the right.""" + + def __init__(self, parent, read_only=False, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.parent = parent + self.read_only = read_only + + # create scroll bar + self.scroll = ttk.Scrollbar(self) + self.scroll.pack(side=tk.RIGHT, fill=tk.Y) + + # create text field + self.contents = tk.Text(self, height=1, width=50, + foreground="black", background="#E8E6E0", + insertbackground="black") + self.contents.pack(side=tk.LEFT, expand=True, fill=tk.BOTH) + + # link scroll bar with text field + self.scroll.config(command=self.contents.yview) + self.contents.config(yscrollcommand=self.scroll.set) + + # read only setting + if self.read_only: + self.contents.config(state=tk.DISABLED) + + def get_text(self): + """Get the current text content as string. + + :return: text content + """ + return self.contents.get("1.0", tk.END+"-1c") + + def set_text(self, text): + """Set the current text content. + + :param text: text content + :return: None + """ + + # enable if read only + if self.read_only: + self.contents.config(state=tk.NORMAL) + + # delete old content and insert replacement text + self.contents.delete("1.0", tk.END) + self.contents.insert(tk.END, text) + + # disable if read only + if self.read_only: + self.contents.config(state=tk.DISABLED) + + +class ManualTab(ttk.Frame): + """Manual JSON request/response functinality.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.rowconfigure(1, weight=1) + self.columnconfigure(0, weight=1) + + # request text field + self.txt_request = TextField(self, read_only=False) + self.txt_request.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + self.txt_request.set_text( + '{\n' + ' "id": 1,\n' + ' "module": "coin",\n' + ' "function": "insert",\n' + ' "params": []\n' + '}\n' + ) + + # response text field + self.txt_response = TextField(self, read_only=True) + self.txt_response.grid(row=1, column=0, sticky=NSEW, padx=2, pady=2) + self.txt_response.contents.config(state=tk.DISABLED) + + # send button + self.btn_send = ttk.Button(self, text="Send", command=self.action_send) + self.btn_send.grid(row=2, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + def action_send(self): + """Gets called when the send button is pressed.""" + + # check connection + if self.app.connection: + + # send request and get response + self.txt_response.set_text("Sending...") + try: + + # build request + request = spiceapi.Request.from_json(self.txt_request.get_text()) + + # send request and get response, measure time + t1 = datetime.now() + response = self.app.connection.request(request) + t2 = datetime.now() + + # set response text + self.txt_response.set_text("{}\n\nElapsed time: {} seconds".format( + response.to_json(), + (t2 - t1).total_seconds()) + ) + + except spiceapi.APIError as e: + self.txt_response.set_text(f"Server returned error:\n{e}") + except spiceapi.MalformedRequestException: + self.txt_response.set_text("Malformed request detected.") + except (ConnectionResetError, BrokenPipeError, RuntimeError) as e: + self.txt_response.set_text("Error sending request: " + str(e)) + except BaseException as e: + self.txt_response.set_text("General Exception: " + str(e)) + + else: + + # print error + self.txt_response.set_text("No active connection.") + + +class ControlTab(ttk.Frame): + """Main control tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + + # scale grid + self.columnconfigure(0, weight=1) + + # card + self.card = ttk.Frame(self, padding=(8, 8, 8, 8)) + self.card.grid(row=0, column=0, sticky=tk.E+tk.W) + self.card.columnconfigure(0, weight=1) + self.card.columnconfigure(1, weight=1) + self.card_lbl = ttk.Label(self.card, text="Card") + self.card_lbl.grid(row=0, columnspan=2) + self.card_entry = ttk.Entry(self.card) + self.card_entry.insert(tk.END, "E004000000000000") + self.card_entry.grid(row=1, columnspan=2, sticky=NSEW, padx=2, pady=2) + self.card_insert_p1 = ttk.Button(self.card, text="Insert P1", command=self.action_insert_p1) + self.card_insert_p1.grid(row=2, column=0, sticky=NSEW, padx=2, pady=2) + self.card_insert_p2 = ttk.Button(self.card, text="Insert P2", command=self.action_insert_p2) + self.card_insert_p2.grid(row=2, column=1, sticky=NSEW, padx=2, pady=2) + + # coin + self.coin = ttk.Frame(self, padding=(8, 8, 8, 8)) + self.coin.grid(row=1, column=0, sticky=tk.E+tk.W) + self.coin.columnconfigure(0, weight=1) + self.coin.columnconfigure(1, weight=1) + self.coin.columnconfigure(2, weight=1) + self.coin_lbl = ttk.Label(self.coin, text="Coins") + self.coin_lbl.grid(row=0, columnspan=3) + self.coin_entry = ttk.Entry(self.coin) + self.coin_entry.insert(tk.END, "1") + self.coin_entry.grid(row=1, columnspan=3, sticky=NSEW, padx=2, pady=2) + self.coin_set = ttk.Button(self.coin, text="Set to Amount", command=self.action_coin_set) + self.coin_set.grid(row=2, column=0, sticky=NSEW, padx=2, pady=2) + self.coin_insert = ttk.Button(self.coin, text="Insert Amount", command=self.action_coin_insert) + self.coin_insert.grid(row=2, column=1, sticky=NSEW, padx=2, pady=2) + self.coin_insert = ttk.Button(self.coin, text="Insert Single", command=self.action_coin_insert_single) + self.coin_insert.grid(row=2, column=2, sticky=NSEW, padx=2, pady=2) + + @api_action + def action_insert(self, unit: int): + spiceapi.card_insert(self.app.connection, unit, self.card_entry.get()) + + @api_action + def action_insert_p1(self): + return self.action_insert(0) + + @api_action + def action_insert_p2(self): + return self.action_insert(1) + + @api_action + def action_coin_set(self): + spiceapi.coin_set(self.app.connection, int(self.coin_entry.get())) + + @api_action + def action_coin_insert(self): + spiceapi.coin_insert(self.app.connection, int(self.coin_entry.get())) + + @api_action + def action_coin_insert_single(self): + spiceapi.coin_insert(self.app.connection) + + +class InfoTab(ttk.Frame): + """The info tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # info text field + self.txt_info = TextField(self, read_only=True) + self.txt_info.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get information + avs = spiceapi.info_avs(self.app.connection) + launcher = spiceapi.info_launcher(self.app.connection) + memory = spiceapi.info_memory(self.app.connection) + + # build text + avs_text = "" + for k, v in avs.items(): + avs_text += f"{k}: {v}\n" + launcher_text = "" + for k, v in launcher.items(): + if isinstance(v, list): + launcher_text += f"{k}:\n" + for i in v: + launcher_text += f" {i}\n" + else: + launcher_text += f"{k}: {v}\n" + memory_text = "" + for k, v in memory.items(): + memory_text += f"{k}: {v}\n" + + # set text + self.txt_info.set_text( + f"AVS:\n{avs_text}\n" + f"Launcher:\n{launcher_text}\n" + f"Memory:\n{memory_text}" + ) + + +class ButtonsTab(ttk.Frame): + """The buttons tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # button text field + self.txt_buttons = TextField(self, read_only=True) + self.txt_buttons.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.buttons_read(self.app.connection) + + # build text + txt = "" + for name, velocity, active in states: + state = "on" if velocity > 0 else "off" + active_txt = "" if active else " (inactive)" + txt += f"{name}: {state}{active_txt}\n" + if len(states) == 0: + txt = "No buttons available." + + # set text + self.txt_buttons.set_text(txt) + + +class AnalogsTab(ttk.Frame): + """The analogs tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # button text field + self.txt_analogs = TextField(self, read_only=True) + self.txt_analogs.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.analogs_read(self.app.connection) + + # build text + txt = "" + for name, value, active in states: + value_txt = round(value, 2) + active_txt = "" if active else " (inactive)" + txt += f"{name}: {value_txt}{active_txt}\n" + if len(states) == 0: + txt = "No analogs available." + + # set text + self.txt_analogs.set_text(txt) + + +class LightsTab(ttk.Frame): + """The lights tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # light text field + self.txt_lights = TextField(self, read_only=True) + self.txt_lights.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.lights_read(self.app.connection) + + # build text + txt = "" + for name, value, active in states: + value_txt = round(value, 2) + active_txt = "" if active else " (inactive)" + txt += f"{name}: {value_txt}{active_txt}\n" + if len(states) == 0: + txt = "No lights available." + + # set text + self.txt_lights.set_text(txt) + + +class MainApp(ttk.Frame): + """The main application frame.""" + + def __init__(self, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.parent = parent + self.connection = None + + self.tabs = ttk.Notebook(self) + self.tab_control = ControlTab(self, self.tabs) + self.tabs.add(self.tab_control, text="Control") + self.tab_info = InfoTab(self, self.tabs) + self.tabs.add(self.tab_info, text="Info") + self.tab_buttons = ButtonsTab(self, self.tabs) + self.tabs.add(self.tab_buttons, text="Buttons") + self.tab_analogs = AnalogsTab(self, self.tabs) + self.tabs.add(self.tab_analogs, text="Analogs") + self.tab_lights = LightsTab(self, self.tabs) + self.tabs.add(self.tab_lights, text="Lights") + self.tab_manual = ManualTab(self, self.tabs) + self.tabs.add(self.tab_manual, text="Manual") + self.tabs.pack(expand=True, fill=tk.BOTH) + + # connection panel + self.frm_connection = ttk.Frame(self) + + # host: [field] + self.lbl_host = ttk.Label(self.frm_connection, text="Host:") + self.txt_host = ttk.Entry(self.frm_connection, width=15) + self.lbl_host.columnconfigure(0, weight=1) + self.txt_host.columnconfigure(1, weight=1) + self.txt_host.insert(tk.END, "localhost") + + # port: [field] + self.lbl_port = ttk.Label(self.frm_connection, text="Port:") + self.txt_port = ttk.Entry(self.frm_connection, width=5) + self.lbl_port.columnconfigure(2, weight=1) + self.txt_port.columnconfigure(3, weight=1) + self.txt_port.insert(tk.END, "1337") + + # pass: [field] + self.lbl_pw = ttk.Label(self.frm_connection, text="Pass:") + self.txt_pw = ttk.Entry(self.frm_connection, width=10) + self.lbl_pw.columnconfigure(4, weight=1) + self.txt_pw.columnconfigure(5, weight=1) + self.txt_pw.insert(tk.END, "debug") + + # grid setup + self.lbl_host.grid(row=0, column=0, sticky=tk.W+tk.E, padx=2) + self.txt_host.grid(row=0, column=1, sticky=tk.W+tk.E, padx=2) + self.lbl_port.grid(row=0, column=2, sticky=tk.W+tk.E, padx=2) + self.txt_port.grid(row=0, column=3, sticky=tk.W+tk.E, padx=2) + self.lbl_pw.grid(row=0, column=4, sticky=tk.W+tk.E, padx=2) + self.txt_pw.grid(row=0, column=5, sticky=tk.W+tk.E, padx=2) + self.frm_connection.pack(fill=tk.NONE, pady=2) + + # send/connect/disconnect buttons panel + self.frm_connect = ttk.Frame(self) + + # connect button + self.btn_connect = ttk.Button( + self.frm_connect, + text="Connect", + command=self.action_connect, + width=16) + + # disconnect button + self.btn_disconnect = ttk.Button( + self.frm_connect, + text="Disconnect", + command=self.action_disconnect, + width=16) + + # kill button + self.btn_kill = ttk.Button( + self.frm_connect, + text="Kill", + command=self.action_kill, + width=16) + + # grid setup + self.btn_connect.grid(row=0, column=1, sticky=tk.W+tk.E, padx=2) + self.btn_disconnect.grid(row=0, column=2, sticky=tk.W+tk.E, padx=2) + self.btn_kill.grid(row=0, column=3, sticky=tk.W+tk.E, padx=2) + self.frm_connect.pack(fill=tk.NONE, pady=2) + + def action_connect(self): + """Gets called when the connect button is pressed.""" + + # retrieve connection info + host = self.txt_host.get() + port = self.txt_port.get() + password = self.txt_pw.get() + + # check input + if not port.isdigit(): + tk.messagebox.showerror("Connection Error", f"Port '{port}' is not a valid number.") + return + + # create a new connection + try: + self.connection = spiceapi.Connection(host=host, port=int(port), password=password) + except OSError as e: + tk.messagebox.showerror("Connection Error", "Failed to connect: " + str(e)) + return + + # print success + tk.messagebox.showinfo("Success", "Connected.") + + def action_disconnect(self): + """Gets called when the disconnect button is pressed.""" + + # check connection + if self.connection: + + # close connection + self.connection.close() + self.connection = None + tk.messagebox.showinfo("Success", "Closed connection.") + + else: + + # print error + tk.messagebox.showinfo("Error", "No active connection.") + + def action_kill(self): + """Gets called when the kill button is pressed.""" + + # check connection + if self.connection: + spiceapi.control_exit(self.connection) + self.connection = None + else: + tk.messagebox.showinfo("Error", "No active connection.") + + +if __name__ == "__main__": + + # create root + root = tk.Tk() + root.title("SpiceRemote") + root.geometry("500x300") + + # set theme + preferred_theme = "clam" + s = ttk.Style(root) + if preferred_theme in s.theme_names(): + s.theme_use(preferred_theme) + + # add application + MainApp(root).pack(side=tk.TOP, fill=tk.BOTH, expand=True) + + # run root + root.mainloop() diff --git a/misc/spicetools/spicetools-20191404/readme b/misc/spicetools/spicetools-20191404/readme new file mode 100644 index 0000000..d7bd87c --- /dev/null +++ b/misc/spicetools/spicetools-20191404/readme @@ -0,0 +1,267 @@ + SpiceTools + Game Support + Sound Voltex + Beatmania IIDX + Jubeat + Reflec Beat + GitaDora + Nostalgia + Coins + Readers (Experimental) + HID Smartcard Readers + SpiceTools API + Bemanitools 5 API Compatibility + Keybindings/Analogs + Keypad Bindings + Command Line Options + Examples + Download + Installation + Usage + Contributing + Changelog + +SpiceTools + +Ainsley's preferred toolkit. + +https://i.imgur.com/TNFaHSf.png + +This tool allows you to run several Konami games on your PC. +It's an earliest version, so you may experience some crashes caused from weird HID devices. If you experience this, please unplug unnecessary USB devices and try again. + +SpiceTools currently consists just of spice(64).exe, so you can keep your game data original and clean. +Many game dumps have kbt.dll/kld.dll obfuscated or missing, in this case you can use the replacement DLLs below. + +Game Support + + Sound Voltex + Beatmania IIDX (Tricoro or newer) + Jubeat + Reflec Beat + Dance Evolution + Dance Dance Revolution + Beatstream + Road Fighters 3D + Pop'n Music + Museca + Metal Gear Arcade + GitaDora + Nostalgia + Bishi Bashi Channel + Quiz Magic Academy + More to come... + + + +Comes in 32bit and 64bit builds. + +Sound Voltex + +Full feature support. + +Printer fully supported as of 03/13/2018, can save prints in PNG/BMP/TGA to a customizable output path. +Optionally able to clean up saved images on game boot time. +Keyboard play should be perfectly working. If you dont want to use the mouse for the knobs, you can make use of native knob emulation, which works just as it works in Keyshoot-Mania. + +Beatmania IIDX + +Works as expected. +For using your own cameras in IIDX 25 or newer, just plug them in (and hopefully your camera isn't incompatible with the game) and they shall work. +It's also possible to use one camera only instead of the two the game wants, just dismiss the camera error on game boot as you would with no cameras connected, and your camera should be registered in-game as CAMERA A. +If you're not happy with the order of the automatic camera detection, just use -iidxflipcams and CAMERA B will be CAMERA A, etc. Shoutouts to Xyen for assistance. +You can bind the effectors as analog inputs if you want, this is especially interesting for IIDX 25 and newer, where the effects are software based and not tied to specific sound cards anymore. When not bound, they will stay on the maximum value. + +Jubeat + +This makes use of the SpiceTools Touchâ„¢ module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices on Windows 7 or newer. +The Dell ST2240T touch screen seems to work well, especially the new 2017 revision. +Card insert button available and enabled by default. +Touch the area to insert a card in attract mode. + +Reflec Beat + +Including emulation of the real IR touch screen device so the game should just act like the real one. +This makes use of the SpiceTools Touchâ„¢ module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices on Windows 7 or newer. +The Dell ST2240T touch screen seems to work well, especially the new 2017 revision. +Card insert button available and enabled by default. +For this game it's not visible in fullscreen but still works just as fine. +Touch the area to insert a card in attract mode. +http://i.imgur.com/MK2bQcX.png + +GitaDora + +To switch between Guitar/Drum you need to specify the specific eamuse config to load. By default, SpiceTools first tries to load ea3-config.xml, then eamuse-config.xml. +Since the latter one is the default for the drums, for the guitar you have to override the path setting: +spice64.exe -e prop\eamuse-config2.xml +Additionally, since GitaDora uses 4 channels by default, you can specify -2ch to run it with 2 channel audio instead. If you don't and have a normal 2 channel setup, the game will refuse to play sound/tracks. + +Nostalgia + +Spicetools will auto-detect whether or not a compatible touch device is present. If a touch device is detected, the mouse cursor will disappear. If no touch device is detected, the mouse cursor will be visible in-game. During boot-up process, do not click or else the game may pre-maturely crash. You may safely click after the monitor check is completed. It's been found that Virtual HID Touch devices commonly found with remote access software may cause detection issues, take note of that. + +Coins + +There's a coin emulation working for most games. +Press F1 to insert a single coin. +Some games have an additional/different coin key. + +Readers (Experimental) + +If you have an original Wavepass reader and have it connected to a COM port on your computer, SpiceTools should be able to use it. It was being created and tested with the newer readers also used in the newer Pop'n Music games. +Example for one reader on COM3: -reader COM3 +Example for two readers for P1/2 on COM3 and COM4: -reader COM3 -reader COM4 +Example for one reader with P1/2 toggle on NumLock: -togglereader COM3 + +HID Smartcard Readers + +To activate HID smartcard reader functionality, use "-scard". It will use the first reader it detects for P1 and the second one for P2. To flip the order of detection, use "-scardflip". +It will attempt to read the UID of all and every card swiped and feed it to the game. +Thanks to refutatio for his contribution to this. + +SpiceTools API + +SpiceTools has its own API with a custom protocol. The main goals were simplicity, portability and extensibility, so TCP/JSON was chosen, allowing fast access over network. +It optionally supports passwords/encryption and its response time on LAN was tested to be below 1ms (as long as extended API logging isn't enabled manually). +For details and how to use it, check out README.md in the included source. Additionally, python and dart libraries are provided for easy communication. +Key features are card/coin insertions, read/write access for keypads/analogs/buttons/lights, status information and memory read/write via raw addresses and signatures. +We're currently working on an Android/iOS companion app using this API, stay tuned! + +Bemanitools 5 API Compatibility + +On request, I've added a basic BT5 API integration as of 03/13/2018. +This feature can be enabled with `-bt5api` and currently makes use of eamio.dll only. +Currently, this can be used for applications such as the popular NFCeamuse app which can be found elsewhere. +If I see interest in making this feature more complete, such as loading the other parts of the API (geninput.dll and whatnot), this feature might be extended in the future. + +Keybindings/Analogs + +As of beta, Buttons can be bound via either RawInput (the default) or "Naive" (GetAsyncKeyState). +RawInput supports all kinds of HID controllers (your FP7 is one, your XBOX360 Controller as well), however it's bound to a device. +If you plug your controller into another USB slot, SpiceTools does not have a way to detect it and will report the device as "missing", until you plug it back into where you originally configured it. +Using the "naive" approach, only keyboard buttons can be detected, however this will then work with any keyboard attached, it's not bound to a device. + +Since May 2018 you can also bind MIDI devices for "one-shot" types like drums and hold types like piano keys and launchpads. + +Keypad Bindings + +As of beta, you can bind your P1/P2 keypads to specific devices. +The number buttons will be, you guessed it, the numbers, and the Plus (+) key will be the card insert trigger. +The card files can be named card0.txt for P1 and card1.txt for P2, placed in your game root, they will work automatically. +Alternatively you can adjust the path of your card file in the configuration utility. +If you don't specify any keypad, SpiceTools will use any keypad available, use the top-row number keys and have a card trigger on backspace as well. Toggling players via NumLock may or may not work, windows is dumb. + +Command Line Options + +These are for advanced usage. Don't be scared if you don't understand what most of them do. +=> Moved to config so that I don't have to maintain two lists seperately. +Check the "About" tab in the latest release. + +Examples + + Run SDVX windowed: spice -w + Run SDVX windowed (long version): spice soundvoltex.dll -io -sdvx -w + Run Reflec Beat with some hook: spice -k hook.dll + Run Reflec Beat with some hook (long version): spice reflecbeat.dll -io -rb -k hook.dll + + + +The short versions are using game auto-detection. This makes it possible for you to just double click spice.exe to run the game, except if you want to use some special options. +It is planned, that once the configuration is done, you can specify your options there, so you don't have to deal with custom batch scripts all the time. + +Download + +Currently no version numbers, so for now you have to check the changelog. +Bugs may be present, so please report any issues so they can be fixed. +Download the latest version for the newest features, but be aware that it might have bugs. +Just as a little reminder, the whole tool is still very new and might not be stable for you. +If you want your issues to get fixed, then you will have to give me feedback. + +Latest Download (incl. source code) (04/14/2019): Direct + +Previous Download (03/14/2019): Direct +Alpha Download (01/23/2018): Direct +Legacy Download (07/28/2017): Direct + +No it doesn't contain malware, your anti-virus solution is unreliable and retarded. +I don't think I will ever get around false positives anymore. If you don't trust it, don't run it, just like with other software you download from the internet. + +Installation + +1. Extract the contents of either the 32 or 64 folder into your game folder depending on your game. +2. ?? +3. Profit + +Usage + +Run configuration window with the standalone spicecfg.exe (or spice.exe -cfg) to configurate key bindings. +Double click spice(64).exe to run in simple mode. +For advanced settings create a batch file to launch spice.exe with custom options described above. + +Contributing + +If you want to help fix bugs and adding features, just contact me via DM on OOC or ask Kon on Discord. We can add you to our Git repository, so you can directly submit patches. + +Contributors: + + kon + cube + felix + dinsfire + nolm + + + +Changelog + +Not including hotfixes. + +04/13/2019 - DDR SD Mode lights +Sextet (LIT Board) support +PIUIO hardware support +Windowed mode improvements +03/14/2019 - IIDX API module +EA server maintenance toggle +SDVX BI2A support +02/19/2019 - Network API server +Run outside of modules dir +Misc bug fixes +01/27/2019 - Jubeat Knit support +Quiz Magic Academy support +Museca/Jubeat lights +Smartcard NumLock toggle +01/11/2019 - Open Source! +Jubeat Copious support +Bishi Bashi Channel support +PacDrive/PocketVoltex support +KBT/KLD now are optional +Stacktraces, quiet crash +Huge code refactoring +Stability improvements/fixes +11/03/2018 - IIDX 25 (io, cams, light) +IIDX effector bindings +HID lighting output support +Button Multibinding +HID readers e.g. zyp's cardio +Bug fixes as usual +10/04/2018 - Bishi Bashi Channel support, bugfixes +08/17/2018 - DDR X3 and Nostalgia support, improved network code +06/25/2018 - HID smartcard readers +06/08/2018 - DDR support +06/07/2018 - GitaDora/HID/EA bug fixes +05/18/2018 - GitaDora and MIDI devices +04/21/2018 - Card path configuration +04/09/2018 - HID/Analog/RawInput support - entering BETA state +03/13/2018 - SDVX printer emulation, felica, partial BT5 API support +01/23/2018 - MUSECA analog slowdown, fixes +01/21/2018 - many fixed bugs/crashes +11/15/2017 - Fixed the Museca sound issue +11/14/2017 - Added Museca, Pop'n Music, wavepass reader support +09/11/2017 - Added Road Fighters 3D +08/29/2017 - Custom modules path, UAC Admin Manifest, Netfix module +08/28/2017 - Bug Fixes +08/21/2017 - 64bit support, Beatstream support, more command line options +07/28/2017 - Fixed I/O for IIDX and SDVX +07/26/2017 - configuration tool, jubeat, touch module, more options, bug fixes +06/01/2017 - added DEA support +05/31/2017 - public release diff --git a/misc/spicetools/spicetools-20191404/spice.exe b/misc/spicetools/spicetools-20191404/spice.exe new file mode 100755 index 0000000..fadc6f6 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/spice.exe differ diff --git a/misc/spicetools/spicetools-20191404/spice64.exe b/misc/spicetools/spicetools-20191404/spice64.exe new file mode 100755 index 0000000..9f28670 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/spice64.exe differ diff --git a/misc/spicetools/spicetools-20191404/spicecfg.exe b/misc/spicetools/spicetools-20191404/spicecfg.exe new file mode 100755 index 0000000..b44a397 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/spicecfg.exe differ diff --git a/misc/spicetools/spicetools-20191404/src/spicetools-master.tar.gz b/misc/spicetools/spicetools-20191404/src/spicetools-master.tar.gz new file mode 100644 index 0000000..fb9ea5d Binary files /dev/null and b/misc/spicetools/spicetools-20191404/src/spicetools-master.tar.gz differ diff --git a/misc/spicetools/spicetools-20191404/stubs/32/kbt.dll b/misc/spicetools/spicetools-20191404/stubs/32/kbt.dll new file mode 100755 index 0000000..a72425f Binary files /dev/null and b/misc/spicetools/spicetools-20191404/stubs/32/kbt.dll differ diff --git a/misc/spicetools/spicetools-20191404/stubs/32/kld.dll b/misc/spicetools/spicetools-20191404/stubs/32/kld.dll new file mode 100755 index 0000000..0ea3626 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/stubs/32/kld.dll differ diff --git a/misc/spicetools/spicetools-20191404/stubs/64/kbt.dll b/misc/spicetools/spicetools-20191404/stubs/64/kbt.dll new file mode 100755 index 0000000..7a9d2c5 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/stubs/64/kbt.dll differ diff --git a/misc/spicetools/spicetools-20191404/stubs/64/kld.dll b/misc/spicetools/spicetools-20191404/stubs/64/kld.dll new file mode 100755 index 0000000..ab84a34 Binary files /dev/null and b/misc/spicetools/spicetools-20191404/stubs/64/kld.dll differ diff --git a/misc/spicetools/spicetools-20200204/api/arduino/README.md b/misc/spicetools/spicetools-20200204/api/arduino/README.md new file mode 100644 index 0000000..1f41cc8 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/arduino/README.md @@ -0,0 +1,4 @@ +# SpiceAPI Arduino Library +This library is still a bit experimental and might contain bugs. + +To use this library, it's recommended to just copy the Arduino project and start from that. diff --git a/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/connection.h b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/connection.h new file mode 100644 index 0000000..906ddaf --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/connection.h @@ -0,0 +1,169 @@ +#ifndef SPICEAPI_CONNECTION_H +#define SPICEAPI_CONNECTION_H + +#include +#include "rc4.h" + +#ifndef SPICEAPI_INTERFACE +#define SPICEAPI_INTERFACE Serial +#endif + +namespace spiceapi { + + class Connection { + private: + uint8_t* receive_buffer; + size_t receive_buffer_size; + const char* password; + RC4* cipher; + + public: + Connection(size_t receive_buffer_size, const char* password = ""); + ~Connection(); + + void reset(); + + bool check(); + void cipher_alloc(const char *session_key = nullptr); + void change_pass(const char* password, bool session = false); + const char* request(const char* json, size_t timeout = 1000); + const char* request(char* json, size_t timeout = 1000); + }; +} + +spiceapi::Connection::Connection(size_t receive_buffer_size, const char* password) { + this->receive_buffer = new uint8_t[receive_buffer_size]; + this->receive_buffer_size = receive_buffer_size; + this->password = password; + this->cipher = nullptr; + this->reset(); +} + +spiceapi::Connection::~Connection() { + + // clean up + if (this->cipher != nullptr) + delete this->cipher; +} + +void spiceapi::Connection::reset() { + + // drop all input + while (SPICEAPI_INTERFACE.available()) { + SPICEAPI_INTERFACE.read(); + } + +#ifdef SPICEAPI_INTERFACE_WIFICLIENT + // reconnect TCP client + SPICEAPI_INTERFACE.stop(); + this->check(); +#else + // 8 zeroes reset the password/session on serial + for (size_t i = 0; i < 8; i++) { + SPICEAPI_INTERFACE.write(0); + } +#endif + + // reset password + this->cipher_alloc(); +} + +void spiceapi::Connection::cipher_alloc(const char *session_key) { + + // delete old cipher + if (this->cipher != nullptr) { + delete this->cipher; + this->cipher = nullptr; + } + + // create new cipher if password is set + session_key = session_key ? session_key : this->password; + if (strlen(session_key) > 0) { + this->cipher = new RC4( + (uint8_t *) session_key, + strlen(session_key)); + } +} + +bool spiceapi::Connection::check() { +#ifdef SPICEAPI_INTERFACE_WIFICLIENT + if (!SPICEAPI_INTERFACE.connected()) { + return SPICEAPI_INTERFACE.connect( + SPICEAPI_INTERFACE_WIFICLIENT_HOST, + SPICEAPI_INTERFACE_WIFICLIENT_PORT); + } else { + return true; + } +#else + // serial is always valid + return true; +#endif +} + +void spiceapi::Connection::change_pass(const char* password, bool session) { + if (!session) { + this->password = password; + } + this->cipher_alloc(password); +} + +const char* spiceapi::Connection::request(const char* json, size_t timeout) { + auto json_len = strlen(json); + strncpy((char*) receive_buffer, json, receive_buffer_size); + return request((char*) receive_buffer, timeout); +} + +const char* spiceapi::Connection::request(char* json_data, size_t timeout) { + + // check connection + if (!this->check()) + return ""; + + // crypt + auto json_len = strlen(json_data) + 1; + if (this->cipher != nullptr) + this->cipher->crypt((uint8_t*) json_data, json_len); + + // send + auto send_result = SPICEAPI_INTERFACE.write((const char*) json_data, (int) json_len); + SPICEAPI_INTERFACE.flush(); + if (send_result < (int) json_len) { + return ""; + } + + // receive + size_t receive_data_len = 0; + auto t_start = millis(); + while (SPICEAPI_INTERFACE) { + + // check for timeout + if (millis() - t_start > timeout) { + this->reset(); + return ""; + } + + // read single byte + auto b = SPICEAPI_INTERFACE.read(); + if (b < 0) continue; + receive_buffer[receive_data_len++] = b; + + // check for buffer overflow + if (receive_data_len >= receive_buffer_size) { + this->reset(); + return ""; + } + + // crypt + if (this->cipher != nullptr) + this->cipher->crypt(&receive_buffer[receive_data_len - 1], 1); + + // check for message end + if (receive_buffer[receive_data_len - 1] == 0) + break; + } + + // return resulting json + return (const char*) &receive_buffer[0]; +} + +#endif //SPICEAPI_CONNECTION_H diff --git a/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/rc4.h b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/rc4.h new file mode 100644 index 0000000..efeb36f --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/rc4.h @@ -0,0 +1,65 @@ +#ifndef SPICEAPI_RC4_H +#define SPICEAPI_RC4_H + +#include +#include + +namespace spiceapi { + + class RC4 { + private: + uint8_t s_box[256]; + size_t a = 0, b = 0; + + public: + + RC4(uint8_t *key, size_t key_size); + + void crypt(uint8_t *data, size_t size); + }; +} + +spiceapi::RC4::RC4(uint8_t *key, size_t key_size) { + + // initialize S-BOX + for (size_t i = 0; i < sizeof(s_box); i++) + s_box[i] = (uint8_t) i; + + // check key size + if (!key_size) + return; + + // KSA + size_t j = 0; + for (size_t i = 0; i < sizeof(s_box); i++) { + + // update + j = (j + s_box[i] + key[i % key_size]) % sizeof(s_box); + + // swap + auto tmp = s_box[i]; + s_box[i] = s_box[j]; + s_box[j] = tmp; + } +} + +void spiceapi::RC4::crypt(uint8_t *data, size_t size) { + + // iterate all bytes + for (size_t pos = 0; pos < size; pos++) { + + // update + a = (a + 1) % sizeof(s_box); + b = (b + s_box[a]) % sizeof(s_box); + + // swap + auto tmp = s_box[a]; + s_box[a] = s_box[b]; + s_box[b] = tmp; + + // crypt + data[pos] ^= s_box[(s_box[a] + s_box[b]) % sizeof(s_box)]; + } +} + +#endif //SPICEAPI_RC4_H diff --git a/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/spiceapi.ino b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/spiceapi.ino new file mode 100644 index 0000000..7cb063c --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/spiceapi.ino @@ -0,0 +1,172 @@ +/* + * SpiceAPI Arduino Example Project + * + * To enable it in SpiceTools, use "-api 1337 -apipass changeme -apiserial COM1" or similar. + */ + +/* + * SpiceAPI Wrapper Buffer Sizes + * + * They should be as big as possible to be able to create/parse + * some of the bigger requests/responses. Due to dynamic memory + * limitations of some weaker devices, if you set them too high + * you will probably experience crashes/bugs/problems, one + * example would be "Request ID is invalid" in the log. + */ +#define SPICEAPI_WRAPPER_BUFFER_SIZE 256 +#define SPICEAPI_WRAPPER_BUFFER_SIZE_STR 256 + +/* + * WiFi Support + * Uncomment to enable the wireless API interface. + */ +//#define ENABLE_WIFI + +/* + * WiFi Settings + * You can ignore these if you don't plan on using WiFi + */ +#ifdef ENABLE_WIFI +#include +WiFiClient client; +#define SPICEAPI_INTERFACE client +#define SPICEAPI_INTERFACE_WIFICLIENT +#define SPICEAPI_INTERFACE_WIFICLIENT_HOST "192.168.178.143" +#define SPICEAPI_INTERFACE_WIFICLIENT_PORT 1337 +#define WIFI_SSID "MySSID" +#define WIFI_PASS "MyWifiPassword" +#endif + +/* + * This is the interface a serial connection will use. + * You can change this to another Serial port, e.g. with an + * Arduino Mega you can use Serial1/Serial2/Serial3. + */ +#ifndef ENABLE_WIFI +#define SPICEAPI_INTERFACE Serial +#endif + +/* + * SpiceAPI Includes + * + * If you have the JSON strings beforehands or want to craft them + * manually, you don't have to import the wrappers at all and can + * use Connection::request to send and receive raw JSON strings. + */ +#include "connection.h" +#include "wrappers.h" + +/* + * This global object represents the API connection. + * The first parameter is the buffer size of the JSON string + * we're receiving. So a size of 512 will only be able to + * hold a JSON of 512 characters maximum. + * + * An empty password string means no password is being used. + * This is the recommended when using Serial only. + */ +spiceapi::Connection CON(512, "changeme"); + +void setup() { + +#ifdef ENABLE_WIFI + + /* + * When using WiFi, we can use the Serial interface for debugging. + * You can open Serial Monitor and see what IP it gets assigned to. + */ + Serial.begin(57600); + + // set WiFi mode to station (disables integrated AP) + WiFi.mode(WIFI_STA); + + // now try connecting to our Router/AP + Serial.print("Connecting"); + WiFi.begin(WIFI_SSID, WIFI_PASS); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + // print debug info over serial + Serial.print("\nLocal IP: "); + Serial.println(WiFi.localIP()); + +#else + + /* + * Since the API makes use of the Serial module, we need to + * set it up using our preferred baud rate manually. + */ + SPICEAPI_INTERFACE.begin(57600); + while (!SPICEAPI_INTERFACE); + +#endif +} + +void loop() { + + /* + * Here's a few tests/examples on how to make use of the wrappers. + */ + + // insert cards for P1/P2 + spiceapi::card_insert(CON, 0, "E004012345678901"); + spiceapi::card_insert(CON, 1, "E004012345678902"); + + // insert a single coin / multiple coins + spiceapi::coin_insert(CON); + spiceapi::coin_insert(CON, 3); + + // get the IIDX led ticker text + char ticker[9]; + if (spiceapi::iidx_ticker_get(CON, ticker)) { + // if a function returns true, that means success + // now we can do something with the ticker as if it was a string + //Serial1.println(ticker); + } + + // get AVS info + spiceapi::InfoAvs avs_info {}; + if (spiceapi::info_avs(CON, avs_info)) { + //Serial1.println(avs_info.model); + } + + // enter some keys on P1 keypad (blocks until sequence is entered fully) + spiceapi::keypads_write(CON, 0, "1234"); + + // get light states + spiceapi::LightState lights[8]; + size_t lights_size = spiceapi::lights_read(CON, lights, 8); + for (size_t i = 0; i < lights_size; i++) { + auto &light = lights[i]; + //Serial1.println(light.name); + //Serial1.println(light.value); + + // modify value to full bright + light.value = 1.f; + } + + // send back modified light states + spiceapi::lights_write(CON, lights, lights_size); + + // refresh session (generates new crypt key, not that important for serial) + spiceapi::control_session_refresh(CON); + + // you can also manually send requests without the wrappers + // this avoids json generation, but you still need to parse it in some way + const char *answer_json = CON.request( + "{" + "\"id\": 0," + "\"module\":\"coin\"," + "\"function\":\"insert\"," + "\"params\":[]" + "}" + ); + + /* + * For more functions/information, just check out wrappers.h yourself. + * Have fun :) + */ + delay(5000); +} diff --git a/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/wrappers.h b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/wrappers.h new file mode 100644 index 0000000..647d25e --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/arduino/spiceapi/wrappers.h @@ -0,0 +1,716 @@ +#ifndef SPICEAPI_WRAPPERS_H +#define SPICEAPI_WRAPPERS_H + +#define ARDUINOJSON_USE_LONG_LONG 1 +#include "ArduinoJson.h" + +#include +#include "connection.h" + +// default buffer sizes +#ifndef SPICEAPI_WRAPPER_BUFFER_SIZE +#define SPICEAPI_WRAPPER_BUFFER_SIZE 256 +#endif +#ifndef SPICEAPI_WRAPPER_BUFFER_SIZE_STR +#define SPICEAPI_WRAPPER_BUFFER_SIZE_STR 256 +#endif + +namespace spiceapi { + + /* + * Structs + */ + + struct AnalogState { + String name = ""; + float value = 0.f; + bool enabled = false; + }; + + struct ButtonState { + String name = ""; + float value = 0.f; + bool enabled = false; + }; + + struct LightState { + String name = ""; + float value = 0.f; + bool enabled = false; + }; + + struct InfoAvs { + String model, dest, spec, rev, ext; + }; + + struct InfoLauncher { + String version; + String compile_date, compile_time, system_time; + String args; + }; + + struct InfoMemory { + uint64_t mem_total, mem_total_used, mem_used; + uint64_t vmem_total, vmem_total_used, vmem_used; + }; + + struct TouchState { + uint64_t id; + int64_t x, y; + }; + + // static storage + char JSON_BUFFER_STR[SPICEAPI_WRAPPER_BUFFER_SIZE_STR]; + + /* + * Helpers + */ + + uint64_t msg_gen_id() { + static uint64_t id_global = 0; + return ++id_global; + } + + char *doc2str(DynamicJsonDocument *doc) { + char *buf = JSON_BUFFER_STR; + serializeJson(*doc, buf, SPICEAPI_WRAPPER_BUFFER_SIZE_STR); + return buf; + } + + DynamicJsonDocument *request_gen(const char *module, const char *function) { + + // create document + auto doc = new DynamicJsonDocument(SPICEAPI_WRAPPER_BUFFER_SIZE); + + // add attributes + (*doc)["id"] = msg_gen_id(); + (*doc)["module"] = module; + (*doc)["function"] = function; + + // add params + (*doc).createNestedArray("params"); + + // return document + return doc; + } + + DynamicJsonDocument *response_get(Connection &con, const char *json) { + + // parse document + DynamicJsonDocument *doc = new DynamicJsonDocument(SPICEAPI_WRAPPER_BUFFER_SIZE); + auto err = deserializeJson(*doc, (char *) json); + + // check for parse error + if (err) { + + // reset cipher + con.cipher_alloc(); + delete doc; + return nullptr; + } + + // check id + if (!(*doc)["id"].is()) { + delete doc; + return nullptr; + } + + // check errors + auto errors = (*doc)["errors"]; + if (!errors.is()) { + delete doc; + return nullptr; + } + + // check error count + if (errors.as().size() > 0) { + delete doc; + return nullptr; + } + + // check data + if (!(*doc)["data"].is()) { + delete doc; + return nullptr; + } + + // return document + return doc; + } + + /* + * Wrappers + */ + + size_t analogs_read(Connection &con, AnalogState *buffer, size_t buffer_elements) { + auto req = request_gen("analogs", "read"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return 0; + + auto data = (*res)["data"].as(); + size_t buffer_count = 0; + for (auto val : data) { + if (buffer_count >= buffer_elements) { + delete res; + return buffer_count; + } + buffer[buffer_count].name = (const char*) val[0]; + buffer[buffer_count].value = val[1]; + buffer[buffer_count].enabled = val[2]; + buffer_count++; + } + delete res; + return buffer_count; + } + + bool analogs_write(Connection &con, AnalogState *buffer, size_t buffer_elements) { + auto req = request_gen("analogs", "write"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + data.add(state.value); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool analogs_write_reset(Connection &con, AnalogState *buffer, size_t buffer_elements) { + auto req = request_gen("analogs", "write_reset"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + size_t buttons_read(Connection &con, ButtonState *buffer, size_t buffer_elements) { + auto req = request_gen("buttons", "read"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return 0; + + auto data = (*res)["data"].as(); + size_t buffer_count = 0; + for (auto val : data) { + if (buffer_count >= buffer_elements) { + delete res; + return buffer_count; + } + buffer[buffer_count].name = (const char*) val[0]; + buffer[buffer_count].value = val[1]; + buffer[buffer_count].enabled = val[2]; + buffer_count++; + } + delete res; + return buffer_count; + } + + bool buttons_write(Connection &con, ButtonState *buffer, size_t buffer_elements) { + auto req = request_gen("buttons", "write"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + data.add(state.value); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool buttons_write_reset(Connection &con, ButtonState *buffer, size_t buffer_elements) { + auto req = request_gen("buttons", "write_reset"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool card_insert(Connection &con, size_t index, const char *card_id) { + auto req = request_gen("card", "insert"); + auto params = (*req)["params"].as(); + params.add(index); + params.add(card_id); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool coin_get(Connection &con, int &coins) { + auto req = request_gen("coin", "insert"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + coins = (*res)["data"][0]; + delete res; + return true; + } + + bool coin_set(Connection &con, int coins) { + auto req = request_gen("coin", "set"); + auto params = (*req)["params"].as(); + params.add(coins); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool coin_insert(Connection &con, int coins=1) { + auto req = request_gen("coin", "insert"); + if (coins != 1) { + auto params = (*req)["params"].as(); + params.add(coins); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_raise(Connection &con, const char *signal) { + auto req = request_gen("control", "raise"); + auto params = (*req)["params"].as(); + params.add(signal); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_exit(Connection &con) { + auto req = request_gen("control", "exit"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_exit(Connection &con, int exit_code) { + auto req = request_gen("control", "exit"); + auto params = (*req)["params"].as(); + params.add(exit_code); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_restart(Connection &con) { + auto req = request_gen("control", "restart"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_session_refresh(Connection &con) { + auto req = request_gen("control", "session_refresh"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + const char *key = (*res)["data"][0]; + con.change_pass(key, true); + delete res; + return true; + } + + bool control_shutdown(Connection &con) { + auto req = request_gen("control", "shutdown"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool control_reboot(Connection &con) { + auto req = request_gen("control", "reboot"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool iidx_ticker_get(Connection &con, char *ticker) { + auto req = request_gen("iidx", "ticker_get"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + const char *data = (*res)["data"][0]; + strncpy(ticker, data, 9); + ticker[9] = 0x00; + delete res; + return true; + } + + bool iidx_ticker_set(Connection &con, const char *ticker) { + auto req = request_gen("iidx", "ticker_set"); + auto params = (*req)["params"].as(); + params.add(ticker); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool iidx_ticker_reset(Connection &con) { + auto req = request_gen("iidx", "ticker_reset"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool info_avs(Connection &con, InfoAvs &info) { + auto req = request_gen("info", "avs"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + auto data = (*res)["data"][0]; + info.model = (const char*) data["model"]; + info.dest = (const char*) data["dest"]; + info.spec = (const char*) data["spec"]; + info.rev = (const char*) data["rev"]; + info.ext = (const char*) data["ext"]; + delete res; + return true; + } + + bool info_launcher(Connection &con, InfoLauncher &info) { + auto req = request_gen("info", "launcher"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + auto data = (*res)["data"][0]; + info.version = (const char*) data["version"]; + info.compile_date = (const char*) data["compile_date"]; + info.compile_time = (const char*) data["compile_time"]; + info.system_time = (const char*) data["system_time"]; + for (auto arg : data["args"].as()) { + info.args += (const char*) arg; + info.args += " "; + // TODO: remove last space + } + delete res; + return true; + } + + bool info_memory(Connection &con, InfoMemory &info) { + auto req = request_gen("info", "memory"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + auto data = (*res)["data"][0]; + info.mem_total = data["mem_total"]; + info.mem_total_used = data["mem_total_used"]; + info.mem_used = data["mem_used"]; + info.vmem_total = data["vmem_total"]; + info.vmem_total_used = data["vmem_total_used"]; + info.vmem_used = data["vmem_used"]; + delete res; + return true; + } + + bool keypads_write(Connection &con, unsigned int keypad, const char *input) { + auto req = request_gen("keypads", "write"); + auto params = (*req)["params"].as(); + params.add(keypad); + params.add(input); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str, 1000 + strlen(input) * 300)); + if (!res) + return false; + delete res; + return true; + } + + bool keypads_set(Connection &con, unsigned int keypad, const char *keys) { + auto keys_len = strlen(keys); + auto req = request_gen("keypads", "set"); + auto params = (*req)["params"].as(); + params.add(keypad); + for (size_t i = 0; i < keys_len; i++) { + char buf[] = {keys[i], 0x00}; + params.add(buf); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool keypads_get(Connection &con, unsigned int keypad, char *keys, size_t keys_len) { + auto req = request_gen("keypads", "get"); + auto params = (*req)["params"].as(); + params.add(keypad); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + for (auto key : (*res)["data"].as()) { + const char *key_str = key; + if (key_str != nullptr && keys_len > 0) { + *(keys++) = key_str[0]; + keys_len--; + } + } + delete res; + return true; + } + + size_t lights_read(Connection &con, LightState *buffer, size_t buffer_elements) { + auto req = request_gen("lights", "read"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return 0; + + auto data = (*res)["data"].as(); + size_t buffer_count = 0; + for (auto val : data) { + if (buffer_count >= buffer_elements) { + delete res; + return buffer_count; + } + buffer[buffer_count].name = (const char*) val[0]; + buffer[buffer_count].value = val[1]; + buffer[buffer_count].enabled = val[2]; + buffer_count++; + } + delete res; + return buffer_count; + } + + bool lights_write(Connection &con, LightState *buffer, size_t buffer_elements) { + auto req = request_gen("lights", "write"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + data.add(state.value); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool lights_write_reset(Connection &con, LightState *buffer, size_t buffer_elements) { + auto req = request_gen("lights", "write_reset"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.name); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool memory_write(Connection &con, const char *dll_name, const char *hex, uint32_t offset) { + auto req = request_gen("memory", "write"); + auto params = (*req)["params"].as(); + params.add(dll_name); + params.add(hex); + params.add(offset); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool memory_read(Connection &con, const char *dll_name, uint32_t offset, uint32_t size, String &hex) { + auto req = request_gen("memory", "read"); + auto params = (*req)["params"].as(); + params.add(dll_name); + params.add(offset); + params.add(size); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + hex = (const char*) (*res)["data"][0]; + delete res; + return true; + } + + bool memory_signature(Connection &con, const char *dll_name, const char *signature, + const char *replacement, uint32_t offset, uint32_t usage, uint32_t &file_offset) { + auto req = request_gen("memory", "signature"); + auto params = (*req)["params"].as(); + params.add(dll_name); + params.add(signature); + params.add(replacement); + params.add(offset); + params.add(usage); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + file_offset = (*res)["data"][0]; + delete res; + return true; + } + + size_t touch_read(Connection &con, TouchState *buffer, size_t buffer_elements) { + auto req = request_gen("touch", "read"); + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return 0; + + auto data = (*res)["data"].as(); + size_t buffer_count = 0; + for (auto val : data) { + if (buffer_count >= buffer_elements) { + delete res; + return buffer_count; + } + buffer[buffer_count].id = val[0]; + buffer[buffer_count].x = val[1]; + buffer[buffer_count].y = val[2]; + buffer_count++; + } + delete res; + return buffer_count; + } + + bool touch_write(Connection &con, TouchState *buffer, size_t buffer_elements) { + auto req = request_gen("touch", "write"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.id); + data.add(state.x); + data.add(state.y); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } + + bool touch_write_reset(Connection &con, TouchState *buffer, size_t buffer_elements) { + auto req = request_gen("touch", "write_reset"); + auto params = (*req)["params"].as(); + for (size_t i = 0; i < buffer_elements; i++) { + auto &state = buffer[i]; + auto data = params.createNestedArray(); + data.add(state.id); + } + auto req_str = doc2str(req); + delete req; + auto res = response_get(con, con.request(req_str)); + if (!res) + return false; + delete res; + return true; + } +} + +#endif //SPICEAPI_WRAPPERS_H diff --git a/misc/spicetools/spicetools-20200204/api/cpp/README.md b/misc/spicetools/spicetools-20200204/api/cpp/README.md new file mode 100644 index 0000000..979bb7d --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/README.md @@ -0,0 +1,8 @@ +# SpiceAPI C++ Library +This library is still a bit experimental and might contain bugs. + +To include it into your project, it's recommended to just copy the +files into your source directory. + +To use the wrappers, RapidJSON is required and you might need to +adjust the include paths for your project's build. diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/LICENSE b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.cpp b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.cpp new file mode 100644 index 0000000..29243db --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.cpp @@ -0,0 +1,181 @@ +#include +#include +#include "connection.h" + +namespace spiceapi { + + // settings + static const size_t RECEIVE_BUFFER_SIZE = 64 * 1024; + static const int RECEIVE_TIMEOUT = 1000; +} + +spiceapi::Connection::Connection(std::string host, uint16_t port, std::string password) { + this->host = host; + this->port = port; + this->password = password; + this->socket = INVALID_SOCKET; + this->cipher = nullptr; + + // WSA startup + WSADATA wsa_data; + int error = WSAStartup(MAKEWORD(2, 2), &wsa_data); + if (error) { + std::cerr << "Failed to start WSA: " << error << std::endl; + exit(1); + } +} + +spiceapi::Connection::~Connection() { + + // clean up + if (this->cipher != nullptr) + delete this->cipher; + + // cleanup WSA + WSACleanup(); +} + +void spiceapi::Connection::cipher_alloc() { + + // delete old cipher + if (this->cipher != nullptr) { + delete this->cipher; + this->cipher = nullptr; + } + + // create new cipher if password is set + if (this->password.length() > 0) { + this->cipher = new RC4( + (uint8_t *) this->password.c_str(), + strlen(this->password.c_str())); + } +} + +bool spiceapi::Connection::check() { + int result = 0; + + // check if socket is invalid + if (this->socket == INVALID_SOCKET) { + + // get all addresses + addrinfo *addr_list; + addrinfo hints{}; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + if ((result = getaddrinfo( + this->host.c_str(), + std::to_string(this->port).c_str(), + &hints, + &addr_list))) { + std::cerr << "getaddrinfo failed: " << result << std::endl; + return false; + } + + // check all addresses + for (addrinfo *addr = addr_list; addr != NULL; addr = addr->ai_next) { + + // try open socket + this->socket = ::socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); + if (this->socket == INVALID_SOCKET) { + std::cerr << "socket failed: " << WSAGetLastError() << std::endl; + freeaddrinfo(addr_list); + return false; + } + + // try connect + result = connect(this->socket, addr->ai_addr, (int) addr->ai_addrlen); + if (result == SOCKET_ERROR) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + continue; + } + + // configure socket + int opt_val; + opt_val = 1; + setsockopt(this->socket, IPPROTO_TCP, TCP_NODELAY, (const char*) &opt_val, sizeof(opt_val)); + opt_val = RECEIVE_TIMEOUT; + setsockopt(this->socket, SOL_SOCKET, SO_RCVTIMEO, (const char*) &opt_val, sizeof(opt_val)); + + // connection successful + this->cipher_alloc(); + break; + } + + // check if successful + freeaddrinfo(addr_list); + if (this->socket == INVALID_SOCKET) { + return false; + } + } + + // socket probably still valid + return true; +} + +void spiceapi::Connection::change_pass(std::string password) { + this->password = password; + this->cipher_alloc(); +} + +std::string spiceapi::Connection::request(std::string json) { + + // check connection + if (!this->check()) + return ""; + + // crypt + auto json_len = strlen(json.c_str()) + 1; + uint8_t* json_data = new uint8_t[json_len]; + memcpy(json_data, json.c_str(), json_len); + if (this->cipher != nullptr) + this->cipher->crypt(json_data, json_len); + + // send + auto send_result = send(this->socket, (const char*) json_data, (int) json_len, 0); + delete[] json_data; + if (send_result == SOCKET_ERROR || send_result < (int) json_len) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + return ""; + } + + // receive + uint8_t receive_data[RECEIVE_BUFFER_SIZE]; + size_t receive_data_len = 0; + int receive_result; + while ((receive_result = recv( + this->socket, + (char*) &receive_data[receive_data_len], + sizeof(receive_data) - receive_data_len, 0)) > 0) { + + // check for buffer overflow + if (receive_data_len + receive_result >= sizeof(receive_data)) { + closesocket(this->socket); + this->socket = INVALID_SOCKET; + return ""; + } + + // crypt + if (this->cipher != nullptr) + this->cipher->crypt(&receive_data[receive_data_len], (size_t) receive_result); + + // increase received data length + receive_data_len += receive_result; + + // check for message end + if (receive_data[receive_data_len - 1] == 0) + break; + } + + // return resulting json + if (receive_data_len > 0) { + return std::string((const char *) &receive_data[0], receive_data_len - 1); + } else { + + // receive error + this->socket = INVALID_SOCKET; + return ""; + } +} diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.h b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.h new file mode 100644 index 0000000..a747584 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/connection.h @@ -0,0 +1,31 @@ +#ifndef SPICEAPI_CONNECTION_H +#define SPICEAPI_CONNECTION_H + +#include +#include +#include "rc4.h" + +namespace spiceapi { + + class Connection { + private: + std::string host; + uint16_t port; + std::string password; + SOCKET socket; + RC4* cipher; + + void cipher_alloc(); + + public: + Connection(std::string host, uint16_t port, std::string password = ""); + ~Connection(); + + bool check(); + void change_pass(std::string password); + std::string request(std::string json); + + }; +} + +#endif //SPICEAPI_CONNECTION_H diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.cpp b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.cpp new file mode 100644 index 0000000..f8e06f1 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.cpp @@ -0,0 +1,45 @@ +#include "rc4.h" +#include + +spiceapi::RC4::RC4(uint8_t *key, size_t key_size) { + + // initialize S-BOX + for (size_t i = 0; i < std::size(s_box); i++) + s_box[i] = (uint8_t) i; + + // check key size + if (!key_size) + return; + + // KSA + size_t j = 0; + for (size_t i = 0; i < std::size(s_box); i++) { + + // update + j = (j + s_box[i] + key[i % key_size]) % std::size(s_box); + + // swap + auto tmp = s_box[i]; + s_box[i] = s_box[j]; + s_box[j] = tmp; + } +} + +void spiceapi::RC4::crypt(uint8_t *data, size_t size) { + + // iterate all bytes + for (size_t pos = 0; pos < size; pos++) { + + // update + a = (a + 1) % std::size(s_box); + b = (b + s_box[a]) % std::size(s_box); + + // swap + auto tmp = s_box[a]; + s_box[a] = s_box[b]; + s_box[b] = tmp; + + // crypt + data[pos] ^= s_box[(s_box[a] + s_box[b]) % std::size(s_box)]; + } +} diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.h b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.h new file mode 100644 index 0000000..39e04e3 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/rc4.h @@ -0,0 +1,21 @@ +#ifndef SPICEAPI_RC4_H +#define SPICEAPI_RC4_H + +#include + +namespace spiceapi { + + class RC4 { + private: + uint8_t s_box[256]; + size_t a = 0, b = 0; + + public: + + RC4(uint8_t *key, size_t key_size); + + void crypt(uint8_t *data, size_t size); + }; +} + +#endif //SPICEAPI_RC4_H diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.cpp b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.cpp new file mode 100644 index 0000000..74518d3 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.cpp @@ -0,0 +1,638 @@ +#include "wrappers.h" +#include +#include + +/* + * RapidJSON dependency + * You might need to adjust the paths when importing into your own project. + */ +#include "external/rapidjson/document.h" +#include "external/rapidjson/writer.h" +using namespace rapidjson; + + +namespace spiceapi { + + static inline std::string doc2str(Document &doc) { + StringBuffer sb; + rapidjson::Writer writer(sb); + doc.Accept(writer); + return sb.GetString(); + } + + static inline Document request_gen(const char *module, const char *function) { + + // create document + Document doc; + doc.SetObject(); + + // add attributes + auto &alloc = doc.GetAllocator(); + doc.AddMember("id", msg_gen_id(), alloc); + doc.AddMember("module", StringRef(module), alloc); + doc.AddMember("function", StringRef(function), alloc); + + // add params + Value noparam(kArrayType); + doc.AddMember("params", noparam, alloc); + + // return document + return doc; + } + + static inline Document *response_get(std::string json) { + + // parse document + Document *doc = new Document(); + doc->Parse(json.c_str()); + + // check for parse error + if (doc->HasParseError()) { + delete doc; + return nullptr; + } + + // check id + auto it_id = doc->FindMember("id"); + if (it_id == doc->MemberEnd() || !(*it_id).value.IsUint64()) { + delete doc; + return nullptr; + } + + // check errors + auto it_errors = doc->FindMember("errors"); + if (it_errors == doc->MemberEnd() || !(*it_errors).value.IsArray()) { + delete doc; + return nullptr; + } + + // check error count + if ((*it_errors).value.Size() > 0) { + delete doc; + return nullptr; + } + + // check data + auto it_data = doc->FindMember("data"); + if (it_data == doc->MemberEnd() || !(*it_data).value.IsArray()) { + delete doc; + return nullptr; + } + + // return document + return doc; + } +} + +uint64_t spiceapi::msg_gen_id() { + static uint64_t id_global = 0; + + // check if global ID was initialized + if (id_global == 0) { + + // generate a new ID + std::random_device rd; + std::mt19937_64 gen(rd()); + std::uniform_int_distribution dist(1, (uint64_t) std::llround(std::pow(2, 63))); + id_global = dist(gen); + + } else { + + // increase by one + id_global++; + } + + // return global ID + return id_global; +} + +bool spiceapi::analogs_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + AnalogState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::analogs_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::analogs_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("analogs", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::buttons_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + ButtonState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::buttons_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::buttons_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("buttons", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::card_insert(spiceapi::Connection &con, size_t index, const char *card_id) { + auto req = request_gen("card", "insert"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(index, alloc); + params.PushBack(StringRef(card_id), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::coin_get(Connection &con, int &coins) { + auto req = request_gen("coin", "get"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + coins = (*res)["data"][0].GetInt(); + delete res; + return true; +} + +bool spiceapi::coin_set(Connection &con, int coins) { + auto req = request_gen("coin", "set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(coins, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::coin_insert(Connection &con, int coins) { + auto req = request_gen("coin", "insert"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(coins, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::coin_blocker_get(Connection &con, bool &closed) { + auto req = request_gen("coin", "blocker_get"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + closed = (*res)["data"][0].GetBool(); + delete res; + return true; +} + +bool spiceapi::control_raise(spiceapi::Connection &con, const char *signal) { + auto req = request_gen("control", "raise"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(signal), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_exit(spiceapi::Connection &con) { + auto req = request_gen("control", "exit"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_exit(spiceapi::Connection &con, int exit_code) { + auto req = request_gen("control", "exit"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(exit_code, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_restart(spiceapi::Connection &con) { + auto req = request_gen("control", "restart"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_session_refresh(spiceapi::Connection &con) { + auto req = request_gen("control", "session_refresh"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto key = (*res)["data"][0].GetString(); + con.change_pass(key); + delete res; + return true; +} + +bool spiceapi::control_shutdown(spiceapi::Connection &con) { + auto req = request_gen("control", "shutdown"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::control_reboot(spiceapi::Connection &con) { + auto req = request_gen("control", "reboot"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::iidx_ticker_get(spiceapi::Connection &con, char *ticker) { + auto req = request_gen("iidx", "ticker_get"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto data = (*res)["data"][0].GetString(); + strncpy(ticker, data, 9); + ticker[9] = 0x00; + delete res; + return true; +} + +bool spiceapi::iidx_ticker_set(spiceapi::Connection &con, const char *ticker) { + auto req = request_gen("iidx", "ticker_set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(ticker), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::iidx_ticker_reset(spiceapi::Connection &con) { + auto req = request_gen("iidx", "ticker_reset"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::info_avs(spiceapi::Connection &con, spiceapi::InfoAvs &info) { + auto req = request_gen("info", "avs"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.model = data["model"].GetString(); + info.dest = data["dest"].GetString(); + info.spec = data["spec"].GetString(); + info.rev = data["rev"].GetString(); + info.ext = data["ext"].GetString(); + delete res; + return true; +} + +bool spiceapi::info_launcher(spiceapi::Connection &con, spiceapi::InfoLauncher &info) { + auto req = request_gen("info", "launcher"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.version = data["version"].GetString(); + info.compile_date = data["compile_date"].GetString(); + info.compile_time = data["compile_time"].GetString(); + info.system_time = data["system_time"].GetString(); + for (auto &arg : data["args"].GetArray()) + info.args.push_back(arg.GetString()); + delete res; + return true; +} + +bool spiceapi::info_memory(spiceapi::Connection &con, spiceapi::InfoMemory &info) { + auto req = request_gen("info", "memory"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.mem_total = data["mem_total"].GetUint64(); + info.mem_total_used = data["mem_total_used"].GetUint64(); + info.mem_used = data["mem_used"].GetUint64(); + info.vmem_total = data["vmem_total"].GetUint64(); + info.vmem_total_used = data["vmem_total_used"].GetUint64(); + info.vmem_used = data["vmem_used"].GetUint64(); + delete res; + return true; +} + +bool spiceapi::keypads_write(spiceapi::Connection &con, unsigned int keypad, const char *input) { + auto req = request_gen("keypads", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + params.PushBack(StringRef(input), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::keypads_set(spiceapi::Connection &con, unsigned int keypad, std::vector &keys) { + auto req = request_gen("keypads", "set"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + for (auto &key : keys) + params.PushBack(StringRef(&key, 1), alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::keypads_get(spiceapi::Connection &con, unsigned int keypad, std::vector &keys) { + auto req = request_gen("keypads", "get"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(keypad, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) + keys.push_back(val.GetString()[0]); + delete res; + return true; +} + +bool spiceapi::lights_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("lights", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + LightState state; + state.name = val[0].GetString(); + state.value = val[1].GetFloat(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::lights_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("lights", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + state_val.PushBack(state.value, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::lights_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("lights", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(StringRef(state.name.c_str()), alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::memory_write(spiceapi::Connection &con, const char *dll_name, const char *hex, uint32_t offset) { + auto req = request_gen("memory", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(StringRef(hex), alloc); + params.PushBack(offset, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::memory_read(spiceapi::Connection &con, const char *dll_name, uint32_t offset, uint32_t size, + std::string &hex) { + auto req = request_gen("memory", "read"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(offset, alloc); + params.PushBack(size, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + hex = (*res)["data"][0].GetString(); + delete res; + return true; +} + +bool spiceapi::memory_signature(spiceapi::Connection &con, const char *dll_name, const char *signature, + const char *replacement, uint32_t offset, uint32_t usage, uint32_t &file_offset) { + auto req = request_gen("memory", "signature"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + params.PushBack(StringRef(dll_name), alloc); + params.PushBack(StringRef(signature), alloc); + params.PushBack(StringRef(replacement), alloc); + params.PushBack(offset, alloc); + params.PushBack(usage, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + file_offset = (*res)["data"][0].GetUint(); + delete res; + return true; +} + +bool spiceapi::touch_read(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "read"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"]; + for (auto &val : data.GetArray()) { + TouchState state; + state.id = val[0].GetUint64(); + state.x = val[1].GetInt64(); + state.y = val[2].GetInt64(); + states.push_back(state); + } + delete res; + return true; +} + +bool spiceapi::touch_write(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "write"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) { + Value state_val(kArrayType); + state_val.PushBack(state.id, alloc); + state_val.PushBack(state.x, alloc); + state_val.PushBack(state.y, alloc); + params.PushBack(state_val, alloc); + } + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::touch_write_reset(spiceapi::Connection &con, std::vector &states) { + auto req = request_gen("touch", "write_reset"); + auto &alloc = req.GetAllocator(); + Value params(kArrayType); + for (auto &state : states) + params.PushBack(state.id, alloc); + req["params"] = params; + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + delete res; + return true; +} + +bool spiceapi::lcd_info(spiceapi::Connection &con, spiceapi::LCDInfo &info) { + auto req = request_gen("lcd", "info"); + auto res = response_get(con.request(doc2str(req))); + if (!res) + return false; + auto &data = (*res)["data"][0]; + info.enabled = data["enabled"].GetBool(); + info.csm = data["csm"].GetString(); + info.bri = data["bri"].GetInt(); + info.con = data["con"].GetInt(); + info.bl = data["bl"].GetInt(); + info.red = data["red"].GetInt(); + info.green = data["green"].GetInt(); + info.blue = data["blue"].GetInt(); + delete res; + return true; +} diff --git a/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.h b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.h new file mode 100644 index 0000000..75b0d88 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/cpp/spiceapi/wrappers.h @@ -0,0 +1,104 @@ +#ifndef SPICEAPI_WRAPPERS_H +#define SPICEAPI_WRAPPERS_H + +#include +#include +#include "connection.h" + +namespace spiceapi { + + struct AnalogState { + std::string name; + float value; + }; + + struct ButtonState { + std::string name; + float value; + }; + + struct LightState { + std::string name; + float value; + }; + + struct InfoAvs { + std::string model, dest, spec, rev, ext; + }; + + struct InfoLauncher { + std::string version; + std::string compile_date, compile_time, system_time; + std::vector args; + }; + + struct InfoMemory { + uint64_t mem_total, mem_total_used, mem_used; + uint64_t vmem_total, vmem_total_used, vmem_used; + }; + + struct TouchState { + uint64_t id; + int64_t x, y; + }; + + struct LCDInfo { + bool enabled; + std::string csm; + uint8_t bri, con, bl, red, green, blue; + }; + + uint64_t msg_gen_id(); + + bool analogs_read(Connection &con, std::vector &states); + bool analogs_write(Connection &con, std::vector &states); + bool analogs_write_reset(Connection &con, std::vector &states); + + bool buttons_read(Connection &con, std::vector &states); + bool buttons_write(Connection &con, std::vector &states); + bool buttons_write_reset(Connection &con, std::vector &states); + + bool card_insert(Connection &con, size_t index, const char *card_id); + + bool coin_get(Connection &con, int &coins); + bool coin_set(Connection &con, int coins); + bool coin_insert(Connection &con, int coins=1); + bool coin_blocker_get(Connection &con, bool &closed); + + bool control_raise(Connection &con, const char *signal); + bool control_exit(Connection &con); + bool control_exit(Connection &con, int exit_code); + bool control_restart(Connection &con); + bool control_session_refresh(Connection &con); + bool control_shutdown(Connection &con); + bool control_reboot(Connection &con); + + bool iidx_ticker_get(Connection &con, char *ticker); + bool iidx_ticker_set(Connection &con, const char *ticker); + bool iidx_ticker_reset(Connection &con); + + bool info_avs(Connection &con, InfoAvs &info); + bool info_launcher(Connection &con, InfoLauncher &info); + bool info_memory(Connection &con, InfoMemory &info); + + bool keypads_write(Connection &con, unsigned int keypad, const char *input); + bool keypads_set(Connection &con, unsigned int keypad, std::vector &keys); + bool keypads_get(Connection &con, unsigned int keypad, std::vector &keys); + + bool lights_read(Connection &con, std::vector &states); + bool lights_write(Connection &con, std::vector &states); + bool lights_write_reset(Connection &con, std::vector &states); + + bool memory_write(Connection &con, const char *dll_name, const char *hex, uint32_t offset); + bool memory_read(Connection &con, const char *dll_name, uint32_t offset, uint32_t size, std::string &hex); + bool memory_signature(Connection &con, const char *dll_name, const char *signature, const char *replacement, + uint32_t offset, uint32_t usage, uint32_t &file_offset); + + bool touch_read(Connection &con, std::vector &states); + bool touch_write(Connection &con, std::vector &states); + bool touch_write_reset(Connection &con, std::vector &states); + + bool lcd_info(Connection &con, LCDInfo &info); +} + +#endif //SPICEAPI_WRAPPERS_H diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/LICENSE b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/spiceapi.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/spiceapi.dart new file mode 100644 index 0000000..413db56 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/spiceapi.dart @@ -0,0 +1,22 @@ +library spiceapi; +import 'dart:convert'; +import 'dart:async'; +import 'dart:math'; +import 'dart:html'; +import 'dart:typed_data'; +part "src/connection.dart"; +part "src/request.dart"; +part "src/response.dart"; +part "src/exceptions.dart"; +part "src/rc4.dart"; +part "src/wrappers/analogs.dart"; +part "src/wrappers/buttons.dart"; +part "src/wrappers/card.dart"; +part "src/wrappers/coin.dart"; +part "src/wrappers/control.dart"; +part "src/wrappers/info.dart"; +part "src/wrappers/keypads.dart"; +part "src/wrappers/lights.dart"; +part "src/wrappers/memory.dart"; +part "src/wrappers/iidx.dart"; +part "src/wrappers/touch.dart"; diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/connection.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/connection.dart new file mode 100644 index 0000000..a27ec3f --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/connection.dart @@ -0,0 +1,193 @@ +part of spiceapi; + + +class Connection { + + // settings + static const _TIMEOUT = Duration(seconds: 2); + static const _BUFFER_SIZE = 1024 * 8; + + // state + final String host, pass; + final int port; + var resource; + List _dataBuffer; + StreamController _responses; + StreamController _connections; + WebSocket _socket; + RC4 _cipher; + bool _disposed = false; + + Connection(this.host, this.port, this.pass, + {this.resource, bool refreshSession=true}) { + + // initialize + _dataBuffer = List(); + _responses = StreamController.broadcast(); + _connections = StreamController.broadcast(); + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + + // initialize socket + this._socket = WebSocket("ws://$host:${port + 1}"); + this._socket.binaryType = "arraybuffer"; + + // listen to events + this._socket.onOpen.listen((e) async { + + // refresh session + bool error = false; + if (refreshSession) { + try { + await controlRefreshSession(this); + } on Error { + error = true; + } on TimeoutException { + error = true; + } + } + + // mark as connected + if (!this._connections.isClosed) + this._connections.add(this); + if (error) + this.dispose(); + }); + + this._socket.onMessage.listen((e) { + + // get data + var data = e.data; + if (data is ByteBuffer) + data = data.asUint8List(); + + // check type + if (data is List) { + + // cipher + if (_cipher != null) + _cipher.crypt(data); + + // add data to buffer + _dataBuffer.addAll(data); + + // check buffer size + if (_dataBuffer.length > _BUFFER_SIZE) { + this.dispose(); + return; + } + + // check for completed message + for (int i = 0; i < _dataBuffer.length; i++) { + if (_dataBuffer[i] == 0) { + + // get message data and remove from buffer + var msgData = List.from(_dataBuffer.getRange(0, i)); + _dataBuffer.removeRange(0, i + 1); + + // check data length + if (msgData.length > 0) { + + // convert to JSON + var msgStr = utf8.decode(msgData, allowMalformed: false); + + // build response + var res = Response.fromJson(msgStr); + this._responses.add(res); + } + } + } + } + }); + + this._socket.onClose.listen((e) { + this.dispose(); + }); + + this._socket.onError.listen((e) { + this.dispose(); + }); + } + + void changePass(String pass) { + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + else + _cipher = null; + } + + void dispose() { + if (_socket != null) + _socket.close(); + _socket = null; + if (_responses != null) + _responses.close(); + if (_connections != null) + _connections.close(); + this._disposed = true; + this.free(); + } + + bool isDisposed() { + return this._disposed; + } + + void free() { + + // release optional resource + if (this.resource != null) { + this.resource.release(); + this.resource = null; + } + } + + bool isFree() { + return this.resource == null; + } + + Future onConnect() { + return _connections.stream.first; + } + + bool isValid() { + return this._socket != null && !this._disposed; + } + + Future request(Request req) { + + // add response listener + var res = _awaitResponse(req._id); + + // write request + _writeRequest(req); + + // return future response + return res.then((res) { + + // validate first + res.validate(); + + // return it + return res; + }); + } + + void _writeRequest(Request req) async { + + // convert to JSON + var json = req.toJson() + "\x00"; + var jsonEncoded = utf8.encode(json); + + // cipher + if (_cipher != null) + _cipher.crypt(jsonEncoded); + + // write to socket + this._socket.sendByteBuffer(Int8List.fromList(jsonEncoded).buffer); + } + + Future _awaitResponse(int id) { + return _responses.stream.timeout(_TIMEOUT).firstWhere( + (res) => res._id == id, orElse: null); + } +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/exceptions.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/exceptions.dart new file mode 100644 index 0000000..3fa292e --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/exceptions.dart @@ -0,0 +1,11 @@ +part of spiceapi; + +class APIError implements Exception { + String cause; + APIError(this.cause); + + @override + String toString() { + return this.cause; + } +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/rc4.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/rc4.dart new file mode 100644 index 0000000..68b7f48 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/rc4.dart @@ -0,0 +1,48 @@ +part of spiceapi; + +class RC4 { + + // state + int _a = 0; + int _b = 0; + List _sBox = List(256); + + RC4(List key) { + + // init sBox + for (int i = 0; i < 256; i++) { + _sBox[i] = i; + } + + // process key + int j = 0; + for (int i = 0; i < 256; i++) { + + // update + j = (j + _sBox[i] + key[i % key.length]) % 256; + + // swap + var tmp = _sBox[i]; + _sBox[i] = _sBox[j]; + _sBox[j] = tmp; + } + } + + void crypt(List inData) { + for (int i = 0; i < inData.length; i++) { + + // update + _a = (_a + 1) % 256; + _b = (_b + _sBox[_a]) % 256; + + // swap + var tmp = _sBox[_a]; + _sBox[_a] = _sBox[_b]; + _sBox[_b] = tmp; + + // crypt + inData[i] ^= _sBox[(_sBox[_a] + _sBox[_b]) % 256]; + } + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/request.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/request.dart new file mode 100644 index 0000000..39a4982 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/request.dart @@ -0,0 +1,45 @@ +part of spiceapi; + +class Request { + + static int _lastID = 0; + + // contents + int _id; + String _module; + String _function; + List _params; + + Request(String module, String function, {id}) { + + // automatic ID iteration + if (id == null) { + if (++_lastID >= pow(2, 32)) + _lastID = 1; + id = _lastID; + } else + _lastID = id; + + // build contents + this._id = id; + this._module = module; + this._function = function; + this._params = List(); + } + + String toJson() { + return jsonEncode( + { + "id": this._id, + "module": this._module, + "function": this._function, + "params": this._params, + } + ); + } + + void addParam(param) { + this._params.add(param); + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/response.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/response.dart new file mode 100644 index 0000000..1940f21 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/response.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +class Response { + + String _json; + int _id; + List _errors; + List _data; + + Response.fromJson(String json) { + this._json = json; + var obj = jsonDecode(json); + this._id = obj["id"]; + this._errors = obj["errors"]; + this._data = obj["data"]; + } + + void validate() { + + // check for errors + if (_errors.length > 0) { + // TODO: add all errors + throw APIError(_errors[0].toString()); + } + } + + List getData() { + return _data; + } + + String toJson() { + return _json; + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/analogs.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/analogs.dart new file mode 100644 index 0000000..cd4df26 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/analogs.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class AnalogState { + String name; + double state; + bool active; + + AnalogState(this.name, this.state); + AnalogState._fromRead(this.name, this.state, this.active); +} + +Future> analogsRead(Connection con) { + var req = Request("analogs", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(AnalogState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future analogsWrite(Connection con, List states) { + var req = Request("analogs", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future analogsWriteReset(Connection con, List names) { + var req = Request("analogs", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/buttons.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/buttons.dart new file mode 100644 index 0000000..58889cc --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/buttons.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class ButtonState { + String name; + double state; + bool active; + + ButtonState(this.name, this.state); + ButtonState._fromRead(this.name, this.state, this.active); +} + +Future> buttonsRead(Connection con) { + var req = Request("buttons", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(ButtonState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future buttonsWrite(Connection con, List states) { + var req = Request("buttons", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future buttonsWriteReset(Connection con, List names) { + var req = Request("buttons", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/card.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/card.dart new file mode 100644 index 0000000..2a42d63 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/card.dart @@ -0,0 +1,8 @@ +part of spiceapi; + +Future cardInsert(Connection con, int unit, String cardID) { + var req = Request("card", "insert"); + req.addParam(unit); + req.addParam(cardID); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/coin.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/coin.dart new file mode 100644 index 0000000..5c82694 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/coin.dart @@ -0,0 +1,21 @@ +part of spiceapi; + +Future coinGet(Connection con) { + var req = Request("coin", "get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future coinSet(Connection con, int amount) { + var req = Request("coin", "set"); + req.addParam(amount); + return con.request(req); +} + +Future coinInsert(Connection con, [int amount=1]) { + var req = Request("coin", "insert"); + if (amount != 1) + req.addParam(amount); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/control.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/control.dart new file mode 100644 index 0000000..8d7d77b --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/control.dart @@ -0,0 +1,36 @@ +part of spiceapi; + +Future controlRaise(Connection con, String signal) { + var req = Request("control", "raise"); + req.addParam(signal); + return con.request(req); +} + +Future controlExit(Connection con, int code) { + var req = Request("control", "exit"); + req.addParam(code); + return con.request(req); +} + +Future controlRestart(Connection con) { + var req = Request("control", "restart"); + return con.request(req); +} + +Future controlRefreshSession(Connection con) { + var rnd = new Random(); + var req = Request("control", "session_refresh", id: rnd.nextInt(pow(2, 32))); + return con.request(req).then((res) { + con.changePass(res.getData()[0]); + }); +} + +Future controlShutdown(Connection con) { + var req = Request("control", "shutdown"); + return con.request(req); +} + +Future controlReboot(Connection con) { + var req = Request("control", "reboot"); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/iidx.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/iidx.dart new file mode 100644 index 0000000..60562d1 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/iidx.dart @@ -0,0 +1,19 @@ +part of spiceapi; + +Future iidxTickerGet(Connection con) { + var req = Request("iidx", "ticker_get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future iidxTickerSet(Connection con, String text) { + var req = Request("iidx", "ticker_set"); + req.addParam(text); + return con.request(req); +} + +Future iidxTickerReset(Connection con) { + var req = Request("iidx", "ticker_reset"); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/info.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/info.dart new file mode 100644 index 0000000..34cc9de --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/info.dart @@ -0,0 +1,22 @@ +part of spiceapi; + +Future infoAVS(Connection con) { + var req = Request("info", "avs"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoLauncher(Connection con) { + var req = Request("info", "launcher"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoMemory(Connection con) { + var req = Request("info", "memory"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/keypads.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/keypads.dart new file mode 100644 index 0000000..76be9e5 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/keypads.dart @@ -0,0 +1,28 @@ +part of spiceapi; + +Future keypadsWrite(Connection con, int unit, String input) { + var req = Request("keypads", "write"); + req.addParam(unit); + req.addParam(input); + return con.request(req); +} + +Future keypadsSet(Connection con, int unit, String buttons) { + var req = Request("keypads", "set"); + req.addParam(unit); + for (int i = 0; i < buttons.length; i++) + req.addParam(buttons[i]); + return con.request(req); +} + +Future keypadsGet(Connection con, int unit) { + var req = Request("keypads", "get"); + req.addParam(unit); + return con.request(req).then((res) { + String buttons = ""; + for (var obj in res.getData()) { + buttons += obj; + } + return buttons; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/lights.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/lights.dart new file mode 100644 index 0000000..04138a3 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/lights.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class LightState { + String name; + double state; + bool active; + + LightState(this.name, this.state); + LightState._fromRead(this.name, this.state, this.active); +} + +Future> lightsRead(Connection con) { + var req = Request("lights", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(LightState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future lightsWrite(Connection con, List states) { + var req = Request("lights", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future lightsWriteReset(Connection con, List names) { + var req = Request("lights", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/memory.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/memory.dart new file mode 100644 index 0000000..7f529cc --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/memory.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +Future memoryWrite(Connection con, + String dllName, String data, int offset) { + var req = Request("memory", "write"); + req.addParam(dllName); + req.addParam(data); + req.addParam(offset); + return con.request(req); +} + +Future memoryRead(Connection con, + String dllName, int offset, int size) { + var req = Request("memory", "read"); + req.addParam(dllName); + req.addParam(offset); + req.addParam(size); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future memorySignature(Connection con, + String dllName, String signature, String replacement, + int offset, int usage) { + var req = Request("memory", "signature"); + req.addParam(dllName); + req.addParam(signature); + req.addParam(replacement); + req.addParam(offset); + req.addParam(usage); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/touch.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/touch.dart new file mode 100644 index 0000000..8ddbe65 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi-websocket/src/wrappers/touch.dart @@ -0,0 +1,53 @@ +part of spiceapi; + +class TouchState { + int id; + int x, y; + + TouchState(this.id, this.x, this.y); +} + +Future> touchRead(Connection con) { + var req = Request("touch", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(TouchState( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future touchWrite(Connection con, List states) { + var req = Request("touch", "write"); + + // add params + for (var state in states) { + var obj = [ + state.id, + state.x, + state.y + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future touchWriteReset(Connection con, List touchIDs) { + var req = Request("touch", "write_reset"); + + // add params + for (var id in touchIDs) + req.addParam(id); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/LICENSE b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/spiceapi.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/spiceapi.dart new file mode 100644 index 0000000..b094915 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/spiceapi.dart @@ -0,0 +1,22 @@ +library spiceapi; +import 'dart:io'; +import 'dart:convert'; +import 'dart:async'; +import 'dart:math'; +part "src/connection.dart"; +part "src/request.dart"; +part "src/response.dart"; +part "src/exceptions.dart"; +part "src/rc4.dart"; +part "src/wrappers/analogs.dart"; +part "src/wrappers/buttons.dart"; +part "src/wrappers/card.dart"; +part "src/wrappers/coin.dart"; +part "src/wrappers/control.dart"; +part "src/wrappers/info.dart"; +part "src/wrappers/keypads.dart"; +part "src/wrappers/lights.dart"; +part "src/wrappers/memory.dart"; +part "src/wrappers/touch.dart"; +part "src/wrappers/iidx.dart"; +part "src/wrappers/touch.dart"; diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/connection.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/connection.dart new file mode 100644 index 0000000..5b031ea --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/connection.dart @@ -0,0 +1,192 @@ +part of spiceapi; + + +class Connection { + + // settings + static const _TIMEOUT = Duration(seconds: 2); + static const _BUFFER_SIZE = 1024 * 8; + + // state + final String host, pass; + final int port; + var resource; + List _dataBuffer; + StreamController _responses; + StreamController _connections; + Socket _socket; + RC4 _cipher; + bool _disposed = false; + + Connection(this.host, this.port, this.pass, + {this.resource, bool refreshSession=true}) { + + // initialize + _dataBuffer = List(); + _responses = StreamController.broadcast(); + _connections = StreamController.broadcast(); + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + + // connect + Socket.connect(host, port, timeout: _TIMEOUT).then((socket) async { + + // remember socket + this._socket = socket; + + // listen to data + socket.listen((data) { + + // cipher + if (_cipher != null) + _cipher.crypt(data); + + // add data to buffer + _dataBuffer.addAll(data); + + // check buffer size + if (_dataBuffer.length > _BUFFER_SIZE) { + socket.destroy(); + return; + } + + // check for completed message + for (int i = 0; i < _dataBuffer.length; i++) { + if (_dataBuffer[i] == 0) { + + // get message data and remove from buffer + var msgData = List.from(_dataBuffer.getRange(0, i)); + _dataBuffer.removeRange(0, i + 1); + + // check data length + if (msgData.length > 0) { + + // convert to JSON + var msgStr = utf8.decode(msgData, allowMalformed: false); + + // build response + var res = Response.fromJson(msgStr); + this._responses.add(res); + } + } + } + + }, onError: (e) { + + // dispose on listen error + this.dispose(); + + }, onDone: () { + + // dispose on listen done + this.dispose(); + + }); + + // refresh session + bool error = false; + if (refreshSession) { + try { + await controlRefreshSession(this); + } on Error { + error = true; + } on TimeoutException { + error = true; + } + } + + // mark as connected + if (!this._connections.isClosed) + this._connections.add(this); + if (error) + this.dispose(); + + }, onError: (e) { + + // dispose on connection error + this.dispose(); + }); + } + + void changePass(String pass) { + if (pass.length > 0) + _cipher = RC4(utf8.encode(pass)); + else + _cipher = null; + } + + void dispose() { + if (_socket != null) + _socket.destroy(); + if (_responses != null) + _responses.close(); + if (_connections != null) + _connections.close(); + this._disposed = true; + this.free(); + } + + bool isDisposed() { + return this._disposed; + } + + void free() { + + // release optional resource + if (this.resource != null) { + this.resource.release(); + this.resource = null; + } + } + + bool isFree() { + return this.resource == null; + } + + Future onConnect() { + return _connections.stream.first; + } + + bool isValid() { + return this._socket != null && !this._disposed; + } + + Future request(Request req) { + + // add response listener + var res = _awaitResponse(req._id); + + // write request + _writeRequest(req); + + // return future response + return res.then((res) { + + // validate first + res.validate(); + + // return it + return res; + }); + } + + void _writeRequest(Request req) async { + + // convert to JSON + var json = req.toJson() + "\x00"; + var jsonEncoded = utf8.encode(json); + + // cipher + if (_cipher != null) + _cipher.crypt(jsonEncoded); + + // write to socket + this._socket.add(jsonEncoded); + } + + Future _awaitResponse(int id) { + return _responses.stream.timeout(_TIMEOUT).firstWhere( + (res) => res._id == id, orElse: null); + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/exceptions.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/exceptions.dart new file mode 100644 index 0000000..3fa292e --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/exceptions.dart @@ -0,0 +1,11 @@ +part of spiceapi; + +class APIError implements Exception { + String cause; + APIError(this.cause); + + @override + String toString() { + return this.cause; + } +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/rc4.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/rc4.dart new file mode 100644 index 0000000..68b7f48 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/rc4.dart @@ -0,0 +1,48 @@ +part of spiceapi; + +class RC4 { + + // state + int _a = 0; + int _b = 0; + List _sBox = List(256); + + RC4(List key) { + + // init sBox + for (int i = 0; i < 256; i++) { + _sBox[i] = i; + } + + // process key + int j = 0; + for (int i = 0; i < 256; i++) { + + // update + j = (j + _sBox[i] + key[i % key.length]) % 256; + + // swap + var tmp = _sBox[i]; + _sBox[i] = _sBox[j]; + _sBox[j] = tmp; + } + } + + void crypt(List inData) { + for (int i = 0; i < inData.length; i++) { + + // update + _a = (_a + 1) % 256; + _b = (_b + _sBox[_a]) % 256; + + // swap + var tmp = _sBox[_a]; + _sBox[_a] = _sBox[_b]; + _sBox[_b] = tmp; + + // crypt + inData[i] ^= _sBox[(_sBox[_a] + _sBox[_b]) % 256]; + } + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/request.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/request.dart new file mode 100644 index 0000000..39a4982 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/request.dart @@ -0,0 +1,45 @@ +part of spiceapi; + +class Request { + + static int _lastID = 0; + + // contents + int _id; + String _module; + String _function; + List _params; + + Request(String module, String function, {id}) { + + // automatic ID iteration + if (id == null) { + if (++_lastID >= pow(2, 32)) + _lastID = 1; + id = _lastID; + } else + _lastID = id; + + // build contents + this._id = id; + this._module = module; + this._function = function; + this._params = List(); + } + + String toJson() { + return jsonEncode( + { + "id": this._id, + "module": this._module, + "function": this._function, + "params": this._params, + } + ); + } + + void addParam(param) { + this._params.add(param); + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/response.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/response.dart new file mode 100644 index 0000000..1940f21 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/response.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +class Response { + + String _json; + int _id; + List _errors; + List _data; + + Response.fromJson(String json) { + this._json = json; + var obj = jsonDecode(json); + this._id = obj["id"]; + this._errors = obj["errors"]; + this._data = obj["data"]; + } + + void validate() { + + // check for errors + if (_errors.length > 0) { + // TODO: add all errors + throw APIError(_errors[0].toString()); + } + } + + List getData() { + return _data; + } + + String toJson() { + return _json; + } + +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/analogs.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/analogs.dart new file mode 100644 index 0000000..cd4df26 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/analogs.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class AnalogState { + String name; + double state; + bool active; + + AnalogState(this.name, this.state); + AnalogState._fromRead(this.name, this.state, this.active); +} + +Future> analogsRead(Connection con) { + var req = Request("analogs", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(AnalogState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future analogsWrite(Connection con, List states) { + var req = Request("analogs", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future analogsWriteReset(Connection con, List names) { + var req = Request("analogs", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/buttons.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/buttons.dart new file mode 100644 index 0000000..58889cc --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/buttons.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class ButtonState { + String name; + double state; + bool active; + + ButtonState(this.name, this.state); + ButtonState._fromRead(this.name, this.state, this.active); +} + +Future> buttonsRead(Connection con) { + var req = Request("buttons", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(ButtonState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future buttonsWrite(Connection con, List states) { + var req = Request("buttons", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future buttonsWriteReset(Connection con, List names) { + var req = Request("buttons", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/card.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/card.dart new file mode 100644 index 0000000..2a42d63 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/card.dart @@ -0,0 +1,8 @@ +part of spiceapi; + +Future cardInsert(Connection con, int unit, String cardID) { + var req = Request("card", "insert"); + req.addParam(unit); + req.addParam(cardID); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/coin.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/coin.dart new file mode 100644 index 0000000..5c82694 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/coin.dart @@ -0,0 +1,21 @@ +part of spiceapi; + +Future coinGet(Connection con) { + var req = Request("coin", "get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future coinSet(Connection con, int amount) { + var req = Request("coin", "set"); + req.addParam(amount); + return con.request(req); +} + +Future coinInsert(Connection con, [int amount=1]) { + var req = Request("coin", "insert"); + if (amount != 1) + req.addParam(amount); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/control.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/control.dart new file mode 100644 index 0000000..8d7d77b --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/control.dart @@ -0,0 +1,36 @@ +part of spiceapi; + +Future controlRaise(Connection con, String signal) { + var req = Request("control", "raise"); + req.addParam(signal); + return con.request(req); +} + +Future controlExit(Connection con, int code) { + var req = Request("control", "exit"); + req.addParam(code); + return con.request(req); +} + +Future controlRestart(Connection con) { + var req = Request("control", "restart"); + return con.request(req); +} + +Future controlRefreshSession(Connection con) { + var rnd = new Random(); + var req = Request("control", "session_refresh", id: rnd.nextInt(pow(2, 32))); + return con.request(req).then((res) { + con.changePass(res.getData()[0]); + }); +} + +Future controlShutdown(Connection con) { + var req = Request("control", "shutdown"); + return con.request(req); +} + +Future controlReboot(Connection con) { + var req = Request("control", "reboot"); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/iidx.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/iidx.dart new file mode 100644 index 0000000..60562d1 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/iidx.dart @@ -0,0 +1,19 @@ +part of spiceapi; + +Future iidxTickerGet(Connection con) { + var req = Request("iidx", "ticker_get"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future iidxTickerSet(Connection con, String text) { + var req = Request("iidx", "ticker_set"); + req.addParam(text); + return con.request(req); +} + +Future iidxTickerReset(Connection con) { + var req = Request("iidx", "ticker_reset"); + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/info.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/info.dart new file mode 100644 index 0000000..34cc9de --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/info.dart @@ -0,0 +1,22 @@ +part of spiceapi; + +Future infoAVS(Connection con) { + var req = Request("info", "avs"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoLauncher(Connection con) { + var req = Request("info", "launcher"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future infoMemory(Connection con) { + var req = Request("info", "memory"); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/keypads.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/keypads.dart new file mode 100644 index 0000000..76be9e5 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/keypads.dart @@ -0,0 +1,28 @@ +part of spiceapi; + +Future keypadsWrite(Connection con, int unit, String input) { + var req = Request("keypads", "write"); + req.addParam(unit); + req.addParam(input); + return con.request(req); +} + +Future keypadsSet(Connection con, int unit, String buttons) { + var req = Request("keypads", "set"); + req.addParam(unit); + for (int i = 0; i < buttons.length; i++) + req.addParam(buttons[i]); + return con.request(req); +} + +Future keypadsGet(Connection con, int unit) { + var req = Request("keypads", "get"); + req.addParam(unit); + return con.request(req).then((res) { + String buttons = ""; + for (var obj in res.getData()) { + buttons += obj; + } + return buttons; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/lights.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/lights.dart new file mode 100644 index 0000000..04138a3 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/lights.dart @@ -0,0 +1,54 @@ +part of spiceapi; + +class LightState { + String name; + double state; + bool active; + + LightState(this.name, this.state); + LightState._fromRead(this.name, this.state, this.active); +} + +Future> lightsRead(Connection con) { + var req = Request("lights", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(LightState._fromRead( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future lightsWrite(Connection con, List states) { + var req = Request("lights", "write"); + + // add params + for (var state in states) { + var obj = [ + state.name, + state.state + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future lightsWriteReset(Connection con, List names) { + var req = Request("lights", "write_reset"); + + // add params + for (var name in names) + req.addParam(name); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/memory.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/memory.dart new file mode 100644 index 0000000..7f529cc --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/memory.dart @@ -0,0 +1,35 @@ +part of spiceapi; + +Future memoryWrite(Connection con, + String dllName, String data, int offset) { + var req = Request("memory", "write"); + req.addParam(dllName); + req.addParam(data); + req.addParam(offset); + return con.request(req); +} + +Future memoryRead(Connection con, + String dllName, int offset, int size) { + var req = Request("memory", "read"); + req.addParam(dllName); + req.addParam(offset); + req.addParam(size); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} + +Future memorySignature(Connection con, + String dllName, String signature, String replacement, + int offset, int usage) { + var req = Request("memory", "signature"); + req.addParam(dllName); + req.addParam(signature); + req.addParam(replacement); + req.addParam(offset); + req.addParam(usage); + return con.request(req).then((res) { + return res.getData()[0]; + }); +} diff --git a/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/touch.dart b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/touch.dart new file mode 100644 index 0000000..8ddbe65 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/dart/spiceapi/src/wrappers/touch.dart @@ -0,0 +1,53 @@ +part of spiceapi; + +class TouchState { + int id; + int x, y; + + TouchState(this.id, this.x, this.y); +} + +Future> touchRead(Connection con) { + var req = Request("touch", "read"); + return con.request(req).then((res) { + + // build states list + List states = []; + for (List state in res.getData()) { + states.add(TouchState( + state[0], + state[1], + state[2], + )); + } + + // return it + return states; + }); +} + +Future touchWrite(Connection con, List states) { + var req = Request("touch", "write"); + + // add params + for (var state in states) { + var obj = [ + state.id, + state.x, + state.y + ]; + req.addParam(obj); + } + + return con.request(req); +} + +Future touchWriteReset(Connection con, List touchIDs) { + var req = Request("touch", "write_reset"); + + // add params + for (var id in touchIDs) + req.addParam(id); + + return con.request(req); +} diff --git a/misc/spicetools/spicetools-20200204/api/python/.gitignore b/misc/spicetools/spicetools-20200204/api/python/.gitignore new file mode 100644 index 0000000..0447b8b --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/.gitignore @@ -0,0 +1,116 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/LICENSE b/misc/spicetools/spicetools-20200204/api/python/spiceapi/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/__init__.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/__init__.py new file mode 100644 index 0000000..5cd290a --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/__init__.py @@ -0,0 +1,14 @@ +from .connection import Connection +from .request import Request +from .analogs import * +from .buttons import * +from .card import * +from .coin import * +from .control import * +from .exceptions import * +from .iidx import * +from .info import * +from .keypads import * +from .lights import * +from .memory import * +from .touch import * diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/analogs.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/analogs.py new file mode 100644 index 0000000..c8a128c --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/analogs.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def analogs_read(con: Connection): + res = con.request(Request("analogs", "read")) + return res.get_data() + + +def analogs_write(con: Connection, analog_state_list): + req = Request("analogs", "write") + for state in analog_state_list: + req.add_param(state) + con.request(req) + + +def analogs_write_reset(con: Connection, analog_names=None): + req = Request("analogs", "write_reset") + + # reset all analogs + if not analog_names: + con.request(req) + return + + # reset specified analogs + for analog_name in analog_names: + req.add_param(analog_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/buttons.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/buttons.py new file mode 100644 index 0000000..8ee6810 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/buttons.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def buttons_read(con: Connection): + res = con.request(Request("buttons", "read")) + return res.get_data() + + +def buttons_write(con: Connection, button_state_list): + req = Request("buttons", "write") + for state in button_state_list: + req.add_param(state) + con.request(req) + + +def buttons_write_reset(con: Connection, button_names=None): + req = Request("buttons", "write_reset") + + # reset all buttons + if not button_names: + con.request(req) + return + + # reset specified buttons + for button_name in button_names: + req.add_param(button_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/card.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/card.py new file mode 100644 index 0000000..d579ed8 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/card.py @@ -0,0 +1,9 @@ +from .connection import Connection +from .request import Request + + +def card_insert(con: Connection, unit: int, card_id: str): + req = Request("card", "insert") + req.add_param(unit) + req.add_param(card_id) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/coin.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/coin.py new file mode 100644 index 0000000..5707d65 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/coin.py @@ -0,0 +1,20 @@ +from .connection import Connection +from .request import Request + + +def coin_get(con: Connection): + res = con.request(Request("coin", "get")) + return res.get_data()[0] + + +def coin_set(con: Connection, amount: int): + req = Request("coin", "set") + req.add_param(amount) + con.request(req) + + +def coin_insert(con: Connection, amount=1): + req = Request("coin", "insert") + if amount != 1: + req.add_param(amount) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/connection.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/connection.py new file mode 100644 index 0000000..e6193a9 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/connection.py @@ -0,0 +1,139 @@ +import os +import socket +from .request import Request +from .response import Response +from .rc4 import rc4 +from .exceptions import MalformedRequestException, APIError + + +class Connection: + """ Container for managing a single connection to the API server. + """ + + def __init__(self, host: str, port: int, password: str): + """Default constructor. + + :param host: the host string to connect to + :param port: the port of the host + :param password: the connection password string + """ + self.host = host + self.port = port + self.password = password + self.socket = None + self.cipher = None + self.reconnect() + + def reconnect(self, refresh_session=True): + """Reconnect to the server. + + This opens a new connection and closes the previous one, if existing. + """ + + # close old socket + self.close() + + # create new socket + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.settimeout(3) + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + self.socket.connect((self.host, self.port)) + + # cipher + self.change_password(self.password) + + # refresh session + if refresh_session: + from .control import control_session_refresh + control_session_refresh(self) + + def change_password(self, password): + """Allows to change the password on the fly. + + The cipher will be rebuilt. + """ + if len(password) > 0: + self.cipher = rc4(password.encode("UTF-8")) + else: + self.cipher = None + + def close(self): + """Close the active connection, if existing.""" + + # check if socket is existing + if self.socket: + + # close and delete socket + self.socket.close() + self.socket = None + + def request(self, request: Request): + """Send a request to the server and receive the answer. + + :param request: request object + :return: response object + """ + + # check if disconnected + if not self.socket: + raise RuntimeError("No active connection.") + + # build data + data = request.to_json().encode("UTF-8") + b"\x00" + if self.cipher: + data_list = list(data) + data_cipher = [] + for b in data_list: + data_cipher.append(b ^ next(self.cipher)) + data = bytes(data_cipher) + + # send request + if os.name != 'nt': + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1) + self.socket.send(data) + + # get answer + answer_data = [] + while not len(answer_data) or answer_data[-1] != 0: + + # receive data + if os.name != 'nt': + self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1) + receive_data = self.socket.recv(4096) + + # check length + if len(receive_data): + + # check cipher + if self.cipher: + + # add decrypted data + for b in receive_data: + answer_data.append(int(b ^ next(self.cipher))) + else: + + # add plaintext + for b in receive_data: + answer_data.append(int(b)) + else: + raise RuntimeError("Connection was closed.") + + # check for empty response + if len(answer_data) <= 1: + + # empty response means the JSON couldn't be parsed + raise MalformedRequestException() + + # build response + response = Response(bytes(answer_data[:-1]).decode("UTF-8")) + if len(response.get_errors()): + raise APIError(response.get_errors()) + + # check ID + req_id = request.get_id() + res_id = response.get_id() + if req_id != res_id: + raise RuntimeError(f"Unexpected response ID: {res_id} (expected {req_id})") + + # return response object + return response diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/control.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/control.py new file mode 100644 index 0000000..3b8d2cd --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/control.py @@ -0,0 +1,51 @@ +import random +from .connection import Connection +from .request import Request + + +def control_raise(con: Connection, signal: str): + req = Request("control", "raise") + req.add_param(signal) + con.request(req) + + +def control_exit(con: Connection, code=None): + req = Request("control", "exit") + if code: + req.add_param(code) + try: + con.request(req) + except RuntimeError: + pass # we expect the connection to get killed + + +def control_restart(con: Connection): + req = Request("control", "restart") + try: + con.request(req) + except RuntimeError: + pass # we expect the connection to get killed + + +def control_session_refresh(con: Connection): + res = con.request(Request("control", "session_refresh", req_id=random.randint(1, 2**64))) + + # apply new password + password = res.get_data()[0] + con.change_password(password) + + +def control_shutdown(con: Connection): + req = Request("control", "shutdown") + try: + con.request(req) + except RuntimeError: + pass # we expect the connection to get killed + + +def control_reboot(con: Connection): + req = Request("control", "reboot") + try: + con.request(req) + except RuntimeError: + pass # we expect the connection to get killed diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/exceptions.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/exceptions.py new file mode 100644 index 0000000..8a4d050 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/exceptions.py @@ -0,0 +1,10 @@ + + +class APIError(Exception): + + def __init__(self, errors): + super().__init__("\r\n".join(errors)) + + +class MalformedRequestException(Exception): + pass diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/iidx.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/iidx.py new file mode 100644 index 0000000..b2736e1 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/iidx.py @@ -0,0 +1,18 @@ +from .connection import Connection +from .request import Request + + +def iidx_ticker_get(con: Connection): + res = con.request(Request("iidx", "ticker_get")) + return res.get_data() + + +def iidx_ticker_set(con: Connection, text: str): + req = Request("iidx", "ticker_set") + req.add_param(text) + con.request(req) + + +def iidx_ticker_reset(con: Connection): + req = Request("iidx", "ticker_reset") + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/info.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/info.py new file mode 100644 index 0000000..3b4245c --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/info.py @@ -0,0 +1,17 @@ +from .connection import Connection +from .request import Request + + +def info_avs(con: Connection): + res = con.request(Request("info", "avs")) + return res.get_data()[0] + + +def info_launcher(con: Connection): + res = con.request(Request("info", "launcher")) + return res.get_data()[0] + + +def info_memory(con: Connection): + res = con.request(Request("info", "memory")) + return res.get_data()[0] diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/keypads.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/keypads.py new file mode 100644 index 0000000..17980e1 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/keypads.py @@ -0,0 +1,24 @@ +from .connection import Connection +from .request import Request + + +def keypads_write(con: Connection, keypad: int, input_values: str): + req = Request("keypads", "write") + req.add_param(keypad) + req.add_param(input_values) + con.request(req) + + +def keypads_set(con: Connection, keypad: int, input_values: str): + req = Request("keypads", "set") + req.add_param(keypad) + for value in input_values: + req.add_param(value) + con.request(req) + + +def keypads_get(con: Connection, keypad: int): + req = Request("keypads", "get") + req.add_param(keypad) + res = con.request(req) + return res.get_data() diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/lights.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/lights.py new file mode 100644 index 0000000..038373d --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/lights.py @@ -0,0 +1,28 @@ +from .connection import Connection +from .request import Request + + +def lights_read(con: Connection): + res = con.request(Request("lights", "read")) + return res.get_data() + + +def lights_write(con: Connection, light_state_list): + req = Request("lights", "write") + for state in light_state_list: + req.add_param(state) + con.request(req) + + +def lights_write_reset(con: Connection, light_names=None): + req = Request("lights", "write_reset") + + # reset all lights + if not light_names: + con.request(req) + return + + # reset specified lights + for light_name in light_names: + req.add_param(light_name) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/memory.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/memory.py new file mode 100644 index 0000000..cf3c01a --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/memory.py @@ -0,0 +1,31 @@ +from .connection import Connection +from .request import Request + + +def memory_write(con: Connection, dll_name: str, data: str, offset: int): + req = Request("memory", "write") + req.add_param(dll_name) + req.add_param(data) + req.add_param(offset) + con.request(req) + + +def memory_read(con: Connection, dll_name: str, offset: int, size: int): + req = Request("memory", "read") + req.add_param(dll_name) + req.add_param(offset) + req.add_param(size) + res = con.request(req) + return res.get_data()[0] + + +def memory_signature(con: Connection, dll_name: str, signature: str, + replacement: str, offset: int, usage: int): + req = Request("memory", "signature") + req.add_param(dll_name) + req.add_param(signature) + req.add_param(replacement) + req.add_param(offset) + req.add_param(usage) + res = con.request(req) + return res.get_data()[0] diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/rc4.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/rc4.py new file mode 100644 index 0000000..076ba7e --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/rc4.py @@ -0,0 +1,24 @@ + + +def rc4_ksa(key): + n = len(key) + j = 0 + s_box = list(range(256)) + for i in range(256): + j = (j + s_box[i] + key[i % n]) % 256 + s_box[i], s_box[j] = s_box[j], s_box[i] + return s_box + + +def rc4_prga(s_box): + i = 0 + j = 0 + while True: + i = (i + 1) % 256 + j = (j + s_box[i]) % 256 + s_box[i], s_box[j] = s_box[j], s_box[i] + yield s_box[(s_box[i] + s_box[j]) % 256] + + +def rc4(key): + return rc4_prga(rc4_ksa(key)) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/request.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/request.py new file mode 100644 index 0000000..d088c09 --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/request.py @@ -0,0 +1,63 @@ +import json +from threading import Lock + + +class Request: + + # global ID pool + GLOBAL_ID = 1 + GLOBAL_ID_LOCK = Lock() + + def __init__(self, module: str, function: str, req_id=None): + + # use global ID + with Request.GLOBAL_ID_LOCK: + if req_id is None: + + # reset at max value + Request.GLOBAL_ID += 1 + if Request.GLOBAL_ID >= 2 ** 64: + Request.GLOBAL_ID = 1 + + # get ID and increase by one + req_id = Request.GLOBAL_ID + + else: + + # carry over ID + Request.GLOBAL_ID = req_id + + # remember ID + self._id = req_id + + # build data dict + self.data = { + "id": req_id, + "module": module, + "function": function, + "params": [] + } + + @staticmethod + def from_json(request_json: str): + req = Request("", "", 0) + req.data = json.loads(request_json) + req._id = req.data["id"] + return req + + def get_id(self): + return self._id + + def to_json(self): + return json.dumps( + self.data, + ensure_ascii=False, + check_circular=False, + allow_nan=False, + indent=None, + separators=(",", ":"), + sort_keys=False + ) + + def add_param(self, param): + self.data["params"].append(param) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/response.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/response.py new file mode 100644 index 0000000..72214ff --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/response.py @@ -0,0 +1,30 @@ +import json + + +class Response: + + def __init__(self, response_json: str): + self._res = json.loads(response_json) + self._id = self._res["id"] + self._errors = self._res["errors"] + self._data = self._res["data"] + + def to_json(self): + return json.dumps( + self._res, + ensure_ascii=True, + check_circular=False, + allow_nan=False, + indent=2, + separators=(",", ": "), + sort_keys=False + ) + + def get_id(self): + return self._id + + def get_errors(self): + return self._errors + + def get_data(self): + return self._data diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceapi/touch.py b/misc/spicetools/spicetools-20200204/api/python/spiceapi/touch.py new file mode 100644 index 0000000..72afd7d --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceapi/touch.py @@ -0,0 +1,21 @@ +from .connection import Connection +from .request import Request + + +def touch_read(con: Connection): + res = con.request(Request("touch", "read")) + return res.get_data() + + +def touch_write(con: Connection, touch_points): + req = Request("touch", "write") + for state in touch_points: + req.add_param(state) + con.request(req) + + +def touch_write_reset(con: Connection, touch_ids): + req = Request("touch", "write_reset") + for touch_id in touch_ids: + req.add_param(touch_id) + con.request(req) diff --git a/misc/spicetools/spicetools-20200204/api/python/spiceremote.py b/misc/spicetools/spicetools-20200204/api/python/spiceremote.py new file mode 100755 index 0000000..cc58d2c --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/spiceremote.py @@ -0,0 +1,574 @@ +#!/usr/bin/env python3 + +from datetime import datetime +import tkinter as tk +import tkinter.ttk as ttk +import tkinter.messagebox +try: + import spiceapi +except ModuleNotFoundError: + raise RuntimeError("spiceapi module not installed") + + +NSEW = tk.N+tk.S+tk.E+tk.W + + +def api_action(func): + def wrapper(*args, **kwargs): + try: + func(*args, **kwargs) + except spiceapi.APIError as e: + tk.messagebox.showerror(title="API Error", message=str(e)) + except ValueError as e: + tk.messagebox.showerror(title="Input Error", message=str(e)) + except (ConnectionResetError, BrokenPipeError, RuntimeError) as e: + tk.messagebox.showerror(title="Connection Error", message=str(e)) + except AttributeError: + tk.messagebox.showerror(title="Error", message="No active connection.") + except BaseException as e: + tk.messagebox.showerror(title="Exception", message=str(e)) + return wrapper + + +class TextField(ttk.Frame): + """Simple text field with a scroll bar to the right.""" + + def __init__(self, parent, read_only=False, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.parent = parent + self.read_only = read_only + + # create scroll bar + self.scroll = ttk.Scrollbar(self) + self.scroll.pack(side=tk.RIGHT, fill=tk.Y) + + # create text field + self.contents = tk.Text(self, height=1, width=50, + foreground="black", background="#E8E6E0", + insertbackground="black") + self.contents.pack(side=tk.LEFT, expand=True, fill=tk.BOTH) + + # link scroll bar with text field + self.scroll.config(command=self.contents.yview) + self.contents.config(yscrollcommand=self.scroll.set) + + # read only setting + if self.read_only: + self.contents.config(state=tk.DISABLED) + + def get_text(self): + """Get the current text content as string. + + :return: text content + """ + return self.contents.get("1.0", tk.END+"-1c") + + def set_text(self, text): + """Set the current text content. + + :param text: text content + :return: None + """ + + # enable if read only + if self.read_only: + self.contents.config(state=tk.NORMAL) + + # delete old content and insert replacement text + self.contents.delete("1.0", tk.END) + self.contents.insert(tk.END, text) + + # disable if read only + if self.read_only: + self.contents.config(state=tk.DISABLED) + + +class ManualTab(ttk.Frame): + """Manual JSON request/response functinality.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.rowconfigure(1, weight=1) + self.columnconfigure(0, weight=1) + + # request text field + self.txt_request = TextField(self, read_only=False) + self.txt_request.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + self.txt_request.set_text( + '{\n' + ' "id": 1,\n' + ' "module": "coin",\n' + ' "function": "insert",\n' + ' "params": []\n' + '}\n' + ) + + # response text field + self.txt_response = TextField(self, read_only=True) + self.txt_response.grid(row=1, column=0, sticky=NSEW, padx=2, pady=2) + self.txt_response.contents.config(state=tk.DISABLED) + + # send button + self.btn_send = ttk.Button(self, text="Send", command=self.action_send) + self.btn_send.grid(row=2, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + def action_send(self): + """Gets called when the send button is pressed.""" + + # check connection + if self.app.connection: + + # send request and get response + self.txt_response.set_text("Sending...") + try: + + # build request + request = spiceapi.Request.from_json(self.txt_request.get_text()) + + # send request and get response, measure time + t1 = datetime.now() + response = self.app.connection.request(request) + t2 = datetime.now() + + # set response text + self.txt_response.set_text("{}\n\nElapsed time: {} seconds".format( + response.to_json(), + (t2 - t1).total_seconds()) + ) + + except spiceapi.APIError as e: + self.txt_response.set_text(f"Server returned error:\n{e}") + except spiceapi.MalformedRequestException: + self.txt_response.set_text("Malformed request detected.") + except (ConnectionResetError, BrokenPipeError, RuntimeError) as e: + self.txt_response.set_text("Error sending request: " + str(e)) + except BaseException as e: + self.txt_response.set_text("General Exception: " + str(e)) + + else: + + # print error + self.txt_response.set_text("No active connection.") + + +class ControlTab(ttk.Frame): + """Main control tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + + # scale grid + self.columnconfigure(0, weight=1) + + # card + self.card = ttk.Frame(self, padding=(8, 8, 8, 8)) + self.card.grid(row=0, column=0, sticky=tk.E+tk.W) + self.card.columnconfigure(0, weight=1) + self.card.columnconfigure(1, weight=1) + self.card_lbl = ttk.Label(self.card, text="Card") + self.card_lbl.grid(row=0, columnspan=2) + self.card_entry = ttk.Entry(self.card) + self.card_entry.insert(tk.END, "E004000000000000") + self.card_entry.grid(row=1, columnspan=2, sticky=NSEW, padx=2, pady=2) + self.card_insert_p1 = ttk.Button(self.card, text="Insert P1", command=self.action_insert_p1) + self.card_insert_p1.grid(row=2, column=0, sticky=NSEW, padx=2, pady=2) + self.card_insert_p2 = ttk.Button(self.card, text="Insert P2", command=self.action_insert_p2) + self.card_insert_p2.grid(row=2, column=1, sticky=NSEW, padx=2, pady=2) + + # coin + self.coin = ttk.Frame(self, padding=(8, 8, 8, 8)) + self.coin.grid(row=1, column=0, sticky=tk.E+tk.W) + self.coin.columnconfigure(0, weight=1) + self.coin.columnconfigure(1, weight=1) + self.coin.columnconfigure(2, weight=1) + self.coin_lbl = ttk.Label(self.coin, text="Coins") + self.coin_lbl.grid(row=0, columnspan=3) + self.coin_entry = ttk.Entry(self.coin) + self.coin_entry.insert(tk.END, "1") + self.coin_entry.grid(row=1, columnspan=3, sticky=NSEW, padx=2, pady=2) + self.coin_set = ttk.Button(self.coin, text="Set to Amount", command=self.action_coin_set) + self.coin_set.grid(row=2, column=0, sticky=NSEW, padx=2, pady=2) + self.coin_insert = ttk.Button(self.coin, text="Insert Amount", command=self.action_coin_insert) + self.coin_insert.grid(row=2, column=1, sticky=NSEW, padx=2, pady=2) + self.coin_insert = ttk.Button(self.coin, text="Insert Single", command=self.action_coin_insert_single) + self.coin_insert.grid(row=2, column=2, sticky=NSEW, padx=2, pady=2) + + @api_action + def action_insert(self, unit: int): + spiceapi.card_insert(self.app.connection, unit, self.card_entry.get()) + + @api_action + def action_insert_p1(self): + return self.action_insert(0) + + @api_action + def action_insert_p2(self): + return self.action_insert(1) + + @api_action + def action_coin_set(self): + spiceapi.coin_set(self.app.connection, int(self.coin_entry.get())) + + @api_action + def action_coin_insert(self): + spiceapi.coin_insert(self.app.connection, int(self.coin_entry.get())) + + @api_action + def action_coin_insert_single(self): + spiceapi.coin_insert(self.app.connection) + + +class InfoTab(ttk.Frame): + """The info tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # info text field + self.txt_info = TextField(self, read_only=True) + self.txt_info.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get information + avs = spiceapi.info_avs(self.app.connection) + launcher = spiceapi.info_launcher(self.app.connection) + memory = spiceapi.info_memory(self.app.connection) + + # build text + avs_text = "" + for k, v in avs.items(): + avs_text += f"{k}: {v}\n" + launcher_text = "" + for k, v in launcher.items(): + if isinstance(v, list): + launcher_text += f"{k}:\n" + for i in v: + launcher_text += f" {i}\n" + else: + launcher_text += f"{k}: {v}\n" + memory_text = "" + for k, v in memory.items(): + memory_text += f"{k}: {v}\n" + + # set text + self.txt_info.set_text( + f"AVS:\n{avs_text}\n" + f"Launcher:\n{launcher_text}\n" + f"Memory:\n{memory_text}" + ) + + +class ButtonsTab(ttk.Frame): + """The buttons tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # button text field + self.txt_buttons = TextField(self, read_only=True) + self.txt_buttons.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.buttons_read(self.app.connection) + + # build text + txt = "" + for name, velocity, active in states: + state = "on" if velocity > 0 else "off" + active_txt = "" if active else " (inactive)" + txt += f"{name}: {state}{active_txt}\n" + if len(states) == 0: + txt = "No buttons available." + + # set text + self.txt_buttons.set_text(txt) + + +class AnalogsTab(ttk.Frame): + """The analogs tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # button text field + self.txt_analogs = TextField(self, read_only=True) + self.txt_analogs.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.analogs_read(self.app.connection) + + # build text + txt = "" + for name, value, active in states: + value_txt = round(value, 2) + active_txt = "" if active else " (inactive)" + txt += f"{name}: {value_txt}{active_txt}\n" + if len(states) == 0: + txt = "No analogs available." + + # set text + self.txt_analogs.set_text(txt) + + +class LightsTab(ttk.Frame): + """The lights tab.""" + + def __init__(self, app, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.app = app + self.parent = parent + self.rowconfigure(0, weight=1) + self.columnconfigure(0, weight=1) + + # light text field + self.txt_lights = TextField(self, read_only=True) + self.txt_lights.grid(row=0, column=0, sticky=NSEW, padx=2, pady=2) + + # refresh button + self.btn_refresh = ttk.Button(self, text="Refresh", command=self.action_refresh) + self.btn_refresh.grid(row=1, column=0, sticky=tk.W+tk.E, padx=2, pady=2) + + @api_action + def action_refresh(self): + + # get states + states = spiceapi.lights_read(self.app.connection) + + # build text + txt = "" + for name, value, active in states: + value_txt = round(value, 2) + active_txt = "" if active else " (inactive)" + txt += f"{name}: {value_txt}{active_txt}\n" + if len(states) == 0: + txt = "No lights available." + + # set text + self.txt_lights.set_text(txt) + + +class MainApp(ttk.Frame): + """The main application frame.""" + + def __init__(self, parent, **kwargs): + + # init frame + ttk.Frame.__init__(self, parent, **kwargs) + self.parent = parent + self.connection = None + + self.tabs = ttk.Notebook(self) + self.tab_control = ControlTab(self, self.tabs) + self.tabs.add(self.tab_control, text="Control") + self.tab_info = InfoTab(self, self.tabs) + self.tabs.add(self.tab_info, text="Info") + self.tab_buttons = ButtonsTab(self, self.tabs) + self.tabs.add(self.tab_buttons, text="Buttons") + self.tab_analogs = AnalogsTab(self, self.tabs) + self.tabs.add(self.tab_analogs, text="Analogs") + self.tab_lights = LightsTab(self, self.tabs) + self.tabs.add(self.tab_lights, text="Lights") + self.tab_manual = ManualTab(self, self.tabs) + self.tabs.add(self.tab_manual, text="Manual") + self.tabs.pack(expand=True, fill=tk.BOTH) + + # connection panel + self.frm_connection = ttk.Frame(self) + + # host: [field] + self.lbl_host = ttk.Label(self.frm_connection, text="Host:") + self.txt_host = ttk.Entry(self.frm_connection, width=15) + self.lbl_host.columnconfigure(0, weight=1) + self.txt_host.columnconfigure(1, weight=1) + self.txt_host.insert(tk.END, "localhost") + + # port: [field] + self.lbl_port = ttk.Label(self.frm_connection, text="Port:") + self.txt_port = ttk.Entry(self.frm_connection, width=5) + self.lbl_port.columnconfigure(2, weight=1) + self.txt_port.columnconfigure(3, weight=1) + self.txt_port.insert(tk.END, "1337") + + # pass: [field] + self.lbl_pw = ttk.Label(self.frm_connection, text="Pass:") + self.txt_pw = ttk.Entry(self.frm_connection, width=10) + self.lbl_pw.columnconfigure(4, weight=1) + self.txt_pw.columnconfigure(5, weight=1) + self.txt_pw.insert(tk.END, "debug") + + # grid setup + self.lbl_host.grid(row=0, column=0, sticky=tk.W+tk.E, padx=2) + self.txt_host.grid(row=0, column=1, sticky=tk.W+tk.E, padx=2) + self.lbl_port.grid(row=0, column=2, sticky=tk.W+tk.E, padx=2) + self.txt_port.grid(row=0, column=3, sticky=tk.W+tk.E, padx=2) + self.lbl_pw.grid(row=0, column=4, sticky=tk.W+tk.E, padx=2) + self.txt_pw.grid(row=0, column=5, sticky=tk.W+tk.E, padx=2) + self.frm_connection.pack(fill=tk.NONE, pady=2) + + # send/connect/disconnect buttons panel + self.frm_connect = ttk.Frame(self) + + # connect button + self.btn_connect = ttk.Button( + self.frm_connect, + text="Connect", + command=self.action_connect, + width=10) + + # disconnect button + self.btn_disconnect = ttk.Button( + self.frm_connect, + text="Disconnect", + command=self.action_disconnect, + width=10) + + # kill button + self.btn_kill = ttk.Button( + self.frm_connect, + text="Kill", + command=self.action_kill, + width=10) + + # restart button + self.btn_restart = ttk.Button( + self.frm_connect, + text="Restart", + command=self.action_restart, + width=10) + + # grid setup + self.btn_connect.grid(row=0, column=1, sticky=tk.W+tk.E, padx=2) + self.btn_disconnect.grid(row=0, column=2, sticky=tk.W+tk.E, padx=2) + self.btn_kill.grid(row=0, column=3, sticky=tk.W+tk.E, padx=2) + self.btn_restart.grid(row=0, column=4, sticky=tk.W+tk.E, padx=2) + self.frm_connect.pack(fill=tk.NONE, pady=2) + + def action_connect(self): + """Gets called when the connect button is pressed.""" + + # retrieve connection info + host = self.txt_host.get() + port = self.txt_port.get() + password = self.txt_pw.get() + + # check input + if not port.isdigit(): + tk.messagebox.showerror("Connection Error", f"Port '{port}' is not a valid number.") + return + + # create a new connection + try: + self.connection = spiceapi.Connection(host=host, port=int(port), password=password) + except OSError as e: + tk.messagebox.showerror("Connection Error", "Failed to connect: " + str(e)) + return + + # print success + tk.messagebox.showinfo("Success", "Connected.") + + def action_disconnect(self): + """Gets called when the disconnect button is pressed.""" + + # check connection + if self.connection: + + # close connection + self.connection.close() + self.connection = None + tk.messagebox.showinfo("Success", "Closed connection.") + + else: + + # print error + tk.messagebox.showinfo("Error", "No active connection.") + + def action_kill(self): + """Gets called when the kill button is pressed.""" + + # check connection + if self.connection: + spiceapi.control_exit(self.connection) + self.connection = None + else: + tk.messagebox.showinfo("Error", "No active connection.") + + def action_restart(self): + """Gets called when the restart button is pressed.""" + + # check connection + if self.connection: + spiceapi.control_restart(self.connection) + self.connection = None + else: + tk.messagebox.showinfo("Error", "No active connection.") + + +if __name__ == "__main__": + + # create root + root = tk.Tk() + root.title("SpiceRemote") + root.geometry("500x300") + + # set theme + preferred_theme = "clam" + s = ttk.Style(root) + if preferred_theme in s.theme_names(): + s.theme_use(preferred_theme) + + # add application + MainApp(root).pack(side=tk.TOP, fill=tk.BOTH, expand=True) + + # run root + root.mainloop() diff --git a/misc/spicetools/spicetools-20200204/api/python/stringreplace.py b/misc/spicetools/spicetools-20200204/api/python/stringreplace.py new file mode 100755 index 0000000..c3249ff --- /dev/null +++ b/misc/spicetools/spicetools-20200204/api/python/stringreplace.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +import binascii +import spiceapi +import argparse + + +def patch_string(con, dll_name: str, find: str, replace: str): + while True: + try: + + # replace first result + address = spiceapi.memory_signature( + con, dll_name, + binascii.hexlify(bytes(find, "utf-8")).decode("utf-8"), + binascii.hexlify(bytes(replace, "utf-8")).decode("utf-8"), + 0, 0) + + # print findings + print("{}: {} = {} => {}".format( + dll_name, + hex(address), + find, + replace)) + + except spiceapi.APIError: + + # this happens when the signature wasn't found anymore + break + + +def main(): + + # parse args + parser = argparse.ArgumentParser(description="SpiceAPI string replacer") + parser.add_argument("host", type=str, help="The host to connect to") + parser.add_argument("port", type=int, help="The port the host is using") + parser.add_argument("password", type=str, help="The pass the host is using") + parser.add_argument("dll", type=str, help="The DLL to patch") + parser.add_argument("find", type=str, help="The string to find") + parser.add_argument("replace", type=str, help="The string to replace with") + args = parser.parse_args() + + # connect + con = spiceapi.Connection(host=args.host, port=args.port, password=args.password) + + # replace the string + patch_string(con, args.dll, args.find, args.replace) + + +if __name__ == "__main__": + main() diff --git a/misc/spicetools/spicetools-20200204/spice.exe b/misc/spicetools/spicetools-20200204/spice.exe new file mode 100755 index 0000000..501cad6 Binary files /dev/null and b/misc/spicetools/spicetools-20200204/spice.exe differ diff --git a/misc/spicetools/spicetools-20200204/spice64.exe b/misc/spicetools/spicetools-20200204/spice64.exe new file mode 100755 index 0000000..48eee9a Binary files /dev/null and b/misc/spicetools/spicetools-20200204/spice64.exe differ diff --git a/misc/spicetools/spicetools-20200204/spicecfg.exe b/misc/spicetools/spicetools-20200204/spicecfg.exe new file mode 100755 index 0000000..fcf246f Binary files /dev/null and b/misc/spicetools/spicetools-20200204/spicecfg.exe differ diff --git a/misc/spicetools/spicetools-20200204/src/spicetools-master.tar.gz b/misc/spicetools/spicetools-20200204/src/spicetools-master.tar.gz new file mode 100644 index 0000000..73c4fdd Binary files /dev/null and b/misc/spicetools/spicetools-20200204/src/spicetools-master.tar.gz differ diff --git a/popn/packgcz_pop/cygwin1.dll b/popn/packgcz_pop/cygwin1.dll new file mode 100644 index 0000000..f1a22fe Binary files /dev/null and b/popn/packgcz_pop/cygwin1.dll differ diff --git a/popn/packgcz_pop/packgcz.exe b/popn/packgcz_pop/packgcz.exe new file mode 100644 index 0000000..442bf01 Binary files /dev/null and b/popn/packgcz_pop/packgcz.exe differ