aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwhiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-06-15 21:28:52 +0000
committerwhiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-06-15 21:28:52 +0000
commit115255f6a3c2be422680710b5d6ba4226c3383a6 (patch)
tree3bbe81786e12808220efa589adb799e0412d20a2
parentcf141f470e4cb45b8c886e1536846a8254cdd302 (diff)
downloadusdx-115255f6a3c2be422680710b5d6ba4226c3383a6.tar.gz
usdx-115255f6a3c2be422680710b5d6ba4226c3383a6.tar.xz
usdx-115255f6a3c2be422680710b5d6ba4226c3383a6.zip
merged trunk r2528 into us_maker branch
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@2530 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--us_maker_edition/ChangeLog.txt18
-rw-r--r--us_maker_edition/Makefile.in11
-rw-r--r--us_maker_edition/RELEASEBLOCKERS.txt23
-rwxr-xr-xus_maker_edition/configure219
-rw-r--r--us_maker_edition/configure.ac12
-rw-r--r--us_maker_edition/dists/gentoo/readme.txt2
-rw-r--r--us_maker_edition/dists/gentoo/ultrastardx-1.1.0.ebuild (renamed from us_maker_edition/dists/gentoo/ultrastardx-1.1_beta.ebuild)0
-rw-r--r--us_maker_edition/game/languages/Catalan.ini222
-rw-r--r--us_maker_edition/game/languages/Czech.ini441
-rw-r--r--us_maker_edition/game/languages/Danish.ini442
-rw-r--r--us_maker_edition/game/languages/Dutch.ini219
-rw-r--r--us_maker_edition/game/languages/English.ini18
-rw-r--r--us_maker_edition/game/languages/Euskara.ini96
-rw-r--r--us_maker_edition/game/languages/Finnish.ini794
-rw-r--r--us_maker_edition/game/languages/French.ini260
-rw-r--r--us_maker_edition/game/languages/German.ini29
-rw-r--r--us_maker_edition/game/languages/Greek.ini226
-rw-r--r--us_maker_edition/game/languages/Hungarian.ini440
-rw-r--r--us_maker_edition/game/languages/Icelandic.ini873
-rw-r--r--us_maker_edition/game/languages/Italian.ini219
-rw-r--r--us_maker_edition/game/languages/Japanese.ini836
-rw-r--r--us_maker_edition/game/languages/Language.new440
-rw-r--r--us_maker_edition/game/languages/Luxembourgish.ini843
-rw-r--r--us_maker_edition/game/languages/Norwegian.ini (renamed from us_maker_edition/game/languages/old/Norwegian.ini)346
-rw-r--r--us_maker_edition/game/languages/Portuguese.ini187
-rw-r--r--us_maker_edition/game/languages/Serbian.ini (renamed from us_maker_edition/game/languages/old/Serbian.ini)172
-rw-r--r--us_maker_edition/game/languages/Spanish.ini218
-rw-r--r--us_maker_edition/game/languages/Swedish.ini219
-rw-r--r--us_maker_edition/game/languages/old/Danish.ini297
-rw-r--r--us_maker_edition/game/languages/old/French.ini310
-rw-r--r--us_maker_edition/game/languages/old/Polish.ini304
-rw-r--r--us_maker_edition/game/languages/old/Slovak.ini301
-rw-r--r--us_maker_edition/game/languages/old/Slovenian.ini322
-rw-r--r--us_maker_edition/game/languages/old/readme.txt286
-rw-r--r--us_maker_edition/game/languages/readme.txt99
-rwxr-xr-xus_maker_edition/game/languages/update.py140
-rw-r--r--us_maker_edition/game/themes/Deluxe.ini4
-rw-r--r--us_maker_edition/game/themes/Verdure.ini8994
-rw-r--r--us_maker_edition/game/themes/Verdure/Drippin.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/Drippin_Low.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/Drippin_Static.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/Springtime.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/Springtime_Low.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/Springtime_Static.ini241
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg-video]drippin.avibin0 -> 1848682 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg-video]drippin_low.avibin0 -> 697310 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg-video]springtime.avibin0 -> 1091544 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg-video]springtime_low.avibin0 -> 352532 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg]drippin.jpgbin0 -> 63145 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[bg]springtime.jpgbin0 -> 30597 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]13.pngbin0 -> 1546 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]alt.pngbin0 -> 1513 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]az.pngbin0 -> 1496 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]enter.pngbin0 -> 2176 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]esc.pngbin0 -> 1508 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]j.pngbin0 -> 1225 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]m.pngbin0 -> 1256 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]navi.pngbin0 -> 4072 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[button]p.pngbin0 -> 1231 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[effect]goldenNoteStar.pngbin0 -> 24444 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[effect]perfectNoteStar.pngbin0 -> 40783 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[helper]buttonFade.pngbin0 -> 337 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[helper]rectangle.pngbin0 -> 208 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]cd.pngbin0 -> 777 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]error.pngbin0 -> 694 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]main.pngbin0 -> 803 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]options.pngbin0 -> 954 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]party.pngbin0 -> 694 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]question.pngbin0 -> 747 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]score.pngbin0 -> 794 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]song_menu.pngbin0 -> 724 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]song_search.pngbin0 -> 960 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]song_video.pngbin0 -> 864 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]stats.pngbin0 -> 676 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[icon]video.pngbin0 -> 3002 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]cursor.pngbin0 -> 5635 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]cursor_pressed.pngbin0 -> 4086 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]dialog_background.pngbin0 -> 1602 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]select_arrow_left.pngbin0 -> 485 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]select_arrow_right.pngbin0 -> 485 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[interface]selectbg_search.pngbin0 -> 477 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]button.pngbin0 -> 297 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]button_left.pngbin0 -> 759 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]button_right.pngbin0 -> 841 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]buttonf.jpgbin0 -> 17717 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]logo.pngbin0 -> 44436 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]mainBar.pngbin0 -> 249 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]playerNumberBox.pngbin0 -> 550 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]selectbg.pngbin0 -> 377 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]songCover.jpgbin0 -> 15045 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]songSelection1.pngbin0 -> 1033 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]songSelection2.pngbin0 -> 1049 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]songSelection3.pngbin0 -> 1887 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[main]textbg.pngbin0 -> 1750 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[menu]PopUpFg.pngbin0 -> 912 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[menu]jumpToBg.pngbin0 -> 18921 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[menu]songMenuBg.pngbin0 -> 18529 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[menu]songMenuSelectBg.pngbin0 -> 4707 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]Joker.pngbin0 -> 2084 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]playerButton.pngbin0 -> 755 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]playerTeamButton.pngbin0 -> 579 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]playerselectbg.pngbin0 -> 315 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]pointer.pngbin0 -> 362 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]roundBG1.pngbin0 -> 523 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]roundBG2.pngbin0 -> 375 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]roundBG3.pngbin0 -> 545 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]roundBG4.pngbin0 -> 511 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]roundTeamButton.pngbin0 -> 603 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]scoreBG1.pngbin0 -> 713 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]scoreBG2.pngbin0 -> 407 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]scoreDecoration.pngbin0 -> 9140 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]teamPoints.pngbin0 -> 1150 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]winDecoration.pngbin0 -> 4292 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]winTeamButton1.pngbin0 -> 712 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]winTeamButton2.pngbin0 -> 603 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[party]winTeamButton3.pngbin0 -> 560 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]Line.pngbin0 -> 2825 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]bar_box_dark.pngbin0 -> 496 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]bar_box_light.pngbin0 -> 490 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]bar_box_lightest.pngbin0 -> 484 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]box.pngbin0 -> 307 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]endcap.pngbin0 -> 2275 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]glass_box.pngbin0 -> 3581 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]glassbackground.pngbin0 -> 1515 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level.pngbin0 -> 266 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]levelRound.pngbin0 -> 524 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_dark.pngbin0 -> 213 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_dark_round.pngbin0 -> 410 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_light.pngbin0 -> 209 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_light_round.pngbin0 -> 445 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_lightest.pngbin0 -> 209 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]level_lightest_round.pngbin0 -> 467 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_0.pngbin0 -> 7412 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_1.pngbin0 -> 8206 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_2.pngbin0 -> 9681 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_3.pngbin0 -> 8363 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_4.pngbin0 -> 8231 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_5.pngbin0 -> 8720 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_6.pngbin0 -> 8162 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[score]rating_7.pngbin0 -> 9573 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player1]lyric_active.pngbin0 -> 884 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player1]lyric_inactive.pngbin0 -> 862 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player2]lyric_active.pngbin0 -> 1034 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player2]lyric_inactive.pngbin0 -> 948 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player3]lyric_active.pngbin0 -> 988 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player3]lyric_inactive.pngbin0 -> 911 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player4]lyric_active.pngbin0 -> 966 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player4]lyric_inactive.pngbin0 -> 861 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player5]lyric_active.pngbin0 -> 959 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player5]lyric_inactive.pngbin0 -> 877 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player6]lyric_active.pngbin0 -> 960 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing.player6]lyric_inactive.pngbin0 -> 872 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]LyricsBall.pngbin0 -> 360 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]lineBonusPopUp.pngbin0 -> 1344 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]lyricsHelpBar.pngbin0 -> 206 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesBgLeft.pngbin0 -> 292 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesBgMid.pngbin0 -> 144 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesBgRight.pngbin0 -> 280 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesLeft.pngbin0 -> 671 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesMid.pngbin0 -> 236 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesPlainLeft.pngbin0 -> 681 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesPlainMid.pngbin0 -> 151 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesPlainRight.pngbin0 -> 690 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]notesRight.pngbin0 -> 728 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]p.pngbin0 -> 637 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]pause.pngbin0 -> 13261 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]scoreBg.jpgbin0 -> 1799 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]scoreBg.pngbin0 -> 1705 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]singBarBack.pngbin0 -> 203 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]singBarBar.jpgbin0 -> 371 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]singBarBar.pngbin0 -> 183 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]singBarFront.pngbin0 -> 199 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]textBar.pngbin0 -> 9671 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]timeBar.jpgbin0 -> 317 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[sing]timeBarBG.pngbin0 -> 4121 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[special]bar1.pngbin0 -> 600 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[special]bar12.pngbin0 -> 381 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[special]bar2.pngbin0 -> 328 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[special]bar22.pngbin0 -> 410 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[special]bg_fade.pngbin0 -> 32518 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[stat]detailBG1.pngbin0 -> 587 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[stat]mainBG1.pngbin0 -> 569 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[stat]mainBG2.pngbin0 -> 1427 bytes
-rw-r--r--us_maker_edition/game/themes/Verdure/[stat]mainBG3.pngbin0 -> 435 bytes
-rw-r--r--us_maker_edition/installer/UAC.nsh191
-rw-r--r--us_maker_edition/installer/UltraStar Deluxe.nsi495
-rw-r--r--us_maker_edition/installer/dependencies/plugins/UAC.dllbin0 -> 17408 bytes
-rw-r--r--us_maker_edition/installer/languages/Polish.nsh131
-rw-r--r--us_maker_edition/installer/settings/files_main_install.nsh14
-rw-r--r--us_maker_edition/installer/settings/settings-1031.ini2
-rw-r--r--us_maker_edition/installer/settings/settings-1033.ini6
-rw-r--r--us_maker_edition/installer/settings/settings-1038.ini6
-rw-r--r--us_maker_edition/installer/settings/settings-1045.ini161
-rw-r--r--us_maker_edition/installer/settings/variables.nsh2
-rw-r--r--us_maker_edition/src/base/UConfig.pas2
-rw-r--r--us_maker_edition/src/base/UDraw.pas3
-rw-r--r--us_maker_edition/src/base/UEditorLyrics.pas1
-rw-r--r--us_maker_edition/src/base/UFiles.pas4
-rw-r--r--us_maker_edition/src/base/UIni.pas77
-rw-r--r--us_maker_edition/src/base/UMain.pas49
-rw-r--r--us_maker_edition/src/base/UMusic.pas75
-rw-r--r--us_maker_edition/src/base/UNote.pas62
-rw-r--r--us_maker_edition/src/base/UPathUtils.pas5
-rw-r--r--us_maker_edition/src/base/UPlatform.pas1
-rw-r--r--us_maker_edition/src/base/UPlatformMacOSX.pas34
-rw-r--r--us_maker_edition/src/base/URecord.pas120
-rw-r--r--us_maker_edition/src/base/USong.pas34
-rw-r--r--us_maker_edition/src/config-darwin.inc5
-rw-r--r--us_maker_edition/src/config-win.inc14
-rw-r--r--us_maker_edition/src/config.inc.in5
-rw-r--r--us_maker_edition/src/lib/ffmpeg/avcodec.pas59
-rw-r--r--us_maker_edition/src/lib/ffmpeg/avformat.pas18
-rw-r--r--us_maker_edition/src/lib/ffmpeg/avio.pas10
-rw-r--r--us_maker_edition/src/lib/ffmpeg/avutil.pas138
-rw-r--r--us_maker_edition/src/lib/ffmpeg/error.pas113
-rw-r--r--us_maker_edition/src/lib/ffmpeg/mathematics.pas10
-rw-r--r--us_maker_edition/src/lib/ffmpeg/opt.pas6
-rw-r--r--us_maker_edition/src/lib/ffmpeg/rational.pas10
-rw-r--r--us_maker_edition/src/lib/ffmpeg/swscale.pas10
-rw-r--r--us_maker_edition/src/lib/pcre/pcre.pas17
-rw-r--r--us_maker_edition/src/media/UAudioDecoder_FFmpeg.pas551
-rw-r--r--us_maker_edition/src/media/UAudioInput_Bass.pas7
-rw-r--r--us_maker_edition/src/media/UMediaCore_FFmpeg.pas75
-rw-r--r--us_maker_edition/src/media/UMedia_dummy.pas126
-rw-r--r--us_maker_edition/src/media/UVideo.pas521
-rw-r--r--us_maker_edition/src/media/UVisualizer.pas129
-rw-r--r--us_maker_edition/src/menu/UDisplay.pas83
-rw-r--r--us_maker_edition/src/menu/UMenuBackgroundVideo.pas6
-rw-r--r--us_maker_edition/src/screens/UScreenEditSub.pas167
-rw-r--r--us_maker_edition/src/screens/UScreenOptionsRecord.pas32
-rw-r--r--us_maker_edition/src/screens/UScreenOptionsThemes.pas8
-rw-r--r--us_maker_edition/src/screens/UScreenSing.pas134
-rw-r--r--us_maker_edition/src/screens/UScreenSong.pas131
233 files changed, 18713 insertions, 5475 deletions
diff --git a/us_maker_edition/ChangeLog.txt b/us_maker_edition/ChangeLog.txt
index d6987489..11d6816f 100644
--- a/us_maker_edition/ChangeLog.txt
+++ b/us_maker_edition/ChangeLog.txt
@@ -7,7 +7,7 @@ platform
upd: platform independent code base
upd: endianness independent code base
add: Linux and FreeBSD support (x86 and x86_64)
-add: Max OS X support (Intel 10.5/10.6)
+add: Mac OS X support (Intel 10.5/10.6)
--------------
audio
@@ -65,6 +65,9 @@ add: Unicode support: All "printable" characters should work with the input fiel
add: resizable window
add: toggle between fullscreen and windowed mode with ALT+Return (Linux and FreeBSD only)
fix: mapped same function to Return and Enter (numpad)
+add: video preview during song selection
+add: toggle displayed time with 'T' key between current position, remaining or total playback time
+add: mic configuration assistance: error messages are displayed if multiple or no mics were assigned to a player.
--------------
internal
@@ -82,16 +85,25 @@ fix: solved some bugs/crashes in Midi/Kar converter
upd: Vista/Win7 conform: configuration files is saved in the user directory. Running USDX from CD/DVD should also be possible from now on.
upd: cover thumbnails are saved in an SQLite database
-> more reliable than the old solution; small performance loss on start
+fix: cursor freeze after Alt-Tab fixed through change of SDL.dll
+fix: better detection of ending at songs/videos while using FFmpeg
+upd: windows: user data will be placed in installation directory if user has write permissions, else it will be stored in APPDATA
--------------
song files
--------------
upd: UTF8 support
upd: #Encoding tag
- - CP1250: Central/Eastern european encoding
- - CP1252: Western european encoding; was used as default before 1.1
+ - CP1250: Central/Eastern european encoding (should not be used for new files)
+ - CP1252: Western european encoding; was used as default before 1.1 (should not be used for new files)
- Locale: uses system encoding (should not be used for new files!)
- UTF8: text file is encoded in UTF8 (recommended)
+upd: select default encoding (if #Encoding tag is missing) via the "Encoding" option in config.ini.
+ - Possible values:
+ - "Auto" (Default), "UTF8",
+ - "CP1252" (USDX<1.1 default), "CP1250" (old US default), "Locale" (System encoding)
+ - IMPORTANT:
+ - "CP1252", "CP1250" and "Locale" are for backward compatibility only, new files should always be encoded in UTF-8 with BOM
upd: support for UTF8 BOM (new standard in Ultrastar Deluxe)
upd: #Year tag is read and saved
fix: does not crash any longer if there is no linebreak in lyrics file
diff --git a/us_maker_edition/Makefile.in b/us_maker_edition/Makefile.in
index 1f36c8e7..237565f5 100644
--- a/us_maker_edition/Makefile.in
+++ b/us_maker_edition/Makefile.in
@@ -358,6 +358,8 @@ OTOOL := /usr/bin/otool
INSTALL_NAME_TOOL := /usr/bin/install_name_tool
# hdiutil: Mac OS X disk image tool
HDIUTIL := /usr/bin/hdiutil
+# finkLibDir := path for libraries installed using fink
+finkLibDir := /sw/lib
#################################################
# Mac OS X app-bundle
@@ -425,16 +427,19 @@ endef
# work on the secondary dylibs from ffmpeg
# libavcodec references all tertiary libraries of the ffmpeg libs
- $(foreach dylib,$(shell $(OTOOL) -L /sw/lib/libavcodec.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
+ $(foreach dylib,$(shell $(OTOOL) -L $(finkLibDir)/libavcodec.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
# same procedure in libfaac. it gets libgnugetopt
- $(foreach dylib,$(shell $(OTOOL) -L /sw/lib/libfaac.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
+ $(foreach dylib,$(shell $(OTOOL) -L $(finkLibDir)/libfaac.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
# same procedure for tertiary libs in SDL_image
- $(foreach dylib,$(shell $(OTOOL) -L /sw/lib/libSDL_image.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
+ $(foreach dylib,$(shell $(OTOOL) -L $(finkLibDir)/libSDL_image.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
# X11 libs as well, because users may not have installed it on 10.4
$(foreach dylib,$(shell $(OTOOL) -L /usr/X11R6/lib/libX11.dylib | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
+# libpcre.dylib must be installed extra, since it is not linked to the executable but opened using dlopen
+ $(shell $(INSTALL) -m 755 $(finkLibDir)/libpcre.dylib $(macosx_bundle_path)/MacOS)
+
# final messages
@echo "Standalone Mac OS X application created."
@echo ""
diff --git a/us_maker_edition/RELEASEBLOCKERS.txt b/us_maker_edition/RELEASEBLOCKERS.txt
index bcac2887..a2006b91 100644
--- a/us_maker_edition/RELEASEBLOCKERS.txt
+++ b/us_maker_edition/RELEASEBLOCKERS.txt
@@ -1,32 +1,11 @@
Blockers for the outstanding 1.1 release
if you want to help us then start at this tasks
-Missing party mode (contact whiteshark to get further information on how to help)
-- finishing new one (partymode branch)
- pro: should be easy to port to all supported platforms
- it should be easy to extended w/ lua support
- basic plugin support, not only party modes
- con: work!
- modes has to be adapted
- work!
-- merge the old one
- pro: less work
- it is known to work and there are many existing modis
- con: may be difficult to port to other platforms than windows
-
-Unicode support (contact tobigun to get further information on how to help)
-- should work now but needs some testing
-- report bugs specific to the unicode branch (cross-check the trunk) at
- our forum (http://ultrastardeluxe.xtremeweb-hosting.net/)
-
-Microfone playback
+Microfone playback (still experimental, will not be fixed in 1.1)
- buffers have to be adjusted
- this may be done automatically (prefer this!)
- or at least the user has to manually adjust this
- there may be other problems as due to the missing buffer adjustment there were no extensive tests
-Theme changes
-- there are some problems w/ theme-object positions mainly in the option-screens
-
There are also assembla tickets that need to be fixed
http://www.assembla.com/spaces/usdx/milestones/26192-UltraStar-Deluxe-1-1-Release \ No newline at end of file
diff --git a/us_maker_edition/configure b/us_maker_edition/configure
index 29cfe233..38945e6d 100755
--- a/us_maker_edition/configure
+++ b/us_maker_edition/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for ultrastardx 1.1-beta.
+# Generated by GNU Autoconf 2.65 for ultrastardx 1.1-RC.
#
# Report bugs to <http://sourceforge.net/tracker/?group_id=191560&atid=937872>.
#
@@ -553,8 +553,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ultrastardx'
PACKAGE_TARNAME='ultrastardx'
-PACKAGE_VERSION='1.1-beta'
-PACKAGE_STRING='ultrastardx 1.1-beta'
+PACKAGE_VERSION='1.1-RC'
+PACKAGE_STRING='ultrastardx 1.1-RC'
PACKAGE_BUGREPORT='http://sourceforge.net/tracker/?group_id=191560&atid=937872'
PACKAGE_URL=''
@@ -562,6 +562,13 @@ ac_unique_file="src/ultrastardx.dpr"
ac_subst_vars='LTLIBOBJS
LIBOBJS
DEFINE_HAVE_PORTMIXER
+libpcre_LIBDIR
+DEFINE_HAVE_LIBPCRE
+libpcre_VERSION_INT
+libpcre_VERSION_RELEASE
+libpcre_VERSION_MINOR
+libpcre_VERSION_MAJOR
+libpcre_VERSION
DEFINE_HAVE_PORTAUDIO
portaudio_VERSION_INT
portaudio_VERSION_RELEASE
@@ -738,7 +745,9 @@ libswscale_VERSION
libprojectM_VERSION
libprojectM_INCLUDEDIR
libprojectM_DATADIR
-portaudio_VERSION'
+portaudio_VERSION
+libpcre_VERSION
+libpcre_LIBDIR'
# Initialize some variables set by options.
@@ -1280,7 +1289,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ultrastardx 1.1-beta to adapt to many kinds of systems.
+\`configure' configures ultrastardx 1.1-RC to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1345,7 +1354,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ultrastardx 1.1-beta:";;
+ short | recursive ) echo "Configuration of ultrastardx 1.1-RC:";;
esac
cat <<\_ACEOF
@@ -1411,6 +1420,10 @@ Some influential environment variables:
/usr/share/projectM), overriding pkg-config
portaudio_VERSION
version of portaudio, overriding pkg-config
+ libpcre_VERSION
+ version of libpcre, overriding pkg-config
+ libpcre_LIBDIR
+ library dir (e.g. /usr/lib, /sw/lib, ...), overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1478,7 +1491,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ultrastardx configure 1.1-beta
+ultrastardx configure 1.1-RC
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1617,7 +1630,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ultrastardx $as_me 1.1-beta, which was
+It was created by ultrastardx $as_me 1.1-RC, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@@ -5774,6 +5787,192 @@ eof
fi
+
+# find pcre
+libpcre_PKG="libpcre"
+
+ have_lib="no"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $libpcre_PKG" >&5
+$as_echo_n "checking for $libpcre_PKG... " >&6; }
+ if test x"$with_libpcre" = xnocheck; then
+ # do not call pkg-config, use user settings
+ have_lib="yes"
+ elif test x"$with_libpcre" != xno; then
+ # check if package exists
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpcre_PKG\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$libpcre_PKG") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+
+ have_lib="yes"
+ libpcre_LIBS=`$PKG_CONFIG --libs --silence-errors "$libpcre_PKG"`
+ libpcre_LIBDIRS=`$PKG_CONFIG --libs-only-L --silence-errors "$libpcre_PKG"`
+ libpcre_LIBDIRS=`
+ echo "$libpcre_LIBDIRS" | $SED 's/^[ \t]*//' | $SED 's/[ \t]*$//'
+`
+ # add library directories to LIBS (ignore *_LIBS for now)
+ if test -n "$libpcre_LIBDIRS"; then
+ LIBS="$LIBS $libpcre_LIBDIRS"
+ fi
+
+fi
+ fi
+ if test x$have_lib = xyes; then
+ libpcre_HAVE="yes"
+ if test -n "$libpcre_LIBDIRS"; then
+ # show additional lib-dirs
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($libpcre_LIBDIRS)" >&5
+$as_echo "yes ($libpcre_LIBDIRS)" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ fi
+ else
+ libpcre_HAVE="no"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+ # check if package is required
+ if test xno = xyes -o x"$with_libpcre" = xyes ; then
+ # print error message and quit
+ err_msg=`$PKG_CONFIG --errors-to-stdout --print-errors "$libpcre_PKG"`
+ as_fn_error "
+
+$err_msg
+
+Alternatively, you may set --with-libpcre=nocheck and the environment
+variables libpcre_[...] (see configure --help)
+to appropriate values to avoid the need to call pkg-config.
+
+See the pkg-config man page for more details.
+" "$LINENO" 5
+ fi
+ fi
+
+
+ if test x$libpcre_HAVE = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of libpcre" >&5
+$as_echo_n "checking version of libpcre... " >&6; }
+
+
+ # check if variable was defined by the user
+ if test -z "$libpcre_VERSION"; then
+ # if not, get it from pkg-config
+ if test x$libpcre_HAVE = xyes; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpcre_PKG\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$libpcre_PKG") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ libpcre_VERSION=`$PKG_CONFIG --modversion --silence-errors "$libpcre_PKG"`
+else
+ # print error message and quit
+ err_msg=`$PKG_CONFIG --errors-to-stdout --print-errors "$libpcre_PKG"`
+ as_fn_error "
+
+$err_msg
+
+If --with-libpcre=nocheck is defined the environment variable
+libpcre_VERSION
+must be set to avoid the need to call pkg-config.
+
+See the pkg-config man page for more details.
+" "$LINENO" 5
+
+
+fi
+ fi
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: [$libpcre_VERSION]" >&5
+$as_echo "[$libpcre_VERSION]" >&6; }
+ else
+ libpcre_VERSION="0.0.0"
+ fi
+
+ version=$libpcre_VERSION
+
+ # strip leading non-numeric tokens
+ # (necessary for some ffmpeg-packages in ubuntu)
+ # example: 0d.51.1.0 -> 51.1.0
+ version=`echo $version | sed 's/^[^.]*[^0-9.][^.]*\.//'`
+
+ # replace "." and "-" with " " and ignore trailing tokens.
+ # 1.23.4-r2 will be splitted to [maj=1, min=23, rel=4].
+ # In addition we delete everything after the first character
+ # which is not 0-9.
+ # 1.3a4-r32 will be [maj=1, min=3, rel=0].
+ read major minor release ignore <<eof
+ `echo $version | tr '.-' ' ' | sed 's/[^0-9\ ].*//'`
+eof
+ # Note: Do NOT indent the eof-delimiter
+ # We use a here-document (<<< here-strings not POSIX compatible)
+
+ test -z $major && major=0
+ test -z $minor && minor=0
+ test -z $release && release=0
+
+ # strip preceding 0s and set unset version-parts to 0
+ libpcre_VERSION_MAJOR=$(($major))
+ libpcre_VERSION_MINOR=$(($minor))
+ libpcre_VERSION_RELEASE=$(($release))
+ # integer representation: MMMmmmrrr (M:major,m:minor,r:release)
+ # can be used if pkg-config's comparison fails
+ libpcre_VERSION_INT=$(($libpcre_VERSION_MAJOR*1000000+$libpcre_VERSION_MINOR*1000+$libpcre_VERSION_RELEASE))
+
+
+
+
+
+
+
+
+ if [ x$libpcre_HAVE = xyes ]; then
+ DEFINE_HAVE_LIBPCRE=DEFINE
+ else
+ DEFINE_HAVE_LIBPCRE=UNDEF
+ fi
+
+
+# get libpcre library dir
+
+
+ # check if variable was defined by the user
+ if test -z "$libpcre_LIBDIR"; then
+ # if not, get it from pkg-config
+ if test x$libpcre_HAVE = xyes; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpcre_PKG\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$libpcre_PKG") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ libpcre_LIBDIR=`$PKG_CONFIG --variable=libdir --silence-errors "$libpcre_PKG"`
+else
+ # print error message and quit
+ err_msg=`$PKG_CONFIG --errors-to-stdout --print-errors "$libpcre_PKG"`
+ as_fn_error "
+
+$err_msg
+
+If --with-libpcre=nocheck is defined the environment variable
+libpcre_LIBDIR
+must be set to avoid the need to call pkg-config.
+
+See the pkg-config man page for more details.
+" "$LINENO" 5
+
+
+fi
+ fi
+ fi
+
+
+
# find portmixer
have_lib="no"
@@ -6408,7 +6607,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ultrastardx $as_me 1.1-beta, which was
+This file was extended by ultrastardx $as_me 1.1-RC, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6461,7 +6660,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ultrastardx config.status 1.1-beta
+ultrastardx config.status 1.1-RC
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"
diff --git a/us_maker_edition/configure.ac b/us_maker_edition/configure.ac
index 0e9214e3..c609c460 100644
--- a/us_maker_edition/configure.ac
+++ b/us_maker_edition/configure.ac
@@ -16,7 +16,7 @@ AC_PREREQ(2.61)
# Init autoconf
AC_INIT([ultrastardx],
- [1.1-beta],
+ [1.1-RC],
[http://sourceforge.net/tracker/?group_id=191560&atid=937872])
# specify the website here
PACKAGE_WEBSITE="http://www.ultrastardeluxe.org/"
@@ -230,6 +230,16 @@ AC_SUBST(USE_PROJECTM_CWRAPPER, $libprojectM_USE_CWRAPPER)
PKG_HAVE([portaudio], [portaudio-2.0], yes)
PKG_VERSION([portaudio], [portaudio-2.0])
AC_SUBST_DEFINE(HAVE_PORTAUDIO, $portaudio_HAVE)
+
+# find pcre
+libpcre_PKG="libpcre"
+PKG_HAVE([libpcre], [$libpcre_PKG], no)
+PKG_VERSION([libpcre], [$libpcre_PKG])
+AC_SUBST_DEFINE(HAVE_LIBPCRE, $libpcre_HAVE)
+# get libpcre library dir
+PKG_VALUE([libpcre], [LIBDIR], [variable=libdir], [$libpcre_PKG],
+ [library dir (e.g. /usr/lib, /sw/lib, ...)])
+
# find portmixer
PKG_HAVE([portmixer], [portmixer], no)
AC_SUBST_DEFINE(HAVE_PORTMIXER, $portmixer_HAVE)
diff --git a/us_maker_edition/dists/gentoo/readme.txt b/us_maker_edition/dists/gentoo/readme.txt
index 982d42c9..99517f84 100644
--- a/us_maker_edition/dists/gentoo/readme.txt
+++ b/us_maker_edition/dists/gentoo/readme.txt
@@ -3,7 +3,7 @@
---------------------------------------
This directory contains two ebuilds for UltraStar Deluxe
- ultrastardx-9999.ebuild: a live ebuild using SVN sources
-- ultrastardx-1.1_beta.ebuild: a snapshot ebuild that might be appended to the official portage someday (Note: at the moment there is no source snapshot for USDX so this will not work)
+- ultrastardx-1.1.ebuild: a snapshot ebuild that might be appended to the official portage someday
---------------------------------------
2. Create a portage overlay
diff --git a/us_maker_edition/dists/gentoo/ultrastardx-1.1_beta.ebuild b/us_maker_edition/dists/gentoo/ultrastardx-1.1.0.ebuild
index 7170fcdb..7170fcdb 100644
--- a/us_maker_edition/dists/gentoo/ultrastardx-1.1_beta.ebuild
+++ b/us_maker_edition/dists/gentoo/ultrastardx-1.1.0.ebuild
diff --git a/us_maker_edition/game/languages/Catalan.ini b/us_maker_edition/game/languages/Catalan.ini
index de9f9852..8a9e73d5 100644
--- a/us_maker_edition/game/languages/Catalan.ini
+++ b/us_maker_edition/game/languages/Catalan.ini
@@ -1,79 +1,88 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=Carregant...
@@ -168,20 +177,21 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Fos de pantalla
SING_OPTIONS_ADVANCED_LOADANIMATION=Animació càrrega
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Prequnta abans d'esborrar
SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de línia
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Quantes vegades cantada
SING_OPTIONS_ADVANCED_ONSONGCLICK=després de triar cançó
SING_OPTIONS_ADVANCED_PARTYPOPUP=Menú Automàtic de festa
+
SING_EDIT=Editor
SING_EDIT_MENU_DESCRIPTION=crea cançons
+
SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importar text de fitxer midi
SING_EDIT_BUTTON_DESCRIPTION_EXIT=tornar
SING_EDIT_BUTTON_CONVERT=Importar
SING_EDIT_BUTTON_EXIT=enrere
+
SING_EDIT_NAVIGATE=navegar
SING_EDIT_SELECT=triar
SING_EDIT_EXIT=enrere
-
SING_LEGEND_SELECT=seleccionar
SING_LEGEND_NAVIGATE=navegar
SING_LEGEND_CONTINUE=continuar
@@ -296,7 +306,6 @@ PARTY_PLAYLIST=Mode llista
PARTY_PLAYLIST_ALL=Tot
PARTY_PLAYLIST_CATEGORY=Directori
PARTY_PLAYLIST_PLAYLIST=llista
-PARTY_ROUNDS=Rondes
PARTY_TEAMS=Equips
PARTY_TEAMS_PLAYER1=Player Team1
PARTY_TEAMS_PLAYER2=Player Team2
@@ -310,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Opcions Festa
PARTY_PLAYER_DESC=introduïr noms de jugadors i equips
PARTY_PLAYER_WHEREAMI=Noms
PARTY_PLAYER_ENTER_NAME=introduïr noms
-PARTY_PLAYER_LEGEND_CONTINUE=iniciar festa
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=iniciar festa
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=següent jugador al micro
PARTY_ROUND_WHEREAMI=Següent Ronda
@@ -337,17 +358,23 @@ PARTY_DISMISSED=Abandona!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=guanya!
-PLUGIN_HDL_NAME=Aguantar la línia
-PLUGIN_HDL_DESC=No baixis de la fletxa a la barra de qualitat
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
-PLUGIN_UNTIL5000_NAME=Fins a 5000
-PLUGIN_UNTIL5000_DESC=El primer a arribar a 5000 punts guanya
+MODE_HDL_NAME=Aguantar la línia
+MODE_HDL_DESC=No baixis de la fletxa a la barra de qualitat
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=Cantar un duela fins a 10000 punts
+MODE_5000POINTS_NAME=Fins a 5000
+MODE_5000POINTS_DESC=El primer a arribar a 5000 punts guanya
-PLUGIN_BLIND_NAME=Mode cec
-PLUGIN_BLIND_DESC=Duel sense veure les notes
+MODE_DUEL_NAME=Duel
+MODE_DUEL_DESC=Cantar un duela fins a 10000 punts
+
+;TODO: MODE_TEAMDUEL_NAME=Team Duell
+;TODO: MODE_TEAMDUEL_DESC=Pass The Mic!
+
+MODE_BLIND_NAME=Mode cec
+MODE_BLIND_DESC=Duel sense veure les notes
STAT_MAIN=Estadístiques
STAT_MAIN_DESC=General
@@ -383,14 +410,33 @@ STAT_DESC_BANDS=Grups més populars
STAT_DESC_BANDS_REVERSED=Grups menys populars
STAT_FORMAT_BANDS=%0:s \n %1:dx Cantades
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Error
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Qüestió
MSG_QUIT_USDX=Realment vols sortir d'UltraStar?
MSG_END_PARTY=Realment vols sortir del mode festa?
+
ERROR_NO_SONGS=No hi ha cançons
ERROR_NO_PLUGINS=No hi ha Plugins
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=No es poden carregar les cançons
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=No es pot carregar: Fitxer no trobat
ERROR_CORRUPT_SONG_NO_NOTES=No es pot carregar: No s'han trobat notes
ERROR_CORRUPT_SONG_NO_BREAKS=No es pot carregar: No s'han trobat línies
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=No es pot carregar: Error llegint línia %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=No es pot carregar: Error llegint línia %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Quantes vegades cantada
+;UNUSED: PARTY_ROUNDS=Rondes
diff --git a/us_maker_edition/game/languages/Czech.ini b/us_maker_edition/game/languages/Czech.ini
new file mode 100644
index 00000000..c28a934c
--- /dev/null
+++ b/us_maker_edition/game/languages/Czech.ini
@@ -0,0 +1,441 @@
+[Text]
+OPTION_VALUE_CATALAN=Katalánsky
+OPTION_VALUE_CROATIAN=Chorvatsky
+OPTION_VALUE_CZECH=ÄŒesky
+OPTION_VALUE_DANISH=Dánsky
+OPTION_VALUE_DUTCH=Holandsky
+OPTION_VALUE_ENGLISH=Anglicky
+OPTION_VALUE_EUSKARA=Baskicky
+OPTION_VALUE_FINNISH=Finsky
+OPTION_VALUE_FRENCH=Francouzsky
+OPTION_VALUE_GERMAN=Německy
+OPTION_VALUE_GREEK=Řecky
+OPTION_VALUE_HUNGARIAN=MaÄarsky
+OPTION_VALUE_ICELANDIC=Islandsky
+OPTION_VALUE_ITALIAN=Italsky
+OPTION_VALUE_JAPANESE=Japonsky
+OPTION_VALUE_LUXEMBOURGISH=Lucembursky
+OPTION_VALUE_NORWEGIAN=Norsky
+OPTION_VALUE_POLISH=Polsky
+OPTION_VALUE_PORTUGUESE=Portugalsky
+OPTION_VALUE_SERBIAN=Srbsky
+OPTION_VALUE_SLOVAK=Slovensky
+OPTION_VALUE_SLOVENIAN=Slovinsky
+OPTION_VALUE_SPANISH=Španělsky
+OPTION_VALUE_SWEDISH=Švédsky
+
+OPTION_VALUE_EASY=Snadná
+OPTION_VALUE_MEDIUM=Střední
+OPTION_VALUE_HARD=Těžká
+
+OPTION_VALUE_ON=Zap
+OPTION_VALUE_OFF=Vyp
+
+OPTION_VALUE_EDITION=Edice
+OPTION_VALUE_GENRE=Žánr
+OPTION_VALUE_LANGUAGE=Jazyk
+OPTION_VALUE_FOLDER=Složka
+OPTION_VALUE_TITLE=Název
+OPTION_VALUE_ARTIST=Interpret
+OPTION_VALUE_TITLE2=Název 2
+OPTION_VALUE_ARTIST2=Interpret 2
+
+OPTION_VALUE_WHENNOVIDEO=Neobsahuje-li video
+
+OPTION_VALUE_SMALL=Malé
+OPTION_VALUE_BIG=Velké
+
+OPTION_VALUE_HALF=PoloviÄní
+OPTION_VALUE_FULL_VID=Úplné (video)
+OPTION_VALUE_FULL_VID_BG=Úplné (pozadí & video)
+
+OPTION_VALUE_AUTO=Auto
+OPTION_VALUE_SEC=sekunda
+OPTION_VALUE_SECS=sekundy
+
+OPTION_VALUE_PLAIN=Prosté
+OPTION_VALUE_OLINE1=Obtažené 1
+OPTION_VALUE_OLINE2=Obtažené 2
+
+OPTION_VALUE_SIMPLE=Jednoduchý
+OPTION_VALUE_ZOOM=Zvětšení
+OPTION_VALUE_SLIDE=Skluz
+OPTION_VALUE_BALL=MíÄ
+OPTION_VALUE_SHIFT=Posun
+
+OPTION_VALUE_EURO=Evropské
+OPTION_VALUE_JAPAN=Japonské
+OPTION_VALUE_AMERICAN=Americké
+
+OPTION_VALUE_BLUE=Modrá
+OPTION_VALUE_GREEN=Zelená
+OPTION_VALUE_PINK=Růžová
+OPTION_VALUE_RED=Červená
+OPTION_VALUE_VIOLET=Fialová
+OPTION_VALUE_ORANGE=Oranžová
+OPTION_VALUE_YELLOW=Žlutá
+OPTION_VALUE_BROWN=Hnědá
+OPTION_VALUE_BLACK=Černá
+
+OPTION_VALUE_SING=Zpívat
+OPTION_VALUE_SELECT_PLAYERS=VýbÄ›r hráÄů
+OPTION_VALUE_OPEN_MENU=Otevřít menu
+
+OPTION_VALUE_HARDWARE_CURSOR=Hardwarový kurzor
+OPTION_VALUE_SOFTWARE_CURSOR=Softwarový kurzor
+
+SING_LOADING=NaÄítání...
+
+SING_CHOOSE_MODE=vybrat mód
+SING_SING=zpívat
+SING_SING_DESC=rychlá hra: zpívej sólo nebo duet
+
+SING_MULTI=párty
+SING_MULTI_DESC=zpívejte v párty-módu
+
+SING_TOOLS=nástroje
+
+SING_STATS=statistiky
+SING_STATS_DESC=zobrazit statistiky
+
+SING_EDITOR=editor
+SING_EDITOR_DESC=vytvořit vlastní skladbu
+
+SING_GAME_OPTIONS=herní možnosti
+SING_GAME_OPTIONS_DESC=změnit nastavení hry
+
+SING_EXIT=ukonÄit
+SING_EXIT_DESC=ukonÄit hru
+
+SING_OPTIONS=možnosti
+SING_OPTIONS_DESC=změnit nastavení
+SING_OPTIONS_WHEREAMI=Možnosti
+
+SING_OPTIONS_GAME=hra
+SING_OPTIONS_GRAPHICS=grafika
+SING_OPTIONS_SOUND=zvuk
+SING_OPTIONS_LYRICS=text
+SING_OPTIONS_THEMES=vzhled
+SING_OPTIONS_RECORD=záznam
+SING_OPTIONS_ADVANCED=pokroÄilé
+SING_OPTIONS_EXIT=zpět
+
+SING_OPTIONS_GAME_WHEREAMI=Možnosti hry
+SING_OPTIONS_GAME_DESC=obecné herní nastavení
+SING_OPTIONS_GAME_PLAYERS=HráÄi
+SING_OPTIONS_GAME_DIFFICULTY=Obtížnost
+SING_OPTIONS_GAME_LANGUAGE=Jazyk
+SING_OPTIONS_GAME_TABS=Složky
+SING_OPTIONS_GAME_SORTING=Řazení
+SING_OPTIONS_GAME_DEBUG=Ladění programu
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=Možnosti grafiky
+SING_OPTIONS_GRAPHICS_DESC=grafické nastavení
+SING_OPTIONS_GRAPHICS_RESOLUTION=Rozlišení
+SING_OPTIONS_GRAPHICS_FULLSCREEN=Na celou obrazovku
+SING_OPTIONS_GRAPHICS_DEPTH=Barevná hloubka
+SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizace
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop
+SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus za řádek
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa
+
+SING_OPTIONS_SOUND_WHEREAMI=Možnosti zvuku
+SING_OPTIONS_SOUND_DESC=zvukové nastavení
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Přehrávání z mikrof.
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hudba na pozadí
+SING_OPTIONS_SOUND_MIC_BOOST=Zesílení mikrofonu
+SING_OPTIONS_SOUND_CLICK_ASSIST=Pomocné tikání
+SING_OPTIONS_SOUND_BEAT_CLICK=Další rytmika
+SING_OPTIONS_SOUND_THRESHOLD=Práh
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Pro dva hráÄe
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Hlasitost ukázky
+SING_OPTIONS_SOUND_PREVIEWFADING=Odeznění ukázky
+
+SING_OPTIONS_LYRICS_WHEREAMI=Možnosti textů
+SING_OPTIONS_LYRICS_DESC=nastavení textů
+SING_OPTIONS_LYRICS_FONT=Písmo
+SING_OPTIONS_LYRICS_EFFECT=Efekt
+SING_OPTIONS_LYRICS_SOLMIZATION=Názvy tónů
+SING_OPTIONS_LYRICS_NOTELINES=Notová osnova
+
+SING_OPTIONS_THEMES_WHEREAMI=Možnosti vzhledu
+SING_OPTIONS_THEMES_DESC=nastavení vzhledu
+SING_OPTIONS_THEMES_THEME=Téma
+SING_OPTIONS_THEMES_SKIN=Skin
+SING_OPTIONS_THEMES_COLOR=Barva
+
+SING_OPTIONS_RECORD_WHEREAMI=Možnosti záznamu
+SING_OPTIONS_RECORD_DESC=nastavení mikrofonu
+SING_OPTIONS_RECORD_CARD=Zvuková karta
+SING_OPTIONS_RECORD_INPUT=Vstup
+SING_OPTIONS_RECORD_CHANNEL=Kanál
+
+SING_OPTIONS_ADVANCED_WHEREAMI=PokroÄilé možnosti
+SING_OPTIONS_ADVANCED_DESC=pokroÄilé nastavení
+SING_OPTIONS_ADVANCED_EFFECTSING=Efekty u zpěvu
+SING_OPTIONS_ADVANCED_SCREENFADE=Přechody obrazu
+SING_OPTIONS_ADVANCED_LOADANIMATION=Animace naÄítání
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Potvrzovací dialogy
+SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za řádek
+SING_OPTIONS_ADVANCED_ONSONGCLICK=Po výběru skladby
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto párty-menu
+
+SING_EDIT=Editor
+SING_EDIT_MENU_DESCRIPTION=Vytvořit vlastní skladbu
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importovat ze souboru midi
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=zpět
+SING_EDIT_BUTTON_CONVERT=Importovat
+SING_EDIT_BUTTON_EXIT=zpět
+
+SING_EDIT_NAVIGATE=navigace
+SING_EDIT_SELECT=vybrat
+SING_EDIT_EXIT=zpět
+
+SING_LEGEND_SELECT=vybrat
+SING_LEGEND_NAVIGATE=navigace
+SING_LEGEND_CONTINUE=pokraÄovat
+SING_LEGEND_ESC=zpět
+
+SING_PLAYER_DESC=zadejte jméno hráÄe (jména hráÄů)
+SING_PLAYER_WHEREAMI=Jména hráÄů
+SING_PLAYER_ENTER_NAME=zadejte jména
+
+SING_DIFFICULTY_DESC=zvolte obtížnost
+SING_DIFFICULTY_WHEREAMI=Otížnost
+SING_DIFFICULTY_CONTINUE=na výběr skladby
+SING_EASY=Snadná
+SING_MEDIUM=Střední
+SING_HARD=Těžká
+
+SING_SONG_SELECTION_DESC=vyberte skladbu
+SING_SONG_SELECTION_WHEREAMI=Výběr skladby
+SING_SONG_SELECTION_GOTO=jdi na ..
+SING_SONG_SELECTION=výběr skladby
+SING_SONG_SELECTION_MENU=menu
+SING_SONG_SELECTION_PLAYLIST=seznam stop
+SING_SONGS_IN_CAT=skladby
+PLAYLIST_CATTEXT=Seznam stop: %s
+
+SING_TIME=TIME
+SING_TOTAL=celkem
+SING_MODE=zpívat sólo
+SING_NOTES=noty
+SING_GOLDEN_NOTES=zlaté noty
+SING_PHRASE_BONUS=bonus za řádek
+
+SING_MENU=Hlavní menu
+
+SONG_SCORE=skóre za skladbu
+SONG_SCORE_WHEREAMI=Skóre
+
+SING_SCORE_TONE_DEAF=Hudební hluch
+SING_SCORE_AMATEUR=Amatér
+SING_SCORE_WANNABE=Snaživý
+SING_SCORE_HOPEFUL=Nadějný
+SING_SCORE_RISING_STAR=Vycházející hvězda
+SING_SCORE_LEAD_SINGER=Sólový zpěvák
+SING_SCORE_SUPERSTAR=Superstar
+SING_SCORE_ULTRASTAR=Ultrastar
+
+SING_TOP_5_CHARTS=5 nejlepších
+SING_TOP_5_CHARTS_WHEREAMI=5 nej
+SING_TOP_5_CHARTS_CONTINUE=na výběr skladby
+SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=přepnout obtížnost
+
+POPUP_PERFECT=výborně!
+POPUP_AWESOME=paráda!
+POPUP_GREAT=super!
+POPUP_GOOD=dobře!
+POPUP_NOTBAD=Å¡lo to!
+POPUP_BAD=špatné!
+POPUP_POOR=bída!
+POPUP_AWFUL=hrůza!
+
+IMPLODE_GLUE1=,
+IMPLODE_GLUE2= a
+
+SONG_MENU_NAME_MAIN=menu skladby
+SONG_MENU_PLAY=Zpívat
+SONG_MENU_CHANGEPLAYERS=ZmÄ›nit hráÄe
+SONG_MENU_EDIT=Upravit
+SONG_MENU_MODI=Zpívat "Modi"
+SONG_MENU_CANCEL=Zrušit
+
+SONG_MENU_NAME_PLAYLIST=Menu skladeb
+SONG_MENU_PLAYLIST_ADD=Přidat skladbu
+SONG_MENU_PLAYLIST_DEL=Odebrat skladbu
+
+SONG_MENU_NAME_PLAYLIST_ADD=Přidat skladbu
+SONG_MENU_PLAYLIST_ADD_NEW=do nového playlistu
+SONG_MENU_PLAYLIST_ADD_EXISTING=do existujícího seznamu stop
+SONG_MENU_PLAYLIST_NOEXISTING=Žádný seznam stop nevytvořen
+
+SONG_MENU_NAME_PLAYLIST_NEW=Nový seznam stop
+SONG_MENU_PLAYLIST_NEW_CREATE=Vytvořit
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Nepojmenovaný
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Opravdu smazat?
+SONG_MENU_YES=Ano
+SONG_MENU_NO=Ne
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Otevřít seznam stop
+SONG_MENU_PLAYLIST_LOAD=otevřít
+SONG_MENU_PLAYLIST_DELCURRENT=smazat tento seznam stop
+
+SONG_MENU_NAME_PLAYLIST_DEL=Smazat seznam stop?
+
+SONG_MENU_NAME_PARTY_MAIN=Párty menu
+SONG_MENU_JOKER=Žolík
+
+SONG_MENU_NAME_PARTY_JOKER=vzít žolíka
+
+SONG_JUMPTO_DESC=hledat skladbu
+SONG_JUMPTO_TYPE_DESC=Hledat:
+SONG_JUMPTO_TYPE1=VÅ¡ude
+SONG_JUMPTO_TYPE2=V názvech
+SONG_JUMPTO_TYPE3=V interpretech
+SONG_JUMPTO_SONGSFOUND=Nalezeno %d skladeb
+SONG_JUMPTO_NOSONGSFOUND=Žádné skladby nenalezeny
+SONG_JUMPTO_HELP=Zadejte text pro hledání
+SONG_JUMPTO_CATTEXT=Hledat: %s
+
+PARTY_MODE=párty mód
+PARTY_DIFFICULTY=Obtížnost
+PARTY_PLAYLIST=Mód seznamu stop
+PARTY_PLAYLIST_ALL=VÅ¡echny skladby
+PARTY_PLAYLIST_CATEGORY=Složka
+PARTY_PLAYLIST_PLAYLIST=Seznam stop
+PARTY_TEAMS=PoÄet týmů
+PARTY_TEAMS_PLAYER1=HráÄů týmu 1
+PARTY_TEAMS_PLAYER2=HráÄů týmu 2
+PARTY_TEAMS_PLAYER3=HráÄů týmu 3
+
+PARTY_LEGEND_CONTINUE=pokraÄovat
+
+PARTY_OPTIONS_DESC=nastavení pro hru na párty
+PARTY_OPTIONS_WHEREAMI=Možnosti párty
+
+PARTY_PLAYER_DESC=zadejte jména hráÄů a týmů!
+PARTY_PLAYER_WHEREAMI=Jména párty
+PARTY_PLAYER_ENTER_NAME=vložit jména
+
+
+PARTY_ROUNDS_DESC=Vyberte, ve kterých režimech chcete hrát
+PARTY_ROUNDS_WHEREAMI=Kola párty
+PARTY_ROUNDS_LEGEND_CONTINUE=spustit párty-hru
+PARTY_ROUNDCOUNT=poÄet kol
+PARTY_SELECTMODE1=režim 1. kola
+PARTY_SELECTMODE2=režim 2. kola
+PARTY_SELECTMODE3=režim 3. kola
+PARTY_SELECTMODE4=režim 4. kola
+PARTY_SELECTMODE5=režim 5. kola
+PARTY_SELECTMODE6=režim 6. kola
+PARTY_SELECTMODE7=režim 7. kola
+
+PARTY_ROUND_DESC=další hrÃ¡Ä k mikrofonu
+PARTY_ROUND_WHEREAMI=Další kolo
+PARTY_ROUND_LEGEND_CONTINUE=zaÄít kolo
+
+PARTY_SONG_WHEREAMI=Výběr skladeb na párty
+PARTY_SONG_LEGEND_CONTINUE=zpívat
+PARTY_SONG_MENU=párty menu
+
+PARTY_SCORE_DESC=skóre posledního kola
+PARTY_SCORE_WHEREAMI=Párty body
+
+PARTY_WIN_DESC=Vítěz hry párty
+PARTY_WIN_WHEREAMI=Vítěz párty
+PARTY_WIN_LEGEND_CONTINUE=zpět do hlavního menu
+
+PARTY_ROUND=Kolo
+PARTY_ROUND_WINNER=Vítěz
+PARTY_NOTPLAYEDYET=ještě se nehrálo
+PARTY_NOBODY=nikdo
+NEXT_ROUND=Další kolo:
+
+PARTY_DISMISSED=Zrušeno!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=vítězství!
+
+MODE_RANDOM_NAME=Náhodný režim
+MODE_RANDOM_DESC=Jeden režim bude vybrán náhodně.
+
+MODE_HDL_NAME=Drž úroveň
+MODE_HDL_DESC=Nesmíš klesnout pod hranici ukazatele úspešnosti.
+
+MODE_5000POINTS_NAME=Do 5000
+MODE_5000POINTS_DESC=Kdo získá první 5000 bodů, vyhrál.
+
+MODE_DUEL_NAME=Duel
+MODE_DUEL_DESC=Zpívej duel do 10 000 bodů.
+
+MODE_TEAMDUEL_NAME=Duel týmů
+MODE_TEAMDUEL_DESC=Předej mikrofon dál!
+
+MODE_BLIND_NAME=Slepý režim
+MODE_BLIND_DESC=Duel bez not.
+
+STAT_MAIN=Statistiky
+STAT_MAIN_DESC=Obecné
+STAT_MAIN_WHEREAMI=Statistiky
+
+STAT_OVERVIEW_INTRO=%0:s Statistiky. \n Naposledy vynulováno %1:.2d. %2:.2d. %3:d
+STAT_OVERVIEW_SONG=%0:d skladeb (%3:d s videem), z Äehož %1:d už bylo hráno a %2:d zatím hráno nebylo.\n NejpopulárnÄ›jší skladba je %5:s z %4:s.
+STAT_OVERVIEW_PLAYER=Od posledního nulování se vystřídalo %0:d různých hráÄů.\n Nejlepší hrÃ¡Ä je %1:s s průmÄ›rným skóre %2:d bodů.\n %3:s získal nejvyšší skóre %4:d bodů.
+
+STAT_FORMAT_DATE=%0:.2d. %1:.2d. %2:d
+
+STAT_DETAIL=Statistiky
+STAT_DETAIL_WHEREAMI=Podrobné statistiky
+
+STAT_NEXT=Další stránka
+STAT_PREV=Předchozí stránka
+STAT_REVERSE=OpaÄné poÅ™adí
+STAT_PAGE=Strana %0:d z %1:d stránek\n (%2:d z %3:d záznamů)
+
+STAT_DESC_SCORES=Nejvyšší skóre
+STAT_DESC_SCORES_REVERSED=Nejnižší skóre
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Nejlepší zpěváci
+STAT_DESC_SINGERS_REVERSED=Nejhorší zpěváci
+STAT_FORMAT_SINGERS=%0:s \n Průměrné skóre: %1:d
+
+STAT_DESC_SONGS=Nejoblíbenější skladba
+STAT_DESC_SONGS_REVERSED=Nejneoblíbenější skladba
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx zpívána
+
+STAT_DESC_BANDS=Nejoblíbenější kapela
+STAT_DESC_BANDS_REVERSED=Nejneoblíbenější kapela
+STAT_FORMAT_BANDS=%0:s \n %1:dx zpíváno
+
+SCREENSHOT_SAVED=Snímek obrazovky uložen
+SCREENSHOT_FAILED=Uložení snímku obrazovky selhalo
+
+INFO_FILE_SAVED=Soubor uložen
+ERROR_SAVE_FILE_FAILED=Uložení souboru selhalo
+ERROR_FILE_NOT_FOUND=Soubor nenalezen
+
+ENCODING_ERROR_ASK_FOR_UTF8=Nelze uložit změny v tomto kódování. Změnit na UTF-8?
+EDITOR_ERROR_NO_TRACK_SELECTED=Nevybrána žádná stopa
+
+MSG_ERROR_TITLE=Chyba
+MSG_INFO_TITLE=Info
+MSG_QUESTION_TITLE=Potvrzení
+MSG_QUIT_USDX=Opravdu ukonÄit UltraStar?
+MSG_END_PARTY=Opravdu ukonÄit párty mód?
+
+ERROR_NO_SONGS=Žádné skladby nenaÄteny
+ERROR_NO_PLUGINS=Žádné doplňky nenaÄteny
+ERROR_NO_MODES_FOR_CURRENT_SETUP=pro vybrané nastavení hráÄů/týmů nejsou dostupné žádné režimy
+ERROR_CAN_NOT_START_PARTY= během spouštění párty-módu se objevila chyba
+ERROR_CORRUPT_SONG=Skladbu se nepodaÅ™ilo naÄíst.
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Skladbu se nepodaÅ™ilo naÄíst: Soubor nenalezen
+ERROR_CORRUPT_SONG_NO_NOTES=Skladbu se nepodaÅ™ilo naÄíst: Noty nenalezeny
+ERROR_CORRUPT_SONG_NO_BREAKS=Skladbu se nepodaÅ™ilo naÄíst: Nenalezeny informace o rozdÄ›lení do řádků
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Skladbu se nepodaÅ™ilo naÄíst: Chyba pÅ™i zpracování řádku %0:d
+ERROR_NO_EDITOR=Tato funkce není dostupná pro Linux/Mac
+ERROR_PLAYER_DEVICE_ASSIGNMENT=HrÃ¡Ä %d je pÅ™iÅ™azen k vícero mikrofonům. Zkontrolujte prosím nastavení záznamu
+ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=HrÃ¡Ä %d není pÅ™iÅ™azen k mikrofonu. Zkontrolujte prosím nastavení záznamu
+;TRANSLATOR: Oblack
diff --git a/us_maker_edition/game/languages/Danish.ini b/us_maker_edition/game/languages/Danish.ini
new file mode 100644
index 00000000..350897e8
--- /dev/null
+++ b/us_maker_edition/game/languages/Danish.ini
@@ -0,0 +1,442 @@
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
+SING_LOADING=Loader...
+
+SING_CHOOSE_MODE=Vælg modus
+SING_SING=Syng
+SING_SING_DESC=Hurtigt spil: Syng solo eller duet
+
+SING_MULTI=Fest
+SING_MULTI_DESC=Syng i fest modus
+
+SING_TOOLS=Værktøjer
+
+SING_STATS=stats
+SING_STATS_DESC=Se statestikker
+
+SING_EDITOR=editor
+SING_EDITOR_DESC=Lav dine egne sange
+
+SING_GAME_OPTIONS=Spil Indstillinger
+SING_GAME_OPTIONS_DESC=Ændre spil Indstillinger
+
+SING_EXIT=Forlad
+SING_EXIT_DESC=Forlad spillet
+
+SING_OPTIONS=Indstillinger
+SING_OPTIONS_DESC=Ændre Instillinger
+SING_OPTIONS_WHEREAMI=Indstillinger
+
+SING_OPTIONS_GAME=Spil
+SING_OPTIONS_GRAPHICS=Grafik
+SING_OPTIONS_SOUND=Lyd
+SING_OPTIONS_LYRICS=Tekster
+SING_OPTIONS_THEMES=Temaer
+SING_OPTIONS_RECORD=Optag
+SING_OPTIONS_ADVANCED=Advanceret
+SING_OPTIONS_EXIT=Tilbage
+
+SING_OPTIONS_GAME_WHEREAMI=Spil Indstillinger
+SING_OPTIONS_GAME_DESC=Generelle Spil Indstillinger
+SING_OPTIONS_GAME_PLAYERS=Spillere
+SING_OPTIONS_GAME_DIFFICULTY=Sværhedsgrad
+SING_OPTIONS_GAME_LANGUAGE=Sprog
+SING_OPTIONS_GAME_TABS=Tabs
+SING_OPTIONS_GAME_SORTING=Sorting
+SING_OPTIONS_GAME_DEBUG=Debug
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=Grafik Indstillinger
+SING_OPTIONS_GRAPHICS_DESC=Grafik Indstillinger
+SING_OPTIONS_GRAPHICS_RESOLUTION=Opløsning
+SING_OPTIONS_GRAPHICS_FULLSCREEN=Fuldskærm
+SING_OPTIONS_GRAPHICS_DEPTH=Farve dybte
+;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop
+SING_OPTIONS_GRAPHICS_LINEBONUS=Linie Bonus
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Film Størrelse
+
+SING_OPTIONS_SOUND_WHEREAMI=Lyd Indstillinger
+SING_OPTIONS_SOUND_DESC=Lyd Indstillinger
+;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback
+;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music
+SING_OPTIONS_SOUND_MIC_BOOST=Mikrofon Boost
+SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist
+SING_OPTIONS_SOUND_BEAT_CLICK=Beat click
+SING_OPTIONS_SOUND_THRESHOLD=Tærskel
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2 Spiller modus
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Frosmag Volume
+SING_OPTIONS_SOUND_PREVIEWFADING=Forsmag Fader
+
+SING_OPTIONS_LYRICS_WHEREAMI=Tekst Indstillinger
+SING_OPTIONS_LYRICS_DESC=Tekst Indstillinger
+SING_OPTIONS_LYRICS_FONT=Tekst Type
+SING_OPTIONS_LYRICS_EFFECT=Effekt
+SING_OPTIONS_LYRICS_SOLMIZATION=Solmization
+;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves
+
+SING_OPTIONS_THEMES_WHEREAMI=Tema Indstillinger
+SING_OPTIONS_THEMES_DESC=Tema og Skin Indstillinger
+SING_OPTIONS_THEMES_THEME=Tema
+SING_OPTIONS_THEMES_SKIN=Skin
+SING_OPTIONS_THEMES_COLOR=Farve
+
+SING_OPTIONS_RECORD_WHEREAMI=Optagelses Indstillinger
+SING_OPTIONS_RECORD_DESC=Mikrofon Indstillinger
+SING_OPTIONS_RECORD_CARD=Lydkort
+SING_OPTIONS_RECORD_INPUT=Input
+SING_OPTIONS_RECORD_CHANNEL=Kanal
+
+SING_OPTIONS_ADVANCED_WHEREAMI=Advancerede Indstillinger
+SING_OPTIONS_ADVANCED_DESC=Advancerede Indstillinger
+SING_OPTIONS_ADVANCED_EFFECTSING=Sang Effekter
+SING_OPTIONS_ADVANCED_SCREENFADE=Skærm Fading
+SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Savety Questions
+SING_OPTIONS_ADVANCED_LINEBONUS=Linie Bonus
+SING_OPTIONS_ADVANCED_ONSONGCLICK=Efter sang valg
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Festmodus
+
+;TODO: SING_EDIT=Editor
+;TODO: SING_EDIT_MENU_DESCRIPTION=create your own song
+
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_EXIT=back
+;TODO: SING_EDIT_BUTTON_CONVERT=Import
+;TODO: SING_EDIT_BUTTON_EXIT=back
+
+;TODO: SING_EDIT_NAVIGATE=navigate
+;TODO: SING_EDIT_SELECT=select
+;TODO: SING_EDIT_EXIT=back
+
+SING_LEGEND_SELECT=Vælg
+SING_LEGEND_NAVIGATE=Naviger
+SING_LEGEND_CONTINUE=Fortsæt
+SING_LEGEND_ESC=Tilbage
+
+SING_PLAYER_DESC=Skriv Spiller Navn/e
+SING_PLAYER_WHEREAMI=Spiller Navne
+SING_PLAYER_ENTER_NAME=Skriv navn
+
+SING_DIFFICULTY_DESC=Vælg Sværhedsgrad
+SING_DIFFICULTY_WHEREAMI=Sværhedsgrad
+SING_DIFFICULTY_CONTINUE=Til sang valg
+SING_EASY=Let
+SING_MEDIUM=Normal
+SING_HARD=Svær
+
+SING_SONG_SELECTION_DESC=Vælg Din Sang
+SING_SONG_SELECTION_WHEREAMI=Sang Valg
+SING_SONG_SELECTION_GOTO=GÃ¥ Til ..
+SING_SONG_SELECTION=Sang Valg
+SING_SONG_SELECTION_MENU=Menu
+SING_SONG_SELECTION_PLAYLIST=Afspilningsliste
+SING_SONGS_IN_CAT=Songs
+PLAYLIST_CATTEXT=Playlist: %s
+
+SING_TIME=TID
+SING_TOTAL=Total
+SING_MODE=Syng Solo
+SING_NOTES=Noder
+SING_GOLDEN_NOTES=Gyldne Noder
+SING_PHRASE_BONUS=Linie Bonus
+
+SING_MENU=Hoved Menu
+
+SONG_SCORE=Sang score
+SONG_SCORE_WHEREAMI=Score
+
+SING_SCORE_TONE_DEAF=Tone Døv!
+SING_SCORE_AMATEUR=Amatør!
+;TODO: SING_SCORE_WANNABE=Wannabe
+;TODO: SING_SCORE_HOPEFUL=Hopeful
+SING_SCORE_RISING_STAR=Aspirende Stjerne
+SING_SCORE_LEAD_SINGER=Forsanger
+SING_SCORE_SUPERSTAR=Super Stjerne
+SING_SCORE_ULTRASTAR=Ultra Stjerne
+
+SING_TOP_5_CHARTS=Top 5 Spillere
+SING_TOP_5_CHARTS_WHEREAMI=Top 5
+SING_TOP_5_CHARTS_CONTINUE=Til Sang Valg
+;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
+
+POPUP_PERFECT=Perfekt!
+POPUP_AWESOME=Utroligt!
+POPUP_GREAT=Meget Godt!
+POPUP_GOOD=Godt!
+POPUP_NOTBAD=Ikke dårligt!
+POPUP_BAD=DÃ¥rligt!
+POPUP_POOR=Meget DÃ¥rligt!
+POPUP_AWFUL=Ringe!
+
+IMPLODE_GLUE1=,
+IMPLODE_GLUE2= og
+
+SONG_MENU_NAME_MAIN=Sang Menu
+SONG_MENU_PLAY=Syng
+SONG_MENU_CHANGEPLAYERS=Skift Spillere
+SONG_MENU_EDIT=Ændre
+SONG_MENU_MODI=Sing a Modi
+SONG_MENU_CANCEL=Annuller
+
+SONG_MENU_NAME_PLAYLIST=Sang Menu
+SONG_MENU_PLAYLIST_ADD=Tilføj Sang
+SONG_MENU_PLAYLIST_DEL=Slet Sang
+
+SONG_MENU_NAME_PLAYLIST_ADD=Tilføj Song
+SONG_MENU_PLAYLIST_ADD_NEW=Til Ny Afspilningsliste
+SONG_MENU_PLAYLIST_ADD_EXISTING=Til Eksisterende Afspilningsliste
+SONG_MENU_PLAYLIST_NOEXISTING=Ingen Tilgængelige Afspilningslister
+
+SONG_MENU_NAME_PLAYLIST_NEW=Ny Afspilningsliste
+SONG_MENU_PLAYLIST_NEW_CREATE=Skab
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Unavngiven
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Vil Du Virkelig Slette?
+SONG_MENU_YES=Ja
+SONG_MENU_NO=Nej
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Ã…ben Afspilningsliste
+SONG_MENU_PLAYLIST_LOAD=Ã…ben
+SONG_MENU_PLAYLIST_DELCURRENT=Slet Nuværende Afspilningsliste
+
+SONG_MENU_NAME_PLAYLIST_DEL=Slet Afspilningslisten?
+
+SONG_MENU_NAME_PARTY_MAIN=Fest Menu
+SONG_MENU_JOKER=Joker
+
+SONG_MENU_NAME_PARTY_JOKER=Brug Jokeren
+
+SONG_JUMPTO_DESC=Søg Sang
+SONG_JUMPTO_TYPE_DESC=Søg Efter:
+SONG_JUMPTO_TYPE1=Alle
+SONG_JUMPTO_TYPE2=Titel
+SONG_JUMPTO_TYPE3=Kunstner
+SONG_JUMPTO_SONGSFOUND=%d Sang(e) fundet!
+SONG_JUMPTO_NOSONGSFOUND=Ingen Sange Fundet
+SONG_JUMPTO_HELP=Skriv Teksten Du Vil Søge Efter
+SONG_JUMPTO_CATTEXT=Søg Efter: %s
+
+PARTY_MODE=Fest modus
+PARTY_DIFFICULTY=Sværhedsgrad
+PARTY_PLAYLIST=Afspilningsliste modus
+PARTY_PLAYLIST_ALL=Alle sange
+PARTY_PLAYLIST_CATEGORY=Mappe
+PARTY_PLAYLIST_PLAYLIST=Afspilningsliste
+PARTY_TEAMS=Teams
+PARTY_TEAMS_PLAYER1=Spiller Team 1
+PARTY_TEAMS_PLAYER2=Spiller Team 2
+PARTY_TEAMS_PLAYER3=Spiller Team 3
+
+PARTY_LEGEND_CONTINUE=Fortsæt
+
+PARTY_OPTIONS_DESC=Indstillinger for Fest spil
+PARTY_OPTIONS_WHEREAMI=Fest Indstillinger
+
+PARTY_PLAYER_DESC=Skriv Spiller of Team Navn!
+PARTY_PLAYER_WHEREAMI=Fest navne
+PARTY_PLAYER_ENTER_NAME=Skriv Navne
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE==Start Fest Spil
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
+
+PARTY_ROUND_DESC=Næste spillere til mikrofonerne
+PARTY_ROUND_WHEREAMI=Fest Næste runde
+PARTY_ROUND_LEGEND_CONTINUE=Start runde
+
+PARTY_SONG_WHEREAMI=Fest Sang-Valg
+PARTY_SONG_LEGEND_CONTINUE=Syng
+PARTY_SONG_MENU=Fest menu
+
+PARTY_SCORE_DESC=Sidste Rundes Score
+PARTY_SCORE_WHEREAMI=Fest Point
+
+PARTY_WIN_DESC=Vinderen Af Fest Spillet
+PARTY_WIN_WHEREAMI=Fest Vinder
+PARTY_WIN_LEGEND_CONTINUE=Tilbage til Hoved Menuen
+
+PARTY_ROUND=Runde
+PARTY_ROUND_WINNER=vinder
+PARTY_NOTPLAYEDYET=Ikke spillet endnu
+PARTY_NOBODY=Ingen
+NEXT_ROUND=Næste Runde:
+
+PARTY_DISMISSED=Afsluttet!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=Vinder!
+
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=Hold Linien
+MODE_HDL_DESC=Få ikke værrer end pilen på skalaen peger på
+
+MODE_5000POINTS_NAME=Until 5000
+MODE_5000POINTS_DESC=Hvem får 5000 point først vinder the kampen.
+
+MODE_DUEL_NAME=Duell
+MODE_DUEL_DESC=Syng en duel intil 10000 point.
+
+;TODO: MODE_TEAMDUEL_NAME=Team Duell
+;TODO: MODE_TEAMDUEL_DESC=Pass The Mic!
+
+MODE_BLIND_NAME=Blind Modus
+MODE_BLIND_DESC=Duel med usynlige noder.
+
+STAT_MAIN=Statestikker
+STAT_MAIN_DESC=Generelle
+STAT_MAIN_WHEREAMI=Statestikker
+
+STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d
+STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s.
+STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points.
+
+;TODO: STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
+STAT_DETAIL=Statestikker
+STAT_DETAIL_WHEREAMI=Detaljerede Statestikker
+
+STAT_NEXT=Næste Side
+STAT_PREV=Tidligere Side
+STAT_REVERSE=Omvendt Orden
+STAT_PAGE=Seite %0:d of %1:d Pages\n (%2:d of %3:d Entrys)
+
+STAT_DESC_SCORES=HighScore
+STAT_DESC_SCORES_REVERSED=LowScore
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Bedste Sangere
+STAT_DESC_SINGERS_REVERSED=Værste Sangere
+STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d
+
+STAT_DESC_SONGS=Mest Populære Sange
+STAT_DESC_SONGS_REVERSED=Mindst Populære Sange
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung
+
+STAT_DESC_BANDS=Mest Populære Bands
+STAT_DESC_BANDS_REVERSED=Mindst Populære Bands
+STAT_FORMAT_BANDS=%0:s \n %1:dx Sung
+
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
+MSG_ERROR_TITLE=Fejl
+;TODO: MSG_INFO_TITLE=Information
+MSG_QUESTION_TITLE=Spørgsmål
+MSG_QUIT_USDX=Vil du virkelig forlade UltraStar?
+MSG_END_PARTY=Vil du virkelig forlade fest Modus?
+
+ERROR_NO_SONGS=Ingen Sange hentet
+ERROR_NO_PLUGINS=Igen Plugins hentet
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
+ERROR_CORRUPT_SONG=Sangen kunne ikke hentes.
+;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found
+;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes
+;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks
+;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_SCORE_HIT_ARTIST=Etableret Stjerne
+;UNUSED: PARTY_ROUNDS=Runder
diff --git a/us_maker_edition/game/languages/Dutch.ini b/us_maker_edition/game/languages/Dutch.ini
index 703c0751..d93f98cf 100644
--- a/us_maker_edition/game/languages/Dutch.ini
+++ b/us_maker_edition/game/languages/Dutch.ini
@@ -1,79 +1,88 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=Laden...
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Faden
SING_OPTIONS_ADVANCED_LOADANIMATION=Laad animaties
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Veiligheidsvragen
SING_OPTIONS_ADVANCED_LINEBONUS=Lijnbonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Telling
SING_OPTIONS_ADVANCED_ONSONGCLICK=Selecties na het Liedje
SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Playlist Mode
PARTY_PLAYLIST_ALL=Alle liedjes
PARTY_PLAYLIST_CATEGORY=Map
PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Rondes
PARTY_TEAMS=Teams
PARTY_TEAMS_PLAYER1=Speler Team1
PARTY_TEAMS_PLAYER2=Speler Team2
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Party Opties
PARTY_PLAYER_DESC=Kies Speler en Teamnamen
PARTY_PLAYER_WHEREAMI=Party Namen
PARTY_PLAYER_ENTER_NAME=Kies de namen
-PARTY_PLAYER_LEGEND_CONTINUE=start partyspelletje
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE==start partyspelletje
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=Volgende spelers aan de Microfoon
PARTY_ROUND_WHEREAMI=Party Volgende ronde
@@ -339,20 +358,23 @@ PARTY_DISMISSED=Uitgeschakeld!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=overwinningen!
-PLUGIN_HDL_NAME=Hold the Line
-PLUGIN_HDL_DESC=Zing niet slechter dan het pijltje aangeeft!
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
-PLUGIN_UNTIL5000_NAME=Tot 5000
-PLUGIN_UNTIL5000_DESC=De eerste aan 5000 wint.
+MODE_HDL_NAME=Hold the Line
+MODE_HDL_DESC=Zing niet slechter dan het pijltje aangeeft!
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=Zing een duel to 10000 punten.
+MODE_5000POINTS_NAME=Tot 5000
+MODE_5000POINTS_DESC=De eerste aan 5000 wint.
-PLUGIN_TEAMDUELL_NAME=Team Duel
-PLUGIN_TEAMDUELL_DESC=Geef de microfoon door!
+MODE_DUEL_NAME=Duel
+MODE_DUEL_DESC=Zing een duel to 10000 punten.
-PLUGIN_BLIND_NAME=Blinde Mode
-PLUGIN_BLIND_DESC=Duel zonder de noten te zien.
+MODE_TEAMDUEL_NAME=Team Duel
+MODE_TEAMDUEL_DESC=Geef de microfoon door!
+
+MODE_BLIND_NAME=Blinde Mode
+MODE_BLIND_DESC=Duel zonder de noten te zien.
STAT_MAIN=Statistieken
STAT_MAIN_DESC=Algemeen
@@ -388,14 +410,33 @@ STAT_DESC_BANDS=Populairste Artiesten
STAT_DESC_BANDS_REVERSED=Minst populaire artiesten
STAT_FORMAT_BANDS=%0:s \n %1:dx gezongen
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Error
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Vraag
MSG_QUIT_USDX=Uit met de pret?
MSG_END_PARTY=Stoppen met de Party?
+
ERROR_NO_SONGS=Geen liedjes geladen
ERROR_NO_PLUGINS=Geen plugins geladen
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=Liedje kon niet geladen worden
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Liedje kon niet geladen worden: File niet gevonden
ERROR_CORRUPT_SONG_NO_NOTES=Liedje kon niet geladen worden: Geen noten gevonden
ERROR_CORRUPT_SONG_NO_BREAKS=Liedje kon niet geladen worden: Geen linebreaks gevonden
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Liedje kon niet geladen worden: Probleem met regel %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Liedje kon niet geladen worden: Probleem met regel %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Telling
+;UNUSED: PARTY_ROUNDS=Rondes
diff --git a/us_maker_edition/game/languages/English.ini b/us_maker_edition/game/languages/English.ini
index 6ec718ac..e122d80a 100644
--- a/us_maker_edition/game/languages/English.ini
+++ b/us_maker_edition/game/languages/English.ini
@@ -1,6 +1,8 @@
[Text]
OPTION_VALUE_CATALAN=Catalan
OPTION_VALUE_CROATIAN=Croatian
+OPTION_VALUE_CZECH=Czech
+OPTION_VALUE_DANISH=Danish
OPTION_VALUE_DUTCH=Dutch
OPTION_VALUE_ENGLISH=English
OPTION_VALUE_EUSKARA=Euskara
@@ -8,12 +10,17 @@ OPTION_VALUE_FINNISH=Finnish
OPTION_VALUE_FRENCH=French
OPTION_VALUE_GERMAN=German
OPTION_VALUE_GREEK=Greek
+OPTION_VALUE_HUNGARIAN=Hungarian
OPTION_VALUE_ICELANDIC=Icelandic
OPTION_VALUE_ITALIAN=Italian
OPTION_VALUE_JAPANESE=Japanese
OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
+OPTION_VALUE_NORWEGIAN=Norwegian
OPTION_VALUE_POLISH=Polish
+OPTION_VALUE_PORTUGUESE=Portuguese
+OPTION_VALUE_SERBIAN=Serbian
+OPTION_VALUE_SLOVAK=Slovak
+OPTION_VALUE_SLOVENIAN=Slovenian
OPTION_VALUE_SPANISH=Spanish
OPTION_VALUE_SWEDISH=Swedish
@@ -170,7 +177,7 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Screen Fading
SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Safety Questions
SING_OPTIONS_ADVANCED_LINEBONUS=Line Bonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
+;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=after Song Select
SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu
@@ -333,7 +340,7 @@ PARTY_PLAYER_WHEREAMI=Party Names
PARTY_PLAYER_ENTER_NAME=enter names
-PARTY_ROUNDS_DESC = select which modes you want to play
+PARTY_ROUNDS_DESC=select which modes you want to play
PARTY_ROUNDS_WHEREAMI=Party Rounds
PARTY_ROUNDS_LEGEND_CONTINUE=start party-game
PARTY_ROUNDCOUNT=number of rounds
@@ -441,11 +448,12 @@ MSG_END_PARTY=Really leave Party Mode?
ERROR_NO_SONGS=No Songs loaded
ERROR_NO_PLUGINS=No Plugins loaded
ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
-ERROR_CAN_NOT_START_PARTY= an error occurred starting the party game
+ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=Song could not be loaded.
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found
ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes
ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks
ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d
ERROR_NO_EDITOR=This feature is not available on Linux/Mac
-ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d was assigned to multiple microphones. Please check your record options
+ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options
diff --git a/us_maker_edition/game/languages/Euskara.ini b/us_maker_edition/game/languages/Euskara.ini
index 05fe9d06..22d7a2f1 100644
--- a/us_maker_edition/game/languages/Euskara.ini
+++ b/us_maker_edition/game/languages/Euskara.ini
@@ -1,19 +1,28 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
+OPTION_VALUE_CATALAN=Katalana
+OPTION_VALUE_CROATIAN=Kroaziera
+OPTION_VALUE_CZECH=Txekiarra
+OPTION_VALUE_DANISH=Daniera
+OPTION_VALUE_DUTCH=Nederlandera
+OPTION_VALUE_ENGLISH=Ingelesa
OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
+OPTION_VALUE_FINNISH=Finlandiera
+OPTION_VALUE_FRENCH=Frantseza
+OPTION_VALUE_GERMAN=Alemaniera
+OPTION_VALUE_GREEK=Greziera
+OPTION_VALUE_HUNGARIAN=Hungarian
+OPTION_VALUE_ICELANDIC=Icelandic
+OPTION_VALUE_ITALIAN=Italianoa
+OPTION_VALUE_JAPANESE=Japoniera
+OPTION_VALUE_LUXEMBOURGISH=Luxenburgera
+OPTION_VALUE_NORWEGIAN=Norvegiera
+OPTION_VALUE_POLISH=Poloniera
+OPTION_VALUE_PORTUGUESE=Portuguesa
+OPTION_VALUE_SERBIAN=Serbiera
+OPTION_VALUE_SLOVAK=Eslovakiera
+OPTION_VALUE_SLOVENIAN=Esloveniera
+OPTION_VALUE_SPANISH=Erdara
+OPTION_VALUE_SWEDISH=Suediera
OPTION_VALUE_EASY=Easy
OPTION_VALUE_MEDIUM=Medium
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Pantaila desagertu
SING_OPTIONS_ADVANCED_LOADANIMATION=Animazioa kargatzerakoan
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Ziurtasun galderak
SING_OPTIONS_ADVANCED_LINEBONUS=Lerro bonusa
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Aukeratu ondoren
SING_OPTIONS_ADVANCED_PARTYPOPUP=Talde menu auto
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Abestiak
PARTY_PLAYLIST_ALL=Guztiak
PARTY_PLAYLIST_CATEGORY=Karpeta
PARTY_PLAYLIST_PLAYLIST=Zerrenda
-PARTY_ROUNDS=Errondak
PARTY_TEAMS=Taldeak
PARTY_TEAMS_PLAYER1=Jokalariak 1.an
PARTY_TEAMS_PLAYER2=Jokalariak 2.an
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Taldeko hobespenak
PARTY_PLAYER_DESC=Jokalarien eta taldeen izenak
PARTY_PLAYER_WHEREAMI=Taldeen izenak
PARTY_PLAYER_ENTER_NAME=Izenak idatzi
-PARTY_PLAYER_LEGEND_CONTINUE=Jokoa hasi
+
+
+PARTY_ROUNDS_DESC=Aukeratu zein modurekin jokatu nahi duzun
+PARTY_ROUNDS_WHEREAMI=Errondak
+PARTY_ROUNDS_LEGEND_CONTINUE==Jokoa hasi
+PARTY_ROUNDCOUNT=Erronda kopurua
+PARTY_SELECTMODE1=1.errondaren modua
+PARTY_SELECTMODE2=2.errondaren modua
+PARTY_SELECTMODE3=3.errondaren modua
+PARTY_SELECTMODE4=4.errondaren modua
+PARTY_SELECTMODE5=5.errondaren modua
+PARTY_SELECTMODE6=6.errondaren modua
+PARTY_SELECTMODE7=7.errondaren modua
PARTY_ROUND_DESC=Hurrengoa mikrofonora
PARTY_ROUND_WHEREAMI=Hurrengo erronda
@@ -339,20 +358,23 @@ PARTY_DISMISSED=Galdu duzu!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=irabazi du!
-PLUGIN_HDL_NAME=Eutsi goiari
-PLUGIN_HDL_DESC=Ez jaitsi markatutako puntuazio mailatik.
+MODE_RANDOM_NAME=Ausazko modua
+MODE_RANDOM_DESC=Modu bat ausaz auketarua izango da
-PLUGIN_UNTIL5000_NAME=5000 arte
-PLUGIN_UNTIL5000_DESC=Azkarrena 5000 puntu lortzen irabazten du.
+MODE_HDL_NAME=Eutsi goiari
+MODE_HDL_DESC=Ez jaitsi markatutako puntuazio mailatik.
-PLUGIN_DUELL_NAME=Duelua
-PLUGIN_DUELL_DESC=Duelua 10.000 punturarte.
+MODE_5000POINTS_NAME=5000 arte
+MODE_5000POINTS_DESC=Azkarrena 5000 puntu lortzen irabazten du.
-PLUGIN_TEAMDUELL_NAME=Talde duelua
-PLUGIN_TEAMDUELL_DESC=Mikrofonoa pasa!
+MODE_DUEL_NAME=Duelua
+MODE_DUEL_DESC=Duelua 10.000 punturarte.
-PLUGIN_BLIND_NAME=Itsuan
-PLUGIN_BLIND_DESC=Duelua notak ikusi gabe.
+MODE_TEAMDUEL_NAME=Talde duelua
+MODE_TEAMDUEL_DESC=Mikrofonoa pasa!
+
+MODE_BLIND_NAME=Itsuan
+MODE_BLIND_DESC=Duelua notak ikusi gabe.
STAT_MAIN=Estatistikak
STAT_MAIN_DESC=Orokorrak
@@ -388,14 +410,32 @@ STAT_DESC_BANDS=Talde ospetsuak
STAT_DESC_BANDS_REVERSED=Talde ez ospetsuak
STAT_FORMAT_BANDS=%0:s \n %1:dx aldiz abestuta
+SCREENSHOT_SAVED=Pantaila-irudia gordeta
+SCREENSHOT_FAILED=Pantaila irudia ezin izan da gorde
+
+INFO_FILE_SAVED=Fitxategia gordeta
+ERROR_SAVE_FILE_FAILED=Ezin izan da fitxategia gorde
+ERROR_FILE_NOT_FOUND=Fitxategia ez da aurkitu
+
+ENCODING_ERROR_ASK_FOR_UTF8=Ezin dira aldaketan kodeaketa honetan gorde izan. UTF-8-ra bihurtu?
+EDITOR_ERROR_NO_TRACK_SELECTED=Ez da abestirik aukeratu
+
MSG_ERROR_TITLE=Hutsa
+MSG_INFO_TITLE=Informazioa
MSG_QUESTION_TITLE=Galdera
MSG_QUIT_USDX=Ziur zaude irten nahi duzula?
MSG_END_PARTY=Ziur zaude talde jokoa bukatu nahi duzula?
+
ERROR_NO_SONGS=Ez dago abestirik
ERROR_NO_PLUGINS=Ez dago pluginik
+ERROR_NO_MODES_FOR_CURRENT_SETUP=Ez dago modu eskuragarririk jokalari/talde honetarako
+ERROR_CAN_NOT_START_PARTY=Errore bat gertatu da jokoa hastean
ERROR_CORRUPT_SONG=Ezin da abestia kargatu
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ezin da abestia kargatu: Fitxategia falta da
ERROR_CORRUPT_SONG_NO_NOTES=Ezin da abestia kargatu: Ez daude notak
ERROR_CORRUPT_SONG_NO_BREAKS=Ezin da abestia kargatu: Ez daude lerro jauziak
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ezin da abestia kargatu: Okerra %0:d lerroan \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ezin da abestia kargatu: Okerra %0:d lerroan
+ERROR_NO_EDITOR=Ezaugarri hau ez dago Linux/Mac-en
+ERROR_PLAYER_DEVICE_ASSIGNMENT= %d.jokalariak mikrofono bat baino gehiago aukeratuta ditu . Mesedez grabazioaren aukerak begiratu
+ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Mesedez grabazioaren aukerak begiratu
+;UNUSED: PARTY_ROUNDS=Errondak \ No newline at end of file
diff --git a/us_maker_edition/game/languages/Finnish.ini b/us_maker_edition/game/languages/Finnish.ini
index 76f0a6ca..ec72580f 100644
--- a/us_maker_edition/game/languages/Finnish.ini
+++ b/us_maker_edition/game/languages/Finnish.ini
@@ -1,401 +1,401 @@
-[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
-
-SING_LOADING=Ladataan...
-
-SING_CHOOSE_MODE=valitse pelimuoto
-SING_SING=laula
-SING_SING_DESC=pikapeli - laula soolo tai duetto
-
-SING_MULTI=bileet
-SING_MULTI_DESC=Oletko valmis joukkuetaistoon?
-
-SING_TOOLS=asetukset
-
-SING_STATS=tilastot
-SING_STATS_DESC=näytä tilastot
-
-SING_EDITOR=kappale-editori
-SING_EDITOR_DESC=luo omia kappaleita
-
-SING_GAME_OPTIONS=peliasetukset
-SING_GAME_OPTIONS_DESC=muokkaa peliasetuksia
-
-SING_EXIT=lopeta
-SING_EXIT_DESC=lopeta peli
-
-SING_OPTIONS=asetukset
-SING_OPTIONS_DESC=muuta asetuksia
-SING_OPTIONS_WHEREAMI=Asetukset
-
-SING_OPTIONS_GAME=peli
-SING_OPTIONS_GRAPHICS=grafiikka
-SING_OPTIONS_SOUND=ääni
-SING_OPTIONS_LYRICS=lyriikat
-SING_OPTIONS_THEMES=ulkoasut
-SING_OPTIONS_RECORD=äänitys
-SING_OPTIONS_ADVANCED=lisäasetukset
-SING_OPTIONS_EXIT=takaisin
-
-SING_OPTIONS_GAME_WHEREAMI=Peliasetukset
-SING_OPTIONS_GAME_DESC=yleiset peliasetukset
-SING_OPTIONS_GAME_PLAYERS=Pelaajat
-SING_OPTIONS_GAME_DIFFICULTY=Vaikeustaso
-SING_OPTIONS_GAME_LANGUAGE=Kieli
-SING_OPTIONS_GAME_TABS=Kansiot
-SING_OPTIONS_GAME_SORTING=Lajittelu
-SING_OPTIONS_GAME_DEBUG=Debuggaus
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Grafiikka-asetukset
-SING_OPTIONS_GRAPHICS_DESC=grafiikka-asetukset
-SING_OPTIONS_GRAPHICS_RESOLUTION=Resoluutio
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Koko ruutu
-SING_OPTIONS_GRAPHICS_DEPTH=Värisyvyys
-SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisointi
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Värähtelijä
-SING_OPTIONS_GRAPHICS_LINEBONUS=Viivabonukset
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videon koko
-
-SING_OPTIONS_SOUND_WHEREAMI=Ääniasetukset
-SING_OPTIONS_SOUND_DESC=ääniasetukset
-SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Oma ääni kuuluvissa
-SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Taustamusiikki
-SING_OPTIONS_SOUND_MIC_BOOST=Mikin voimakkuus
-SING_OPTIONS_SOUND_CLICK_ASSIST=Klikkausapu
-SING_OPTIONS_SOUND_BEAT_CLICK=Tahti-apu
-SING_OPTIONS_SOUND_THRESHOLD=Kynnystaso
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Kaksinpelitila
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Esikatselun voimakkuus
-SING_OPTIONS_SOUND_PREVIEWFADING=Esikatselun feidaus
-
-SING_OPTIONS_LYRICS_WHEREAMI=Lyriikka-asetukset
-SING_OPTIONS_LYRICS_DESC=lyriikka-asetukset
-SING_OPTIONS_LYRICS_FONT=Fontti
-SING_OPTIONS_LYRICS_EFFECT=Tehoste
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmisaatio
-SING_OPTIONS_LYRICS_NOTELINES=Nuottiviivasto
-
-SING_OPTIONS_THEMES_WHEREAMI=Ulkoasu-asetukset
-SING_OPTIONS_THEMES_DESC=ulkoasu-asetukset
-SING_OPTIONS_THEMES_THEME=Ulkoasu
-SING_OPTIONS_THEMES_SKIN=Tausta
-SING_OPTIONS_THEMES_COLOR=Väri
-
-SING_OPTIONS_RECORD_WHEREAMI=Äänitys-asetukset
-SING_OPTIONS_RECORD_DESC=mikrofonin asetukset
-SING_OPTIONS_RECORD_CARD=Äänikortti
-SING_OPTIONS_RECORD_INPUT=Sisääntulo
-SING_OPTIONS_RECORD_CHANNEL=Kanava
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Lisäasetukset
-SING_OPTIONS_ADVANCED_DESC=lisäasetukset
-SING_OPTIONS_ADVANCED_EFFECTSING=Kappaletehosteet
-SING_OPTIONS_ADVANCED_SCREENFADE=Ruudun feidaus
-SING_OPTIONS_ADVANCED_LOADANIMATION=Latausanimaatio
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Poiston vahvistus
-SING_OPTIONS_ADVANCED_LINEBONUS=Rivibonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Kappaleen jälkeen
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Autom. bilevalikko
-
-SING_EDIT=kappale-editori
-SING_EDIT_MENU_DESCRIPTION=luo omia kappaleita
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Luo .txt midi-tiedostosta
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=takaisin
-SING_EDIT_BUTTON_CONVERT=Luo
-SING_EDIT_BUTTON_EXIT=takaisin
-
-SING_EDIT_NAVIGATE=liiku
-SING_EDIT_SELECT=valitse
-SING_EDIT_EXIT=takaisin
-
-SING_LEGEND_SELECT=valitse
-SING_LEGEND_NAVIGATE=liiku
-SING_LEGEND_CONTINUE=jatka
-SING_LEGEND_ESC=takaisin
-
-SING_PLAYER_DESC=syötä pelaajan nimi
-SING_PLAYER_WHEREAMI=Pelaajien nimet
-SING_PLAYER_ENTER_NAME=syötä nimi
-
-SING_DIFFICULTY_DESC=valitse vaikeustaso
-SING_DIFFICULTY_WHEREAMI=Vaikeustaso
-SING_DIFFICULTY_CONTINUE=kappalevalinta
-SING_EASY=Helppo
-SING_MEDIUM=Keskitaso
-SING_HARD=Vaikea
-
-SING_SONG_SELECTION_DESC=valitse kappale
-SING_SONG_SELECTION_WHEREAMI=Kappalevalinta
-SING_SONG_SELECTION_GOTO=mene ...
-SING_SONG_SELECTION=kappalevalinta
-SING_SONG_SELECTION_MENU=valikko
-SING_SONG_SELECTION_PLAYLIST=soittolista
-SING_SONGS_IN_CAT=kappaletta
-PLAYLIST_CATTEXT=Soittolista: %s
-
-SING_TIME=KESTO
-SING_TOTAL=yhteensä
-SING_MODE=laula soolo
-SING_NOTES=nuotit
-SING_GOLDEN_NOTES=kultanuotit
-SING_PHRASE_BONUS=rivibonus
-
-SING_MENU=Päävalikko
-
-SONG_SCORE=kappaleen pisteet
-SONG_SCORE_WHEREAMI=Pisteet
-
-SING_SCORE_TONE_DEAF=Sävelkorvaton
-SING_SCORE_AMATEUR=Amatööri
-SING_SCORE_WANNABE=Wannabe
-SING_SCORE_HOPEFUL=Toiveita herättävä
-SING_SCORE_RISING_STAR=Nouseva tähti
-SING_SCORE_LEAD_SINGER=Päälaulaja
-SING_SCORE_SUPERSTAR=Supertähti
-SING_SCORE_ULTRASTAR=Ultratähti
-
-SING_TOP_5_CHARTS=top 5 pelaajat
-SING_TOP_5_CHARTS_WHEREAMI=top 5
-SING_TOP_5_CHARTS_CONTINUE=kappalevalintaan
+[Text]
+OPTION_VALUE_CATALAN=Catalan
+OPTION_VALUE_CROATIAN=Croatian
+OPTION_VALUE_DUTCH=Dutch
+OPTION_VALUE_ENGLISH=English
+OPTION_VALUE_EUSKARA=Euskara
+OPTION_VALUE_FINNISH=Finnish
+OPTION_VALUE_FRENCH=French
+OPTION_VALUE_GERMAN=German
+OPTION_VALUE_GREEK=Greek
+OPTION_VALUE_ITALIAN=Italian
+OPTION_VALUE_JAPANESE=Japanese
+OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+OPTION_VALUE_PORTUGUESE=Portuguese
+OPTION_VALUE_SPANISH=Spanish
+OPTION_VALUE_SWEDISH=Swedish
+
+OPTION_VALUE_EASY=Easy
+OPTION_VALUE_MEDIUM=Medium
+OPTION_VALUE_HARD=Hard
+
+OPTION_VALUE_ON=On
+OPTION_VALUE_OFF=Off
+
+OPTION_VALUE_EDITION=Edition
+OPTION_VALUE_GENRE=Genre
+OPTION_VALUE_LANGUAGE=Language
+OPTION_VALUE_FOLDER=Folder
+OPTION_VALUE_TITLE=Title
+OPTION_VALUE_ARTIST=Artist
+OPTION_VALUE_TITLE2=Title2
+OPTION_VALUE_ARTIST2=Artist2
+
+OPTION_VALUE_WHENNOVIDEO=When No Video
+
+OPTION_VALUE_SMALL=Small
+OPTION_VALUE_BIG=Big
+
+OPTION_VALUE_HALF=Half
+OPTION_VALUE_FULL_VID=Full (Video)
+OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+OPTION_VALUE_AUTO=Auto
+OPTION_VALUE_SEC=Second
+OPTION_VALUE_SECS=Seconds
+
+OPTION_VALUE_PLAIN=Plain
+OPTION_VALUE_OLINE1=OLine1
+OPTION_VALUE_OLINE2=OLine2
+
+OPTION_VALUE_SIMPLE=Simple
+OPTION_VALUE_ZOOM=Zoom
+OPTION_VALUE_SLIDE=Slide
+OPTION_VALUE_BALL=Ball
+OPTION_VALUE_SHIFT=Shift
+
+OPTION_VALUE_EURO=Euro
+OPTION_VALUE_JAPAN=Japan
+OPTION_VALUE_AMERICAN=American
+
+OPTION_VALUE_BLUE=Blue
+OPTION_VALUE_GREEN=Green
+OPTION_VALUE_PINK=Pink
+OPTION_VALUE_RED=Red
+OPTION_VALUE_VIOLET=Violet
+OPTION_VALUE_ORANGE=Orange
+OPTION_VALUE_YELLOW=Yellow
+OPTION_VALUE_BROWN=Brown
+OPTION_VALUE_BLACK=Black
+
+OPTION_VALUE_SING=Sing
+OPTION_VALUE_SELECT_PLAYERS=Select Players
+OPTION_VALUE_OPEN_MENU=Open Menu
+
+OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
+SING_LOADING=Ladataan...
+
+SING_CHOOSE_MODE=valitse pelimuoto
+SING_SING=laula
+SING_SING_DESC=pikapeli - laula soolo tai duetto
+
+SING_MULTI=bileet
+SING_MULTI_DESC=Oletko valmis joukkuetaistoon?
+
+SING_TOOLS=asetukset
+
+SING_STATS=tilastot
+SING_STATS_DESC=näytä tilastot
+
+SING_EDITOR=kappale-editori
+SING_EDITOR_DESC=luo omia kappaleita
+
+SING_GAME_OPTIONS=peliasetukset
+SING_GAME_OPTIONS_DESC=muokkaa peliasetuksia
+
+SING_EXIT=lopeta
+SING_EXIT_DESC=lopeta peli
+
+SING_OPTIONS=asetukset
+SING_OPTIONS_DESC=muuta asetuksia
+SING_OPTIONS_WHEREAMI=Asetukset
+
+SING_OPTIONS_GAME=peli
+SING_OPTIONS_GRAPHICS=grafiikka
+SING_OPTIONS_SOUND=ääni
+SING_OPTIONS_LYRICS=lyriikat
+SING_OPTIONS_THEMES=ulkoasut
+SING_OPTIONS_RECORD=äänitys
+SING_OPTIONS_ADVANCED=lisäasetukset
+SING_OPTIONS_EXIT=takaisin
+
+SING_OPTIONS_GAME_WHEREAMI=Peliasetukset
+SING_OPTIONS_GAME_DESC=yleiset peliasetukset
+SING_OPTIONS_GAME_PLAYERS=Pelaajat
+SING_OPTIONS_GAME_DIFFICULTY=Vaikeustaso
+SING_OPTIONS_GAME_LANGUAGE=Kieli
+SING_OPTIONS_GAME_TABS=Kansiot
+SING_OPTIONS_GAME_SORTING=Lajittelu
+SING_OPTIONS_GAME_DEBUG=Debuggaus
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=Grafiikka-asetukset
+SING_OPTIONS_GRAPHICS_DESC=grafiikka-asetukset
+SING_OPTIONS_GRAPHICS_RESOLUTION=Resoluutio
+SING_OPTIONS_GRAPHICS_FULLSCREEN=Koko ruutu
+SING_OPTIONS_GRAPHICS_DEPTH=Värisyvyys
+SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisointi
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Värähtelijä
+SING_OPTIONS_GRAPHICS_LINEBONUS=Viivabonukset
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videon koko
+
+SING_OPTIONS_SOUND_WHEREAMI=Ääniasetukset
+SING_OPTIONS_SOUND_DESC=ääniasetukset
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Oma ääni kuuluvissa
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Taustamusiikki
+SING_OPTIONS_SOUND_MIC_BOOST=Mikin voimakkuus
+SING_OPTIONS_SOUND_CLICK_ASSIST=Klikkausapu
+SING_OPTIONS_SOUND_BEAT_CLICK=Tahti-apu
+SING_OPTIONS_SOUND_THRESHOLD=Kynnystaso
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Kaksinpelitila
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Esikatselun voimakkuus
+SING_OPTIONS_SOUND_PREVIEWFADING=Esikatselun feidaus
+
+SING_OPTIONS_LYRICS_WHEREAMI=Lyriikka-asetukset
+SING_OPTIONS_LYRICS_DESC=lyriikka-asetukset
+SING_OPTIONS_LYRICS_FONT=Fontti
+SING_OPTIONS_LYRICS_EFFECT=Tehoste
+SING_OPTIONS_LYRICS_SOLMIZATION=Solmisaatio
+SING_OPTIONS_LYRICS_NOTELINES=Nuottiviivasto
+
+SING_OPTIONS_THEMES_WHEREAMI=Ulkoasu-asetukset
+SING_OPTIONS_THEMES_DESC=ulkoasu-asetukset
+SING_OPTIONS_THEMES_THEME=Ulkoasu
+SING_OPTIONS_THEMES_SKIN=Tausta
+SING_OPTIONS_THEMES_COLOR=Väri
+
+SING_OPTIONS_RECORD_WHEREAMI=Äänitys-asetukset
+SING_OPTIONS_RECORD_DESC=mikrofonin asetukset
+SING_OPTIONS_RECORD_CARD=Äänikortti
+SING_OPTIONS_RECORD_INPUT=Sisääntulo
+SING_OPTIONS_RECORD_CHANNEL=Kanava
+
+SING_OPTIONS_ADVANCED_WHEREAMI=Lisäasetukset
+SING_OPTIONS_ADVANCED_DESC=lisäasetukset
+SING_OPTIONS_ADVANCED_EFFECTSING=Kappaletehosteet
+SING_OPTIONS_ADVANCED_SCREENFADE=Ruudun feidaus
+SING_OPTIONS_ADVANCED_LOADANIMATION=Latausanimaatio
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Poiston vahvistus
+SING_OPTIONS_ADVANCED_LINEBONUS=Rivibonus
+SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
+SING_OPTIONS_ADVANCED_ONSONGCLICK=Kappaleen jälkeen
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Autom. bilevalikko
+
+SING_EDIT=kappale-editori
+SING_EDIT_MENU_DESCRIPTION=luo omia kappaleita
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Luo .txt midi-tiedostosta
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=takaisin
+SING_EDIT_BUTTON_CONVERT=Luo
+SING_EDIT_BUTTON_EXIT=takaisin
+
+SING_EDIT_NAVIGATE=liiku
+SING_EDIT_SELECT=valitse
+SING_EDIT_EXIT=takaisin
+
+SING_LEGEND_SELECT=valitse
+SING_LEGEND_NAVIGATE=liiku
+SING_LEGEND_CONTINUE=jatka
+SING_LEGEND_ESC=takaisin
+
+SING_PLAYER_DESC=syötä pelaajan nimi
+SING_PLAYER_WHEREAMI=Pelaajien nimet
+SING_PLAYER_ENTER_NAME=syötä nimi
+
+SING_DIFFICULTY_DESC=valitse vaikeustaso
+SING_DIFFICULTY_WHEREAMI=Vaikeustaso
+SING_DIFFICULTY_CONTINUE=kappalevalinta
+SING_EASY=Helppo
+SING_MEDIUM=Keskitaso
+SING_HARD=Vaikea
+
+SING_SONG_SELECTION_DESC=valitse kappale
+SING_SONG_SELECTION_WHEREAMI=Kappalevalinta
+SING_SONG_SELECTION_GOTO=mene ...
+SING_SONG_SELECTION=kappalevalinta
+SING_SONG_SELECTION_MENU=valikko
+SING_SONG_SELECTION_PLAYLIST=soittolista
+SING_SONGS_IN_CAT=kappaletta
+PLAYLIST_CATTEXT=Soittolista: %s
+
+SING_TIME=KESTO
+SING_TOTAL=yhteensä
+SING_MODE=laula soolo
+SING_NOTES=nuotit
+SING_GOLDEN_NOTES=kultanuotit
+SING_PHRASE_BONUS=rivibonus
+
+SING_MENU=Päävalikko
+
+SONG_SCORE=kappaleen pisteet
+SONG_SCORE_WHEREAMI=Pisteet
+
+SING_SCORE_TONE_DEAF=Sävelkorvaton
+SING_SCORE_AMATEUR=Amatööri
+SING_SCORE_WANNABE=Wannabe
+SING_SCORE_HOPEFUL=Toiveita herättävä
+SING_SCORE_RISING_STAR=Nouseva tähti
+SING_SCORE_LEAD_SINGER=Päälaulaja
+SING_SCORE_SUPERSTAR=Supertähti
+SING_SCORE_ULTRASTAR=Ultratähti
+
+SING_TOP_5_CHARTS=top 5 pelaajat
+SING_TOP_5_CHARTS_WHEREAMI=top 5
+SING_TOP_5_CHARTS_CONTINUE=kappalevalintaan
SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
-
-POPUP_PERFECT=täydellistä!
-POPUP_AWESOME=loistavaa!
-POPUP_GREAT=mahtavaa!
-POPUP_GOOD=hyvä!
-POPUP_NOTBAD=menettelee!
-POPUP_BAD=huonoa!
-POPUP_POOR=heikkoa!
-POPUP_AWFUL=kauheaa!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= ja
-
-SONG_MENU_NAME_MAIN=kappalevalikko
-SONG_MENU_PLAY=Laula
-SONG_MENU_CHANGEPLAYERS=Vaihda pelaajia
-SONG_MENU_EDIT=Muokkaa
-SONG_MENU_MODI=Laula muunneltu kappale
-SONG_MENU_CANCEL=Peruuta
-
-SONG_MENU_NAME_PLAYLIST=Kappalevalikko
-SONG_MENU_PLAYLIST_ADD=Lisää kappale
-SONG_MENU_PLAYLIST_DEL=Poista kappale
-
-SONG_MENU_NAME_PLAYLIST_ADD=Lisää kappale
-SONG_MENU_PLAYLIST_ADD_NEW=uuteen soittolistaan
-SONG_MENU_PLAYLIST_ADD_EXISTING=luotuun soittolistaan
-SONG_MENU_PLAYLIST_NOEXISTING=Soittolistaa ei saatavilla
-
-SONG_MENU_NAME_PLAYLIST_NEW=Uusi soittolista
-SONG_MENU_PLAYLIST_NEW_CREATE=Luo
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Nimetön
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Vahvista poisto?
-SONG_MENU_YES=Kyllä
-SONG_MENU_NO=Ei
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Avaa soittolista
-SONG_MENU_PLAYLIST_LOAD=Avaa
-SONG_MENU_PLAYLIST_DELCURRENT=poista nykyinen soittolista
-
-SONG_MENU_NAME_PLAYLIST_DEL=Poista soittolista?
-
-SONG_MENU_NAME_PARTY_MAIN=Bilevalikko
-SONG_MENU_JOKER=Jokeri
-
-SONG_MENU_NAME_PARTY_JOKER=käytä jokeri
-
-SONG_JUMPTO_DESC=etsi kappale
-SONG_JUMPTO_TYPE_DESC=Etsi:
-SONG_JUMPTO_TYPE1=Kaikki
-SONG_JUMPTO_TYPE2=Nimen mukaan
-SONG_JUMPTO_TYPE3=Artistin mukaan
-SONG_JUMPTO_SONGSFOUND=Löytyi %d kappaletta
-SONG_JUMPTO_NOSONGSFOUND=Kappaletta ei löytynyt
-SONG_JUMPTO_HELP=Syötä hakuteksti
-SONG_JUMPTO_CATTEXT=Etsi: %s
-
-PARTY_MODE=biletila
-PARTY_DIFFICULTY=Vaikeustaso
-PARTY_PLAYLIST=Soittolistan valinta
-PARTY_PLAYLIST_ALL=Kaikki kappaleet
-PARTY_PLAYLIST_CATEGORY=Kansio
-PARTY_PLAYLIST_PLAYLIST=Soittolista
-PARTY_ROUNDS=Kierrokset
-PARTY_TEAMS=Joukkueet
-PARTY_TEAMS_PLAYER1=Pelaajat Joukkue1
-PARTY_TEAMS_PLAYER2=Pelaajat Joukkue2
-PARTY_TEAMS_PLAYER3=Pelaajat Joukkue3
-
-PARTY_LEGEND_CONTINUE=jatka
-
-PARTY_OPTIONS_DESC=bilepelin asetukset
-PARTY_OPTIONS_WHEREAMI=Bile-asetukset
-
-PARTY_PLAYER_DESC=Syötä pelaajien ja joukkueiden nimet!
-PARTY_PLAYER_WHEREAMI=Bilepelaajien nimet
-PARTY_PLAYER_ENTER_NAME=syötä nimet
-PARTY_PLAYER_LEGEND_CONTINUE=aloita bileet
-
-PARTY_ROUND_DESC=seuraavat pelaajat mikkeihin
-PARTY_ROUND_WHEREAMI=Seuraava kierros
-PARTY_ROUND_LEGEND_CONTINUE=aloita
-
-PARTY_SONG_WHEREAMI=Bilekappaleen valinta
-PARTY_SONG_LEGEND_CONTINUE=laula
-PARTY_SONG_MENU=bilevalikko
-
-PARTY_SCORE_DESC=kierroksen pisteet
-PARTY_SCORE_WHEREAMI=Bilepisteet
-
-PARTY_WIN_DESC=bilepelin voittaja
-PARTY_WIN_WHEREAMI=Bilepelin voittaja
-PARTY_WIN_LEGEND_CONTINUE=takaisin päävalikkoon
-
-PARTY_ROUND=Kierros
-PARTY_ROUND_WINNER=Voittaja
-PARTY_NOTPLAYEDYET=pelaamatta
-PARTY_NOBODY=ei kukaan
-NEXT_ROUND=Seuraava kierros:
-
-PARTY_DISMISSED=Diskattu!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=voittaa!
-
-PLUGIN_HDL_NAME=Pidä pintasi!
-PLUGIN_HDL_DESC=Älä putoa palkin alapuolelle.
-
-PLUGIN_UNTIL5000_NAME=Viistonnia
-PLUGIN_UNTIL5000_DESC=Ensimmäisenä 5000 pistettä saanut voittaa.
-
-PLUGIN_DUELL_NAME=Kymppitonni
-PLUGIN_DUELL_DESC=Kaksintaistelu 10000 pisteeseen.
-
-PLUGIN_TEAMDUELL_NAME=Mikit kiertoon!
-PLUGIN_TEAMDUELL_DESC=Mikki kiertää joukkueen sisällä... Varaudu siis laulamaan!
-
-PLUGIN_BLIND_NAME=Sokkona
-PLUGIN_BLIND_DESC=Et näe nuotteja.
-
-STAT_MAIN=Tilastot
-STAT_MAIN_DESC=Yleiset
-STAT_MAIN_WHEREAMI=Tilasto
-
-STAT_OVERVIEW_INTRO=%0:s \n Pelattu viimeksi %1:.2d.%2:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d kappaletta(%3:d musiikkivideota), joista %1:d pelattu ja %2:d joita ei vielä kokeiltu.\n Suosituin kappale: %4:s :n %5:s
-STAT_OVERVIEW_PLAYER=Viimeksi %0:d eri pelaajaa,\n joista paras oli %1:s keskipisteillä %2:d pistettä.\n %3:s sai korkeimmat pisteet, %4:d pistettä.
+
+POPUP_PERFECT=täydellistä!
+POPUP_AWESOME=loistavaa!
+POPUP_GREAT=mahtavaa!
+POPUP_GOOD=hyvä!
+POPUP_NOTBAD=menettelee!
+POPUP_BAD=huonoa!
+POPUP_POOR=heikkoa!
+POPUP_AWFUL=kauheaa!
+
+IMPLODE_GLUE1=,
+IMPLODE_GLUE2= ja
+
+SONG_MENU_NAME_MAIN=kappalevalikko
+SONG_MENU_PLAY=Laula
+SONG_MENU_CHANGEPLAYERS=Vaihda pelaajia
+SONG_MENU_EDIT=Muokkaa
+SONG_MENU_MODI=Laula muunneltu kappale
+SONG_MENU_CANCEL=Peruuta
+
+SONG_MENU_NAME_PLAYLIST=Kappalevalikko
+SONG_MENU_PLAYLIST_ADD=Lisää kappale
+SONG_MENU_PLAYLIST_DEL=Poista kappale
+
+SONG_MENU_NAME_PLAYLIST_ADD=Lisää kappale
+SONG_MENU_PLAYLIST_ADD_NEW=uuteen soittolistaan
+SONG_MENU_PLAYLIST_ADD_EXISTING=luotuun soittolistaan
+SONG_MENU_PLAYLIST_NOEXISTING=Soittolistaa ei saatavilla
+
+SONG_MENU_NAME_PLAYLIST_NEW=Uusi soittolista
+SONG_MENU_PLAYLIST_NEW_CREATE=Luo
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Nimetön
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Vahvista poisto?
+SONG_MENU_YES=Kyllä
+SONG_MENU_NO=Ei
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Avaa soittolista
+SONG_MENU_PLAYLIST_LOAD=Avaa
+SONG_MENU_PLAYLIST_DELCURRENT=poista nykyinen soittolista
+
+SONG_MENU_NAME_PLAYLIST_DEL=Poista soittolista?
+
+SONG_MENU_NAME_PARTY_MAIN=Bilevalikko
+SONG_MENU_JOKER=Jokeri
+
+SONG_MENU_NAME_PARTY_JOKER=käytä jokeri
+
+SONG_JUMPTO_DESC=etsi kappale
+SONG_JUMPTO_TYPE_DESC=Etsi:
+SONG_JUMPTO_TYPE1=Kaikki
+SONG_JUMPTO_TYPE2=Nimen mukaan
+SONG_JUMPTO_TYPE3=Artistin mukaan
+SONG_JUMPTO_SONGSFOUND=Löytyi %d kappaletta
+SONG_JUMPTO_NOSONGSFOUND=Kappaletta ei löytynyt
+SONG_JUMPTO_HELP=Syötä hakuteksti
+SONG_JUMPTO_CATTEXT=Etsi: %s
+
+PARTY_MODE=biletila
+PARTY_DIFFICULTY=Vaikeustaso
+PARTY_PLAYLIST=Soittolistan valinta
+PARTY_PLAYLIST_ALL=Kaikki kappaleet
+PARTY_PLAYLIST_CATEGORY=Kansio
+PARTY_PLAYLIST_PLAYLIST=Soittolista
+PARTY_ROUNDS=Kierrokset
+PARTY_TEAMS=Joukkueet
+PARTY_TEAMS_PLAYER1=Pelaajat Joukkue1
+PARTY_TEAMS_PLAYER2=Pelaajat Joukkue2
+PARTY_TEAMS_PLAYER3=Pelaajat Joukkue3
+
+PARTY_LEGEND_CONTINUE=jatka
+
+PARTY_OPTIONS_DESC=bilepelin asetukset
+PARTY_OPTIONS_WHEREAMI=Bile-asetukset
+
+PARTY_PLAYER_DESC=Syötä pelaajien ja joukkueiden nimet!
+PARTY_PLAYER_WHEREAMI=Bilepelaajien nimet
+PARTY_PLAYER_ENTER_NAME=syötä nimet
+PARTY_PLAYER_LEGEND_CONTINUE=aloita bileet
+
+PARTY_ROUND_DESC=seuraavat pelaajat mikkeihin
+PARTY_ROUND_WHEREAMI=Seuraava kierros
+PARTY_ROUND_LEGEND_CONTINUE=aloita
+
+PARTY_SONG_WHEREAMI=Bilekappaleen valinta
+PARTY_SONG_LEGEND_CONTINUE=laula
+PARTY_SONG_MENU=bilevalikko
+
+PARTY_SCORE_DESC=kierroksen pisteet
+PARTY_SCORE_WHEREAMI=Bilepisteet
+
+PARTY_WIN_DESC=bilepelin voittaja
+PARTY_WIN_WHEREAMI=Bilepelin voittaja
+PARTY_WIN_LEGEND_CONTINUE=takaisin päävalikkoon
+
+PARTY_ROUND=Kierros
+PARTY_ROUND_WINNER=Voittaja
+PARTY_NOTPLAYEDYET=pelaamatta
+PARTY_NOBODY=ei kukaan
+NEXT_ROUND=Seuraava kierros:
+
+PARTY_DISMISSED=Diskattu!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=voittaa!
+
+PLUGIN_HDL_NAME=Pidä pintasi!
+PLUGIN_HDL_DESC=Älä putoa palkin alapuolelle.
+
+PLUGIN_UNTIL5000_NAME=Viistonnia
+PLUGIN_UNTIL5000_DESC=Ensimmäisenä 5000 pistettä saanut voittaa.
+
+PLUGIN_DUELL_NAME=Kymppitonni
+PLUGIN_DUELL_DESC=Kaksintaistelu 10000 pisteeseen.
+
+PLUGIN_TEAMDUELL_NAME=Mikit kiertoon!
+PLUGIN_TEAMDUELL_DESC=Mikki kiertää joukkueen sisällä... Varaudu siis laulamaan!
+
+PLUGIN_BLIND_NAME=Sokkona
+PLUGIN_BLIND_DESC=Et näe nuotteja.
+
+STAT_MAIN=Tilastot
+STAT_MAIN_DESC=Yleiset
+STAT_MAIN_WHEREAMI=Tilasto
+
+STAT_OVERVIEW_INTRO=%0:s \n Pelattu viimeksi %1:.2d.%2:.2d.%3:d
+STAT_OVERVIEW_SONG=%0:d kappaletta(%3:d musiikkivideota), joista %1:d pelattu ja %2:d joita ei vielä kokeiltu.\n Suosituin kappale: %4:s :n %5:s
+STAT_OVERVIEW_PLAYER=Viimeksi %0:d eri pelaajaa,\n joista paras oli %1:s keskipisteillä %2:d pistettä.\n %3:s sai korkeimmat pisteet, %4:d pistettä.
STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
-
-STAT_DETAIL=Tilasto
-STAT_DETAIL_WHEREAMI=Yksityiskohtainen tilasto
-
-STAT_NEXT=Seuraava sivu
-STAT_PREV=Edellinen sivu
-STAT_REVERSE=Paras/huonoin
-STAT_PAGE=Sivu %0:d / %1:d\n (%2:d / %3:d)
-
-STAT_DESC_SCORES=Parhaat laulajat
-STAT_DESC_SCORES_REVERSED=Huonoimmat laulajat
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Parhaat laulajat
-STAT_DESC_SINGERS_REVERSED=Huonoimmat laulajat
-STAT_FORMAT_SINGERS=%0:s \n Keskipisteet: %1:d
-
-STAT_DESC_SONGS=Suosituimmat biisit
-STAT_DESC_SONGS_REVERSED=Vähiten lauletut biisit
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx laulettu
-
-STAT_DESC_BANDS=Suosituimmat bändit
-STAT_DESC_BANDS_REVERSED=Vähiten lauletut bändit
-STAT_FORMAT_BANDS=%0:s \n %1:dx laulettu
-
-MSG_ERROR_TITLE=Virhe
-MSG_QUESTION_TITLE= o_0
-MSG_QUIT_USDX=Poistutaanko UltraStarista?
-MSG_END_PARTY=Poistutaanko biletilasta?
-ERROR_NO_SONGS=Kappaleita ei saatavilla
-ERROR_NO_PLUGINS=Lisäosia ei saatavilla
-ERROR_CORRUPT_SONG=Kappaletta ei voi ladata.
-ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Kappaletta ei voi ladata: Tiedostoa ei löytynyt
-ERROR_CORRUPT_SONG_NO_NOTES=Kappaletta ei voi ladata: Nuotteja ei löytynyt
-ERROR_CORRUPT_SONG_NO_BREAKS=Kappaletta ei voi ladata: Rivikatko(j)a ei löytynyt
+
+STAT_DETAIL=Tilasto
+STAT_DETAIL_WHEREAMI=Yksityiskohtainen tilasto
+
+STAT_NEXT=Seuraava sivu
+STAT_PREV=Edellinen sivu
+STAT_REVERSE=Paras/huonoin
+STAT_PAGE=Sivu %0:d / %1:d\n (%2:d / %3:d)
+
+STAT_DESC_SCORES=Parhaat laulajat
+STAT_DESC_SCORES_REVERSED=Huonoimmat laulajat
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Parhaat laulajat
+STAT_DESC_SINGERS_REVERSED=Huonoimmat laulajat
+STAT_FORMAT_SINGERS=%0:s \n Keskipisteet: %1:d
+
+STAT_DESC_SONGS=Suosituimmat biisit
+STAT_DESC_SONGS_REVERSED=Vähiten lauletut biisit
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx laulettu
+
+STAT_DESC_BANDS=Suosituimmat bändit
+STAT_DESC_BANDS_REVERSED=Vähiten lauletut bändit
+STAT_FORMAT_BANDS=%0:s \n %1:dx laulettu
+
+MSG_ERROR_TITLE=Virhe
+MSG_QUESTION_TITLE= o_0
+MSG_QUIT_USDX=Poistutaanko UltraStarista?
+MSG_END_PARTY=Poistutaanko biletilasta?
+ERROR_NO_SONGS=Kappaleita ei saatavilla
+ERROR_NO_PLUGINS=Lisäosia ei saatavilla
+ERROR_CORRUPT_SONG=Kappaletta ei voi ladata.
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Kappaletta ei voi ladata: Tiedostoa ei löytynyt
+ERROR_CORRUPT_SONG_NO_NOTES=Kappaletta ei voi ladata: Nuotteja ei löytynyt
+ERROR_CORRUPT_SONG_NO_BREAKS=Kappaletta ei voi ladata: Rivikatko(j)a ei löytynyt
ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Kappaletta ei voi ladata: Virhe txt:n rivillä %0:d \ No newline at end of file
diff --git a/us_maker_edition/game/languages/French.ini b/us_maker_edition/game/languages/French.ini
index 6c4e6b5b..405515d0 100644
--- a/us_maker_edition/game/languages/French.ini
+++ b/us_maker_edition/game/languages/French.ini
@@ -1,6 +1,8 @@
[Text]
OPTION_VALUE_CATALAN=Catalan
OPTION_VALUE_CROATIAN=Croate
+OPTION_VALUE_CZECH=Tchèque
+;TODO: OPTION_VALUE_DANISH=Danish
OPTION_VALUE_DUTCH=Néerlandais
OPTION_VALUE_ENGLISH=Anglais
OPTION_VALUE_EUSKARA=Basque
@@ -8,10 +10,17 @@ OPTION_VALUE_FINNISH=Finnois
OPTION_VALUE_FRENCH=Français
OPTION_VALUE_GERMAN=Allemand
OPTION_VALUE_GREEK=Grec
+OPTION_VALUE_HUNGARIAN=Hongrois
+OPTION_VALUE_ICELANDIC=Islandais
OPTION_VALUE_ITALIAN=Italien
OPTION_VALUE_JAPANESE=Japonais
-OPTION_VALUE_Luxembourgish=Luxembourgeois
+OPTION_VALUE_LUXEMBOURGISH=Luxembourgeois
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
OPTION_VALUE_PORTUGUESE=Portugais
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
OPTION_VALUE_SPANISH=Espagnol
OPTION_VALUE_SWEDISH=Suédois
@@ -19,8 +28,8 @@ OPTION_VALUE_EASY=Facile
OPTION_VALUE_MEDIUM=Moyen
OPTION_VALUE_HARD=Difficile
-OPTION_VALUE_ON=Oui
-OPTION_VALUE_OFF=Non
+OPTION_VALUE_ON=Activé
+OPTION_VALUE_OFF=Désactivé
OPTION_VALUE_EDITION=Édition
OPTION_VALUE_GENRE=Genre
@@ -36,7 +45,7 @@ OPTION_VALUE_WHENNOVIDEO=Si pas de vidéo
OPTION_VALUE_SMALL=Petit
OPTION_VALUE_BIG=Grand
-OPTION_VALUE_HALF=Coupée
+OPTION_VALUE_HALF=Moitiée
OPTION_VALUE_FULL_VID=Complète
OPTION_VALUE_FULL_VID_BG=Complète (Fond + Vidéo)
@@ -49,14 +58,14 @@ OPTION_VALUE_OLINE1=Bordures
OPTION_VALUE_OLINE2=Gras
OPTION_VALUE_SIMPLE=Syllabes
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Phrases
+OPTION_VALUE_ZOOM=Zoomer
+OPTION_VALUE_SLIDE=Glisser
OPTION_VALUE_BALL=Balle
-OPTION_VALUE_SHIFT=Rebond
+OPTION_VALUE_SHIFT=Bond
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
+OPTION_VALUE_EURO=Européen
+OPTION_VALUE_JAPAN=Japonais
+OPTION_VALUE_AMERICAN=Américain
OPTION_VALUE_BLUE=Bleu
OPTION_VALUE_GREEN=Vert
@@ -77,29 +86,29 @@ OPTION_VALUE_SOFTWARE_CURSOR=Pointeur logiciel
SING_LOADING=Chargement...
-SING_CHOOSE_MODE=Choisir un mode
-SING_SING=Solo
-SING_SING_DESC=Chanter
+SING_CHOOSE_MODE=Choisissez un mode de jeu
+SING_SING=Chanter
+SING_SING_DESC=Chantez en solo
-SING_MULTI=Multi
-SING_MULTI_DESC=Chanter à plusieurs
+SING_MULTI=Fête
+SING_MULTI_DESC=Faites la fête
SING_TOOLS=Outils
SING_STATS=Statistiques
-SING_STATS_DESC=Consulter les statistiques
+SING_STATS_DESC=Consultez les statistiques
SING_EDITOR=Éditeur
-SING_EDITOR_DESC=Créer vos propres chansons
+SING_EDITOR_DESC=Créez vos propres chansons
SING_GAME_OPTIONS=Options
-SING_GAME_OPTIONS_DESC=Modifier les paramètres du jeu
+SING_GAME_OPTIONS_DESC=Modifiez les paramètres du jeu
SING_EXIT=Quitter
SING_EXIT_DESC=Quitter le jeu
SING_OPTIONS=Options
-SING_OPTIONS_DESC=Changer les paramètres
+SING_OPTIONS_DESC=Changez les paramètres
SING_OPTIONS_WHEREAMI=Options
SING_OPTIONS_GAME=Jeu
@@ -111,39 +120,39 @@ SING_OPTIONS_RECORD=Micros
SING_OPTIONS_ADVANCED=Avancé
SING_OPTIONS_EXIT=Retour
-SING_OPTIONS_GAME_WHEREAMI=Options de jeu
-SING_OPTIONS_GAME_DESC=Options générales de jeu
-SING_OPTIONS_GAME_PLAYERS=Joueurs
+SING_OPTIONS_GAME_WHEREAMI=Options du jeu
+SING_OPTIONS_GAME_DESC=Options générales du jeu
+SING_OPTIONS_GAME_PLAYERS=Joueur(s)
SING_OPTIONS_GAME_DIFFICULTY=Difficulté
SING_OPTIONS_GAME_LANGUAGE=Langue
SING_OPTIONS_GAME_TABS=Dossier
-SING_OPTIONS_GAME_SORTING=Tri
+SING_OPTIONS_GAME_SORTING=Tri par
SING_OPTIONS_GAME_DEBUG=Débogage
SING_OPTIONS_GRAPHICS_WHEREAMI=Options graphiques
SING_OPTIONS_GRAPHICS_DESC=Paramètres des graphismes
SING_OPTIONS_GRAPHICS_RESOLUTION=Résolution
SING_OPTIONS_GRAPHICS_FULLSCREEN=Plein écran
-SING_OPTIONS_GRAPHICS_DEPTH=Couleurs
-SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
+SING_OPTIONS_GRAPHICS_DEPTH=Profondeur
+SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisation
SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscope
SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de phrases
SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Taille vidéo
-SING_OPTIONS_SOUND_WHEREAMI=Options de son
-SING_OPTIONS_SOUND_DESC=Paramètres de son
+SING_OPTIONS_SOUND_WHEREAMI=Options du son
+SING_OPTIONS_SOUND_DESC=Paramètres du son
SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Entendre le micro
SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Musique de fond
-SING_OPTIONS_SOUND_MIC_BOOST=Amplif. micro
+SING_OPTIONS_SOUND_MIC_BOOST=Amplifier le micro
SING_OPTIONS_SOUND_CLICK_ASSIST=Clics d'aide
SING_OPTIONS_SOUND_BEAT_CLICK=Métronome
-SING_OPTIONS_SOUND_THRESHOLD=Suppression bruit
+SING_OPTIONS_SOUND_THRESHOLD=Suppression du bruit
SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mode 2 joueurs
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Prévis. volume
-SING_OPTIONS_SOUND_PREVIEWFADING=Prévis. baisse
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Prévisualiser volume
+SING_OPTIONS_SOUND_PREVIEWFADING=Prévisualiser baisse(faux)
-SING_OPTIONS_LYRICS_WHEREAMI=Options de paroles
-SING_OPTIONS_LYRICS_DESC=Paramètres de paroles
+SING_OPTIONS_LYRICS_WHEREAMI=Options des paroles
+SING_OPTIONS_LYRICS_DESC=Paramètres des paroles
SING_OPTIONS_LYRICS_FONT=Caractères
SING_OPTIONS_LYRICS_EFFECT=Effet
SING_OPTIONS_LYRICS_SOLMIZATION=Afficher gamme
@@ -166,16 +175,15 @@ SING_OPTIONS_ADVANCED_DESC=Paramètres avancés
SING_OPTIONS_ADVANCED_EFFECTSING=Effet de chant
SING_OPTIONS_ADVANCED_SCREENFADE=Fondu écran
SING_OPTIONS_ADVANCED_LOADANIMATION=Charge animation
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirm sup.
-SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de phrases
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Compteur de titres chantés
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirm. suppression
+SING_OPTIONS_ADVANCED_LINEBONUS=Bonus des phrases
SING_OPTIONS_ADVANCED_ONSONGCLICK=Choix ap. chanson
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu multi auto
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu fête auto
SING_EDIT=Éditeur
-SING_EDIT_MENU_DESCRIPTION=Créez vos propres chansons !
+SING_EDIT_MENU_DESCRIPTION=Créez vos propres chansons
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importer du texte depuis un fichier MIDI
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Exporter du texte depuis un fichier MIDI
SING_EDIT_BUTTON_DESCRIPTION_EXIT=Retour
SING_EDIT_BUTTON_CONVERT=Importer
SING_EDIT_BUTTON_EXIT=Retour
@@ -186,21 +194,21 @@ SING_EDIT_EXIT=Retour
SING_LEGEND_SELECT=Valider
SING_LEGEND_NAVIGATE=Naviguer
-SING_LEGEND_CONTINUE=Valider
+SING_LEGEND_CONTINUE=Continuer
SING_LEGEND_ESC=Retour
-SING_PLAYER_DESC=Entrer le nom du joueur
+SING_PLAYER_DESC=Entrez le nom du/des joueur(s)
SING_PLAYER_WHEREAMI=Nom du joueur
SING_PLAYER_ENTER_NAME=Modifier
-SING_DIFFICULTY_DESC=Choisir le niveau de difficulté
+SING_DIFFICULTY_DESC=Sélectionnez le niveau de difficulté
SING_DIFFICULTY_WHEREAMI=Difficulté
SING_DIFFICULTY_CONTINUE=Valider
SING_EASY=Facile
SING_MEDIUM=Moyen
SING_HARD=Difficile
-SING_SONG_SELECTION_DESC=Choisir une chanson
+SING_SONG_SELECTION_DESC=Choisissez une chanson
SING_SONG_SELECTION_WHEREAMI=Sélection du titre
SING_SONG_SELECTION_GOTO=Atteindre
SING_SONG_SELECTION=Choix de chansons
@@ -211,7 +219,7 @@ PLAYLIST_CATTEXT=Playlist: %s
SING_TIME=TEMPS
SING_TOTAL=Total
-SING_MODE=Mode
+SING_MODE=Mode chanter
SING_NOTES=Notes
SING_GOLDEN_NOTES=Notes en or
SING_PHRASE_BONUS=Bonus de phrases
@@ -223,7 +231,7 @@ SONG_SCORE_WHEREAMI=Points
SING_SCORE_TONE_DEAF=Casserole
SING_SCORE_AMATEUR=Amateur
-SING_SCORE_WANNABE=Aspirant chanteur
+SING_SCORE_WANNABE=Aspirant chant.
SING_SCORE_HOPEFUL=Espoir
SING_SCORE_RISING_STAR=Star en herbe
SING_SCORE_LEAD_SINGER=Artiste
@@ -233,100 +241,111 @@ SING_SCORE_ULTRASTAR=Ultrastar
SING_TOP_5_CHARTS=Top 5
SING_TOP_5_CHARTS_WHEREAMI=Meilleurs joueurs
SING_TOP_5_CHARTS_CONTINUE=Continuer
-SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
+SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Changer de difficultés
-POPUP_PERFECT=Parfait !
-POPUP_AWESOME=Cool !
-POPUP_GREAT=Grandiose !
-POPUP_GOOD=Bien !
-POPUP_NOTBAD=O.K. !
-POPUP_BAD=Pas terrible !
-POPUP_POOR=Mauvais !
-POPUP_AWFUL=Nul !
+POPUP_PERFECT=Parfait!
+POPUP_AWESOME=Cool!
+POPUP_GREAT=Génial!
+POPUP_GOOD=Bien!
+POPUP_NOTBAD=Pas mal
+POPUP_BAD=Bof...
+POPUP_POOR=Mauvais!
+POPUP_AWFUL=Nul!
IMPLODE_GLUE1=,
IMPLODE_GLUE2= et
SONG_MENU_NAME_MAIN=Menu
SONG_MENU_PLAY=Chanter
-SONG_MENU_CHANGEPLAYERS=Changer de joueur
+SONG_MENU_CHANGEPLAYERS=Changer de joueurs
SONG_MENU_EDIT=Éditeur
SONG_MENU_MODI=Chanter un mode
SONG_MENU_CANCEL=Annuler
SONG_MENU_NAME_PLAYLIST=Menu
-SONG_MENU_PLAYLIST_ADD=Ajouter une chanson
+SONG_MENU_PLAYLIST_ADD=Ajouter la chanson
SONG_MENU_PLAYLIST_DEL=Supprimer la chanson
-SONG_MENU_NAME_PLAYLIST_ADD=Ajouter chanson
-SONG_MENU_PLAYLIST_ADD_NEW=É la nouvelle playlist
+SONG_MENU_NAME_PLAYLIST_ADD=Ajouter la chanson
+SONG_MENU_PLAYLIST_ADD_NEW=À une nouvelle playlist
SONG_MENU_PLAYLIST_ADD_EXISTING=Ajouter à la playlist
-SONG_MENU_PLAYLIST_NOEXISTING=Pas de playlist
+SONG_MENU_PLAYLIST_NOEXISTING=Playlists indisponibles
SONG_MENU_NAME_PLAYLIST_NEW=Nouvelle playlist
SONG_MENU_PLAYLIST_NEW_CREATE=Créer
SONG_MENU_PLAYLIST_NEW_UNNAMED=Sans-nom
-SONG_MENU_NAME_PLAYLIST_DELITEM=Supprimer ?
+SONG_MENU_NAME_PLAYLIST_DELITEM=Supprimer?
SONG_MENU_YES=Oui
SONG_MENU_NO=Non
-SONG_MENU_NAME_PLAYLIST_DEL=Supprimer la playlist ?
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Ouvrir une playlist
+SONG_MENU_NAME_PLAYLIST_LOAD=Ouvrir la playlist
SONG_MENU_PLAYLIST_LOAD=Ouvrir
-SONG_MENU_PLAYLIST_DELCURRENT=Supprimer la playlist actuelle
+SONG_MENU_PLAYLIST_DELCURRENT=Supprimer la playlist
+
+SONG_MENU_NAME_PLAYLIST_DEL=Êtes-vous sûr(e)?
-SONG_MENU_NAME_PARTY_MAIN=Menu
+SONG_MENU_NAME_PARTY_MAIN=Menu fête
SONG_MENU_JOKER=Joker
-SONG_MENU_NAME_PARTY_JOKER=Joker
+SONG_MENU_NAME_PARTY_JOKER=Utiliser Joker
SONG_JUMPTO_DESC=Rechercher
-SONG_JUMPTO_TYPE_DESC=Recherche :
+SONG_JUMPTO_TYPE_DESC=Recherche:
SONG_JUMPTO_TYPE1=Tout
SONG_JUMPTO_TYPE2=Titre
SONG_JUMPTO_TYPE3=Artiste
SONG_JUMPTO_SONGSFOUND=%d Chanson(s) trouvée(s)
SONG_JUMPTO_NOSONGSFOUND=Aucune chanson trouvée
-SONG_JUMPTO_HELP=Entrer le texte à rechercher
+SONG_JUMPTO_HELP=Entrez le texte à rechercher
SONG_JUMPTO_CATTEXT=Recherche: %s
-PARTY_MODE=Mode multi
+PARTY_MODE=Mode fête
PARTY_DIFFICULTY=Difficulté
PARTY_PLAYLIST=Playlist
PARTY_PLAYLIST_ALL=Toutes les chansons
PARTY_PLAYLIST_CATEGORY=Dossier
PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Nbre manches
-PARTY_TEAMS=Nbre équipes
-PARTY_TEAMS_PLAYER1=Joueur(s) équipe 1
-PARTY_TEAMS_PLAYER2=Joueur(s) équipe 2
-PARTY_TEAMS_PLAYER3=Joueur(s) équipe 3
+PARTY_TEAMS=Nbre d'équipes
+PARTY_TEAMS_PLAYER1=Nbre de joueurs
+PARTY_TEAMS_PLAYER2=Nbre de joueurs
+PARTY_TEAMS_PLAYER3=Nbre de joueurs
PARTY_LEGEND_CONTINUE=Suivant
-PARTY_OPTIONS_DESC=Paramètres du mode multi
-PARTY_OPTIONS_WHEREAMI=Options du mode multi
+PARTY_OPTIONS_DESC=Paramètres du mode fête
+PARTY_OPTIONS_WHEREAMI=Mode fête: Options
PARTY_PLAYER_DESC=Entrez le nom des équipes et des joueurs
-PARTY_PLAYER_WHEREAMI=Mode multi: Équipes
+PARTY_PLAYER_WHEREAMI=Mode fête: Équipes
PARTY_PLAYER_ENTER_NAME=Modifier
-PARTY_PLAYER_LEGEND_CONTINUE=Valider
-PARTY_ROUND_DESC=Joueurs suivants, à vos micros !
-PARTY_ROUND_WHEREAMI=Mode multi: Manche suivante
-PARTY_ROUND_LEGEND_CONTINUE=Commencer
-PARTY_SONG_WHEREAMI=Mode multi: Choix de la chanson
+PARTY_ROUNDS_DESC= Sélectionnez les modes
+PARTY_ROUNDS_WHEREAMI=Mode fête: Manches
+PARTY_ROUNDS_LEGEND_CONTINUE=Commencer la fête
+PARTY_ROUNDCOUNT=Nbre des manches
+PARTY_SELECTMODE1=1ère manche
+PARTY_SELECTMODE2=2e manche
+PARTY_SELECTMODE3=3e manche
+PARTY_SELECTMODE4=4e manche
+PARTY_SELECTMODE5=5e manche
+PARTY_SELECTMODE6=6e manche
+PARTY_SELECTMODE7=7e manche
+
+PARTY_ROUND_DESC=Joueurs suivants, à vos micros!
+PARTY_ROUND_WHEREAMI=Mode fête: Manche suivante
+PARTY_ROUND_LEGEND_CONTINUE=Commencer la manche
+
+PARTY_SONG_WHEREAMI=Mode fête: Choix de la chanson
PARTY_SONG_LEGEND_CONTINUE=Chanter
-PARTY_SONG_MENU=Menu
+PARTY_SONG_MENU=Menu fête
PARTY_SCORE_DESC=Score de la manche
-PARTY_SCORE_WHEREAMI=Mode multi: Score
+PARTY_SCORE_WHEREAMI=Mode fête: Score
PARTY_WIN_DESC=Gagnant de la partie
-PARTY_WIN_WHEREAMI=Mode multi: Gagnant
+PARTY_WIN_WHEREAMI=Mode fête: Gagnant
PARTY_WIN_LEGEND_CONTINUE=Retour au menu principal
PARTY_ROUND=Manche
@@ -335,34 +354,37 @@ PARTY_NOTPLAYEDYET=-
PARTY_NOBODY=Personne ne
NEXT_ROUND=Manche suivante:
-PARTY_DISMISSED=Rétrogradé
+PARTY_DISMISSED=Rétrogradé!
PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=l'emporte !
+PARTY_SCORE_WINS2=l'emporte!
+
+MODE_RANDOM_NAME=Mode hasard
+MODE_RANDOM_DESC=Un mode sera choisi au hasard.
-PLUGIN_HDL_NAME=Tiens la barre
-PLUGIN_HDL_DESC=Maintiens la jauge dans le secteur indiqué.
+MODE_HDL_NAME=Tenez la barre
+MODE_HDL_DESC=Maintenez la jauge dans le secteur indiqué.
-PLUGIN_UNTIL5000_NAME=A 5000
-PLUGIN_UNTIL5000_DESC=Le 1er qui atteint 5000 points remporte la manche.
+MODE_5000POINTS_NAME=Jusqu'à 5000
+MODE_5000POINTS_DESC=Remportez la manche en étant le 1er à atteindre 5000 points.
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=Le meilleur score remporte la manche.
+MODE_DUEL_NAME=Duel
+MODE_DUEL_DESC=L'équipe victorieuse sera celle qui a le meilleur score.
-PLUGIN_TEAMDUELL_NAME=Duel par équipe
-PLUGIN_TEAMDUELL_DESC=Passe le micro!
+MODE_TEAMDUEL_NAME=Duel par équipe
+MODE_TEAMDUEL_DESC=Passez le micro!
-PLUGIN_BLIND_NAME=É l'aveugle
-PLUGIN_BLIND_DESC=Obtiens le meilleur score sans regarder l'écran.
+MODE_BLIND_NAME=À l'aveugle
+MODE_BLIND_DESC=Obtenez le meilleur score sans l'aide des notes.
STAT_MAIN=Statistiques
STAT_MAIN_DESC=Général
STAT_MAIN_WHEREAMI=Statistiques
STAT_OVERVIEW_INTRO=Statistiques d'%0:s \n Dernière réinitialisation le %1:.2d.%2:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d chansons (%3:d avec vidéo)\n%1:d ont déjà été chantées une fois, %2:d pas encore. \n\n La chanson la plus chantée est %5:s de %4:s.
-STAT_OVERVIEW_INTRO=Statistiques d'%0:s \n Dernière réinitialisation le %1:.2d.%2:.2d.%3:d
+STAT_OVERVIEW_SONG=Le jeu contient %0:d chansons dont %3:d avec vidéo.\n%1:d ont déjà été chantées une fois et %2:d pas encore. \n\n La chanson la plus chantée est %5:s de %4:s.
+STAT_OVERVIEW_PLAYER=%0:d joueurs différents ont chantés depuis la dernière réinitialisation. \n\n Le meilleur joueur est %1:s avec %2:d points. \n %3:s a atteint le meilleur score avec %4:d points.
-STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+STAT_FORMAT_DATE=%0:.2d.%1:.2d.%2:d
STAT_DETAIL=Statistiques
STAT_DETAIL_WHEREAMI=Statistiques détaillées
@@ -372,30 +394,48 @@ STAT_PREV=Page préc.
STAT_REVERSE=Inverser
STAT_PAGE=Page %0:d de %1:d \n (%2:d entrées sur %3:d)
-STAT_DESC_SCORES=Score
+STAT_DESC_SCORES=Meilleurs Scores
STAT_DESC_SCORES_REVERSED=Pires scores
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-STAT_DESC_SINGERS=Chanteurs
+STAT_DESC_SINGERS=Meill. Chanteurs
STAT_DESC_SINGERS_REVERSED=Pires chanteurs
STAT_FORMAT_SINGERS=%0:s \n Score moyen: %1:d
-STAT_DESC_SONGS=Chansons
+STAT_DESC_SONGS=Chansons favorites
STAT_DESC_SONGS_REVERSED=Chansons impopulaires
STAT_FORMAT_SONGS=%0:s - %1:s \n Chanté %2:dx
-STAT_DESC_BANDS=Artistes
+STAT_DESC_BANDS=Artistes favoris
STAT_DESC_BANDS_REVERSED=Artistes impopulaires
STAT_FORMAT_BANDS=%0:s \n Chansons chantées: %1:d
+SCREENSHOT_SAVED=Capture d'écran sauvegardée
+SCREENSHOT_FAILED=Impossible de sauvegarder la capture
+
+INFO_FILE_SAVED=Fichier sauvegardé
+ERROR_SAVE_FILE_FAILED=Impossible de sauvegarder le fichier
+ERROR_FILE_NOT_FOUND=Fichier introuvable
+
+ENCODING_ERROR_ASK_FOR_UTF8=Impossible de sauvegarder sous l'encodage actuel. Convertir en UTF-8?
+EDITOR_ERROR_NO_TRACK_SELECTED=Aucune piste n'est sélectionnée
+
MSG_ERROR_TITLE=Erreur
+MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Confirmation
-MSG_QUIT_USDX=Quitter le jeu ?
-MSG_END_PARTY=Quitter la partie ?
-ERROR_NO_SONGS=Aucune chanson.
-ERROR_NO_PLUGINS=Aucun plugin.
+MSG_QUIT_USDX=Quitter le jeu?
+MSG_END_PARTY=Quitter la fête?
+
+ERROR_NO_SONGS=Chansons introuvables
+ERROR_NO_PLUGINS=Plugins introuvables
+ERROR_NO_MODES_FOR_CURRENT_SETUP=Aucun mode n'est disponible pour les équipe/joueurs actuels.
+ERROR_CAN_NOT_START_PARTY= Une erreur s'est produite au démarrage du mode fête.
ERROR_CORRUPT_SONG=Impossible de charger la chanson.
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Chargement impossible: Fichier non trouvé
ERROR_CORRUPT_SONG_NO_NOTES=Chargement impossible: Pas de partition trouvée
ERROR_CORRUPT_SONG_NO_BREAKS=Chargement impossible: Saut de ligne introuvable
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Chargement impossible: Erreur analyseur à la ligne %0:d
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Chargement impossible: Erreur analyseur à la ligne %0:d
+ERROR_NO_EDITOR=Éditeur introuvable
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Compteur de titres chantés
diff --git a/us_maker_edition/game/languages/German.ini b/us_maker_edition/game/languages/German.ini
index 02124805..413287fc 100644
--- a/us_maker_edition/game/languages/German.ini
+++ b/us_maker_edition/game/languages/German.ini
@@ -1,6 +1,8 @@
[Text]
OPTION_VALUE_CATALAN=Katalanisch
OPTION_VALUE_CROATIAN=Kroatisch
+;TODO: OPTION_VALUE_CZECH=Czech
+OPTION_VALUE_DANISH=Dänisch
OPTION_VALUE_DUTCH=Niederländisch
OPTION_VALUE_ENGLISH=Englisch
OPTION_VALUE_EUSKARA=Baskisch
@@ -8,10 +10,17 @@ OPTION_VALUE_FINNISH=Finnisch
OPTION_VALUE_FRENCH=Französisch
OPTION_VALUE_GERMAN=Deutsch
OPTION_VALUE_GREEK=Griechisch
+OPTION_VALUE_HUNGARIAN=Ungarisch
+OPTION_VALUE_ICELANDIC=Isländisch
OPTION_VALUE_ITALIAN=Italienisch
OPTION_VALUE_JAPANESE=Japanisch
OPTION_VALUE_LUXEMBOURGISH=Luxemburgisch
+OPTION_VALUE_NORWEGIAN=Norwegisch
+OPTION_VALUE_POLISH=Polnisch
OPTION_VALUE_PORTUGUESE=Portugiesisch
+OPTION_VALUE_SERBIAN=Serbisch
+OPTION_VALUE_SLOVAK=Slowakisch
+OPTION_VALUE_SLOVENIAN=Slowenisch
OPTION_VALUE_SPANISH=Spanisch
OPTION_VALUE_SWEDISH=Schwedisch
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Bildschirm-Fade
SING_OPTIONS_ADVANCED_LOADANIMATION=Lade-Animation
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sicherheitsabfr.
SING_OPTIONS_ADVANCED_LINEBONUS=Phrasenbonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Wie oft gesungen mitzählen
SING_OPTIONS_ADVANCED_ONSONGCLICK=Nach Songauswahl
SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Party-Menü
@@ -312,7 +320,8 @@ PARTY_PLAYER_DESC=Team- und Spielernamen eingeben.
PARTY_PLAYER_WHEREAMI=Party Spielernamen
PARTY_PLAYER_ENTER_NAME=Namen eingeben
-PARTY_ROUNDS_DESC = Wähle welche Modi du spielen möchtest
+
+PARTY_ROUNDS_DESC= Wähle welche Modi du spielen möchtest
PARTY_ROUNDS_WHEREAMI=Party Runden
PARTY_ROUNDS_LEGEND_CONTINUE=Partyspiel starten
PARTY_ROUNDCOUNT=Anzahl der Runden
@@ -349,8 +358,8 @@ PARTY_DISMISSED=Ausgeschieden!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=hat gewonnen!
-MODE_RANDOM_NAME = zufälliger Modus
-MODE_RANDOM_DESC = Wählt einen zufälligen Modus aus
+MODE_RANDOM_NAME= zufälliger Modus
+MODE_RANDOM_DESC= Wählt einen zufälligen Modus aus
MODE_HDL_NAME=Balken halten
MODE_HDL_DESC=Halte die Bewertungsanzeige im angezeigten Bereich.
@@ -358,11 +367,11 @@ MODE_HDL_DESC=Halte die Bewertungsanzeige im angezeigten Bereich.
MODE_5000POINTS_NAME=Bis 5000
MODE_5000POINTS_DESC=Wer zuerst 5000 Punkte hat, gewinnt.
-MODE_DUELL_NAME=Duell
-MODE_DUELL_DESC=Normales Spiel. Höchste Punktzahl gewinnt.
+MODE_DUEL_NAME=Duell
+MODE_DUEL_DESC=Normales Spiel. Höchste Punktzahl gewinnt.
-MODE_TEAMDUELL_NAME=Teamsingen
-MODE_TEAMDUELL_DESC=Gib das Mikro weiter!
+MODE_TEAMDUEL_NAME=Teamsingen
+MODE_TEAMDUEL_DESC=Gib das Mikro weiter!
MODE_BLIND_NAME=Blind Modus
MODE_BLIND_DESC=Erreiche blind die höchste Punktzahl.
@@ -427,4 +436,6 @@ ERROR_CORRUPT_SONG_NO_NOTES=Song konnte nicht geladen werden: Es wurden keine No
ERROR_CORRUPT_SONG_NO_BREAKS=Song konnte nicht geladen werden: Es wurden keine Satzwechsel gefunden.
ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song konnte nicht geladen werden: Fehler beim parsen der Zeile %0:d
ERROR_NO_EDITOR=Diese Funktion ist unter Linux/Mac noch nicht verfügbar
-ERROR_PLAYER_DEVICE_ASSIGNMENT=Mehrere Mikrofone für Spieler %d gewählt.\nAufnahmeoptionen überprüfen. \ No newline at end of file
+ERROR_PLAYER_DEVICE_ASSIGNMENT=Mehrere Mikrofone für Spieler %d gewählt.\nAufnahmeoptionen überprüfen.
+ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Kein Mikrofon für Spieler %d gewählt.\nAufnahmeoptionen überprüfen.
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Wie oft gesungen mitzählen
diff --git a/us_maker_edition/game/languages/Greek.ini b/us_maker_edition/game/languages/Greek.ini
index d612392c..24798f5d 100644
--- a/us_maker_edition/game/languages/Greek.ini
+++ b/us_maker_edition/game/languages/Greek.ini
@@ -1,80 +1,88 @@
-;Leo 21
-[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=ΦόÏτωνει...
@@ -169,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Σβήσιμο εικόνας
SING_OPTIONS_ADVANCED_LOADANIMATION=ΦόÏτωση κινοÏμενων εικόνων
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=ΕÏωτήσεις ασφαλείας
SING_OPTIONS_ADVANCED_LINEBONUS=Μπόνους γÏαμμής
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Μετά απο την επιλογή Ï„ÏαγουδιοÏ
SING_OPTIONS_ADVANCED_PARTYPOPUP=Αυτόματο Î¼ÎµÎ½Î¿Ï "ΠάÏÏ„Ï…"
@@ -268,7 +275,7 @@ SONG_MENU_NAME_PLAYLIST_NEW=Îέα λίστα
SONG_MENU_PLAYLIST_NEW_CREATE=Φτιαξε νέα
SONG_MENU_PLAYLIST_NEW_UNNAMED=ΧωÏίς όνομα
-SONG_MENU_NAME_PLAYLIST_DEL=ΔιαγÏαφή?
+;TODO: SONG_MENU_NAME_PLAYLIST_DELITEM=Really Delete?
SONG_MENU_YES=Îαι
SONG_MENU_NO=Όχι
@@ -276,7 +283,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD=Άνοιξε μια λίστα
SONG_MENU_PLAYLIST_LOAD=Άνοιξε
SONG_MENU_PLAYLIST_DELCURRENT=ΔιέγÏαψε αυτή τη λίστα
-SONG_MENU_NAME_PLAYLIST_DEL=ΔιαγÏαφή λίστας?
+SONG_MENU_NAME_PLAYLIST_DEL=ΔιαγÏαφή?
SONG_MENU_NAME_PARTY_MAIN=ÎœÎµÎ½Î¿Ï "ΠάÏÏ„Ï…"
SONG_MENU_JOKER=ΜπαλαντέÏ
@@ -299,7 +306,6 @@ PARTY_PLAYLIST=Παίξε με μία λίστα
PARTY_PLAYLIST_ALL=Όλα τα Ï„ÏαγοÏδια
PARTY_PLAYLIST_CATEGORY=Φάκελος
PARTY_PLAYLIST_PLAYLIST=Λίστα
-PARTY_ROUNDS=ΓÏÏοι
PARTY_TEAMS=Ομάδες
PARTY_TEAMS_PLAYER1=Παίχτης ομάδα1
PARTY_TEAMS_PLAYER2=Παίχτης ομάδα2
@@ -313,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Επιλογές "ΠάÏÏ„Ï…"
PARTY_PLAYER_DESC=ΓÏάψε ονόματα παιχτών και ομάδων
PARTY_PLAYER_WHEREAMI=Ονόματα "ΠάÏÏ„Ï…"
PARTY_PLAYER_ENTER_NAME=ΓÏάψε ονόματα
-PARTY_PLAYER_LEGEND_CONTINUE=Ξεκίνα το παιχνίδι "ΠάÏÏ„Ï…"
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=Ξεκίνα το παιχνίδι "ΠάÏÏ„Ï…"
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=Επόμενοι παίχτες
PARTY_ROUND_WHEREAMI=Επόμενος γÏÏος "ΠάÏÏ„Ï…"
@@ -340,20 +358,23 @@ PARTY_DISMISSED=Αποβολή!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=Îίκησε!
-PLUGIN_HDL_NAME=Μείνε πάνω από τη μπάÏα!
-PLUGIN_HDL_DESC=Μείνε πάνω από τη μπάÏα που εμφανίζεται
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=Μείνε πάνω από τη μπάÏα!
+MODE_HDL_DESC=Μείνε πάνω από τη μπάÏα που εμφανίζεται
-PLUGIN_UNTIL5000_NAME=ΜέχÏι 5000 πόντους
-PLUGIN_UNTIL5000_DESC=Όποιος φτάσει τους 5000 πόντους κεÏδίζει
+MODE_5000POINTS_NAME=ΜέχÏι 5000 πόντους
+MODE_5000POINTS_DESC=Όποιος φτάσει τους 5000 πόντους κεÏδίζει
-PLUGIN_DUELL_NAME=Μονομαχία
-PLUGIN_DUELL_DESC=ΤÏαγουδήστε σε μονομαχία μέχÏι τους 10000 πόντους
+MODE_DUEL_NAME=Μονομαχία
+MODE_DUEL_DESC=ΤÏαγουδήστε σε μονομαχία μέχÏι τους 10000 πόντους
-PLUGIN_TEAMDUELL_NAME=Μονομαχία ομάδων
-PLUGIN_TEAMDUELL_DESC=Δώσε το μικÏόφωνο!
+MODE_TEAMDUEL_NAME=Μονομαχία ομάδων
+MODE_TEAMDUEL_DESC=Δώσε το μικÏόφωνο!
-PLUGIN_BLIND_NAME=Στα τυφλά
-PLUGIN_BLIND_DESC=Μονομαχία χωÏίς να βλέπετε τις νότες
+MODE_BLIND_NAME=Στα τυφλά
+MODE_BLIND_DESC=Μονομαχία χωÏίς να βλέπετε τις νότες
STAT_MAIN=Στατιστικά
STAT_MAIN_DESC=ΚÏÏια
@@ -389,14 +410,33 @@ STAT_DESC_BANDS=Πιο δημοφιλής μπάντες
STAT_DESC_BANDS_REVERSED=ΛιγότεÏο δημοφιλής μπάντες
STAT_FORMAT_BANDS=%0:s \n %1:dx Ï„Ïαγουδήθηκαν
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Σφάλμα
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=ΕÏώτηση
MSG_QUIT_USDX=Έξοδος από το παιχνίδι?
MSG_END_PARTY=Έξοδος απο το παιχνίδι "ΠάÏÏ„Ï…"?
+
ERROR_NO_SONGS=Δεν φοÏτώθηκαν Ï„ÏαγοÏδια
ERROR_NO_PLUGINS=Δεν φοÏτώθηκαν βοηθητικές εφαÏμογές
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=Τα Ï„ÏαγοÏδια δεν ήταν δυνατό να φοÏτώσουν
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Το Ï„ÏαγοÏδι δεν ήταν δυνατό να φοÏτώσει: Το αÏχείο δεν βÏέθηκε
ERROR_CORRUPT_SONG_NO_NOTES=Το Ï„ÏαγοÏδι δεν ήταν δυνατό να φοÏτώσει: Δεν βÏέθηκαν νότες
ERROR_CORRUPT_SONG_NO_BREAKS=Το Ï„ÏαγοÏδι δεν ήταν δυνατό να φοÏτώσει: Δεν βÏέθηκαν κενά ανάμεσα στις νότες
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Το Ï„ÏαγοÏδι δεν ήταν δυνατό να φοÏτώσει: Λάθος στην επικόληση της γÏαμμής %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Το Ï„ÏαγοÏδι δεν ήταν δυνατό να φοÏτώσει: Λάθος στην επικόληση της γÏαμμής %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: PARTY_ROUNDS=ΓÏÏοι
+;TRANSLATOR: Leo 21
diff --git a/us_maker_edition/game/languages/Hungarian.ini b/us_maker_edition/game/languages/Hungarian.ini
new file mode 100644
index 00000000..78cc5761
--- /dev/null
+++ b/us_maker_edition/game/languages/Hungarian.ini
@@ -0,0 +1,440 @@
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+OPTION_VALUE_HUNGARIAN=Magyar
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+OPTION_VALUE_EASY=Könnyű
+OPTION_VALUE_MEDIUM=Normál
+OPTION_VALUE_HARD=Nehéz
+
+OPTION_VALUE_ON=Be
+OPTION_VALUE_OFF=Ki
+
+OPTION_VALUE_EDITION=Verzió
+OPTION_VALUE_GENRE=Műfaj
+OPTION_VALUE_LANGUAGE=Nyelv
+OPTION_VALUE_FOLDER=Mappa
+OPTION_VALUE_TITLE=Cím
+OPTION_VALUE_ARTIST=Előadó
+OPTION_VALUE_TITLE2=Cím2
+OPTION_VALUE_ARTIST2=Előadó2
+
+OPTION_VALUE_WHENNOVIDEO=Ha nincs videó
+
+OPTION_VALUE_SMALL=Kicsi
+OPTION_VALUE_BIG=Nagy
+
+OPTION_VALUE_HALF=Fél
+OPTION_VALUE_FULL_VID=Egész (Video)
+OPTION_VALUE_FULL_VID_BG=Egész (háttér & Video)
+
+OPTION_VALUE_AUTO=Automatikus
+OPTION_VALUE_SEC=Másodperc
+OPTION_VALUE_SECS=Másodperc
+
+OPTION_VALUE_PLAIN=Egyszerű
+OPTION_VALUE_OLINE1=OLine1
+OPTION_VALUE_OLINE2=OLine2
+
+OPTION_VALUE_SIMPLE=Sima
+OPTION_VALUE_ZOOM=Zoom
+OPTION_VALUE_SLIDE=Csúszó
+OPTION_VALUE_BALL=Labda
+OPTION_VALUE_SHIFT=Nagy
+
+OPTION_VALUE_EURO=Euro
+OPTION_VALUE_JAPAN=Japán
+OPTION_VALUE_AMERICAN=Amerikai
+
+OPTION_VALUE_BLUE=Kék
+OPTION_VALUE_GREEN=Zöld
+OPTION_VALUE_PINK=Rózsaszín
+OPTION_VALUE_RED=Piros
+OPTION_VALUE_VIOLET=Lila
+OPTION_VALUE_ORANGE=Narancs
+OPTION_VALUE_YELLOW=Sárga
+OPTION_VALUE_BROWN=Barna
+OPTION_VALUE_BLACK=Fekete
+
+OPTION_VALUE_SING=dalválasztás
+OPTION_VALUE_SELECT_PLAYERS=játékos választás
+OPTION_VALUE_OPEN_MENU=Menü megnyitása
+
+OPTION_VALUE_HARDWARE_CURSOR=Hardver Kurzor
+OPTION_VALUE_SOFTWARE_CURSOR=Softver Kurzor
+
+SING_LOADING=Betöltés...
+
+SING_CHOOSE_MODE=válassz menüpontot
+SING_SING=ének
+SING_SING_DESC=gyors játék: énekelj egyedül vagy duettet
+
+SING_MULTI=Buli
+SING_MULTI_DESC=énekelj buli módban
+
+SING_TOOLS=eszközök
+
+SING_STATS=statisztika
+SING_STATS_DESC=nézd meg a statisztikát
+
+SING_EDITOR=szerkesztő
+SING_EDITOR_DESC=készíts saját zenét
+
+SING_GAME_OPTIONS=játék beállításai
+SING_GAME_OPTIONS_DESC=változtasd meg a beállításokat
+
+SING_EXIT=kilépés
+SING_EXIT_DESC=kilépés a játékból
+
+SING_OPTIONS=beállítások
+SING_OPTIONS_DESC=beállítások megváltoztatása
+SING_OPTIONS_WHEREAMI=beállítások
+
+SING_OPTIONS_GAME=játék
+SING_OPTIONS_GRAPHICS=grafika
+SING_OPTIONS_SOUND=hang
+SING_OPTIONS_LYRICS=szöveg
+SING_OPTIONS_THEMES=téma
+SING_OPTIONS_RECORD=felvétel
+SING_OPTIONS_ADVANCED=haladó
+SING_OPTIONS_EXIT=vissza
+
+SING_OPTIONS_GAME_WHEREAMI=játékbeállítások
+SING_OPTIONS_GAME_DESC=általános beállítások
+SING_OPTIONS_GAME_PLAYERS=játékosok
+SING_OPTIONS_GAME_DIFFICULTY=nehézség
+SING_OPTIONS_GAME_LANGUAGE=nyelv
+SING_OPTIONS_GAME_TABS=elválasztók
+SING_OPTIONS_GAME_SORTING=rendezés
+SING_OPTIONS_GAME_DEBUG=hibakezelő mód
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=grafikai beállítások
+SING_OPTIONS_GRAPHICS_DESC=grafika beállítása
+SING_OPTIONS_GRAPHICS_RESOLUTION=felbontás
+SING_OPTIONS_GRAPHICS_FULLSCREEN=teljes képernyő
+SING_OPTIONS_GRAPHICS_DEPTH=színmélység
+SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=oszcilloszkóp
+SING_OPTIONS_GRAPHICS_LINEBONUS=sáv bónusz
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=videó mérete
+
+SING_OPTIONS_SOUND_WHEREAMI=hang beállításai
+SING_OPTIONS_SOUND_DESC=hangbeállítások
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music
+SING_OPTIONS_SOUND_MIC_BOOST=mikr. erősítése
+SING_OPTIONS_SOUND_CLICK_ASSIST=ütem segítség
+SING_OPTIONS_SOUND_BEAT_CLICK=Ãœtem
+SING_OPTIONS_SOUND_THRESHOLD=tűréshatár
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=két játékos mód
+SING_OPTIONS_SOUND_PREVIEWVOLUME=előzetes hang
+SING_OPTIONS_SOUND_PREVIEWFADING=előz. hang késése
+
+SING_OPTIONS_LYRICS_WHEREAMI=szöveg beállítások
+SING_OPTIONS_LYRICS_DESC=szöveg beállítása
+SING_OPTIONS_LYRICS_FONT=betűtípus
+SING_OPTIONS_LYRICS_EFFECT=effektek
+SING_OPTIONS_LYRICS_SOLMIZATION=szolmizáció
+SING_OPTIONS_LYRICS_NOTELINES=Staves
+
+SING_OPTIONS_THEMES_WHEREAMI=téma beállítása
+SING_OPTIONS_THEMES_DESC=téma és kinézet beállítása
+SING_OPTIONS_THEMES_THEME=téma
+SING_OPTIONS_THEMES_SKIN=háttér
+SING_OPTIONS_THEMES_COLOR=szín
+
+SING_OPTIONS_RECORD_WHEREAMI=felvétel beállítása
+SING_OPTIONS_RECORD_DESC=mikrofon beállítás
+SING_OPTIONS_RECORD_CARD=hangkártya
+SING_OPTIONS_RECORD_INPUT==bement
+SING_OPTIONS_RECORD_CHANNEL=csatorna:
+
+SING_OPTIONS_ADVANCED_WHEREAMI=haladó beállítások
+SING_OPTIONS_ADVANCED_DESC=további beállítások
+SING_OPTIONS_ADVANCED_EFFECTSING=hang effektek
+SING_OPTIONS_ADVANCED_SCREENFADE=háttér áttűnése
+SING_OPTIONS_ADVANCED_LOADANIMATION=betöltési animáció
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=megerősítést kér
+SING_OPTIONS_ADVANCED_LINEBONUS=sáv bónusz
+SING_OPTIONS_ADVANCED_ONSONGCLICK=éneklés után
+SING_OPTIONS_ADVANCED_PARTYPOPUP=partymenü megj.
+
+SING_EDIT=szerkesztő
+SING_EDIT_MENU_DESCRIPTION=készíts saját zenét
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importálj szöveget midiből
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=vissza
+SING_EDIT_BUTTON_CONVERT=Importálás
+SING_EDIT_BUTTON_EXIT=Vissza
+
+SING_EDIT_NAVIGATE=Navigálás
+SING_EDIT_SELECT=Választás
+SING_EDIT_EXIT=Vissza
+
+SING_LEGEND_SELECT=Választás
+SING_LEGEND_NAVIGATE=Navigálás
+SING_LEGEND_CONTINUE=Folytatás
+SING_LEGEND_ESC=Vissza
+
+SING_PLAYER_DESC=Kérem a játékos(ok) nevét
+SING_PLAYER_WHEREAMI=Játékos Neve
+SING_PLAYER_ENTER_NAME=Név
+
+SING_DIFFICULTY_DESC=Nehézségi szint választása
+SING_DIFFICULTY_WHEREAMI=Nehézség
+SING_DIFFICULTY_CONTINUE=Szám kiválasztása
+SING_EASY=Könnyű
+SING_MEDIUM=Normál
+SING_HARD=Nehéz
+
+SING_SONG_SELECTION_DESC=Válassz számot
+SING_SONG_SELECTION_WHEREAMI=Szám választása
+SING_SONG_SELECTION_GOTO=Szám keresés
+SING_SONG_SELECTION=Szám választása
+SING_SONG_SELECTION_MENU=Menü
+SING_SONG_SELECTION_PLAYLIST=számlista
+SING_SONGS_IN_CAT=Számok
+PLAYLIST_CATTEXT=Számlista: %s
+
+SING_TIME=Idő
+SING_TOTAL=Összesen
+SING_MODE=Egyszeri játékos
+SING_NOTES=Hang
+SING_GOLDEN_NOTES=Arany pont
+SING_PHRASE_BONUS=Sáv bónusz
+
+SING_MENU=Főmenü
+
+SONG_SCORE=Szám pontok
+SONG_SCORE_WHEREAMI=Pontok
+
+SING_SCORE_TONE_DEAF=Pontszámok
+SING_SCORE_AMATEUR=Amatőr
+SING_SCORE_WANNABE=Wannabe
+SING_SCORE_HOPEFUL=Hopeful
+SING_SCORE_RISING_STAR=Kezdő Sztár
+SING_SCORE_LEAD_SINGER=Főállású énekes
+SING_SCORE_SUPERSTAR=Szupersztár
+SING_SCORE_ULTRASTAR=Ultrasztár
+
+SING_TOP_5_CHARTS=Legjobb 5 játékos
+SING_TOP_5_CHARTS_WHEREAMI=Legjobb 5
+SING_TOP_5_CHARTS_CONTINUE=Szám kiválasztás
+SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
+
+POPUP_PERFECT=Hibátlan!
+POPUP_AWESOME=Nagyon jó!
+POPUP_GREAT=Elég Jó!
+POPUP_GOOD=Jó!
+POPUP_NOTBAD=Elmegy!
+POPUP_BAD=Rossz!
+POPUP_POOR=Gyenge!
+POPUP_AWFUL=Borzalmas!
+
+IMPLODE_GLUE1=,
+IMPLODE_GLUE2= és
+
+SONG_MENU_NAME_MAIN=Szám menü
+SONG_MENU_PLAY=Szám
+SONG_MENU_CHANGEPLAYERS=Váltó játékosok
+SONG_MENU_EDIT=Edit
+SONG_MENU_MODI=Énekeljegy modi-t
+SONG_MENU_CANCEL=Mégsem
+
+SONG_MENU_NAME_PLAYLIST=Song Menu
+SONG_MENU_PLAYLIST_ADD=Hozzáad
+SONG_MENU_PLAYLIST_DEL=Töröl
+
+SONG_MENU_NAME_PLAYLIST_ADD=Hozzáad
+SONG_MENU_PLAYLIST_ADD_NEW=Új Számlista
+SONG_MENU_PLAYLIST_ADD_EXISTING=Kilépés a Számlistából
+SONG_MENU_PLAYLIST_NOEXISTING=Nem elérhető a számlista
+
+SONG_MENU_NAME_PLAYLIST_NEW=Új Számlista
+SONG_MENU_PLAYLIST_NEW_CREATE=Létrehoz
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Névtelen
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Biztos Törli?
+SONG_MENU_YES=Igen
+SONG_MENU_NO=Nem
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Számlista megnyitása
+SONG_MENU_PLAYLIST_LOAD=Megnyit
+SONG_MENU_PLAYLIST_DELCURRENT=Törli a számlistát
+
+SONG_MENU_NAME_PLAYLIST_DEL=Törli a számlistát?
+
+SONG_MENU_NAME_PARTY_MAIN=Buli Menu
+SONG_MENU_JOKER=Joker
+
+SONG_MENU_NAME_PARTY_JOKER=joker felhasználása
+
+SONG_JUMPTO_DESC=Tovább
+SONG_JUMPTO_TYPE_DESC=Keresés:
+SONG_JUMPTO_TYPE1=Összes
+SONG_JUMPTO_TYPE2=Cím
+SONG_JUMPTO_TYPE3=Előadó
+SONG_JUMPTO_SONGSFOUND=%d Szám(ok) találat
+SONG_JUMPTO_NOSONGSFOUND=Nincs szám találat
+SONG_JUMPTO_HELP=Text típusú fájl keresése
+SONG_JUMPTO_CATTEXT=Keresés: %s
+
+PARTY_MODE=Buli mód
+PARTY_DIFFICULTY=Nehézségi Szint
+PARTY_PLAYLIST=Listából éneklés
+PARTY_PLAYLIST_ALL=Minden dal
+PARTY_PLAYLIST_CATEGORY=Mappa
+PARTY_PLAYLIST_PLAYLIST=Számlista
+PARTY_TEAMS=Csapat
+PARTY_TEAMS_PLAYER1=Csapat1
+PARTY_TEAMS_PLAYER2=Csapat2
+PARTY_TEAMS_PLAYER3=Csapat3
+
+PARTY_LEGEND_CONTINUE=Folytatás
+
+PARTY_OPTIONS_DESC=Buli beállításai
+PARTY_OPTIONS_WHEREAMI=Buli Beállítások
+
+PARTY_PLAYER_DESC=Név- és Csapatnév!
+PARTY_PLAYER_WHEREAMI=Buli nevek
+PARTY_PLAYER_ENTER_NAME=Nevek
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=start party-game
+PARTY_ROUNDCOUNT=number of rounds
+PARTY_SELECTMODE1=mode round 1
+PARTY_SELECTMODE2=mode round 2
+PARTY_SELECTMODE3=mode round 3
+PARTY_SELECTMODE4=mode round 4
+PARTY_SELECTMODE5=mode round 5
+PARTY_SELECTMODE6=mode round 6
+PARTY_SELECTMODE7=mode round 7
+
+PARTY_ROUND_DESC=következő játékosok a mikrofonhoz
+PARTY_ROUND_WHEREAMI=Következő forduló
+PARTY_ROUND_LEGEND_CONTINUE=Indul a menet
+
+PARTY_SONG_WHEREAMI=Buli szám választása
+PARTY_SONG_LEGEND_CONTINUE=Szám
+PARTY_SONG_MENU=Buli menü
+
+PARTY_SCORE_DESC=Pontok az elöző fordulóból
+PARTY_SCORE_WHEREAMI=Buli pontok
+
+PARTY_WIN_DESC=Nyert a Buli játékban
+PARTY_WIN_WHEREAMI=Buli Nyertes
+PARTY_WIN_LEGEND_CONTINUE=Vissza a főmenübe
+
+PARTY_ROUND=Forduló
+PARTY_ROUND_WINNER=Nyertes
+PARTY_NOTPLAYEDYET=Nem játszott szám
+PARTY_NOBODY=Senki
+NEXT_ROUND=Következő menet:
+
+PARTY_DISMISSED=Hibátlan!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=Nem nyert!
+
+MODE_RANDOM_NAME=Random Mode
+MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=Tartsd a sávot!
+MODE_HDL_DESC=Ne csinálj rosszabb pontszámot mint az elözőek, mert nem jelensz majd meg a Toplistán.
+
+MODE_5000POINTS_NAME=5000-ig
+MODE_5000POINTS_DESC=Ki éri el az 5000 pontot az első meccsen?
+
+MODE_DUEL_NAME=Ketten
+MODE_DUEL_DESC=Ketten énekeljetek 10000 pontig.
+
+MODE_TEAMDUEL_NAME=Team Duell
+MODE_TEAMDUEL_DESC=Pass The Mic!
+
+MODE_BLIND_NAME="Vak Mód"
+MODE_BLIND_DESC=Énekeljetek ketten kotta nélkül.
+
+STAT_MAIN=Statisztikák
+STAT_MAIN_DESC=Ãltalános
+STAT_MAIN_WHEREAMI=Statisztika
+
+STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d
+STAT_OVERVIEW_SONG=%0:d Számok(%3:d Video-val), Melyből %1:d Lejátszott és %2:d Még nem.\n Legtöbbet hallgatott: %5:s %4:s-tól/től
+STAT_OVERVIEW_PLAYER=A játék kezdetétÅ‘l %0:d játékos(ok) játszottak.\n A legjobb játékos: %1:s Ãtlageredménye: %2:d Pont.\n %3:s Legjobb eredménye: %4:d Pont.
+
+STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
+STAT_DETAIL=Statisztika
+STAT_DETAIL_WHEREAMI=Részletes
+
+STAT_NEXT=Következő oldal
+STAT_PREV=Elöző oldal
+STAT_REVERSE=Ellenkező sorrend
+STAT_PAGE=Seite %0:d of %1:d Oldalak\n (%2:d of %3:d Entrys)
+
+STAT_DESC_SCORES=Legjobb eredmény
+STAT_DESC_SCORES_REVERSED=Alacsony pontszám
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Legjobb énekesek
+STAT_DESC_SINGERS_REVERSED=Legrosszagg játékosok
+STAT_FORMAT_SINGERS=%0:s \n Ãtlag pontszám: %1:d
+
+STAT_DESC_SONGS=Közkedvelt számok
+STAT_DESC_SONGS_REVERSED=Kevésbé kedvelt számok
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung
+
+STAT_DESC_BANDS=Közkedvelt együttesek
+STAT_DESC_BANDS_REVERSED=Kevésbé kedvelt együttesek
+STAT_FORMAT_BANDS=%0:s \n %1:dx Ének
+
+SCREENSHOT_SAVED=Képeryő mentve
+SCREENSHOT_FAILED=Képernyő mentése sikertelen
+
+INFO_FILE_SAVED=Fájl mentve
+ERROR_SAVE_FILE_FAILED=Fájl mentése sikertelen
+ERROR_FILE_NOT_FOUND=Fájl nem található
+
+ENCODING_ERROR_ASK_FOR_UTF8=A változtatások nem menthetők ebben a kódolásban. Konvertáljuk UTF-8-á?
+EDITOR_ERROR_NO_TRACK_SELECTED=Nincs szám kiválasztva
+
+MSG_ERROR_TITLE=Hiba
+MSG_INFO_TITLE=Infó
+MSG_QUESTION_TITLE=Kérdés
+MSG_QUIT_USDX=Tényleg elhagyod az UltraStar színpadát?
+MSG_END_PARTY=Tényleg kilépsz a Buli módból?
+
+ERROR_NO_SONGS=Nincs dal betöltve
+ERROR_NO_PLUGINS=Nincs plugin betöltve
+ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+ERROR_CAN_NOT_START_PARTY= an error occurred starting the party game
+ERROR_CORRUPT_SONG=Sikertelen dalbetöltés.
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Sikertelen dalbetöltés: Dal nem található
+ERROR_CORRUPT_SONG_NO_NOTES=Sikertelen dalbetöltés: Nincs kotta hozzá
+ERROR_CORRUPT_SONG_NO_BREAKS=Sikertelen dalbetöltés: Nincs benne sortörés
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Sikertelen dalbetöltés: Sikertelen elemzési sor %0:d
+ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d was assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
diff --git a/us_maker_edition/game/languages/Icelandic.ini b/us_maker_edition/game/languages/Icelandic.ini
index 35f912c9..957a8f7e 100644
--- a/us_maker_edition/game/languages/Icelandic.ini
+++ b/us_maker_edition/game/languages/Icelandic.ini
@@ -1,431 +1,442 @@
-;Hlynur Sigurgíslason
-;Sigrún Huld Skúladóttir
-[Text]
-OPTION_VALUE_CATALAN=katalónska
-OPTION_VALUE_CROATIAN=króatíska
-OPTION_VALUE_DUTCH=hollenska
-OPTION_VALUE_ENGLISH=enska
-OPTION_VALUE_EUSKARA=baskneska
-OPTION_VALUE_FINNISH=finnska
-OPTION_VALUE_FRENCH=franska
-OPTION_VALUE_GERMAN=Þýska
-OPTION_VALUE_GREEK=gríska
-OPTION_VALUE_ITALIAN=ítalska
-OPTION_VALUE_ICELANDIC=íslenska
-OPTION_VALUE_JAPANESE=japanska
-OPTION_VALUE_LUXEMBOURGISH=lúxemborgíska
-OPTION_VALUE_PORTUGUESE=portúgalska
-OPTION_VALUE_SPANISH=spænska
-OPTION_VALUE_SWEDISH=sænska
-
-OPTION_VALUE_EASY=Auðvelt
-OPTION_VALUE_MEDIUM=Miðlungs
-OPTION_VALUE_HARD=Erfitt
-
-OPTION_VALUE_ON=Kveikt
-OPTION_VALUE_OFF=Slökkt
-
-OPTION_VALUE_EDITION=Útgáfa
-OPTION_VALUE_GENRE=Stíll
-OPTION_VALUE_LANGUAGE=Tungumál
-OPTION_VALUE_FOLDER=Mappa
-OPTION_VALUE_TITLE=Titill
-OPTION_VALUE_ARTIST=Flytjandi
-OPTION_VALUE_TITLE2=Titill2
-OPTION_VALUE_ARTIST2=Flytjandi2
-
-OPTION_VALUE_WHENNOVIDEO=Þegar ekkert myndband
-
-OPTION_VALUE_SMALL=Lítill
-OPTION_VALUE_BIG=Stór
-OPTION_VALUE_HALF=Hálf
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Sjálfvirkt
-OPTION_VALUE_SEC=Sekúnda
-OPTION_VALUE_SECS=Sekúndur
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Einfalt
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Rennsli
-OPTION_VALUE_BALL=Bolti
-OPTION_VALUE_SHIFT=Hopp
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blár
-OPTION_VALUE_GREEN=Grænn
-OPTION_VALUE_PINK=Bleikur
-OPTION_VALUE_RED=Rauður
-OPTION_VALUE_VIOLET=Fjólublár
-OPTION_VALUE_ORANGE=Appelsínulitur
-OPTION_VALUE_YELLOW=Gulur
-OPTION_VALUE_BROWN=Brúnn
-OPTION_VALUE_BLACK=Svartur
-
-OPTION_VALUE_SING=Syngja
-OPTION_VALUE_SELECT_PLAYERS=Velja Leikmenn
-OPTION_VALUE_OPEN_MENU=Opna Valmynd
-
-OPTION_VALUE_HARDWARE_CURSOR=Vélbúnaðarbendill
-OPTION_VALUE_SOFTWARE_CURSOR=Hugbúnaðarbendill
-
-SING_LOADING=Hleður...
-
-SING_CHOOSE_MODE=velja valmynd
-SING_SING=syngja
-SING_SING_DESC=stuttur leikur: syngja soló eða dúett
-
-SING_MULTI=partí
-SING_MULTI_DESC=syngja með partí-sniði
-
-SING_TOOLS=tól
-
-SING_STATS=tölfræði
-SING_STATS_DESC=skoða tölfræði
-
-SING_EDITOR=lagasmiður
-SING_EDITOR_DESC=búa til eigið lag
-
-SING_GAME_OPTIONS=leikstillingar
-SING_GAME_OPTIONS_DESC=breyta leikstillingum
-
-SING_EXIT=hætta
-SING_EXIT_DESC=hætta leik
-
-SING_OPTIONS=stillingar
-SING_OPTIONS_DESC=breyta stillingum
-SING_OPTIONS_WHEREAMI=Stillingar
-
-SING_OPTIONS_GAME=leikur
-SING_OPTIONS_GRAPHICS=mynd
-SING_OPTIONS_SOUND=hljóð
-SING_OPTIONS_LYRICS=lagatextar
-SING_OPTIONS_THEMES=snið
-SING_OPTIONS_RECORD=upptaka
-SING_OPTIONS_ADVANCED=fleiri stillingar
-SING_OPTIONS_EXIT=til baka
-
-SING_OPTIONS_GAME_WHEREAMI=Stillingar Leikur
-SING_OPTIONS_GAME_DESC=almennar leikstillingar
-SING_OPTIONS_GAME_PLAYERS=Leikmenn
-SING_OPTIONS_GAME_DIFFICULTY=Erfiðleikastig
-SING_OPTIONS_GAME_LANGUAGE=Tungumál
-SING_OPTIONS_GAME_TABS=Flipar
-SING_OPTIONS_GAME_SORTING=Röðun
-SING_OPTIONS_GAME_DEBUG=Villuprófun
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Stillingar Mynd
-SING_OPTIONS_GRAPHICS_DESC=myndstillingar
-SING_OPTIONS_GRAPHICS_RESOLUTION=Skjáupplausn
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Skjáfyllir
-SING_OPTIONS_GRAPHICS_DEPTH=Dýpt
-SING_OPTIONS_GRAPHICS_VISUALIZER=Sýning
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Sveiflusjá
-SING_OPTIONS_GRAPHICS_LINEBONUS=Línubónus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Stærð Myndbands
-
-SING_OPTIONS_SOUND_WHEREAMI=Stillingar hljóð
-SING_OPTIONS_SOUND_DESC=hljóðstillingar
-SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Spilun af hljóðnema
-SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Bakgrunnstónlist
-SING_OPTIONS_SOUND_MIC_BOOST=Hljóðnemaaukning
-SING_OPTIONS_SOUND_CLICK_ASSIST=Taktstuðningur
-SING_OPTIONS_SOUND_BEAT_CLICK=Slá takt
-SING_OPTIONS_SOUND_THRESHOLD=Þröskuldur
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tveir leikmenn
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Forsýn hljóðstyrkur
-SING_OPTIONS_SOUND_PREVIEWFADING=Forsýn útþynning
-
-SING_OPTIONS_LYRICS_WHEREAMI=Stillingar Textar
-SING_OPTIONS_LYRICS_DESC=textastillingar
-SING_OPTIONS_LYRICS_FONT=Leturgerð
-SING_OPTIONS_LYRICS_EFFECT=Brellur
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmization
-SING_OPTIONS_LYRICS_NOTELINES=Línur
-
-SING_OPTIONS_THEMES_WHEREAMI=Stillingar Snið
-SING_OPTIONS_THEMES_DESC=þemu- og skinnstillingar
-SING_OPTIONS_THEMES_THEME=Þema
-SING_OPTIONS_THEMES_SKIN=Skinn
-SING_OPTIONS_THEMES_COLOR=Litur
-
-SING_OPTIONS_RECORD_WHEREAMI=Stillingar Upptaka
-SING_OPTIONS_RECORD_DESC=hljóðnemastillingar
-SING_OPTIONS_RECORD_CARD=Hljóðkort
-SING_OPTIONS_RECORD_INPUT=Inntak
-SING_OPTIONS_RECORD_CHANNEL=Rás
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Stillingar Meira
-SING_OPTIONS_ADVANCED_DESC=fleiri stillingar
-SING_OPTIONS_ADVANCED_EFFECTSING=Söngbrellur
-SING_OPTIONS_ADVANCED_SCREENFADE=Skjá útþynning
-SING_OPTIONS_ADVANCED_LOADANIMATION=Hlaða hreyfimynd
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Öryggisspurningar
-SING_OPTIONS_ADVANCED_LINEBONUS=Línubónus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Eftir Lagaval
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Sjálfvirk Partívalmynd
-
-SING_EDIT=Lagasmiður
-SING_EDIT_MENU_DESCRIPTION=búðu til eigið lag
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Flytja inn texta frá midi skrá
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=til baka
-SING_EDIT_BUTTON_CONVERT=Flytja inn
-SING_EDIT_BUTTON_EXIT=til baka
-
-SING_EDIT_NAVIGATE=stýra
-SING_EDIT_SELECT=velja
-SING_EDIT_EXIT=til baka
-
-SING_LEGEND_SELECT=velja
-SING_LEGEND_NAVIGATE=stýra
-SING_LEGEND_CONTINUE=áfram
-SING_LEGEND_ESC=til baka
-
-SING_PLAYER_DESC=sláið inn nöfn leikmanna
-SING_PLAYER_WHEREAMI=Nöfn leikmanna
-SING_PLAYER_ENTER_NAME=sláðu inn nafn
-
-SING_DIFFICULTY_DESC=veldu erfiðleikastig
-SING_DIFFICULTY_WHEREAMI=Erfiðleikastig
-SING_DIFFICULTY_CONTINUE=í lagaval
-SING_EASY=Auðvelt
-SING_MEDIUM=Miðlungs
-SING_HARD=Erfitt
-
-SING_SONG_SELECTION_DESC=veldu lag
-SING_SONG_SELECTION_WHEREAMI=Lagaval
-SING_SONG_SELECTION_GOTO=fara til ..
-SING_SONG_SELECTION=lagaval
-SING_SONG_SELECTION_MENU=valmynd
-SING_SONG_SELECTION_PLAYLIST=lagalisti
-SING_SONGS_IN_CAT=Lög
-PLAYLIST_CATTEXT=Lagalisti: %s
-
-SING_TIME=TÃMI
-SING_TOTAL=samtals
-SING_MODE=syngja sóló
-SING_NOTES=nótur
-SING_GOLDEN_NOTES=gullnótur
-SING_PHRASE_BONUS=línubónus
-
-SING_MENU=Aðalvalmynd
-
-SONG_SCORE=stigagjöf
-SONG_SCORE_WHEREAMI=Dómur
-
-SING_SCORE_TONE_DEAF=Falskt
-SING_SCORE_AMATEUR=Viðvaningur
-SING_SCORE_WANNABE=Uppblásið egó
-SING_SCORE_HOPEFUL=Eygir von
-SING_SCORE_RISING_STAR=Rísandi Stjarna
-SING_SCORE_LEAD_SINGER=Forsöngvari
-SING_SCORE_SUPERSTAR=Súperstjarna
-SING_SCORE_ULTRASTAR=Últrastjarna
-
-SING_TOP_5_CHARTS=topp 5 leikmenn
-SING_TOP_5_CHARTS_WHEREAMI=topp 5
-SING_TOP_5_CHARTS_CONTINUE=í lagaval
-SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=breyta erfiðleikastigi
-
-POPUP_PERFECT=fullkomið!
-POPUP_AWESOME=æðislegt!
-POPUP_GREAT=frábært!
-POPUP_GOOD=gott!
-POPUP_NOTBAD=ekki slæmt!
-POPUP_BAD=slæmt!
-POPUP_POOR=lélegt!
-POPUP_AWFUL=hræðilegt!
-
-IMPLODE_GLUE1=
-IMPLODE_GLUE2= og
-
-SONG_MENU_NAME_MAIN=lagavalmynd
-SONG_MENU_PLAY=Syngja
-SONG_MENU_CHANGEPLAYERS=Breyta um leikmenn
-SONG_MENU_EDIT=Breyta
-SONG_MENU_MODI=Singja Modi
-SONG_MENU_CANCEL=Hætta við
-
-SONG_MENU_NAME_PLAYLIST=Lagavalmynd
-SONG_MENU_PLAYLIST_ADD=Bæta við lagi
-SONG_MENU_PLAYLIST_DEL=Eyða lagi
-
-SONG_MENU_NAME_PLAYLIST_ADD=Bæta við
-SONG_MENU_PLAYLIST_ADD_NEW=í nýjan lagalista
-SONG_MENU_PLAYLIST_ADD_EXISTING=í núverandi lagalista
-SONG_MENU_PLAYLIST_NOEXISTING=Enginn lagalisti til staðar
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nýr Lagalisti
-SONG_MENU_PLAYLIST_NEW_CREATE=Búa til
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Ónefndur
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Virkilega Eyða?
-SONG_MENU_YES=Já
-SONG_MENU_NO=Nei
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Opna Lagalista
-SONG_MENU_PLAYLIST_LOAD=opna
-SONG_MENU_PLAYLIST_DELCURRENT=eyða núverandi Lagalista
-
-SONG_MENU_NAME_PLAYLIST_DEL=Eyða Lagalista?
-
-SONG_MENU_NAME_PARTY_MAIN=Partívalmynd
-SONG_MENU_JOKER=Jóker
-
-SONG_MENU_NAME_PARTY_JOKER=taka jóker
-
-SONG_JUMPTO_DESC=lagaleit
-SONG_JUMPTO_TYPE_DESC=Leita að:
-SONG_JUMPTO_TYPE1=Öllu
-SONG_JUMPTO_TYPE2=Titli
-SONG_JUMPTO_TYPE3=Flytjanda
-SONG_JUMPTO_SONGSFOUND=%d lög fundust
-SONG_JUMPTO_NOSONGSFOUND=Engin lög fundust
-SONG_JUMPTO_HELP=Sláðu inn texta til að leita að
-SONG_JUMPTO_CATTEXT=Leita að: %s
-
-PARTY_MODE=partísnið
-PARTY_DIFFICULTY=Erfiðleikastig
-PARTY_PLAYLIST=Lagalista Stilling
-PARTY_PLAYLIST_ALL=Öll lög
-PARTY_PLAYLIST_CATEGORY=Mappa
-PARTY_PLAYLIST_PLAYLIST=Lagalisti
-PARTY_TEAMS=fjöldi liða
-PARTY_TEAMS_PLAYER1=fjöldi söngvara
-PARTY_TEAMS_PLAYER2=fjöldi söngvara
-PARTY_TEAMS_PLAYER3=fjöldi söngvara
-
-PARTY_LEGEND_CONTINUE=áfram
-
-PARTY_OPTIONS_DESC=stillingar fyrir partíleik
-PARTY_OPTIONS_WHEREAMI=Partí Stillingar
-
-PARTY_PLAYER_DESC=sláðu inn nöfn leikmanna og liða!
-PARTY_PLAYER_WHEREAMI=Partí Nöfn
-PARTY_PLAYER_ENTER_NAME=sláðu inn nöfn
-
-
-PARTY_ROUNDS_DESC = veljið hvaða snið þið viljið spila
-PARTY_ROUNDS_WHEREAMI=Partí Umferðir
-PARTY_ROUNDS_LEGEND_CONTINUE=byrja partí-leik
-PARTY_ROUNDCOUNT=fjöldi umferða
-PARTY_SELECTMODE1=snið umferð 1
-PARTY_SELECTMODE2=snið umferð 2
-PARTY_SELECTMODE3=snið umferð 3
-PARTY_SELECTMODE4=snið umferð 4
-PARTY_SELECTMODE5=snið umferð 5
-PARTY_SELECTMODE6=snið umferð 6
-PARTY_SELECTMODE7=snið umferð 7
-
-PARTY_ROUND_DESC=næstu leikmenn að hljóðnemunum
-PARTY_ROUND_WHEREAMI=Partí Næsta Umferð
-PARTY_ROUND_LEGEND_CONTINUE=byrja umferð
-
-PARTY_SONG_WHEREAMI=Partí Lagaval
-PARTY_SONG_LEGEND_CONTINUE=syngja
-PARTY_SONG_MENU=partí valmynd
-
-PARTY_SCORE_DESC=stig síðustu umferðar
-PARTY_SCORE_WHEREAMI=Partí Stig
-
-PARTY_WIN_DESC=sigurvegari partí-leiks
-PARTY_WIN_WHEREAMI=Partí Sigurvegari
-PARTY_WIN_LEGEND_CONTINUE=aftur að aðalvalmynd
-
-PARTY_ROUND=Umferð
-PARTY_ROUND_WINNER=Sigurvegari
-PARTY_NOTPLAYEDYET=ekki spilað enn
-PARTY_NOBODY=enginn
-NEXT_ROUND=Næsta umferð:
-
-PARTY_DISMISSED=Úr leik!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=sigrar!
-
-MODE_RANDOM_NAME=Tilviljanakennt snið
-MODE_RANDOM_DESC=Eitt snið valið af handahófi
-
-MODE_HDL_NAME=Haltu þig á strikinu
-MODE_HDL_DESC=Ekki standa þig verr en stigalínan sýnir.
-
-MODE_5000POINTS_NAME=Að 5000
-MODE_5000POINTS_DESC=Leikmaður sem fyrstur nær 5000 stigum vinnur.
-
-MODE_DUEL_NAME=Einvígi
-MODE_DUEL_DESC=Söngeinvígi að 10000 stigum.
-
-MODE_TEAMDUEL_NAME=Liðaeinvígi
-MODE_TEAMDUEL_DESC=Láttu hljóðnemann ganga!
-
-MODE_BLIND_NAME=Blindandi
-MODE_BLIND_DESC=Einvígi án þess að sjá nóturnar.
-
-STAT_MAIN=Tölfræði
-STAT_MAIN_DESC=Almennt
-STAT_MAIN_WHEREAMI=Tölfræði
-
-STAT_OVERVIEW_INTRO=%0:s tölfræði. \n Síðasta endurræsing %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Lög (%3:d með myndbandi), þar af hafa %1:d þegar verið spiluð og %2:d hafa enn ekki verið spiluð.\n Vinsælasta lagið er %5:s með %4:s.
-STAT_OVERVIEW_PLAYER=Frá síðustu endurræsingu hafa spilað %0:d leikmenn.\n Besti leikmaðurinn er %1:s með meðalstigatölu %2:d stig.\n %3:s fékk hæstu stig með %4:d stig.
-
-STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
-
-STAT_DETAIL=Tölfræði
-STAT_DETAIL_WHEREAMI=Ãtarleg Tölfræði
-
-STAT_NEXT=Næsta síða
-STAT_PREV=Fyrri síða
-STAT_REVERSE=Öfug röð
-STAT_PAGE=Blaðsíða %0:d af %1:d blaðsíðum (%2:d af %3:d færslum)
-
-STAT_DESC_SCORES=Hæstu stig
-STAT_DESC_SCORES_REVERSED=Lægstu stig
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Bestu söngvarar
-STAT_DESC_SINGERS_REVERSED=Verstu söngvarar
-STAT_FORMAT_SINGERS=%0:s \n Meðalstig: %1:d
-
-STAT_DESC_SONGS=Vinsælustu lög
-STAT_DESC_SONGS_REVERSED=Óvinsælustu lög
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sungið
-
-STAT_DESC_BANDS=Vinsælustu hljómsveitir
-STAT_DESC_BANDS_REVERSED=Óvinsælustu hljómsveitir
-STAT_FORMAT_BANDS=%0:s \n %1:dx Sungið
-
-SCREENSHOT_SAVED=Skjámynd vistuð
-SCREENSHOT_FAILED=Gat ekki vistað skjámynd
-
-INFO_FILE_SAVED=Skrá vistuð
-ERROR_SAVE_FILE_FAILED=Gat ekki vistað skrá
-ERROR_FILE_NOT_FOUND=Skrá finnst ekki
-
-ENCODING_ERROR_ASK_FOR_UTF8=Get ekki vistað breytingar með núverandi stafasetti. Breyta í UTF-8?
-EDITOR_ERROR_NO_TRACK_SELECTED=Ekkert lag valið
-
-MSG_ERROR_TITLE=Villa
-MSG_INFO_TITLE=Upplýsingar
-MSG_QUESTION_TITLE=Spurning
-MSG_QUIT_USDX=Viltu hætta í UltraStar?
-MSG_END_PARTY=Virkilega hætta í Partí?
-
-ERROR_NO_SONGS=Engum lögum hlaðið inn
-ERROR_NO_PLUGINS=Engum viðbótum hlaðið inn
-ERROR_NO_MODES_FOR_CURRENT_SETUP=engin snið tiltæk fyrir núverandi leikmann/lið
-ERROR_CAN_NOT_START_PARTY= villa kom upp við upphaf partíleiks
-ERROR_CORRUPT_SONG=Ekki var hægt að hlaða inn lagi.
-ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ekki var hægt að hlaða inn lagi: Skrá finnst ekki.
-ERROR_CORRUPT_SONG_NO_NOTES=Ekki var hægt að hlaða inn lagi: Finn engar nótur
-ERROR_CORRUPT_SONG_NO_BREAKS=Ekki var hægt að hlaða inn lagi: Finn engar línuskiptingar
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ekki var hægt að hlaða inn lagi: Villa við þáttun línu %0:d \ No newline at end of file
+[Text]
+OPTION_VALUE_CATALAN=katalónska
+OPTION_VALUE_CROATIAN=króatíska
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+OPTION_VALUE_DUTCH=hollenska
+OPTION_VALUE_ENGLISH=enska
+OPTION_VALUE_EUSKARA=baskneska
+OPTION_VALUE_FINNISH=finnska
+OPTION_VALUE_FRENCH=franska
+OPTION_VALUE_GERMAN=Þýska
+OPTION_VALUE_GREEK=gríska
+OPTION_VALUE_HUNGARIAN=Hungarian
+OPTION_VALUE_ICELANDIC=íslenska
+OPTION_VALUE_ITALIAN=ítalska
+OPTION_VALUE_JAPANESE=japanska
+OPTION_VALUE_LUXEMBOURGISH=lúxemborgíska
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+OPTION_VALUE_PORTUGUESE=portúgalska
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+OPTION_VALUE_SPANISH=spænska
+OPTION_VALUE_SWEDISH=sænska
+
+OPTION_VALUE_EASY=Auðvelt
+OPTION_VALUE_MEDIUM=Miðlungs
+OPTION_VALUE_HARD=Erfitt
+
+OPTION_VALUE_ON=Kveikt
+OPTION_VALUE_OFF=Slökkt
+
+OPTION_VALUE_EDITION=Útgáfa
+OPTION_VALUE_GENRE=Stíll
+OPTION_VALUE_LANGUAGE=Tungumál
+OPTION_VALUE_FOLDER=Mappa
+OPTION_VALUE_TITLE=Titill
+OPTION_VALUE_ARTIST=Flytjandi
+OPTION_VALUE_TITLE2=Titill2
+OPTION_VALUE_ARTIST2=Flytjandi2
+
+OPTION_VALUE_WHENNOVIDEO=Þegar ekkert myndband
+
+OPTION_VALUE_SMALL=Lítill
+OPTION_VALUE_BIG=Stór
+
+OPTION_VALUE_HALF=Hálf
+OPTION_VALUE_FULL_VID=Full (Video)
+OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+OPTION_VALUE_AUTO=Sjálfvirkt
+OPTION_VALUE_SEC=Sekúnda
+OPTION_VALUE_SECS=Sekúndur
+
+OPTION_VALUE_PLAIN=Plain
+OPTION_VALUE_OLINE1=OLine1
+OPTION_VALUE_OLINE2=OLine2
+
+OPTION_VALUE_SIMPLE=Einfalt
+OPTION_VALUE_ZOOM=Zoom
+OPTION_VALUE_SLIDE=Rennsli
+OPTION_VALUE_BALL=Bolti
+OPTION_VALUE_SHIFT=Hopp
+
+OPTION_VALUE_EURO=Euro
+OPTION_VALUE_JAPAN=Japan
+OPTION_VALUE_AMERICAN=American
+
+OPTION_VALUE_BLUE=Blár
+OPTION_VALUE_GREEN=Grænn
+OPTION_VALUE_PINK=Bleikur
+OPTION_VALUE_RED=Rauður
+OPTION_VALUE_VIOLET=Fjólublár
+OPTION_VALUE_ORANGE=Appelsínulitur
+OPTION_VALUE_YELLOW=Gulur
+OPTION_VALUE_BROWN=Brúnn
+OPTION_VALUE_BLACK=Svartur
+
+OPTION_VALUE_SING=Syngja
+OPTION_VALUE_SELECT_PLAYERS=Velja Leikmenn
+OPTION_VALUE_OPEN_MENU=Opna Valmynd
+
+OPTION_VALUE_HARDWARE_CURSOR=Vélbúnaðarbendill
+OPTION_VALUE_SOFTWARE_CURSOR=Hugbúnaðarbendill
+
+SING_LOADING=Hleður...
+
+SING_CHOOSE_MODE=velja valmynd
+SING_SING=syngja
+SING_SING_DESC=stuttur leikur: syngja soló eða dúett
+
+SING_MULTI=partí
+SING_MULTI_DESC=syngja með partí-sniði
+
+SING_TOOLS=tól
+
+SING_STATS=tölfræði
+SING_STATS_DESC=skoða tölfræði
+
+SING_EDITOR=lagasmiður
+SING_EDITOR_DESC=búa til eigið lag
+
+SING_GAME_OPTIONS=leikstillingar
+SING_GAME_OPTIONS_DESC=breyta leikstillingum
+
+SING_EXIT=hætta
+SING_EXIT_DESC=hætta leik
+
+SING_OPTIONS=stillingar
+SING_OPTIONS_DESC=breyta stillingum
+SING_OPTIONS_WHEREAMI=Stillingar
+
+SING_OPTIONS_GAME=leikur
+SING_OPTIONS_GRAPHICS=mynd
+SING_OPTIONS_SOUND=hljóð
+SING_OPTIONS_LYRICS=lagatextar
+SING_OPTIONS_THEMES=snið
+SING_OPTIONS_RECORD=upptaka
+SING_OPTIONS_ADVANCED=fleiri stillingar
+SING_OPTIONS_EXIT=til baka
+
+SING_OPTIONS_GAME_WHEREAMI=Stillingar Leikur
+SING_OPTIONS_GAME_DESC=almennar leikstillingar
+SING_OPTIONS_GAME_PLAYERS=Leikmenn
+SING_OPTIONS_GAME_DIFFICULTY=Erfiðleikastig
+SING_OPTIONS_GAME_LANGUAGE=Tungumál
+SING_OPTIONS_GAME_TABS=Flipar
+SING_OPTIONS_GAME_SORTING=Röðun
+SING_OPTIONS_GAME_DEBUG=Villuprófun
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=Stillingar Mynd
+SING_OPTIONS_GRAPHICS_DESC=myndstillingar
+SING_OPTIONS_GRAPHICS_RESOLUTION=Skjáupplausn
+SING_OPTIONS_GRAPHICS_FULLSCREEN=Skjáfyllir
+SING_OPTIONS_GRAPHICS_DEPTH=Dýpt
+SING_OPTIONS_GRAPHICS_VISUALIZER=Sýning
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Sveiflusjá
+SING_OPTIONS_GRAPHICS_LINEBONUS=Línubónus
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Stærð Myndbands
+
+SING_OPTIONS_SOUND_WHEREAMI=Stillingar hljóð
+SING_OPTIONS_SOUND_DESC=hljóðstillingar
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Spilun af hljóðnema
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Bakgrunnstónlist
+SING_OPTIONS_SOUND_MIC_BOOST=Hljóðnemaaukning
+SING_OPTIONS_SOUND_CLICK_ASSIST=Taktstuðningur
+SING_OPTIONS_SOUND_BEAT_CLICK=Slá takt
+SING_OPTIONS_SOUND_THRESHOLD=Þröskuldur
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tveir leikmenn
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Forsýn hljóðstyrkur
+SING_OPTIONS_SOUND_PREVIEWFADING=Forsýn útþynning
+
+SING_OPTIONS_LYRICS_WHEREAMI=Stillingar Textar
+SING_OPTIONS_LYRICS_DESC=textastillingar
+SING_OPTIONS_LYRICS_FONT=Leturgerð
+SING_OPTIONS_LYRICS_EFFECT=Brellur
+SING_OPTIONS_LYRICS_SOLMIZATION=Solmization
+SING_OPTIONS_LYRICS_NOTELINES=Línur
+
+SING_OPTIONS_THEMES_WHEREAMI=Stillingar Snið
+SING_OPTIONS_THEMES_DESC=þemu- og skinnstillingar
+SING_OPTIONS_THEMES_THEME=Þema
+SING_OPTIONS_THEMES_SKIN=Skinn
+SING_OPTIONS_THEMES_COLOR=Litur
+
+SING_OPTIONS_RECORD_WHEREAMI=Stillingar Upptaka
+SING_OPTIONS_RECORD_DESC=hljóðnemastillingar
+SING_OPTIONS_RECORD_CARD=Hljóðkort
+SING_OPTIONS_RECORD_INPUT=Inntak
+SING_OPTIONS_RECORD_CHANNEL=Rás
+
+SING_OPTIONS_ADVANCED_WHEREAMI=Stillingar Meira
+SING_OPTIONS_ADVANCED_DESC=fleiri stillingar
+SING_OPTIONS_ADVANCED_EFFECTSING=Söngbrellur
+SING_OPTIONS_ADVANCED_SCREENFADE=Skjá útþynning
+SING_OPTIONS_ADVANCED_LOADANIMATION=Hlaða hreyfimynd
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Öryggisspurningar
+SING_OPTIONS_ADVANCED_LINEBONUS=Línubónus
+SING_OPTIONS_ADVANCED_ONSONGCLICK=Eftir Lagaval
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Sjálfvirk Partívalmynd
+
+SING_EDIT=Lagasmiður
+SING_EDIT_MENU_DESCRIPTION=búðu til eigið lag
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Flytja inn texta frá midi skrá
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=til baka
+SING_EDIT_BUTTON_CONVERT=Flytja inn
+SING_EDIT_BUTTON_EXIT=til baka
+
+SING_EDIT_NAVIGATE=stýra
+SING_EDIT_SELECT=velja
+SING_EDIT_EXIT=til baka
+
+SING_LEGEND_SELECT=velja
+SING_LEGEND_NAVIGATE=stýra
+SING_LEGEND_CONTINUE=áfram
+SING_LEGEND_ESC=til baka
+
+SING_PLAYER_DESC=sláið inn nöfn leikmanna
+SING_PLAYER_WHEREAMI=Nöfn leikmanna
+SING_PLAYER_ENTER_NAME=sláðu inn nafn
+
+SING_DIFFICULTY_DESC=veldu erfiðleikastig
+SING_DIFFICULTY_WHEREAMI=Erfiðleikastig
+SING_DIFFICULTY_CONTINUE=í lagaval
+SING_EASY=Auðvelt
+SING_MEDIUM=Miðlungs
+SING_HARD=Erfitt
+
+SING_SONG_SELECTION_DESC=veldu lag
+SING_SONG_SELECTION_WHEREAMI=Lagaval
+SING_SONG_SELECTION_GOTO=fara til ..
+SING_SONG_SELECTION=lagaval
+SING_SONG_SELECTION_MENU=valmynd
+SING_SONG_SELECTION_PLAYLIST=lagalisti
+SING_SONGS_IN_CAT=Lög
+PLAYLIST_CATTEXT=Lagalisti: %s
+
+SING_TIME=TÃMI
+SING_TOTAL=samtals
+SING_MODE=syngja sóló
+SING_NOTES=nótur
+SING_GOLDEN_NOTES=gullnótur
+SING_PHRASE_BONUS=línubónus
+
+SING_MENU=Aðalvalmynd
+
+SONG_SCORE=stigagjöf
+SONG_SCORE_WHEREAMI=Dómur
+
+SING_SCORE_TONE_DEAF=Falskt
+SING_SCORE_AMATEUR=Viðvaningur
+SING_SCORE_WANNABE=Uppblásið egó
+SING_SCORE_HOPEFUL=Eygir von
+SING_SCORE_RISING_STAR=Rísandi Stjarna
+SING_SCORE_LEAD_SINGER=Forsöngvari
+SING_SCORE_SUPERSTAR=Súperstjarna
+SING_SCORE_ULTRASTAR=Últrastjarna
+
+SING_TOP_5_CHARTS=topp 5 leikmenn
+SING_TOP_5_CHARTS_WHEREAMI=topp 5
+SING_TOP_5_CHARTS_CONTINUE=í lagaval
+SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=breyta erfiðleikastigi
+
+POPUP_PERFECT=fullkomið!
+POPUP_AWESOME=æðislegt!
+POPUP_GREAT=frábært!
+POPUP_GOOD=gott!
+POPUP_NOTBAD=ekki slæmt!
+POPUP_BAD=slæmt!
+POPUP_POOR=lélegt!
+POPUP_AWFUL=hræðilegt!
+
+;TODO: IMPLODE_GLUE1=,
+IMPLODE_GLUE2= og
+
+SONG_MENU_NAME_MAIN=lagavalmynd
+SONG_MENU_PLAY=Syngja
+SONG_MENU_CHANGEPLAYERS=Breyta um leikmenn
+SONG_MENU_EDIT=Breyta
+SONG_MENU_MODI=Singja Modi
+SONG_MENU_CANCEL=Hætta við
+
+SONG_MENU_NAME_PLAYLIST=Lagavalmynd
+SONG_MENU_PLAYLIST_ADD=Bæta við lagi
+SONG_MENU_PLAYLIST_DEL=Eyða lagi
+
+SONG_MENU_NAME_PLAYLIST_ADD=Bæta við
+SONG_MENU_PLAYLIST_ADD_NEW=í nýjan lagalista
+SONG_MENU_PLAYLIST_ADD_EXISTING=í núverandi lagalista
+SONG_MENU_PLAYLIST_NOEXISTING=Enginn lagalisti til staðar
+
+SONG_MENU_NAME_PLAYLIST_NEW=Nýr Lagalisti
+SONG_MENU_PLAYLIST_NEW_CREATE=Búa til
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Ónefndur
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Virkilega Eyða?
+SONG_MENU_YES=Já
+SONG_MENU_NO=Nei
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Opna Lagalista
+SONG_MENU_PLAYLIST_LOAD=opna
+SONG_MENU_PLAYLIST_DELCURRENT=eyða núverandi Lagalista
+
+SONG_MENU_NAME_PLAYLIST_DEL=Eyða Lagalista?
+
+SONG_MENU_NAME_PARTY_MAIN=Partívalmynd
+SONG_MENU_JOKER=Jóker
+
+SONG_MENU_NAME_PARTY_JOKER=taka jóker
+
+SONG_JUMPTO_DESC=lagaleit
+SONG_JUMPTO_TYPE_DESC=Leita að:
+SONG_JUMPTO_TYPE1=Öllu
+SONG_JUMPTO_TYPE2=Titli
+SONG_JUMPTO_TYPE3=Flytjanda
+SONG_JUMPTO_SONGSFOUND=%d lög fundust
+SONG_JUMPTO_NOSONGSFOUND=Engin lög fundust
+SONG_JUMPTO_HELP=Sláðu inn texta til að leita að
+SONG_JUMPTO_CATTEXT=Leita að: %s
+
+PARTY_MODE=partísnið
+PARTY_DIFFICULTY=Erfiðleikastig
+PARTY_PLAYLIST=Lagalista Stilling
+PARTY_PLAYLIST_ALL=Öll lög
+PARTY_PLAYLIST_CATEGORY=Mappa
+PARTY_PLAYLIST_PLAYLIST=Lagalisti
+PARTY_TEAMS=fjöldi liða
+PARTY_TEAMS_PLAYER1=fjöldi söngvara
+PARTY_TEAMS_PLAYER2=fjöldi söngvara
+PARTY_TEAMS_PLAYER3=fjöldi söngvara
+
+PARTY_LEGEND_CONTINUE=áfram
+
+PARTY_OPTIONS_DESC=stillingar fyrir partíleik
+PARTY_OPTIONS_WHEREAMI=Partí Stillingar
+
+PARTY_PLAYER_DESC=sláðu inn nöfn leikmanna og liða!
+PARTY_PLAYER_WHEREAMI=Partí Nöfn
+PARTY_PLAYER_ENTER_NAME=sláðu inn nöfn
+
+
+PARTY_ROUNDS_DESC= veljið hvaða snið þið viljið spila
+PARTY_ROUNDS_WHEREAMI=Partí Umferðir
+PARTY_ROUNDS_LEGEND_CONTINUE=byrja partí-leik
+PARTY_ROUNDCOUNT=fjöldi umferða
+PARTY_SELECTMODE1=snið umferð 1
+PARTY_SELECTMODE2=snið umferð 2
+PARTY_SELECTMODE3=snið umferð 3
+PARTY_SELECTMODE4=snið umferð 4
+PARTY_SELECTMODE5=snið umferð 5
+PARTY_SELECTMODE6=snið umferð 6
+PARTY_SELECTMODE7=snið umferð 7
+
+PARTY_ROUND_DESC=næstu leikmenn að hljóðnemunum
+PARTY_ROUND_WHEREAMI=Partí Næsta Umferð
+PARTY_ROUND_LEGEND_CONTINUE=byrja umferð
+
+PARTY_SONG_WHEREAMI=Partí Lagaval
+PARTY_SONG_LEGEND_CONTINUE=syngja
+PARTY_SONG_MENU=partí valmynd
+
+PARTY_SCORE_DESC=stig síðustu umferðar
+PARTY_SCORE_WHEREAMI=Partí Stig
+
+PARTY_WIN_DESC=sigurvegari partí-leiks
+PARTY_WIN_WHEREAMI=Partí Sigurvegari
+PARTY_WIN_LEGEND_CONTINUE=aftur að aðalvalmynd
+
+PARTY_ROUND=Umferð
+PARTY_ROUND_WINNER=Sigurvegari
+PARTY_NOTPLAYEDYET=ekki spilað enn
+PARTY_NOBODY=enginn
+NEXT_ROUND=Næsta umferð:
+
+PARTY_DISMISSED=Úr leik!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=sigrar!
+
+MODE_RANDOM_NAME=Tilviljanakennt snið
+MODE_RANDOM_DESC=Eitt snið valið af handahófi
+
+MODE_HDL_NAME=Haltu þig á strikinu
+MODE_HDL_DESC=Ekki standa þig verr en stigalínan sýnir.
+
+MODE_5000POINTS_NAME=Að 5000
+MODE_5000POINTS_DESC=Leikmaður sem fyrstur nær 5000 stigum vinnur.
+
+MODE_DUEL_NAME=Einvígi
+MODE_DUEL_DESC=Söngeinvígi að 10000 stigum.
+
+MODE_TEAMDUEL_NAME=Liðaeinvígi
+MODE_TEAMDUEL_DESC=Láttu hljóðnemann ganga!
+
+MODE_BLIND_NAME=Blindandi
+MODE_BLIND_DESC=Einvígi án þess að sjá nóturnar.
+
+STAT_MAIN=Tölfræði
+STAT_MAIN_DESC=Almennt
+STAT_MAIN_WHEREAMI=Tölfræði
+
+STAT_OVERVIEW_INTRO=%0:s tölfræði. \n Síðasta endurræsing %2:.2d.%1:.2d.%3:d
+STAT_OVERVIEW_SONG=%0:d Lög (%3:d með myndbandi), þar af hafa %1:d þegar verið spiluð og %2:d hafa enn ekki verið spiluð.\n Vinsælasta lagið er %5:s með %4:s.
+STAT_OVERVIEW_PLAYER=Frá síðustu endurræsingu hafa spilað %0:d leikmenn.\n Besti leikmaðurinn er %1:s með meðalstigatölu %2:d stig.\n %3:s fékk hæstu stig með %4:d stig.
+
+STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
+STAT_DETAIL=Tölfræði
+STAT_DETAIL_WHEREAMI=Ãtarleg Tölfræði
+
+STAT_NEXT=Næsta síða
+STAT_PREV=Fyrri síða
+STAT_REVERSE=Öfug röð
+STAT_PAGE=Blaðsíða %0:d af %1:d blaðsíðum (%2:d af %3:d færslum)
+
+STAT_DESC_SCORES=Hæstu stig
+STAT_DESC_SCORES_REVERSED=Lægstu stig
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Bestu söngvarar
+STAT_DESC_SINGERS_REVERSED=Verstu söngvarar
+STAT_FORMAT_SINGERS=%0:s \n Meðalstig: %1:d
+
+STAT_DESC_SONGS=Vinsælustu lög
+STAT_DESC_SONGS_REVERSED=Óvinsælustu lög
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sungið
+
+STAT_DESC_BANDS=Vinsælustu hljómsveitir
+STAT_DESC_BANDS_REVERSED=Óvinsælustu hljómsveitir
+STAT_FORMAT_BANDS=%0:s \n %1:dx Sungið
+
+SCREENSHOT_SAVED=Skjámynd vistuð
+SCREENSHOT_FAILED=Gat ekki vistað skjámynd
+
+INFO_FILE_SAVED=Skrá vistuð
+ERROR_SAVE_FILE_FAILED=Gat ekki vistað skrá
+ERROR_FILE_NOT_FOUND=Skrá finnst ekki
+
+ENCODING_ERROR_ASK_FOR_UTF8=Get ekki vistað breytingar með núverandi stafasetti. Breyta í UTF-8?
+EDITOR_ERROR_NO_TRACK_SELECTED=Ekkert lag valið
+
+MSG_ERROR_TITLE=Villa
+MSG_INFO_TITLE=Upplýsingar
+MSG_QUESTION_TITLE=Spurning
+MSG_QUIT_USDX=Viltu hætta í UltraStar?
+MSG_END_PARTY=Virkilega hætta í Partí?
+
+ERROR_NO_SONGS=Engum lögum hlaðið inn
+ERROR_NO_PLUGINS=Engum viðbótum hlaðið inn
+ERROR_NO_MODES_FOR_CURRENT_SETUP=engin snið tiltæk fyrir núverandi leikmann/lið
+ERROR_CAN_NOT_START_PARTY= villa kom upp við upphaf partíleiks
+ERROR_CORRUPT_SONG=Ekki var hægt að hlaða inn lagi.
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ekki var hægt að hlaða inn lagi: Skrá finnst ekki.
+ERROR_CORRUPT_SONG_NO_NOTES=Ekki var hægt að hlaða inn lagi: Finn engar nótur
+ERROR_CORRUPT_SONG_NO_BREAKS=Ekki var hægt að hlaða inn lagi: Finn engar línuskiptingar
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ekki var hægt að hlaða inn lagi: Villa við þáttun línu %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;TRANSLATOR: Hlynur Sigurgíslason
+;TRANSLATOR: Sigrún Huld Skúladóttir
diff --git a/us_maker_edition/game/languages/Italian.ini b/us_maker_edition/game/languages/Italian.ini
index 660b9b6f..9a43a28d 100644
--- a/us_maker_edition/game/languages/Italian.ini
+++ b/us_maker_edition/game/languages/Italian.ini
@@ -1,79 +1,88 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=Caricamento...
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Fading dello schermo
SING_OPTIONS_ADVANCED_LOADANIMATION=Animazione Caricamento
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Domande di Sicurezza
SING_OPTIONS_ADVANCED_LINEBONUS=Linee Bonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Contatore
SING_OPTIONS_ADVANCED_ONSONGCLICK=dopo Canzone Seleziona
SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu Party automatico
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Modalità Playlist
PARTY_PLAYLIST_ALL=Tutte le Canzoni
PARTY_PLAYLIST_CATEGORY=Cartella
PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Rounds
PARTY_TEAMS=Teams
PARTY_TEAMS_PLAYER1=Giocatore Team1
PARTY_TEAMS_PLAYER2=Giocatore Team2
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Impostazioni Party
PARTY_PLAYER_DESC=inserisci giocatore- e nomi squadre!
PARTY_PLAYER_WHEREAMI=Nomi Party
PARTY_PLAYER_ENTER_NAME=inserisci nomi
-PARTY_PLAYER_LEGEND_CONTINUE=incomincia il gioco (party)
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=incomincia il gioco (party)
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=prossimi giocatori al microfono
PARTY_ROUND_WHEREAMI=Prossimo Round del Party
@@ -339,20 +358,23 @@ PARTY_DISMISSED=Respinto!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=vince!
-PLUGIN_HDL_NAME=Tieni la Linea
-PLUGIN_HDL_DESC=Non fare peggio del puntatore che ti mostra la barra.
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
-PLUGIN_UNTIL5000_NAME=Fino a 5000
-PLUGIN_UNTIL5000_DESC=Chi fa 5000 punti per primo vince.
+MODE_HDL_NAME=Tieni la Linea
+MODE_HDL_DESC=Non fare peggio del puntatore che ti mostra la barra.
-PLUGIN_DUELL_NAME=Duello
-PLUGIN_DUELL_DESC=Canta in duello fino a 10000 punti.
+MODE_5000POINTS_NAME=Fino a 5000
+MODE_5000POINTS_DESC=Chi fa 5000 punti per primo vince.
-PLUGIN_TEAMDUELL_NAME=Duello a Team
-PLUGIN_TEAMDUELL_DESC=Passa il Microfono!
+MODE_DUEL_NAME=Duello
+MODE_DUEL_DESC=Canta in duello fino a 10000 punti.
-PLUGIN_BLIND_NAME=Modalità Ceca
-PLUGIN_BLIND_DESC=Duella senza vedere le note.
+MODE_TEAMDUEL_NAME=Duello a Team
+MODE_TEAMDUEL_DESC=Passa il Microfono!
+
+MODE_BLIND_NAME=Modalità Ceca
+MODE_BLIND_DESC=Duella senza vedere le note.
STAT_MAIN=Statistiche
STAT_MAIN_DESC=Generale
@@ -388,14 +410,33 @@ STAT_DESC_BANDS=Le Bands più popolari
STAT_DESC_BANDS_REVERSED=Le Bands meno popolari
STAT_FORMAT_BANDS=%0:s \n %1:dx Cantate
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Errore
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Domanda
MSG_QUIT_USDX=Vuoi davvero uscire da UltraStar?
MSG_END_PARTY=Vuoi davvero terminare la Modalità Party?
+
ERROR_NO_SONGS=Nessuna Canzone caricata
ERROR_NO_PLUGINS=Nessun Plugin caricato
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=La canzone non è stata caricata.
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Impossibile aprire la canzone: File non trovato
ERROR_CORRUPT_SONG_NO_NOTES=Impossibile aprire la canzone: Nessuna nota trovata
ERROR_CORRUPT_SONG_NO_BREAKS=Impossibile aprire la canzone: Nessuna interruzione di linea trovata
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Impossibile aprire la canzone: Errore durante il parsing della linea %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Impossibile aprire la canzone: Errore durante il parsing della linea %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Contatore
+;UNUSED: PARTY_ROUNDS=Rounds
diff --git a/us_maker_edition/game/languages/Japanese.ini b/us_maker_edition/game/languages/Japanese.ini
index b22f92b8..4fe1fc3e 100644
--- a/us_maker_edition/game/languages/Japanese.ini
+++ b/us_maker_edition/game/languages/Japanese.ini
@@ -1,400 +1,442 @@
-[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
-
-SING_LOADING=ロード中
-
-SING_CHOOSE_MODE=モードé¸æŠž
-SING_SING=æ­Œã†
-SING_SING_DESC=クイック・ゲーム:一人ãŒãƒ‡ãƒ¥ã‚¨ãƒƒãƒˆã§æ­Œã†
-
-SING_MULTI=パーティー
-SING_MULTI_DESC=パーティー・モードã§æ­Œã†
-
-SING_TOOLS=ツール
-
-SING_STATS=統計
-SING_STATS_DESC=統計表
-
-SING_EDITOR=エディター
-SING_EDITOR_DESC=自分ã§ã‚¦ãƒ«ãƒˆãƒ©ãƒ»ã‚¹ã‚¿ãƒ¼ã®æ›²ã‚’作る
-
-SING_GAME_OPTIONS=ゲーム設定
-SING_GAME_OPTIONS_DESC=ゲーム設定を変ãˆã‚‹
-
-SING_EXIT=ã‚„ã‚ã‚‹
-SING_EXIT_DESC=ゲームをやã‚ã‚‹
-
-SING_OPTIONS=設定
-SING_OPTIONS_DESC=設定を変ãˆã‚‹
-SING_OPTIONS_WHEREAMI=設定
-
-SING_OPTIONS_GAME=ゲーム
-SING_OPTIONS_GRAPHICS=グラフィックス
-SING_OPTIONS_SOUND=音
-SING_OPTIONS_LYRICS=歌詞
-SING_OPTIONS_THEMES=テーマ
-SING_OPTIONS_RECORD=録音
-SING_OPTIONS_ADVANCED=アドãƒãƒ³ã‚¹
-SING_OPTIONS_EXIT=戻る
-
-SING_OPTIONS_GAME_WHEREAMI=ゲーム設定
-SING_OPTIONS_GAME_DESC=ゲームã®åŸºæœ¬è¨­å®š
-SING_OPTIONS_GAME_PLAYERS=プレイヤー
-SING_OPTIONS_GAME_DIFFICULTY=é¢å€’
-SING_OPTIONS_GAME_LANGUAGE=言語
-SING_OPTIONS_GAME_TABS=タッブ
-SING_OPTIONS_GAME_SORTING=ソーティング
-SING_OPTIONS_GAME_DEBUG=ディãƒãƒƒã‚°
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=グラフィックス
-SING_OPTIONS_GRAPHICS_DESC=グラフィックスã®è¨­å®š
-SING_OPTIONS_GRAPHICS_RESOLUTION=解åƒ
-SING_OPTIONS_GRAPHICS_FULLSCREEN=フルスクリーン
-SING_OPTIONS_GRAPHICS_DEPTH=ビット深度
-SING_OPTIONS_GRAPHICS_VISUALIZER=å¯è¦–化
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=オシロスコープ
-SING_OPTIONS_GRAPHICS_LINEBONUS=ライン・ボーナス
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=動画サイズ
-
-SING_OPTIONS_SOUND_WHEREAMI=音設定
-SING_OPTIONS_SOUND_DESC=音ã®è¨­å®š
-SING_OPTIONS_SOUND_VOICEPASSTHROUGH=マイクå†ç”Ÿ
-SING_OPTIONS_SOUND_BACKGROUNDMUSIC=ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ãƒ»ãƒŸãƒ¥ãƒ¼ã‚¸ãƒƒã‚¯
-SING_OPTIONS_SOUND_MIC_BOOST=マイク・ブースト
-SING_OPTIONS_SOUND_CLICK_ASSIST=クリック・アシスト
-SING_OPTIONS_SOUND_BEAT_CLICK=ビート・クリック
-SING_OPTIONS_SOUND_THRESHOLD=極é™
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=二人ã§éŠã¶
-SING_OPTIONS_SOUND_PREVIEWVOLUME=音é‡ãƒ»ãƒ—リビュー
-SING_OPTIONS_SOUND_PREVIEWFADING=フェーディング・プリビュー
-
-SING_OPTIONS_LYRICS_WHEREAMI=歌詞設定
-SING_OPTIONS_LYRICS_DESC=歌詞ã®è¨­å®š
-SING_OPTIONS_LYRICS_FONT=å­—å½¢
-SING_OPTIONS_LYRICS_EFFECT=エフェクト
-SING_OPTIONS_LYRICS_SOLMIZATION=ソルマイゼーション
-SING_OPTIONS_LYRICS_NOTELINES=五線譜
-
-SING_OPTIONS_THEMES_WHEREAMI=テーマ設定
-SING_OPTIONS_THEMES_DESC=テーマã®è¨­å®š
-SING_OPTIONS_THEMES_THEME=テーマ
-SING_OPTIONS_THEMES_SKIN=スキン
-SING_OPTIONS_THEMES_COLOR=色
-
-SING_OPTIONS_RECORD_WHEREAMI=録音設定
-SING_OPTIONS_RECORD_DESC=マイク録音ã®è¨­å®š
-SING_OPTIONS_RECORD_CARD=サウンドカード
-SING_OPTIONS_RECORD_INPUT=入力
-SING_OPTIONS_RECORD_CHANNEL=ãƒãƒ£ãƒãƒ«
-
-SING_OPTIONS_ADVANCED_WHEREAMI=アドãƒãƒ³ã‚¹è¨­å®š
-SING_OPTIONS_ADVANCED_DESC=アドãƒãƒ³ã‚¹è¨­å®š
-SING_OPTIONS_ADVANCED_EFFECTSING=曲ã®ã‚¨ãƒ•ã‚§ã‚¯ãƒˆ
-SING_OPTIONS_ADVANCED_SCREENFADE=ç”»é¢ãƒ»ãƒ•ã‚§ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
-SING_OPTIONS_ADVANCED_LOADANIMATION=ロード・アニメーション
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=消ã™å ´åˆã¯ç¢ºèª
-SING_OPTIONS_ADVANCED_LINEBONUS=ライン・ボーナス
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=何回曲を歌ã£ãŸæ•°ãˆã‚‹
-SING_OPTIONS_ADVANCED_ONSONGCLICK=æ­Œã£ãŸå¾Œã¯
-SING_OPTIONS_ADVANCED_PARTYPOPUP=自動的ã«ãƒ‘ーティー・メニューã¸
-
-SING_EDIT=エディター
-SING_EDIT_MENU_DESCRIPTION=自分ã§ã‚¦ãƒ«ãƒˆãƒ©ãƒ»ã‚¹ã‚¿ãƒ¼ã®æ›²ã‚’作る
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=MIDIファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=戻る
-SING_EDIT_BUTTON_CONVERT=インãƒãƒ¼ãƒˆ
-SING_EDIT_BUTTON_EXIT=戻る
-
-SING_EDIT_NAVIGATE=ナビ
-SING_EDIT_SELECT=é¸ã¶
-SING_EDIT_EXIT=戻る
-
-SING_LEGEND_SELECT=é¸ã¶
-SING_LEGEND_NAVIGATE=ナビ
-SING_LEGEND_CONTINUE=続ã
-SING_LEGEND_ESC=戻る
-
-SING_PLAYER_DESC=プレイヤーå記入
-SING_PLAYER_WHEREAMI=プレイヤーå
-SING_PLAYER_ENTER_NAME=åå‰è¨˜å…¥
-
-SING_DIFFICULTY_DESC=é¢å€’é¸æŠž
-SING_DIFFICULTY_WHEREAMI=é¢å€’
-SING_DIFFICULTY_CONTINUE=曲é¸æŠžã¸
-SING_EASY=ç°¡å˜
-SING_MEDIUM=普通
-SING_HARD=難ã—ã„
-
-SING_SONG_SELECTION_DESC=曲をé¸ã¶
-SING_SONG_SELECTION_WHEREAMI=曲é¸æŠž
-SING_SONG_SELECTION_GOTO=曲ã¸â€¦
-SING_SONG_SELECTION=曲é¸æŠž
-SING_SONG_SELECTION_MENU=メニュー
-SING_SONG_SELECTION_PLAYLIST=曲順
-SING_SONGS_IN_CAT=曲
-PLAYLIST_CATTEXT=曲順: %s
-
-SING_TIME=TIME
-SING_TOTAL=全部
-SING_MODE=一人ã§æ­Œã†
-SING_NOTES=音符
-SING_GOLDEN_NOTES=ゴールド・音符
-SING_PHRASE_BONUS=ライン・ボーナス
-
-SING_MENU=メイン・メニュー
-
-SONG_SCORE=曲点数
-SONG_SCORE_WHEREAMI=点数
-
-SING_SCORE_TONE_DEAF=耳ãŒèžã“ãˆãªã„
-SING_SCORE_AMATEUR= アマãƒãƒ¥ã‚¢
-SING_SCORE_WANNABE=自称歌手
-SING_SCORE_HOPEFUL=有望
-SING_SCORE_RISING_STAR=歌手ã®åµ
-SING_SCORE_LEAD_SINGER=リードボーカリスト
-SING_SCORE_SUPERSTAR=スーパー・スター
-SING_SCORE_ULTRASTAR=ウルトラ・スター
-
-SING_TOP_5_CHARTS=トップ5プレイヤー
-SING_TOP_5_CHARTS_WHEREAMI=トップ5
-SING_TOP_5_CHARTS_CONTINUE=曲é¸æŠžã¸
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
+SING_LOADING=ロード中
+
+SING_CHOOSE_MODE=モードé¸æŠž
+SING_SING=æ­Œã†
+SING_SING_DESC=クイック・ゲーム:一人ãŒãƒ‡ãƒ¥ã‚¨ãƒƒãƒˆã§æ­Œã†
+
+SING_MULTI=パーティー
+SING_MULTI_DESC=パーティー・モードã§æ­Œã†
+
+SING_TOOLS=ツール
+
+SING_STATS=統計
+SING_STATS_DESC=統計表
+
+SING_EDITOR=エディター
+SING_EDITOR_DESC=自分ã§ã‚¦ãƒ«ãƒˆãƒ©ãƒ»ã‚¹ã‚¿ãƒ¼ã®æ›²ã‚’作る
+
+SING_GAME_OPTIONS=ゲーム設定
+SING_GAME_OPTIONS_DESC=ゲーム設定を変ãˆã‚‹
+
+SING_EXIT=ã‚„ã‚ã‚‹
+SING_EXIT_DESC=ゲームをやã‚ã‚‹
+
+SING_OPTIONS=設定
+SING_OPTIONS_DESC=設定を変ãˆã‚‹
+SING_OPTIONS_WHEREAMI=設定
+
+SING_OPTIONS_GAME=ゲーム
+SING_OPTIONS_GRAPHICS=グラフィックス
+SING_OPTIONS_SOUND=音
+SING_OPTIONS_LYRICS=歌詞
+SING_OPTIONS_THEMES=テーマ
+SING_OPTIONS_RECORD=録音
+SING_OPTIONS_ADVANCED=アドãƒãƒ³ã‚¹
+SING_OPTIONS_EXIT=戻る
+
+SING_OPTIONS_GAME_WHEREAMI=ゲーム設定
+SING_OPTIONS_GAME_DESC=ゲームã®åŸºæœ¬è¨­å®š
+SING_OPTIONS_GAME_PLAYERS=プレイヤー
+SING_OPTIONS_GAME_DIFFICULTY=é¢å€’
+SING_OPTIONS_GAME_LANGUAGE=言語
+SING_OPTIONS_GAME_TABS=タッブ
+SING_OPTIONS_GAME_SORTING=ソーティング
+SING_OPTIONS_GAME_DEBUG=ディãƒãƒƒã‚°
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=グラフィックス
+SING_OPTIONS_GRAPHICS_DESC=グラフィックスã®è¨­å®š
+SING_OPTIONS_GRAPHICS_RESOLUTION=解åƒ
+SING_OPTIONS_GRAPHICS_FULLSCREEN=フルスクリーン
+SING_OPTIONS_GRAPHICS_DEPTH=ビット深度
+SING_OPTIONS_GRAPHICS_VISUALIZER=å¯è¦–化
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=オシロスコープ
+SING_OPTIONS_GRAPHICS_LINEBONUS=ライン・ボーナス
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=動画サイズ
+
+SING_OPTIONS_SOUND_WHEREAMI=音設定
+SING_OPTIONS_SOUND_DESC=音ã®è¨­å®š
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=マイクå†ç”Ÿ
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ãƒ»ãƒŸãƒ¥ãƒ¼ã‚¸ãƒƒã‚¯
+SING_OPTIONS_SOUND_MIC_BOOST=マイク・ブースト
+SING_OPTIONS_SOUND_CLICK_ASSIST=クリック・アシスト
+SING_OPTIONS_SOUND_BEAT_CLICK=ビート・クリック
+SING_OPTIONS_SOUND_THRESHOLD=極é™
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=二人ã§éŠã¶
+SING_OPTIONS_SOUND_PREVIEWVOLUME=音é‡ãƒ»ãƒ—リビュー
+SING_OPTIONS_SOUND_PREVIEWFADING=フェーディング・プリビュー
+
+SING_OPTIONS_LYRICS_WHEREAMI=歌詞設定
+SING_OPTIONS_LYRICS_DESC=歌詞ã®è¨­å®š
+SING_OPTIONS_LYRICS_FONT=å­—å½¢
+SING_OPTIONS_LYRICS_EFFECT=エフェクト
+SING_OPTIONS_LYRICS_SOLMIZATION=ソルマイゼーション
+SING_OPTIONS_LYRICS_NOTELINES=五線譜
+
+SING_OPTIONS_THEMES_WHEREAMI=テーマ設定
+SING_OPTIONS_THEMES_DESC=テーマã®è¨­å®š
+SING_OPTIONS_THEMES_THEME=テーマ
+SING_OPTIONS_THEMES_SKIN=スキン
+SING_OPTIONS_THEMES_COLOR=色
+
+SING_OPTIONS_RECORD_WHEREAMI=録音設定
+SING_OPTIONS_RECORD_DESC=マイク録音ã®è¨­å®š
+SING_OPTIONS_RECORD_CARD=サウンドカード
+SING_OPTIONS_RECORD_INPUT=入力
+SING_OPTIONS_RECORD_CHANNEL=ãƒãƒ£ãƒãƒ«
+
+SING_OPTIONS_ADVANCED_WHEREAMI=アドãƒãƒ³ã‚¹è¨­å®š
+SING_OPTIONS_ADVANCED_DESC=アドãƒãƒ³ã‚¹è¨­å®š
+SING_OPTIONS_ADVANCED_EFFECTSING=曲ã®ã‚¨ãƒ•ã‚§ã‚¯ãƒˆ
+SING_OPTIONS_ADVANCED_SCREENFADE=ç”»é¢ãƒ»ãƒ•ã‚§ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°
+SING_OPTIONS_ADVANCED_LOADANIMATION=ロード・アニメーション
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=消ã™å ´åˆã¯ç¢ºèª
+SING_OPTIONS_ADVANCED_LINEBONUS=ライン・ボーナス
+SING_OPTIONS_ADVANCED_ONSONGCLICK=æ­Œã£ãŸå¾Œã¯
+SING_OPTIONS_ADVANCED_PARTYPOPUP=自動的ã«ãƒ‘ーティー・メニューã¸
+
+SING_EDIT=エディター
+SING_EDIT_MENU_DESCRIPTION=自分ã§ã‚¦ãƒ«ãƒˆãƒ©ãƒ»ã‚¹ã‚¿ãƒ¼ã®æ›²ã‚’作る
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=MIDIファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã™ã‚‹
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=戻る
+SING_EDIT_BUTTON_CONVERT=インãƒãƒ¼ãƒˆ
+SING_EDIT_BUTTON_EXIT=戻る
+
+SING_EDIT_NAVIGATE=ナビ
+SING_EDIT_SELECT=é¸ã¶
+SING_EDIT_EXIT=戻る
+
+SING_LEGEND_SELECT=é¸ã¶
+SING_LEGEND_NAVIGATE=ナビ
+SING_LEGEND_CONTINUE=続ã
+SING_LEGEND_ESC=戻る
+
+SING_PLAYER_DESC=プレイヤーå記入
+SING_PLAYER_WHEREAMI=プレイヤーå
+SING_PLAYER_ENTER_NAME=åå‰è¨˜å…¥
+
+SING_DIFFICULTY_DESC=é¢å€’é¸æŠž
+SING_DIFFICULTY_WHEREAMI=é¢å€’
+SING_DIFFICULTY_CONTINUE=曲é¸æŠžã¸
+SING_EASY=ç°¡å˜
+SING_MEDIUM=普通
+SING_HARD=難ã—ã„
+
+SING_SONG_SELECTION_DESC=曲をé¸ã¶
+SING_SONG_SELECTION_WHEREAMI=曲é¸æŠž
+SING_SONG_SELECTION_GOTO=曲ã¸â€¦
+SING_SONG_SELECTION=曲é¸æŠž
+SING_SONG_SELECTION_MENU=メニュー
+SING_SONG_SELECTION_PLAYLIST=曲順
+SING_SONGS_IN_CAT=曲
+PLAYLIST_CATTEXT=曲順: %s
+
+SING_TIME=TIME
+SING_TOTAL=全部
+SING_MODE=一人ã§æ­Œã†
+SING_NOTES=音符
+SING_GOLDEN_NOTES=ゴールド・音符
+SING_PHRASE_BONUS=ライン・ボーナス
+
+SING_MENU=メイン・メニュー
+
+SONG_SCORE=曲点数
+SONG_SCORE_WHEREAMI=点数
+
+SING_SCORE_TONE_DEAF=耳ãŒèžã“ãˆãªã„
+SING_SCORE_AMATEUR= アマãƒãƒ¥ã‚¢
+SING_SCORE_WANNABE=自称歌手
+SING_SCORE_HOPEFUL=有望
+SING_SCORE_RISING_STAR=歌手ã®åµ
+SING_SCORE_LEAD_SINGER=リードボーカリスト
+SING_SCORE_SUPERSTAR=スーパー・スター
+SING_SCORE_ULTRASTAR=ウルトラ・スター
+
+SING_TOP_5_CHARTS=トップ5プレイヤー
+SING_TOP_5_CHARTS_WHEREAMI=トップ5
+SING_TOP_5_CHARTS_CONTINUE=曲é¸æŠžã¸
SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
-
-POPUP_PERFECT=完璧ï¼
-POPUP_AWESOME=ã™ã”ã„ï¼
-POPUP_GREAT=上手ï¼
-POPUP_GOOD=良ã‹ã£ãŸï¼
-POPUP_NOTBAD=悪ãã¯ãªã„ï¼
-POPUP_BAD=良ããªã„ï¼
-POPUP_POOR=下手ï¼
-POPUP_AWFUL=下手ããï¼
-
-IMPLODE_GLUE1=ã€ã€€
-IMPLODE_GLUE2= ã¨ã€€
-
-SONG_MENU_NAME_MAIN=曲メイン・メニュー
-SONG_MENU_PLAY=æ­Œã†
-SONG_MENU_CHANGEPLAYERS=プレイヤーを変ãˆã‚‹
-SONG_MENU_EDIT=エディター
-SONG_MENU_MODI=モードを歌ã†
-SONG_MENU_CANCEL=キャンセル
-
-SONG_MENU_NAME_PLAYLIST=曲メニュー
-SONG_MENU_PLAYLIST_ADD=曲を加ãˆã‚‹
-SONG_MENU_PLAYLIST_DEL=曲を消ã™
-
-SONG_MENU_NAME_PLAYLIST_ADD=曲を加ãˆã‚‹
-SONG_MENU_PLAYLIST_ADD_NEW=æ–°ã—ã„曲順ã«
-SONG_MENU_PLAYLIST_ADD_EXISTING=ã‚る曲順ã«
-SONG_MENU_PLAYLIST_NOEXISTING=ã¾ã æ›²é †ãŒãªã„
-
-SONG_MENU_NAME_PLAYLIST_NEW=æ–°ã—ã„曲順
-SONG_MENU_PLAYLIST_NEW_CREATE=作æˆ
-SONG_MENU_PLAYLIST_NEW_UNNAMED=åç„¡ã—
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=本当ã«æ¶ˆã™ï¼Ÿ
-SONG_MENU_YES=ã¯ã„
-SONG_MENU_NO=ã„ã„ãˆ
-
-SONG_MENU_NAME_PLAYLIST_LOAD=曲順を開ã
-SONG_MENU_PLAYLIST_LOAD=é–‹ã
-SONG_MENU_PLAYLIST_DELCURRENT=ã“ã®æ›²é †ã‚’消ã™
-
-SONG_MENU_NAME_PLAYLIST_DEL=曲順を消ã™ï¼Ÿ
-
-SONG_MENU_NAME_PARTY_MAIN=パーティーメニュー
-SONG_MENU_JOKER=ジョーカー
-
-SONG_MENU_NAME_PARTY_JOKER=ジョーカーを使ã†
-
-SONG_JUMPTO_DESC=曲検索
-SONG_JUMPTO_TYPE_DESC=検索:
-SONG_JUMPTO_TYPE1=全部
-SONG_JUMPTO_TYPE2=曲å
-SONG_JUMPTO_TYPE3=歌手
-SONG_JUMPTO_SONGSFOUND=%d曲ãŒè¦‹ã¤ã‘ãŸ
-SONG_JUMPTO_NOSONGSFOUND=曲見ã¤ã‘ã‚Œãªã‹ã£ãŸ
-SONG_JUMPTO_HELP=検索テクストを入力ã™ã‚‹
-SONG_JUMPTO_CATTEXT=検索: %s
-
-PARTY_MODE=パーティー・モード
-PARTY_DIFFICULTY=é¢å€’
-PARTY_PLAYLIST=曲順・モード
-PARTY_PLAYLIST_ALL=全曲
-PARTY_PLAYLIST_CATEGORY=フォルダー
-PARTY_PLAYLIST_PLAYLIST=曲順
-PARTY_ROUNDS=ラウンド
-PARTY_TEAMS=ãƒãƒ¼ãƒ 
-PARTY_TEAMS_PLAYER1=1番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
-PARTY_TEAMS_PLAYER2=2番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
-PARTY_TEAMS_PLAYER3=3番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
-
-PARTY_LEGEND_CONTINUE=続ã
-
-PARTY_OPTIONS_DESC=パーティー・ゲームã®è¨­å®š
-PARTY_OPTIONS_WHEREAMI=パーティー設定
-
-PARTY_PLAYER_DESC=プレイヤーã€ãƒãƒ¼ãƒ å記入
-PARTY_PLAYER_WHEREAMI=パーティーã®åå‰è¨˜å…¥
-PARTY_PLAYER_ENTER_NAME=åå‰è¨˜å…¥
-PARTY_PLAYER_LEGEND_CONTINUE=パーティー・ゲームをスタートï¼
-
-PARTY_ROUND_DESC=次ã®ãƒ—レイヤーãŒãƒžã‚¤ã‚¯ã‚’
-PARTY_ROUND_WHEREAMI=パーティーã®æ¬¡ã®ãƒ©ã‚¦ãƒ³ãƒ‰
-PARTY_ROUND_LEGEND_CONTINUE=パーティーをスタートï¼
-
-PARTY_SONG_WHEREAMI=パーティーã®æ›²é¸æŠž
-PARTY_SONG_LEGEND_CONTINUE=æ­Œã†
-PARTY_SONG_MENU=パーティー・メニュー
-
-PARTY_SCORE_DESC=先回ラウンドã®ç‚¹æ•°
-PARTY_SCORE_WHEREAMI=パーティー・点数
-
-PARTY_WIN_DESC=パーティー・ゲームã§å‹è€…
-PARTY_WIN_WHEREAMI=パーティー・å‹è€…
-PARTY_WIN_LEGEND_CONTINUE=メイン・メニューã¸
-
-PARTY_ROUND=ラウンド
-PARTY_ROUND_WINNER=å‹è€…
-PARTY_NOTPLAYEDYET=ã¾ã æ­Œã£ã¦ãªã„
-PARTY_NOBODY=誰もã„ãªã„
-NEXT_ROUND=次ã®ãƒ©ã‚¦ãƒ³ãƒ‰ï¼š
-
-PARTY_DISMISSED=追放ã™ï¼
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=ãŒå‹ã£ãŸï¼
-
-PLUGIN_HDL_NAME=ラインをキープ
-PLUGIN_HDL_DESC=レーティング・ãƒãƒ¼ã«è¡¨ç¤ºã•ã‚ŒãŸç‚¹æ•°ä»¥ä¸Šã§æ­Œã†ï¼
-
-PLUGIN_UNTIL5000_NAME=5ï¼ï¼ï¼ã¾ã§
-PLUGIN_UNTIL5000_DESC=より早ã5ï¼ï¼ï¼ç‚¹ã¾ã§ã„ã‘る人ã¯å‹ã¤ï¼
-
-PLUGIN_DUELL_NAME=æžœãŸã—åˆã„
-PLUGIN_DUELL_DESC=1ï¼ï¼ï¼ï¼ç‚¹ã¾ã§æžœãŸã—åˆã„ï¼
-
-PLUGIN_TEAMDUELL_NAME=ãƒãƒ¼ãƒ æžœãŸã—åˆã„
-PLUGIN_TEAMDUELL_DESC=マイクを次ã«å›žã™ï¼
-
-PLUGIN_BLIND_NAME=盲目・モード
-PLUGIN_BLIND_DESC=音符を見ãˆãšæžœãŸã—åˆã„ï¼
-
-STAT_MAIN=統計
-STAT_MAIN_DESC=ジェãƒãƒ©ãƒ«
-STAT_MAIN_WHEREAMI=統計
-
-STAT_OVERVIEW_INTRO=%0:s 統計。 \n 先回リセット %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d曲(%3:d曲ã¯å‹•ç”»ä»˜)\n 一番人気ã®æ›²ã¯%4:sã®%5:s。
-STAT_OVERVIEW_PLAYER=先回リセットã‹ã‚‰%0:d人ã®ãƒ—レイヤーãŒã„ãŸã€‚\n 一番上手ãªãƒ—レやーã¯%2:d点ã§%1:s。
+
+POPUP_PERFECT=完璧ï¼
+POPUP_AWESOME=ã™ã”ã„ï¼
+POPUP_GREAT=上手ï¼
+POPUP_GOOD=良ã‹ã£ãŸï¼
+POPUP_NOTBAD=悪ãã¯ãªã„ï¼
+POPUP_BAD=良ããªã„ï¼
+POPUP_POOR=下手ï¼
+POPUP_AWFUL=下手ããï¼
+
+IMPLODE_GLUE1=ã€ã€€
+IMPLODE_GLUE2= ã¨ã€€
+
+SONG_MENU_NAME_MAIN=曲メイン・メニュー
+SONG_MENU_PLAY=æ­Œã†
+SONG_MENU_CHANGEPLAYERS=プレイヤーを変ãˆã‚‹
+SONG_MENU_EDIT=エディター
+SONG_MENU_MODI=モードを歌ã†
+SONG_MENU_CANCEL=キャンセル
+
+SONG_MENU_NAME_PLAYLIST=曲メニュー
+SONG_MENU_PLAYLIST_ADD=曲を加ãˆã‚‹
+SONG_MENU_PLAYLIST_DEL=曲を消ã™
+
+SONG_MENU_NAME_PLAYLIST_ADD=曲を加ãˆã‚‹
+SONG_MENU_PLAYLIST_ADD_NEW=æ–°ã—ã„曲順ã«
+SONG_MENU_PLAYLIST_ADD_EXISTING=ã‚る曲順ã«
+SONG_MENU_PLAYLIST_NOEXISTING=ã¾ã æ›²é †ãŒãªã„
+
+SONG_MENU_NAME_PLAYLIST_NEW=æ–°ã—ã„曲順
+SONG_MENU_PLAYLIST_NEW_CREATE=作æˆ
+SONG_MENU_PLAYLIST_NEW_UNNAMED=åç„¡ã—
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=本当ã«æ¶ˆã™ï¼Ÿ
+SONG_MENU_YES=ã¯ã„
+SONG_MENU_NO=ã„ã„ãˆ
+
+SONG_MENU_NAME_PLAYLIST_LOAD=曲順を開ã
+SONG_MENU_PLAYLIST_LOAD=é–‹ã
+SONG_MENU_PLAYLIST_DELCURRENT=ã“ã®æ›²é †ã‚’消ã™
+
+SONG_MENU_NAME_PLAYLIST_DEL=曲順を消ã™ï¼Ÿ
+
+SONG_MENU_NAME_PARTY_MAIN=パーティーメニュー
+SONG_MENU_JOKER=ジョーカー
+
+SONG_MENU_NAME_PARTY_JOKER=ジョーカーを使ã†
+
+SONG_JUMPTO_DESC=曲検索
+SONG_JUMPTO_TYPE_DESC=検索:
+SONG_JUMPTO_TYPE1=全部
+SONG_JUMPTO_TYPE2=曲å
+SONG_JUMPTO_TYPE3=歌手
+SONG_JUMPTO_SONGSFOUND=%d曲ãŒè¦‹ã¤ã‘ãŸ
+SONG_JUMPTO_NOSONGSFOUND=曲見ã¤ã‘ã‚Œãªã‹ã£ãŸ
+SONG_JUMPTO_HELP=検索テクストを入力ã™ã‚‹
+SONG_JUMPTO_CATTEXT=検索: %s
+
+PARTY_MODE=パーティー・モード
+PARTY_DIFFICULTY=é¢å€’
+PARTY_PLAYLIST=曲順・モード
+PARTY_PLAYLIST_ALL=全曲
+PARTY_PLAYLIST_CATEGORY=フォルダー
+PARTY_PLAYLIST_PLAYLIST=曲順
+PARTY_TEAMS=ãƒãƒ¼ãƒ 
+PARTY_TEAMS_PLAYER1=1番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
+PARTY_TEAMS_PLAYER2=2番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
+PARTY_TEAMS_PLAYER3=3番ãƒãƒ¼ãƒ ã®ãƒ—レイヤー
+
+PARTY_LEGEND_CONTINUE=続ã
+
+PARTY_OPTIONS_DESC=パーティー・ゲームã®è¨­å®š
+PARTY_OPTIONS_WHEREAMI=パーティー設定
+
+PARTY_PLAYER_DESC=プレイヤーã€ãƒãƒ¼ãƒ å記入
+PARTY_PLAYER_WHEREAMI=パーティーã®åå‰è¨˜å…¥
+PARTY_PLAYER_ENTER_NAME=åå‰è¨˜å…¥
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=パーティー・ゲームをスタートï¼
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
+
+PARTY_ROUND_DESC=次ã®ãƒ—レイヤーãŒãƒžã‚¤ã‚¯ã‚’
+PARTY_ROUND_WHEREAMI=パーティーã®æ¬¡ã®ãƒ©ã‚¦ãƒ³ãƒ‰
+PARTY_ROUND_LEGEND_CONTINUE=パーティーをスタートï¼
+
+PARTY_SONG_WHEREAMI=パーティーã®æ›²é¸æŠž
+PARTY_SONG_LEGEND_CONTINUE=æ­Œã†
+PARTY_SONG_MENU=パーティー・メニュー
+
+PARTY_SCORE_DESC=先回ラウンドã®ç‚¹æ•°
+PARTY_SCORE_WHEREAMI=パーティー・点数
+
+PARTY_WIN_DESC=パーティー・ゲームã§å‹è€…
+PARTY_WIN_WHEREAMI=パーティー・å‹è€…
+PARTY_WIN_LEGEND_CONTINUE=メイン・メニューã¸
+
+PARTY_ROUND=ラウンド
+PARTY_ROUND_WINNER=å‹è€…
+PARTY_NOTPLAYEDYET=ã¾ã æ­Œã£ã¦ãªã„
+PARTY_NOBODY=誰もã„ãªã„
+NEXT_ROUND=次ã®ãƒ©ã‚¦ãƒ³ãƒ‰ï¼š
+
+PARTY_DISMISSED=追放ã™ï¼
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=ãŒå‹ã£ãŸï¼
+
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=ラインをキープ
+MODE_HDL_DESC=レーティング・ãƒãƒ¼ã«è¡¨ç¤ºã•ã‚ŒãŸç‚¹æ•°ä»¥ä¸Šã§æ­Œã†ï¼
+
+MODE_5000POINTS_NAME=5ï¼ï¼ï¼ã¾ã§
+MODE_5000POINTS_DESC=より早ã5ï¼ï¼ï¼ç‚¹ã¾ã§ã„ã‘る人ã¯å‹ã¤ï¼
+
+MODE_DUEL_NAME=æžœãŸã—åˆã„
+MODE_DUEL_DESC=1ï¼ï¼ï¼ï¼ç‚¹ã¾ã§æžœãŸã—åˆã„ï¼
+
+MODE_TEAMDUEL_NAME=ãƒãƒ¼ãƒ æžœãŸã—åˆã„
+MODE_TEAMDUEL_DESC=マイクを次ã«å›žã™ï¼
+
+MODE_BLIND_NAME=盲目・モード
+MODE_BLIND_DESC=音符を見ãˆãšæžœãŸã—åˆã„ï¼
+
+STAT_MAIN=統計
+STAT_MAIN_DESC=ジェãƒãƒ©ãƒ«
+STAT_MAIN_WHEREAMI=統計
+
+STAT_OVERVIEW_INTRO=%0:s 統計。 \n 先回リセット %2:.2d.%1:.2d.%3:d
+STAT_OVERVIEW_SONG=%0:d曲(%3:d曲ã¯å‹•ç”»ä»˜)\n 一番人気ã®æ›²ã¯%4:sã®%5:s。
+STAT_OVERVIEW_PLAYER=先回リセットã‹ã‚‰%0:d人ã®ãƒ—レイヤーãŒã„ãŸã€‚\n 一番上手ãªãƒ—レやーã¯%2:d点ã§%1:s。
STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
-
-STAT_DETAIL=統計
-STAT_DETAIL_WHEREAMI=統計ã®è©³ã—ã„事
-
-STAT_NEXT=次ページ
-STAT_PREV=先ページ
-STAT_REVERSE=逆ã®é †ç•ª
-STAT_PAGE= %1:d ページ㮠%0:d 番目\n (%3:d エントリー㮠%2:d 番目)
-
-STAT_DESC_SCORES=ãƒã‚¤ã‚¹ã‚³ã‚¢
-STAT_DESC_SCORES_REVERSED=ロースコア
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=ベスト・プレイヤー
-STAT_DESC_SINGERS_REVERSED=ワースト・プレイヤー
-STAT_FORMAT_SINGERS=%0:s \n å¹³å‡ã‚¹ã‚³ã‚¢ï¼š %1:d
-
-STAT_DESC_SONGS=一番人気ã‚る曲
-STAT_DESC_SONGS_REVERSED=一番人気ãªã—曲
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx 回歌ã£ãŸ
-
-STAT_DESC_BANDS=一番人気ã‚る歌手
-STAT_DESC_BANDS_REVERSED=一番人気ãªã„歌手
-STAT_FORMAT_BANDS=%0:s \n %1:dx 回歌ã£ãŸ
-
-MSG_ERROR_TITLE=エラー
-MSG_QUESTION_TITLE=確èª
-MSG_QUIT_USDX=本当ã«ã‚²ãƒ¼ãƒ ã‚’ã‚„ã‚る?
-MSG_END_PARTY=本当ã«ãƒ‘ーティーモードをやã‚る?
-ERROR_NO_SONGS=曲ã¯ãƒ­ãƒ¼ãƒ‰ã—ã¦ãªã„
-ERROR_NO_PLUGINS=プラグインã¯ãƒ­ãƒ¼ãƒ‰ã—ã¦ãªã„
-ERROR_CORRUPT_SONG=曲をロードã§ããªã„
-ERROR_CORRUPT_SONG_FILE_NOT_FOUND=曲をロードã§ããªã„: ファイルãŒè¦‹ã¤ã‹ã‚‰ãªã„
-ERROR_CORRUPT_SONG_NO_NOTES=曲をロードã§ããªã„: 音符ãŒè¦‹ã¤ã‹ã‚‰ãªã„
-ERROR_CORRUPT_SONG_NO_BREAKS=曲をロードã§ããªã„: ライン・ブレークãŒè¦‹ã¤ã‹ã‚‰ãªã„
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=曲をロードã§ããªã„: ライン %0:d ã®è§£æžã‚¨ãƒ©ãƒ¼ \ No newline at end of file
+
+STAT_DETAIL=統計
+STAT_DETAIL_WHEREAMI=統計ã®è©³ã—ã„事
+
+STAT_NEXT=次ページ
+STAT_PREV=先ページ
+STAT_REVERSE=逆ã®é †ç•ª
+STAT_PAGE= %1:d ページ㮠%0:d 番目\n (%3:d エントリー㮠%2:d 番目)
+
+STAT_DESC_SCORES=ãƒã‚¤ã‚¹ã‚³ã‚¢
+STAT_DESC_SCORES_REVERSED=ロースコア
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=ベスト・プレイヤー
+STAT_DESC_SINGERS_REVERSED=ワースト・プレイヤー
+STAT_FORMAT_SINGERS=%0:s \n å¹³å‡ã‚¹ã‚³ã‚¢ï¼š %1:d
+
+STAT_DESC_SONGS=一番人気ã‚る曲
+STAT_DESC_SONGS_REVERSED=一番人気ãªã—曲
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx 回歌ã£ãŸ
+
+STAT_DESC_BANDS=一番人気ã‚る歌手
+STAT_DESC_BANDS_REVERSED=一番人気ãªã„歌手
+STAT_FORMAT_BANDS=%0:s \n %1:dx 回歌ã£ãŸ
+
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
+MSG_ERROR_TITLE=エラー
+;TODO: MSG_INFO_TITLE=Information
+MSG_QUESTION_TITLE=確èª
+MSG_QUIT_USDX=本当ã«ã‚²ãƒ¼ãƒ ã‚’ã‚„ã‚る?
+MSG_END_PARTY=本当ã«ãƒ‘ーティーモードをやã‚る?
+
+ERROR_NO_SONGS=曲ã¯ãƒ­ãƒ¼ãƒ‰ã—ã¦ãªã„
+ERROR_NO_PLUGINS=プラグインã¯ãƒ­ãƒ¼ãƒ‰ã—ã¦ãªã„
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
+ERROR_CORRUPT_SONG=曲をロードã§ããªã„
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=曲をロードã§ããªã„: ファイルãŒè¦‹ã¤ã‹ã‚‰ãªã„
+ERROR_CORRUPT_SONG_NO_NOTES=曲をロードã§ããªã„: 音符ãŒè¦‹ã¤ã‹ã‚‰ãªã„
+ERROR_CORRUPT_SONG_NO_BREAKS=曲をロードã§ããªã„: ライン・ブレークãŒè¦‹ã¤ã‹ã‚‰ãªã„
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=曲をロードã§ããªã„: ライン %0:d ã®è§£æžã‚¨ãƒ©ãƒ¼
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=何回曲を歌ã£ãŸæ•°ãˆã‚‹
+;UNUSED: PARTY_ROUNDS=ラウンド
diff --git a/us_maker_edition/game/languages/Language.new b/us_maker_edition/game/languages/Language.new
new file mode 100644
index 00000000..008dcbfc
--- /dev/null
+++ b/us_maker_edition/game/languages/Language.new
@@ -0,0 +1,440 @@
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
+;TODO: SING_LOADING=Loading...
+
+;TODO: SING_CHOOSE_MODE=choose mode
+;TODO: SING_SING=sing
+;TODO: SING_SING_DESC=quick game: sing solo or duet
+
+;TODO: SING_MULTI=party
+;TODO: SING_MULTI_DESC=sing in party-mode
+
+;TODO: SING_TOOLS=tools
+
+;TODO: SING_STATS=stats
+;TODO: SING_STATS_DESC=view the statistics
+
+;TODO: SING_EDITOR=editor
+;TODO: SING_EDITOR_DESC=create your own song
+
+;TODO: SING_GAME_OPTIONS=game options
+;TODO: SING_GAME_OPTIONS_DESC=change game settings
+
+;TODO: SING_EXIT=quit
+;TODO: SING_EXIT_DESC=quit game
+
+;TODO: SING_OPTIONS=options
+;TODO: SING_OPTIONS_DESC=change settings
+;TODO: SING_OPTIONS_WHEREAMI=Options
+
+;TODO: SING_OPTIONS_GAME=game
+;TODO: SING_OPTIONS_GRAPHICS=graphics
+;TODO: SING_OPTIONS_SOUND=sound
+;TODO: SING_OPTIONS_LYRICS=lyrics
+;TODO: SING_OPTIONS_THEMES=themes
+;TODO: SING_OPTIONS_RECORD=record
+;TODO: SING_OPTIONS_ADVANCED=advanced
+;TODO: SING_OPTIONS_EXIT=back
+
+;TODO: SING_OPTIONS_GAME_WHEREAMI=Options Game
+;TODO: SING_OPTIONS_GAME_DESC=general game settings
+;TODO: SING_OPTIONS_GAME_PLAYERS=Players
+;TODO: SING_OPTIONS_GAME_DIFFICULTY=Difficulty
+;TODO: SING_OPTIONS_GAME_LANGUAGE=Language
+;TODO: SING_OPTIONS_GAME_TABS=Tabs
+;TODO: SING_OPTIONS_GAME_SORTING=Sorting
+;TODO: SING_OPTIONS_GAME_DEBUG=Debug
+
+;TODO: SING_OPTIONS_GRAPHICS_WHEREAMI=Options Graphics
+;TODO: SING_OPTIONS_GRAPHICS_DESC=graphic settings
+;TODO: SING_OPTIONS_GRAPHICS_RESOLUTION=Resolution
+;TODO: SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullscreen
+;TODO: SING_OPTIONS_GRAPHICS_DEPTH=Depth
+;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
+;TODO: SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscope
+;TODO: SING_OPTIONS_GRAPHICS_LINEBONUS=Line Bonus
+;TODO: SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Movie size
+
+;TODO: SING_OPTIONS_SOUND_WHEREAMI=Options Sound
+;TODO: SING_OPTIONS_SOUND_DESC=sound settings
+;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback
+;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music
+;TODO: SING_OPTIONS_SOUND_MIC_BOOST=Mic boost
+;TODO: SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist
+;TODO: SING_OPTIONS_SOUND_BEAT_CLICK=Beat click
+;TODO: SING_OPTIONS_SOUND_THRESHOLD=Threshold
+;TODO: SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Two players mode
+;TODO: SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview Volume
+;TODO: SING_OPTIONS_SOUND_PREVIEWFADING=Preview Fading
+
+;TODO: SING_OPTIONS_LYRICS_WHEREAMI=Options Lyrics
+;TODO: SING_OPTIONS_LYRICS_DESC=lyrics settings
+;TODO: SING_OPTIONS_LYRICS_FONT=Font
+;TODO: SING_OPTIONS_LYRICS_EFFECT=Effect
+;TODO: SING_OPTIONS_LYRICS_SOLMIZATION=Solmization
+;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves
+
+;TODO: SING_OPTIONS_THEMES_WHEREAMI=Options Themes
+;TODO: SING_OPTIONS_THEMES_DESC=theme and skin settings
+;TODO: SING_OPTIONS_THEMES_THEME=Theme
+;TODO: SING_OPTIONS_THEMES_SKIN=Skin
+;TODO: SING_OPTIONS_THEMES_COLOR=Color
+
+;TODO: SING_OPTIONS_RECORD_WHEREAMI=Options Record
+;TODO: SING_OPTIONS_RECORD_DESC=microphone settings
+;TODO: SING_OPTIONS_RECORD_CARD=Soundcard
+;TODO: SING_OPTIONS_RECORD_INPUT=Input
+;TODO: SING_OPTIONS_RECORD_CHANNEL=Channel
+
+;TODO: SING_OPTIONS_ADVANCED_WHEREAMI=Options Advanced
+;TODO: SING_OPTIONS_ADVANCED_DESC=advanced settings
+;TODO: SING_OPTIONS_ADVANCED_EFFECTSING=Sing Effects
+;TODO: SING_OPTIONS_ADVANCED_SCREENFADE=Screen Fading
+;TODO: SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation
+;TODO: SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Safety Questions
+;TODO: SING_OPTIONS_ADVANCED_LINEBONUS=Line Bonus
+;TODO: SING_OPTIONS_ADVANCED_ONSONGCLICK=after Song Select
+;TODO: SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu
+
+;TODO: SING_EDIT=Editor
+;TODO: SING_EDIT_MENU_DESCRIPTION=create your own song
+
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_EXIT=back
+;TODO: SING_EDIT_BUTTON_CONVERT=Import
+;TODO: SING_EDIT_BUTTON_EXIT=back
+
+;TODO: SING_EDIT_NAVIGATE=navigate
+;TODO: SING_EDIT_SELECT=select
+;TODO: SING_EDIT_EXIT=back
+
+;TODO: SING_LEGEND_SELECT=select
+;TODO: SING_LEGEND_NAVIGATE=navigate
+;TODO: SING_LEGEND_CONTINUE=continue
+;TODO: SING_LEGEND_ESC=back
+
+;TODO: SING_PLAYER_DESC=enter player name/s
+;TODO: SING_PLAYER_WHEREAMI=Playernames
+;TODO: SING_PLAYER_ENTER_NAME=enter name
+
+;TODO: SING_DIFFICULTY_DESC=select difficulty
+;TODO: SING_DIFFICULTY_WHEREAMI=Difficulty
+;TODO: SING_DIFFICULTY_CONTINUE=to song selection
+;TODO: SING_EASY=Easy
+;TODO: SING_MEDIUM=Medium
+;TODO: SING_HARD=Hard
+
+;TODO: SING_SONG_SELECTION_DESC=choose your song
+;TODO: SING_SONG_SELECTION_WHEREAMI=Song Selection
+;TODO: SING_SONG_SELECTION_GOTO=go to ..
+;TODO: SING_SONG_SELECTION=song selection
+;TODO: SING_SONG_SELECTION_MENU=menu
+;TODO: SING_SONG_SELECTION_PLAYLIST=playlist
+;TODO: SING_SONGS_IN_CAT=Songs
+;TODO: PLAYLIST_CATTEXT=Playlist: %s
+
+;TODO: SING_TIME=TIME
+;TODO: SING_TOTAL=total
+;TODO: SING_MODE=sing solo
+;TODO: SING_NOTES=notes
+;TODO: SING_GOLDEN_NOTES=golden notes
+;TODO: SING_PHRASE_BONUS=line bonus
+
+;TODO: SING_MENU=Main Menu
+
+;TODO: SONG_SCORE=song score
+;TODO: SONG_SCORE_WHEREAMI=Score
+
+;TODO: SING_SCORE_TONE_DEAF=Tone Deaf
+;TODO: SING_SCORE_AMATEUR=Amateur
+;TODO: SING_SCORE_WANNABE=Wannabe
+;TODO: SING_SCORE_HOPEFUL=Hopeful
+;TODO: SING_SCORE_RISING_STAR=Rising Star
+;TODO: SING_SCORE_LEAD_SINGER=Lead Singer
+;TODO: SING_SCORE_SUPERSTAR=Superstar
+;TODO: SING_SCORE_ULTRASTAR=Ultrastar
+
+;TODO: SING_TOP_5_CHARTS=top 5 Players
+;TODO: SING_TOP_5_CHARTS_WHEREAMI=top 5
+;TODO: SING_TOP_5_CHARTS_CONTINUE=to song selection
+;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
+
+;TODO: POPUP_PERFECT=perfect!
+;TODO: POPUP_AWESOME=awesome!
+;TODO: POPUP_GREAT=great!
+;TODO: POPUP_GOOD=good!
+;TODO: POPUP_NOTBAD=not bad!
+;TODO: POPUP_BAD=bad!
+;TODO: POPUP_POOR=poor!
+;TODO: POPUP_AWFUL=awful!
+
+;TODO: IMPLODE_GLUE1=,
+;TODO: IMPLODE_GLUE2= and
+
+;TODO: SONG_MENU_NAME_MAIN=song menu
+;TODO: SONG_MENU_PLAY=Sing
+;TODO: SONG_MENU_CHANGEPLAYERS=Change Players
+;TODO: SONG_MENU_EDIT=Edit
+;TODO: SONG_MENU_MODI=Sing a Modi
+;TODO: SONG_MENU_CANCEL=Cancel
+
+;TODO: SONG_MENU_NAME_PLAYLIST=Song Menu
+;TODO: SONG_MENU_PLAYLIST_ADD=Add Song
+;TODO: SONG_MENU_PLAYLIST_DEL=Delete Song
+
+;TODO: SONG_MENU_NAME_PLAYLIST_ADD=Add Song
+;TODO: SONG_MENU_PLAYLIST_ADD_NEW=to new playlist
+;TODO: SONG_MENU_PLAYLIST_ADD_EXISTING=to existing playlist
+;TODO: SONG_MENU_PLAYLIST_NOEXISTING=No playlist available
+
+;TODO: SONG_MENU_NAME_PLAYLIST_NEW=New Playlist
+;TODO: SONG_MENU_PLAYLIST_NEW_CREATE=Create
+;TODO: SONG_MENU_PLAYLIST_NEW_UNNAMED=Unnamed
+
+;TODO: SONG_MENU_NAME_PLAYLIST_DELITEM=Really Delete?
+;TODO: SONG_MENU_YES=Yes
+;TODO: SONG_MENU_NO=No
+
+;TODO: SONG_MENU_NAME_PLAYLIST_LOAD=Open Playlist
+;TODO: SONG_MENU_PLAYLIST_LOAD=open
+;TODO: SONG_MENU_PLAYLIST_DELCURRENT=delete current Playlist
+
+;TODO: SONG_MENU_NAME_PLAYLIST_DEL=Delete Playlist?
+
+;TODO: SONG_MENU_NAME_PARTY_MAIN=Party Menu
+;TODO: SONG_MENU_JOKER=Joker
+
+;TODO: SONG_MENU_NAME_PARTY_JOKER=take joker
+
+;TODO: SONG_JUMPTO_DESC=search song
+;TODO: SONG_JUMPTO_TYPE_DESC=Search for:
+;TODO: SONG_JUMPTO_TYPE1=All
+;TODO: SONG_JUMPTO_TYPE2=Title
+;TODO: SONG_JUMPTO_TYPE3=Artist
+;TODO: SONG_JUMPTO_SONGSFOUND=%d Song(s) found
+;TODO: SONG_JUMPTO_NOSONGSFOUND=No Song found
+;TODO: SONG_JUMPTO_HELP=Type Text to Search for
+;TODO: SONG_JUMPTO_CATTEXT=Search for: %s
+
+;TODO: PARTY_MODE=party mode
+;TODO: PARTY_DIFFICULTY=Difficulty
+;TODO: PARTY_PLAYLIST=Playlist Mode
+;TODO: PARTY_PLAYLIST_ALL=All songs
+;TODO: PARTY_PLAYLIST_CATEGORY=Folder
+;TODO: PARTY_PLAYLIST_PLAYLIST=Playlist
+;TODO: PARTY_TEAMS=number of teams
+;TODO: PARTY_TEAMS_PLAYER1=num. of singers
+;TODO: PARTY_TEAMS_PLAYER2=num. of singers
+;TODO: PARTY_TEAMS_PLAYER3=num. of singers
+
+;TODO: PARTY_LEGEND_CONTINUE=continue
+
+;TODO: PARTY_OPTIONS_DESC=settings for the party-game
+;TODO: PARTY_OPTIONS_WHEREAMI=Party Options
+
+;TODO: PARTY_PLAYER_DESC=enter player- and teamnames!
+;TODO: PARTY_PLAYER_WHEREAMI=Party Names
+;TODO: PARTY_PLAYER_ENTER_NAME=enter names
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=start party-game
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
+
+;TODO: PARTY_ROUND_DESC=next players to the mics
+;TODO: PARTY_ROUND_WHEREAMI=Party Next Round
+;TODO: PARTY_ROUND_LEGEND_CONTINUE=start round
+
+;TODO: PARTY_SONG_WHEREAMI=Party Song-Selection
+;TODO: PARTY_SONG_LEGEND_CONTINUE=sing
+;TODO: PARTY_SONG_MENU=party menu
+
+;TODO: PARTY_SCORE_DESC=score of the last round
+;TODO: PARTY_SCORE_WHEREAMI=Party Points
+
+;TODO: PARTY_WIN_DESC=winner of the party-game
+;TODO: PARTY_WIN_WHEREAMI=Party Winner
+;TODO: PARTY_WIN_LEGEND_CONTINUE=back to main-menu
+
+;TODO: PARTY_ROUND=Round
+;TODO: PARTY_ROUND_WINNER=Winner
+;TODO: PARTY_NOTPLAYEDYET=not played yet
+;TODO: PARTY_NOBODY=nobody
+;TODO: NEXT_ROUND=Next round:
+
+;TODO: PARTY_DISMISSED=Dismissed!
+;TODO: PARTY_SCORE_WINS=%s
+;TODO: PARTY_SCORE_WINS2=wins!
+
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+;TODO: MODE_HDL_NAME=Hold the Line
+;TODO: MODE_HDL_DESC=Don't get worse than the pointer at the rating bar shows you.
+
+;TODO: MODE_5000POINTS_NAME=Until 5000
+;TODO: MODE_5000POINTS_DESC=Who gets 5000 points first wins the match.
+
+;TODO: MODE_DUEL_NAME=Duel
+;TODO: MODE_DUEL_DESC=Sing a duel until 10000 points.
+
+;TODO: MODE_TEAMDUEL_NAME=Team Duell
+;TODO: MODE_TEAMDUEL_DESC=Pass The Mic!
+
+;TODO: MODE_BLIND_NAME=Blind Mode
+;TODO: MODE_BLIND_DESC=Duel without seeing the notes.
+
+;TODO: STAT_MAIN=Statistics
+;TODO: STAT_MAIN_DESC=General
+;TODO: STAT_MAIN_WHEREAMI=Statistics
+
+;TODO: STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d
+;TODO: STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s.
+;TODO: STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points.
+
+;TODO: STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
+;TODO: STAT_DETAIL=Statistics
+;TODO: STAT_DETAIL_WHEREAMI=Detail Statistics
+
+;TODO: STAT_NEXT=Next Page
+;TODO: STAT_PREV=Previous Page
+;TODO: STAT_REVERSE=Reverse Order
+;TODO: STAT_PAGE=page %0:d of %1:d pages\n (%2:d of %3:d Entrys)
+
+;TODO: STAT_DESC_SCORES=HighScores
+;TODO: STAT_DESC_SCORES_REVERSED=LowScores
+;TODO: STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+;TODO: STAT_DESC_SINGERS=Best Singers
+;TODO: STAT_DESC_SINGERS_REVERSED=Worst Singers
+;TODO: STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d
+
+;TODO: STAT_DESC_SONGS=Most popular Songs
+;TODO: STAT_DESC_SONGS_REVERSED=Least popular Songs
+;TODO: STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung
+
+;TODO: STAT_DESC_BANDS=Most popular Bands
+;TODO: STAT_DESC_BANDS_REVERSED=Least popular Bands
+;TODO: STAT_FORMAT_BANDS=%0:s \n %1:dx Sung
+
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
+;TODO: MSG_ERROR_TITLE=Error
+;TODO: MSG_INFO_TITLE=Information
+;TODO: MSG_QUESTION_TITLE=Question
+;TODO: MSG_QUIT_USDX=Really leave UltraStar?
+;TODO: MSG_END_PARTY=Really leave Party Mode?
+
+;TODO: ERROR_NO_SONGS=No Songs loaded
+;TODO: ERROR_NO_PLUGINS=No Plugins loaded
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
+;TODO: ERROR_CORRUPT_SONG=Song could not be loaded.
+;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found
+;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes
+;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks
+;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
diff --git a/us_maker_edition/game/languages/Luxembourgish.ini b/us_maker_edition/game/languages/Luxembourgish.ini
index 4fc3e2ae..d7e21bb0 100644
--- a/us_maker_edition/game/languages/Luxembourgish.ini
+++ b/us_maker_edition/game/languages/Luxembourgish.ini
@@ -1,402 +1,441 @@
-;Enaid an Nosde
-[Text]
-OPTION_VALUE_CATALAN=Catalanesch
-OPTION_VALUE_CROATIAN=Croatesch
-OPTION_VALUE_DUTCH=Hollänesch
-OPTION_VALUE_ENGLISH=Englesh
-OPTION_VALUE_EUSKARA=Euskaresch
-OPTION_VALUE_FINNISH=Finnesh
-OPTION_VALUE_FRENCH=Franséisch
-OPTION_VALUE_GERMAN=Däitsch
-OPTION_VALUE_GREEK=Griichesch
-OPTION_VALUE_ITALIAN=Italienesch
-OPTION_VALUE_JAPANESE=Japanesch
-OPTION_VALUE_LUXEMBOURGISH=Lëtzebuergesch
-OPTION_VALUE_PORTUGUESE=Portugisesch
-OPTION_VALUE_SPANISH=Spuenesch
-OPTION_VALUE_SWEDISH=Schwedesch
-
-OPTION_VALUE_EASY=Einfach
-OPTION_VALUE_MEDIUM=Mëttel
-OPTION_VALUE_HARD=Schwéier
-
-OPTION_VALUE_ON=Un
-OPTION_VALUE_OFF=Aus
-
-OPTION_VALUE_EDITION=Editioun
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Sprooch
-OPTION_VALUE_FOLDER=Ordner
-OPTION_VALUE_TITLE=Titel
-OPTION_VALUE_ARTIST=Künstler
-OPTION_VALUE_TITLE2=Titel2
-OPTION_VALUE_ARTIST2=Künstler2
-
-OPTION_VALUE_WHENNOVIDEO=Wann keen Video
-
-OPTION_VALUE_SMALL=Kleng
-OPTION_VALUE_BIG=Grouss
-
-OPTION_VALUE_HALF=Hallef
-OPTION_VALUE_FULL_VID=Voll (Video)
-OPTION_VALUE_FULL_VID_BG=Voll (HG & Video)
-
-OPTION_VALUE_AUTO=Automatesch
-OPTION_VALUE_SEC=Sekonn
-OPTION_VALUE_SECS=Sekonnen
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Einfach
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blo
-OPTION_VALUE_GREEN=Gréng
-OPTION_VALUE_PINK=Rosa
-OPTION_VALUE_RED=Rout
-OPTION_VALUE_VIOLET=Violett
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Giel
-OPTION_VALUE_BROWN=Brong
-OPTION_VALUE_BLACK=Schwaarz
-
-OPTION_VALUE_SING=Sangen
-OPTION_VALUE_SELECT_PLAYERS=Spiller auswielen
-OPTION_VALUE_OPEN_MENU=Menü opmaachen
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
-
-SING_LOADING=Luedt...
-
-SING_CHOOSE_MODE=Modus wielen
-SING_SING=Sangen
-SING_SING_DESC=Sangen
-
-SING_MULTI=Party
-SING_MULTI_DESC=Zu puer sangen
-
-SING_TOOLS=Aaner
-
-SING_STATS=Statistiken
-SING_STATS_DESC=Statistiken ukucken
-
-SING_EDITOR=Editor
-SING_EDITOR_DESC=Lidder erstellen
-
-SING_GAME_OPTIONS=Optiounen
-SING_GAME_OPTIONS_DESC=Astellungen fum Spill änneren
-
-SING_EXIT=Verloossen
-SING_EXIT_DESC=Spill verloossen
-
-SING_OPTIONS=Optiounen
-SING_OPTIONS_DESC=Astellungen fum Spill änneren
-SING_OPTIONS_WHEREAMI=Optiounen
-
-SING_OPTIONS_GAME=Spill
-SING_OPTIONS_GRAPHICS=Graphik
-SING_OPTIONS_SOUND=Toun
-SING_OPTIONS_LYRICS=Lyric
-SING_OPTIONS_THEMES=Design
-SING_OPTIONS_RECORD=Mikro
-SING_OPTIONS_ADVANCED=Erweidert
-SING_OPTIONS_EXIT=Zeréck
-
-SING_OPTIONS_GAME_WHEREAMI=Spilloptiounen
-SING_OPTIONS_GAME_DESC=Spillastellungen
-SING_OPTIONS_GAME_PLAYERS=Spiller
-SING_OPTIONS_GAME_DIFFICULTY=Schwieregkeet
-SING_OPTIONS_GAME_LANGUAGE=Sprooch
-SING_OPTIONS_GAME_TABS=Ordner
-SING_OPTIONS_GAME_SORTING=Zortéierung
-SING_OPTIONS_GAME_DEBUG=Debug
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Graphikoptiounen
-SING_OPTIONS_GRAPHICS_DESC=Graphikastellungen
-SING_OPTIONS_GRAPHICS_RESOLUTION=Ofléisung
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Vollbild
-SING_OPTIONS_GRAPHICS_DEPTH=Faarfdéift
-SING_OPTIONS_GRAPHICS_VISUALIZER=Visualiséierung
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oszilloskop
-SING_OPTIONS_GRAPHICS_LINEBONUS=Sazbonus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videogréisst
-
-SING_OPTIONS_SOUND_WHEREAMI=Tounoptiounen
-SING_OPTIONS_SOUND_DESC=Tounastellungen
-SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikro. lauschteren
-SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hannergrondmusik
-SING_OPTIONS_SOUND_MIC_BOOST=Mik-Unhiewung
-SING_OPTIONS_SOUND_CLICK_ASSIST=Click-Assistent
-SING_OPTIONS_SOUND_BEAT_CLICK=Beat-Click
-SING_OPTIONS_SOUND_THRESHOLD=Räuschënnerdrë.
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2-Spiller-Modus
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Iwwerbléck Lautst.
-SING_OPTIONS_SOUND_PREVIEWFADING=Iwwerbléck Fading
-
-SING_OPTIONS_LYRICS_WHEREAMI=Lyricsoptiounen
-SING_OPTIONS_LYRICS_DESC=Lyricsastellungen
-SING_OPTIONS_LYRICS_FONT=Schrëftart
-SING_OPTIONS_LYRICS_EFFECT=Effekt
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmisatioun
-SING_OPTIONS_LYRICS_NOTELINES=Noutenlinien
-
-SING_OPTIONS_THEMES_WHEREAMI=Designoptiounen
-SING_OPTIONS_THEMES_DESC=Design an Skinastellungen
-SING_OPTIONS_THEMES_THEME=Design
-SING_OPTIONS_THEMES_SKIN=Skin
-SING_OPTIONS_THEMES_COLOR=Faarf
-
-SING_OPTIONS_RECORD_WHEREAMI=Opzeechnungsoptiounen
-SING_OPTIONS_RECORD_DESC=Mikrofonastellungen
-SING_OPTIONS_RECORD_CARD=Soundkaart
-SING_OPTIONS_RECORD_INPUT=Agank
-SING_OPTIONS_RECORD_CHANNEL=Kanal
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Erweidert Optiounen
-SING_OPTIONS_ADVANCED_DESC=Erweidert Astellungen
-SING_OPTIONS_ADVANCED_EFFECTSING=Sangeffekt
-SING_OPTIONS_ADVANCED_SCREENFADE=Bildschierm-Fade
-SING_OPTIONS_ADVANCED_LOADANIMATION=Lued-Animatioun
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sécherheetsfro
-SING_OPTIONS_ADVANCED_LINEBONUS=Sazbonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Wéi oft gesongen matzielen
-SING_OPTIONS_ADVANCED_ONSONGCLICK=No Liddauswiel
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Party-Menü
-
-SING_EDIT=Editor
-SING_EDIT_MENU_DESCRIPTION=Lidder erstellen
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Midi/Kar Datei als Text exportéieren
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=Zeréck
-SING_EDIT_BUTTON_CONVERT=Exportéieren
-SING_EDIT_BUTTON_EXIT=Zeréck
-
-SING_EDIT_NAVIGATE=Navigéieren
-SING_EDIT_SELECT=Auswielen
-SING_EDIT_EXIT=Zeréck
-
-SING_LEGEND_SELECT=Auswielen
-SING_LEGEND_NAVIGATE=Navigéieren
-SING_LEGEND_CONTINUE=Auswielen
-SING_LEGEND_ESC=Zeréck
-
-SING_PLAYER_DESC=Numm vum Spiller aginn
-SING_PLAYER_WHEREAMI=Numm vum Spiller
-SING_PLAYER_ENTER_NAME=Änneren
-
-SING_DIFFICULTY_DESC=Schwieregkeetsgrad auswielen
-SING_DIFFICULTY_WHEREAMI=Schwieregkeetsgrad
-SING_DIFFICULTY_CONTINUE=Auswielen
-SING_EASY=Einfach
-SING_MEDIUM=Mëttel
-SING_HARD=Schwéier
-
-SING_SONG_SELECTION_DESC=Lidd wielen
-SING_SONG_SELECTION_WHEREAMI=Titel wielen
-SING_SONG_SELECTION_GOTO=Erreechen
-SING_SONG_SELECTION=Auswiel vum Lidd
-SING_SONG_SELECTION_MENU=Menü
-SING_SONG_SELECTION_PLAYLIST=Playlist
-SING_SONGS_IN_CAT=Lidder
-PLAYLIST_CATTEXT=Playlist: %s
-
-SING_TIME=ZÄIT
-SING_TOTAL=Total
-SING_MODE=Sangmodus
-SING_NOTES=Nouten
-SING_GOLDEN_NOTES=Goldenen Toun
-SING_PHRASE_BONUS=Sazbonus
-
-SING_MENU=Haaptmenü
-
-SONG_SCORE=Score
-SONG_SCORE_WHEREAMI=Punkten
-
-SING_SCORE_TONE_DEAF=Kachdëppen
-SING_SCORE_AMATEUR=Amateur
-SING_SCORE_WANNABE=Möchtegern
-SING_SCORE_HOPEFUL=Fortgeschritten
-SING_SCORE_RISING_STAR=Stärnchen
-SING_SCORE_LEAD_SINGER=Hit-Künstler
-SING_SCORE_SUPERSTAR=Superstar
-SING_SCORE_ULTRASTAR=Ultrastar
-
-SING_TOP_5_CHARTS=Top-5-Spiller
-SING_TOP_5_CHARTS_WHEREAMI=Beschten Spiller
-SING_TOP_5_CHARTS_CONTINUE=Weider
-SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
-
-POPUP_PERFECT=Perfekt!
-POPUP_AWESOME=Cool!
-POPUP_GREAT=Toll!
-POPUP_GOOD=Gutt!
-POPUP_NOTBAD=O.K.!
-POPUP_BAD=Schlecht!
-POPUP_POOR=Mies!
-POPUP_AWFUL=Grausam!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= an
-
-SONG_MENU_NAME_MAIN=Menü
-SONG_MENU_PLAY=Sangen
-SONG_MENU_CHANGEPLAYERS=Spiller tauschen
-SONG_MENU_EDIT=Editor
-SONG_MENU_MODI=Een Modus sangen
-SONG_MENU_CANCEL=Offbriechen
-
-SONG_MENU_NAME_PLAYLIST=Menü
-SONG_MENU_PLAYLIST_ADD=Lidd bäifügen
-SONG_MENU_PLAYLIST_DEL=Lidd läschen
-
-SONG_MENU_NAME_PLAYLIST_ADD=Lidd bäifügen
-SONG_MENU_PLAYLIST_ADD_NEW=Bei der neier Playlist
-SONG_MENU_PLAYLIST_ADD_EXISTING=Bäifügen bei d'Playlist
-SONG_MENU_PLAYLIST_NOEXISTING=Keng Playlist
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nei Playlist
-SONG_MENU_PLAYLIST_NEW_CREATE=Erstellen
-SONG_MENU_PLAYLIST_NEW_UNNAMED=ouni-numm
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Läschen?
-SONG_MENU_YES=Jo
-SONG_MENU_NO=Nee
-
-SONG_MENU_NAME_PLAYLIST_DEL=Playlist läschen?
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Playlist opmaachen
-SONG_MENU_PLAYLIST_LOAD=Opmaachen
-SONG_MENU_PLAYLIST_DELCURRENT=Aktuel Playlist läschen
-
-SONG_MENU_NAME_PARTY_MAIN=Menü
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=Joker
-
-SONG_JUMPTO_DESC=Sichen
-SONG_JUMPTO_TYPE_DESC=Nosichen:
-SONG_JUMPTO_TYPE1=Alles
-SONG_JUMPTO_TYPE2=Titel
-SONG_JUMPTO_TYPE3=Künstler
-SONG_JUMPTO_SONGSFOUND=%d Lidd(er) fond
-SONG_JUMPTO_NOSONGSFOUND=Keen Lidd fond
-SONG_JUMPTO_HELP=Text aginn, fir en ze sichen
-SONG_JUMPTO_CATTEXT=Nosichen: %s
-
-PARTY_MODE=Party-Modus
-PARTY_DIFFICULTY=Schwieregkeet
-PARTY_PLAYLIST=Playlist-Modus
-PARTY_PLAYLIST_ALL=All Lidder
-PARTY_PLAYLIST_CATEGORY=Ordner
-PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Ronnen
-PARTY_TEAMS=Team
-PARTY_TEAMS_PLAYER1=Spiller Team 1
-PARTY_TEAMS_PLAYER2=Spiller Team 2
-PARTY_TEAMS_PLAYER3=Spiller Team 3
-
-PARTY_LEGEND_CONTINUE=Weider
-
-PARTY_OPTIONS_DESC=Astellungen fir den Party-Modus
-PARTY_OPTIONS_WHEREAMI=Party-Modus Optiounen
-
-PARTY_PLAYER_DESC=Numm vum Team an vun den Spiller aginn
-PARTY_PLAYER_WHEREAMI=Party-Modus: Team
-PARTY_PLAYER_ENTER_NAME=Änneren
-PARTY_PLAYER_LEGEND_CONTINUE=Partyspill starten
-
-PARTY_ROUND_DESC=Déi nächst Spiller un är Microen!
-PARTY_ROUND_WHEREAMI=Party-Modus: Nächst Ronn
-PARTY_ROUND_LEGEND_CONTINUE=Ufänken
-
-PARTY_SONG_WHEREAMI=Party-Modus: Auswiel vum Lidd
-PARTY_SONG_LEGEND_CONTINUE=Sangen
-PARTY_SONG_MENU=Menü
-
-PARTY_SCORE_DESC=Score vun deser Ronn
-PARTY_SCORE_WHEREAMI=Party-Modus: Score
-
-PARTY_WIN_DESC=Gewënner vum Partyspill
-PARTY_WIN_WHEREAMI=Party Gewënner
-PARTY_WIN_LEGEND_CONTINUE=Zeréck am Haaptmenü
-
-PARTY_ROUND=Ronn
-PARTY_ROUND_WINNER=Gewënner
-PARTY_NOTPLAYEDYET=-
-PARTY_NOBODY=Keen
-NEXT_ROUND=Nächst Ronn:
-
-PARTY_DISMISSED=Retrogradéiert
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=huet gewonn!
-
-PLUGIN_HDL_NAME=Balken halen
-PLUGIN_HDL_DESC=Hal d'Bewäertung bis beim ugewisenen Sector.
-
-PLUGIN_UNTIL5000_NAME=Bis 5000
-PLUGIN_UNTIL5000_DESC=Wien als éischt 5000 Punkten huet, gewënnt.
-
-PLUGIN_DUELL_NAME=Duell
-PLUGIN_DUELL_DESC=Wien den héischsten Score huet gewënnt.
-
-PLUGIN_TEAMDUELL_NAME=Teamsangen
-PLUGIN_TEAMDUELL_DESC=Gëff den Mikro weider!
-
-PLUGIN_BLIND_NAME=Blann Modus
-PLUGIN_BLIND_DESC=Erreech blann déi héischst Punktenzuel.
-
-STAT_MAIN=Statistiken
-STAT_MAIN_DESC=Allgemeng
-STAT_MAIN_WHEREAMI=Statistiken
-
-STAT_OVERVIEW_INTRO=Statistiken vun %0:s \n Lescht Reinitialisatioun den %1:.2d.%2:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Lidder (%3:d mat Video)\n%1:d goufen schonn op mannst emol gesongen, %2:d nach net. \n\n Dat meescht gesongend Lidd ass %5:s vun %4:s.
-STAT_OVERVIEW_PLAYER=%0:d verschidden Spiller hun gesongen seit der leschter Reinitialisatioun. \n\n Den beschten Spiller ass %1:s mat %2:d Punkten. \n Beschten Score, %4:d, gouf vun %3:s erreecht.
-
-STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
-
-STAT_DETAIL=Statistiken
-STAT_DETAIL_WHEREAMI=Detailléiert Statistiken
-
-STAT_NEXT=Nächst Säit
-STAT_PREV=Vireg Säit
-STAT_REVERSE=Ëmkéieren
-STAT_PAGE=Säit %0:d/%1:d \n (%2:d vun %3:d %3:d Eintrachen)
-
-STAT_DESC_SCORES=Highscore
-STAT_DESC_SCORES_REVERSED=Lowscores
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Beschten Sänger
-STAT_DESC_SINGERS_REVERSED=Schlechtesten Sänger
-STAT_FORMAT_SINGERS=%0:s \n Duerchschnëttlech Punktenzuel: %1:d
-
-STAT_DESC_SONGS=Beléifsten Lidder
-STAT_DESC_SONGS_REVERSED=Onbeléifsten Lidder
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx gesongen
-
-STAT_DESC_BANDS=Beléifsten Bands
-STAT_DESC_BANDS_REVERSED=Onbeléifsten Bands
-STAT_FORMAT_BANDS=%0:s \n Lidder gesongen: %1:d
-
-MSG_ERROR_TITLE=Feeler
-MSG_QUESTION_TITLE=Bestätegung
-MSG_QUIT_USDX=UltraStar verloossen?
-MSG_END_PARTY=Party-Modus verloossen?
-ERROR_NO_SONGS=Keng Lidder.
-ERROR_NO_PLUGINS=Keen Plugin.
-ERROR_CORRUPT_SONG=Lidd kann een net lueden.
-ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Lidd kann een net lueden: Datei gouf net fond
-ERROR_CORRUPT_SONG_NO_NOTES=Lidd kann een net lueden: Et goufen keng Nouten fond
-ERROR_CORRUPT_SONG_NO_BREAKS=Lidd kann een net lueden: Et goufen keen Saazwiessel fond
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Lidd kann een net lueden: Feeler beim Parzen vun der Zeil %0:d \ No newline at end of file
+[Text]
+OPTION_VALUE_CATALAN=Katalanesch
+OPTION_VALUE_CROATIAN=Kroatesch
+OPTION_VALUE_CZECH=Tschechesch
+;TODO: OPTION_VALUE_DANISH=Danish
+OPTION_VALUE_DUTCH=Nidderlännesch
+OPTION_VALUE_ENGLISH=Englesch
+OPTION_VALUE_EUSKARA=Euskaresch
+OPTION_VALUE_FINNISH=Finnesch
+OPTION_VALUE_FRENCH=Franséisch
+OPTION_VALUE_GERMAN=Däitsch
+OPTION_VALUE_GREEK=Griichesch
+OPTION_VALUE_HUNGARIAN=Ungaresch
+OPTION_VALUE_ICELANDIC=Islännesch
+OPTION_VALUE_ITALIAN=Italienesch
+OPTION_VALUE_JAPANESE=Japanesch
+OPTION_VALUE_LUXEMBOURGISH=Lëtzebuergesch
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+OPTION_VALUE_PORTUGUESE=Portugisesch
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+OPTION_VALUE_SPANISH=Spuenesch
+OPTION_VALUE_SWEDISH=Schwedesch
+
+OPTION_VALUE_EASY=Einfach
+OPTION_VALUE_MEDIUM=Mëttel
+OPTION_VALUE_HARD=Schwéier
+
+OPTION_VALUE_ON=Un
+OPTION_VALUE_OFF=Aus
+
+OPTION_VALUE_EDITION=Editioun
+OPTION_VALUE_GENRE=Genre
+OPTION_VALUE_LANGUAGE=Sprooch
+OPTION_VALUE_FOLDER=Ordner
+OPTION_VALUE_TITLE=Titel
+OPTION_VALUE_ARTIST=Kënschtler
+OPTION_VALUE_TITLE2=Titel2
+OPTION_VALUE_ARTIST2=Kënschtler2
+
+OPTION_VALUE_WHENNOVIDEO=Wa kee Video
+
+OPTION_VALUE_SMALL=Kleng
+OPTION_VALUE_BIG=Grouss
+
+OPTION_VALUE_HALF=Hallef
+OPTION_VALUE_FULL_VID=Voll (Video)
+OPTION_VALUE_FULL_VID_BG=Voll (HG & Video)
+
+OPTION_VALUE_AUTO=Automatesch
+OPTION_VALUE_SEC=Sekonn
+OPTION_VALUE_SECS=Sekonnen
+
+OPTION_VALUE_PLAIN=Klassesch
+OPTION_VALUE_OLINE1=Konturen
+OPTION_VALUE_OLINE2=Déck
+
+OPTION_VALUE_SIMPLE=Silben
+OPTION_VALUE_ZOOM=Vergréisseren
+OPTION_VALUE_SLIDE=Rutschen
+OPTION_VALUE_BALL=Ball
+OPTION_VALUE_SHIFT=Hopsen
+
+OPTION_VALUE_EURO=Europäesch
+OPTION_VALUE_JAPAN=Japanesch
+OPTION_VALUE_AMERICAN=Amerikanesch
+
+OPTION_VALUE_BLUE=Blo
+OPTION_VALUE_GREEN=Gréng
+OPTION_VALUE_PINK=Rosa
+OPTION_VALUE_RED=Rout
+OPTION_VALUE_VIOLET=Violett
+OPTION_VALUE_ORANGE=Orange
+OPTION_VALUE_YELLOW=Giel
+OPTION_VALUE_BROWN=Brong
+OPTION_VALUE_BLACK=Schwaarz
+
+OPTION_VALUE_SING=Sangen
+OPTION_VALUE_SELECT_PLAYERS=Spiller auswielen
+OPTION_VALUE_OPEN_MENU=Menü opmaachen
+
+OPTION_VALUE_HARDWARE_CURSOR=Hardware Zeiger
+OPTION_VALUE_SOFTWARE_CURSOR=Software Zeiger
+
+SING_LOADING=Lueden...
+
+SING_CHOOSE_MODE=Wielt e Modus aus
+SING_SING=Sangen
+SING_SING_DESC=Sangt Solo
+
+SING_MULTI=Party
+SING_MULTI_DESC=Schmäisst eng Party
+
+SING_TOOLS=Geschir
+
+SING_STATS=Statistiken
+SING_STATS_DESC=Kuckt Statistiken un
+
+SING_EDITOR=Editor
+SING_EDITOR_DESC=Erstellt Är eege Lidder
+
+SING_GAME_OPTIONS=Optiounen
+SING_GAME_OPTIONS_DESC=Ännert d'Astellunge vum Spill
+
+SING_EXIT=Verloossen
+SING_EXIT_DESC=Spill verloossen
+
+SING_OPTIONS=Optiounen
+SING_OPTIONS_DESC=Ännert d'Astellungen
+SING_OPTIONS_WHEREAMI=Optiounen
+
+SING_OPTIONS_GAME=Spill
+SING_OPTIONS_GRAPHICS=Graphik
+SING_OPTIONS_SOUND=Toun
+SING_OPTIONS_LYRICS=Lyric
+SING_OPTIONS_THEMES=Design
+SING_OPTIONS_RECORD=Mikro
+SING_OPTIONS_ADVANCED=Erweidert
+SING_OPTIONS_EXIT=Zeréck
+
+SING_OPTIONS_GAME_WHEREAMI=Spilloptiounen
+SING_OPTIONS_GAME_DESC=Spillastellungen
+SING_OPTIONS_GAME_PLAYERS=Spiller
+SING_OPTIONS_GAME_DIFFICULTY=Schwieregkeet
+SING_OPTIONS_GAME_LANGUAGE=Sprooch
+SING_OPTIONS_GAME_TABS=Ordner
+SING_OPTIONS_GAME_SORTING=Zortéieren no
+SING_OPTIONS_GAME_DEBUG=Debug
+
+SING_OPTIONS_GRAPHICS_WHEREAMI=Graphikoptiounen
+SING_OPTIONS_GRAPHICS_DESC=Graphikastellungen
+SING_OPTIONS_GRAPHICS_RESOLUTION=Ofléisung
+SING_OPTIONS_GRAPHICS_FULLSCREEN=Vollbild
+SING_OPTIONS_GRAPHICS_DEPTH=Faarfdéift
+SING_OPTIONS_GRAPHICS_VISUALIZER=Visualiséierung
+SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oszilloskop
+SING_OPTIONS_GRAPHICS_LINEBONUS=Sazbonus
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videogréisst
+
+SING_OPTIONS_SOUND_WHEREAMI=Tounoptiounen
+SING_OPTIONS_SOUND_DESC=Tounastellungen
+SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikro lauschteren
+SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hannergrondmusik
+SING_OPTIONS_SOUND_MIC_BOOST=Mikro-Unhiewung
+SING_OPTIONS_SOUND_CLICK_ASSIST=Click-Assistent
+SING_OPTIONS_SOUND_BEAT_CLICK=Metronom
+SING_OPTIONS_SOUND_THRESHOLD=Rauschënnerdrëck.
+SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2-Spiller-Modus
+SING_OPTIONS_SOUND_PREVIEWVOLUME=Iwwerbléck Lautst.
+SING_OPTIONS_SOUND_PREVIEWFADING=Iwwerbléck Fading
+
+SING_OPTIONS_LYRICS_WHEREAMI=Lyricsoptiounen
+SING_OPTIONS_LYRICS_DESC=Lyricsastellungen
+SING_OPTIONS_LYRICS_FONT=Schrëftart
+SING_OPTIONS_LYRICS_EFFECT=Effekt
+SING_OPTIONS_LYRICS_SOLMIZATION=Solmisatioun
+SING_OPTIONS_LYRICS_NOTELINES=Noutelinien
+
+SING_OPTIONS_THEMES_WHEREAMI=Designoptiounen
+SING_OPTIONS_THEMES_DESC=Designastellungen
+SING_OPTIONS_THEMES_THEME=Design
+SING_OPTIONS_THEMES_SKIN=Skin
+SING_OPTIONS_THEMES_COLOR=Faarf
+
+SING_OPTIONS_RECORD_WHEREAMI=Opzeechnungsoptiounen
+SING_OPTIONS_RECORD_DESC=Mikrofonastellungen
+SING_OPTIONS_RECORD_CARD=Soundkaart
+SING_OPTIONS_RECORD_INPUT=Agank
+SING_OPTIONS_RECORD_CHANNEL=Kanal
+
+SING_OPTIONS_ADVANCED_WHEREAMI=Erweidert Optiounen
+SING_OPTIONS_ADVANCED_DESC=Erweidert Astellungen
+SING_OPTIONS_ADVANCED_EFFECTSING=Sangeffekt
+SING_OPTIONS_ADVANCED_SCREENFADE=Bildschierm-Faden
+SING_OPTIONS_ADVANCED_LOADANIMATION=Lued-Animatioun
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sécherheetsfro
+SING_OPTIONS_ADVANCED_LINEBONUS=Sazbonus
+SING_OPTIONS_ADVANCED_ONSONGCLICK=No Liddauswiel
+SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Partymenü
+
+SING_EDIT=Editor
+SING_EDIT_MENU_DESCRIPTION=Erstellt Är eege Lidder
+
+SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Midi/Kar Datei als Text exportéieren
+SING_EDIT_BUTTON_DESCRIPTION_EXIT=Zeréck
+SING_EDIT_BUTTON_CONVERT=Importéieren
+SING_EDIT_BUTTON_EXIT=Zeréck
+
+SING_EDIT_NAVIGATE=Navigéieren
+SING_EDIT_SELECT=Auswielen
+SING_EDIT_EXIT=Zeréck
+
+SING_LEGEND_SELECT=Auswielen
+SING_LEGEND_NAVIGATE=Navigéieren
+SING_LEGEND_CONTINUE=Weider
+SING_LEGEND_ESC=Zeréck
+
+SING_PLAYER_DESC=Gitt de Numm an
+SING_PLAYER_WHEREAMI=Numm vum Spiller
+SING_PLAYER_ENTER_NAME=Änneren
+
+SING_DIFFICULTY_DESC=Gräift e Schwieregkeetsgrad eraus
+SING_DIFFICULTY_WHEREAMI=Schwieregkeetsgrad
+SING_DIFFICULTY_CONTINUE=Weider
+SING_EASY=Einfach
+SING_MEDIUM=Mëttel
+SING_HARD=Schwéier
+
+SING_SONG_SELECTION_DESC=Sicht e Lidd eraus
+SING_SONG_SELECTION_WHEREAMI=Liddauswiel
+SING_SONG_SELECTION_GOTO=Erreechen
+SING_SONG_SELECTION=Liddauswiel
+SING_SONG_SELECTION_MENU=Menü
+SING_SONG_SELECTION_PLAYLIST=Playlist
+SING_SONGS_IN_CAT=Lidder
+PLAYLIST_CATTEXT=Playlist: %s
+
+SING_TIME=ZÄIT
+SING_TOTAL=Am Ganzen
+SING_MODE=Sangmodus
+SING_NOTES=Nouten
+SING_GOLDEN_NOTES=Goldeg Nouten
+SING_PHRASE_BONUS=Sazbonus
+
+SING_MENU=Haaptmenü
+
+SONG_SCORE=Punkten
+SONG_SCORE_WHEREAMI=Punkten
+
+SING_SCORE_TONE_DEAF=Lusch
+SING_SCORE_AMATEUR=Ufänger
+SING_SCORE_WANNABE=Bretzkëscht
+SING_SCORE_HOPEFUL=Fortgeschrëtten
+SING_SCORE_RISING_STAR=Stäerchen
+SING_SCORE_LEAD_SINGER=Sänger
+SING_SCORE_SUPERSTAR=Superstar
+SING_SCORE_ULTRASTAR=Ultrastar
+
+SING_TOP_5_CHARTS=Top 5
+SING_TOP_5_CHARTS_WHEREAMI=Bescht Spiller
+SING_TOP_5_CHARTS_CONTINUE=Weider
+SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Schwieregkeetsgrad
+
+POPUP_PERFECT=Perfekt!
+POPUP_AWESOME=Chill!
+POPUP_GREAT=Gäil!
+POPUP_GOOD=Gutt!
+POPUP_NOTBAD=Net schlecht
+POPUP_BAD=Bouh!
+POPUP_POOR=Schlecht!
+POPUP_AWFUL=Schäiss!
+
+IMPLODE_GLUE1=,
+IMPLODE_GLUE2= an
+
+SONG_MENU_NAME_MAIN=Menü
+SONG_MENU_PLAY=Sangen
+SONG_MENU_CHANGEPLAYERS=Spiller tauschen
+SONG_MENU_EDIT=Editor
+SONG_MENU_MODI=E Modus sangen
+SONG_MENU_CANCEL=Offbriechen
+
+SONG_MENU_NAME_PLAYLIST=Menü
+SONG_MENU_PLAYLIST_ADD=Lidd bäifügen
+SONG_MENU_PLAYLIST_DEL=Lidd läschen
+
+SONG_MENU_NAME_PLAYLIST_ADD=Lidd bäifügen
+SONG_MENU_PLAYLIST_ADD_NEW=Bei enger neier Playlist
+SONG_MENU_PLAYLIST_ADD_EXISTING=Bäifüge bei d'Playlist
+SONG_MENU_PLAYLIST_NOEXISTING=Keng Playlist fonnt
+
+SONG_MENU_NAME_PLAYLIST_NEW=Nei Playlist
+SONG_MENU_PLAYLIST_NEW_CREATE=Erstellen
+SONG_MENU_PLAYLIST_NEW_UNNAMED=Ouni-Numm
+
+SONG_MENU_NAME_PLAYLIST_DELITEM=Wierklech läschen?
+SONG_MENU_YES=Jo
+SONG_MENU_NO=Nee
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Playlist wielen
+SONG_MENU_PLAYLIST_LOAD=Opmaachen
+SONG_MENU_PLAYLIST_DELCURRENT=Aktuell Playlist läschen
+
+SONG_MENU_NAME_PLAYLIST_DEL=Playlist läschen?
+
+SONG_MENU_NAME_PARTY_MAIN=Partymenü
+SONG_MENU_JOKER=Joker
+
+SONG_MENU_NAME_PARTY_JOKER=Joker asetzen
+
+SONG_JUMPTO_DESC=Sichen no
+SONG_JUMPTO_TYPE_DESC=Sichen no:
+SONG_JUMPTO_TYPE1=Alles
+SONG_JUMPTO_TYPE2=Titel
+SONG_JUMPTO_TYPE3=Kënschtler
+SONG_JUMPTO_SONGSFOUND=%d Lidd(er) fonnt
+SONG_JUMPTO_NOSONGSFOUND=Kee Lidd fonnt
+SONG_JUMPTO_HELP=Sichtext aginn
+SONG_JUMPTO_CATTEXT=Sichen no: %s
+
+PARTY_MODE=Partymodus
+PARTY_DIFFICULTY=Schwieregkeet
+PARTY_PLAYLIST=Playlist
+PARTY_PLAYLIST_ALL=All Lidder
+PARTY_PLAYLIST_CATEGORY=Ordner
+PARTY_PLAYLIST_PLAYLIST=Playlist
+PARTY_TEAMS=Gruppenunzuel
+PARTY_TEAMS_PLAYER1=Spillerunzuel
+PARTY_TEAMS_PLAYER2=Spillerunzuel
+PARTY_TEAMS_PLAYER3=Spillerunzuel
+
+PARTY_LEGEND_CONTINUE=Weider
+
+PARTY_OPTIONS_DESC=Astellunge fir de Partymodus
+PARTY_OPTIONS_WHEREAMI=Partymodus: Optiounen
+
+PARTY_PLAYER_DESC=Tippt d'Nimm vun de Spiller an Gruppen an
+PARTY_PLAYER_WHEREAMI=Partymodus: Gruppen
+PARTY_PLAYER_ENTER_NAME=Änneren
+
+
+PARTY_ROUNDS_DESC= Wielt d'Modi
+PARTY_ROUNDS_WHEREAMI=Partymodus: Ronnen
+PARTY_ROUNDS_LEGEND_CONTINUE=Party ufänken
+PARTY_ROUNDCOUNT=Unzuel vu Ronnen
+PARTY_SELECTMODE1=1. Ronn
+PARTY_SELECTMODE2=2. Ronn
+PARTY_SELECTMODE3=3. Ronn
+PARTY_SELECTMODE4=4. Ronn
+PARTY_SELECTMODE5=5. Ronn
+PARTY_SELECTMODE6=6. Ronn
+PARTY_SELECTMODE7=7. Ronn
+
+PARTY_ROUND_DESC=Déi nächst Spiller un är Mikroen!
+PARTY_ROUND_WHEREAMI=Partymodus: Nächst Ronn
+PARTY_ROUND_LEGEND_CONTINUE=Ronn ufänken
+
+PARTY_SONG_WHEREAMI=Partymodus: Liddauswiel
+PARTY_SONG_LEGEND_CONTINUE=Sangen
+PARTY_SONG_MENU=Partymenü
+
+PARTY_SCORE_DESC=Punkten vun dëser Ronn
+PARTY_SCORE_WHEREAMI=Partymodus: Punkten
+
+PARTY_WIN_DESC=Gewënner vum Partyspill
+PARTY_WIN_WHEREAMI=Partymodus: Gewënner
+PARTY_WIN_LEGEND_CONTINUE=Zeréck am Haaptmenü
+
+PARTY_ROUND=Ronn
+PARTY_ROUND_WINNER=Gewënner
+PARTY_NOTPLAYEDYET=-
+PARTY_NOBODY=Keen
+NEXT_ROUND=Nächst Ronn:
+
+PARTY_DISMISSED=Verluer!
+PARTY_SCORE_WINS=%s
+PARTY_SCORE_WINS2=huet gewonn!
+
+MODE_RANDOM_NAME=Zoufällege Modus
+MODE_RANDOM_DESC=E Modus gëtt zoufälleg gewielt.
+
+MODE_HDL_NAME=Balken halen
+MODE_HDL_DESC=Halt d'Bewäertung bis beim ugewisene Beräich.
+
+MODE_5000POINTS_NAME=Bis 5000
+MODE_5000POINTS_DESC=Wien als éischt 5000 Punkten huet, gewënnt.
+
+MODE_DUEL_NAME=Duell
+MODE_DUEL_DESC=Wien déi meeschte Punkten huet gewënnt.
+
+MODE_TEAMDUEL_NAME=Teamsangen
+MODE_TEAMDUEL_DESC=Gëft de Mikro weider!
+
+MODE_BLIND_NAME=Blann Modus
+MODE_BLIND_DESC=Erreecht blann déi héchst Punktezuel.
+
+STAT_MAIN=Statistiken
+STAT_MAIN_DESC=Allgemeng
+STAT_MAIN_WHEREAMI=Statistiken
+
+STAT_OVERVIEW_INTRO=Statistike vun %0:s \n Lescht Reinitialisatioun den %1:.2d.%2:.2d.%3:d
+STAT_OVERVIEW_SONG=Et ginn %0:d Lidder (%3:d mat Video). Dovunner goufen op mannst %1:d scho gesongen an %2:d nach net. \n\n Dat meescht gesongend Lidd ass %5:s vun %4:s.
+STAT_OVERVIEW_PLAYER=%0:d verschidde Spiller hunn gesonge säit der leschter Reinitialisatioun. \n\n De beschte Spiller ass %1:s mat %2:d Punkten. Mat %4:d Punkten huet %3:s den Highscore.
+
+STAT_FORMAT_DATE=%0:.2d.%1:.2d.%2:d
+
+STAT_DETAIL=Statistiken
+STAT_DETAIL_WHEREAMI=Detailléiert Statistiken
+
+STAT_NEXT=Nächst Säit
+STAT_PREV=Vireg Säit
+STAT_REVERSE=Ëmkéieren
+STAT_PAGE=Säit %0:d/%1:d \n (%2:d Antrag vun %3:d %3:d )
+
+STAT_DESC_SCORES=Highscore
+STAT_DESC_SCORES_REVERSED=Schlechtst Punkten
+STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s)
+
+STAT_DESC_SINGERS=Beschte Sänger
+STAT_DESC_SINGERS_REVERSED=Schlechtst Sänger
+STAT_FORMAT_SINGERS=%0:s \n Duerchschnëttlech Punktenzuel: %1:d
+
+STAT_DESC_SONGS=Lieblings Lidder
+STAT_DESC_SONGS_REVERSED=Onbeléiftsten Lidder
+STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx gesongen
+
+STAT_DESC_BANDS=Lieblings Band
+STAT_DESC_BANDS_REVERSED=Onbeléiftsten Band
+STAT_FORMAT_BANDS=%0:s \n Lidder gesongen: %1:d
+
+SCREENSHOT_SAVED=Screenshot ass gespäichert.
+SCREENSHOT_FAILED=Screenshot kann net gespäichert ginn.
+
+INFO_FILE_SAVED=Datei ass gespäichert.
+ERROR_SAVE_FILE_FAILED=Datei kann net gespäichert ginn.
+ERROR_FILE_NOT_FOUND=Datei net fonnt
+
+ENCODING_ERROR_ASK_FOR_UTF8=Ännerunge konnten net an der aktueller Kodéierung geséchert ginn. Op UTF-8 konvertéieren?
+EDITOR_ERROR_NO_TRACK_SELECTED=Keng Spuer ausgewielt
+
+MSG_ERROR_TITLE=Feeler
+MSG_INFO_TITLE=Informatioun
+MSG_QUESTION_TITLE=Bestätegung
+MSG_QUIT_USDX=UltraStar wierklech verloossen?
+MSG_END_PARTY=Party wierklech verloossen?
+
+ERROR_NO_SONGS=Keng Lidder fonnt
+ERROR_NO_PLUGINS=Kee Plugin fonnt
+ERROR_NO_MODES_FOR_CURRENT_SETUP=Et gi keng Modi fir déi aktuell Spiller- an/oder Gruppenastellungen.
+ERROR_CAN_NOT_START_PARTY=E Fehler ass beim Starte vum Partyspill opgetrueden.
+ERROR_CORRUPT_SONG=Lidd gëtt net gelueden.
+ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Lidd gëtt net gelueden: Datei gouf net fonnt.
+ERROR_CORRUPT_SONG_NO_NOTES=Lidd gëtt net gelueden: Et goufe keng Noute fonnt.
+ERROR_CORRUPT_SONG_NO_BREAKS=Lidd gëtt net gelueden: Et goufe keng Saazwiessel fonnt.
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Lidd gëtt net gelueden: Feeler beim Parze vun der Zeil %0:d
+ERROR_NO_EDITOR=Keen Editor fonnt
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Wéi oft gesonge matzielen
diff --git a/us_maker_edition/game/languages/old/Norwegian.ini b/us_maker_edition/game/languages/Norwegian.ini
index ddd97322..0e36ca3c 100644
--- a/us_maker_edition/game/languages/old/Norwegian.ini
+++ b/us_maker_edition/game/languages/Norwegian.ini
@@ -1,30 +1,116 @@
-[Text]
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
SING_LOADING=Laster...
-
+
SING_CHOOSE_MODE=velg modus
SING_SING=syng
SING_SING_DESC=hurtigspill: syng solo eller duett
-
+
SING_MULTI=party
SING_MULTI_DESC=syng i party-modus
-
-SING_TOOLS=verktøy
-
+
+SING_TOOLS=verktøy
+
SING_STATS=statistikk
SING_STATS_DESC=vis statistikk
-
+
SING_EDITOR=editor
SING_EDITOR_DESC=lag dine egne sanger
-
+
SING_GAME_OPTIONS=spillinnstillinger
SING_GAME_OPTIONS_DESC=endre spillinstillinger
+
SING_EXIT=avslutt
SING_EXIT_DESC=avslutt spillet
-
+
SING_OPTIONS=innstillinger
SING_OPTIONS_DESC=endre innstillinger
SING_OPTIONS_WHEREAMI=Innstillinger
-
+
SING_OPTIONS_GAME=spill
SING_OPTIONS_GRAPHICS=grafikk
SING_OPTIONS_SOUND=lyd
@@ -33,27 +119,30 @@ SING_OPTIONS_THEMES=utseende
SING_OPTIONS_RECORD=opptak
SING_OPTIONS_ADVANCED=avansert
SING_OPTIONS_EXIT=tilbake
-
+
SING_OPTIONS_GAME_WHEREAMI=Innstillinger Spill
SING_OPTIONS_GAME_DESC=hovedspillinnstillinger
SING_OPTIONS_GAME_PLAYERS=Spillere
SING_OPTIONS_GAME_DIFFICULTY=Vanskelighet
-SING_OPTIONS_GAME_LANGUAGE=Språk
+SING_OPTIONS_GAME_LANGUAGE=Språk
SING_OPTIONS_GAME_TABS=Mappeinndeling
SING_OPTIONS_GAME_SORTING=Sortering
-SING_OPTIONS_GAME_DEBUG=Feilsøking
-
+SING_OPTIONS_GAME_DEBUG=Feilsøking
+
SING_OPTIONS_GRAPHICS_WHEREAMI=Innstillinger Grafikk
SING_OPTIONS_GRAPHICS_DESC=Grafiske innstillinger
-SING_OPTIONS_GRAPHICS_RESOLUTION=Oppløsning
+SING_OPTIONS_GRAPHICS_RESOLUTION=Oppløsning
SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullskjerm
SING_OPTIONS_GRAPHICS_DEPTH=Fargedybde
+;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop
SING_OPTIONS_GRAPHICS_LINEBONUS=Linjebonus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Filmstørrelse
-
+SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Filmstørrelse
+
SING_OPTIONS_SOUND_WHEREAMI=Innstillinger Lyd
SING_OPTIONS_SOUND_DESC=lydinnstillinger
+;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback
+;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music
SING_OPTIONS_SOUND_MIC_BOOST=Mikrofon-gain
SING_OPTIONS_SOUND_CLICK_ASSIST=Klikke-assistanse
SING_OPTIONS_SOUND_BEAT_CLICK=Beat-klikk
@@ -61,237 +150,294 @@ SING_OPTIONS_SOUND_THRESHOLD=Toleransegrense
SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tospiller-modus
SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview-volum
SING_OPTIONS_SOUND_PREVIEWFADING=Preview-fading
-
+
SING_OPTIONS_LYRICS_WHEREAMI=Innstillinger Tekst
SING_OPTIONS_LYRICS_DESC=tekstinnstillinger
SING_OPTIONS_LYRICS_FONT=Fonter
SING_OPTIONS_LYRICS_EFFECT=Effekter
SING_OPTIONS_LYRICS_SOLMIZATION=Solmisasjon
-
+;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves
+
SING_OPTIONS_THEMES_WHEREAMI=Innstillinger Utseende
SING_OPTIONS_THEMES_DESC=tema og skin-innstillinger
SING_OPTIONS_THEMES_THEME=Tema
SING_OPTIONS_THEMES_SKIN=Skin
SING_OPTIONS_THEMES_COLOR=Farge
-
+
SING_OPTIONS_RECORD_WHEREAMI=Innstillinger Opptak
SING_OPTIONS_RECORD_DESC=mikrofoninnstillinger
SING_OPTIONS_RECORD_CARD=Lydkort
SING_OPTIONS_RECORD_INPUT=Input
SING_OPTIONS_RECORD_CHANNEL=Kanal
-
+
SING_OPTIONS_ADVANCED_WHEREAMI=Innstillinger Avansert
SING_OPTIONS_ADVANCED_DESC=avanserte innstillinger
SING_OPTIONS_ADVANCED_EFFECTSING=Sangeffekter
SING_OPTIONS_ADVANCED_SCREENFADE=Skjermfading
SING_OPTIONS_ADVANCED_LOADANIMATION=Animasjonslasting
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sikkerhetsspørsmål
+SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sikkerhetsspørsmål
SING_OPTIONS_ADVANCED_LINEBONUS=Linjebonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Etter sang:
SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto partymeny
-
+
+;TODO: SING_EDIT=Editor
+;TODO: SING_EDIT_MENU_DESCRIPTION=create your own song
+
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_EXIT=back
+;TODO: SING_EDIT_BUTTON_CONVERT=Import
+;TODO: SING_EDIT_BUTTON_EXIT=back
+
+;TODO: SING_EDIT_NAVIGATE=navigate
+;TODO: SING_EDIT_SELECT=select
+;TODO: SING_EDIT_EXIT=back
+
SING_LEGEND_SELECT=velg
SING_LEGEND_NAVIGATE=naviger
SING_LEGEND_CONTINUE=fortsett
SING_LEGEND_ESC=tilbake
-
+
SING_PLAYER_DESC=velg spillernavn
SING_PLAYER_WHEREAMI=Spillernavn
SING_PLAYER_ENTER_NAME=velg navn
-
+
SING_DIFFICULTY_DESC=velg vanskelighetsgrad
SING_DIFFICULTY_WHEREAMI=Vanskelighet
SING_DIFFICULTY_CONTINUE=til sangvalg
SING_EASY=Lett
SING_MEDIUM=Moderat
SING_HARD=Vanskelig
-
+
SING_SONG_SELECTION_DESC=velg sang
SING_SONG_SELECTION_WHEREAMI=Sangvalg
-SING_SONG_SELECTION_GOTO=gå til ..
+SING_SONG_SELECTION_GOTO=gå til ..
SING_SONG_SELECTION=Sangvalg
SING_SONG_SELECTION_MENU=meny
SING_SONG_SELECTION_PLAYLIST=spilleliste
SING_SONGS_IN_CAT=Sanger
PLAYLIST_CATTEXT=Spilleliste: %s
-
+
SING_TIME=TID
SING_TOTAL=total
SING_MODE=syng solo
SING_NOTES=toner
SING_GOLDEN_NOTES=gyldne noter
SING_PHRASE_BONUS=linjebonus
-
+
SING_MENU=Hovedmeny
-
+
SONG_SCORE=sangscore
SONG_SCORE_WHEREAMI=Score
-
-SING_SCORE_TONE_DEAF=Tonedøv
-SING_SCORE_AMATEUR=Amatør
+
+SING_SCORE_TONE_DEAF=Tonedøv
+SING_SCORE_AMATEUR=Amatør
+;TODO: SING_SCORE_WANNABE=Wannabe
+;TODO: SING_SCORE_HOPEFUL=Hopeful
SING_SCORE_RISING_STAR=Stigende stjerne
SING_SCORE_LEAD_SINGER=Toppvokalist
-SING_SCORE_HIT_ARTIST=Hitartist
SING_SCORE_SUPERSTAR=Superstjerne
SING_SCORE_ULTRASTAR=Ultrastjerne
-
+
SING_TOP_5_CHARTS=topp 5 spillere
SING_TOP_5_CHARTS_WHEREAMI=topp 5
SING_TOP_5_CHARTS_CONTINUE=til sangvalg
-
+;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
+
POPUP_PERFECT=perfekt!
POPUP_AWESOME=fantastisk!
POPUP_GREAT=kjempebra!
POPUP_GOOD=bra!
POPUP_NOTBAD=brukbart!
-POPUP_BAD=dårlig!
+POPUP_BAD=dårlig!
POPUP_POOR=elendig!
POPUP_AWFUL=grusomt!
-
+
IMPLODE_GLUE1=,
IMPLODE_GLUE2= og
-
+
SONG_MENU_NAME_MAIN=sangmeny
SONG_MENU_PLAY=Syng
SONG_MENU_CHANGEPLAYERS=Endre spillere
SONG_MENU_EDIT=Endre
SONG_MENU_MODI=Syng en modus
SONG_MENU_CANCEL=AVbryt
-
+
SONG_MENU_NAME_PLAYLIST=Sangmeny
SONG_MENU_PLAYLIST_ADD=Legg til sang
SONG_MENU_PLAYLIST_DEL=Ta bort sang
-
+
SONG_MENU_NAME_PLAYLIST_ADD=Legg til sang
SONG_MENU_PLAYLIST_ADD_NEW=til ny spilleliste
SONG_MENU_PLAYLIST_ADD_EXISTING=til eksisterende spilleliste
SONG_MENU_PLAYLIST_NOEXISTING=ingen spilleliste eksisterer
-
+
SONG_MENU_NAME_PLAYLIST_NEW=Ny spilleliste
SONG_MENU_PLAYLIST_NEW_CREATE=Opprett
SONG_MENU_PLAYLIST_NEW_UNNAMED=Uten navn
-
+
SONG_MENU_NAME_PLAYLIST_DELITEM=Virkelig slette?
SONG_MENU_YES=Ja
SONG_MENU_NO=Nei
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Åpne spilleliste
-SONG_MENU_PLAYLIST_LOAD=åpne
-SONG_MENU_PLAYLIST_DELCURRENT=slett nåværende spilleliste
-
+
+SONG_MENU_NAME_PLAYLIST_LOAD=Ã…pne spilleliste
+SONG_MENU_PLAYLIST_LOAD=Ã¥pne
+SONG_MENU_PLAYLIST_DELCURRENT=slett nåværende spilleliste
+
SONG_MENU_NAME_PLAYLIST_DEL=Slett spilleliste?
-
+
SONG_MENU_NAME_PARTY_MAIN=Partymeny
SONG_MENU_JOKER=Joker
-
+
SONG_MENU_NAME_PARTY_JOKER=bruk joker
-
-SONG_JUMPTO_DESC=søk etter sang
-SONG_JUMPTO_TYPE_DESC=Søk etter:
+
+SONG_JUMPTO_DESC=søk etter sang
+SONG_JUMPTO_TYPE_DESC=Søk etter:
SONG_JUMPTO_TYPE1=Alt
SONG_JUMPTO_TYPE2=Tittel
SONG_JUMPTO_TYPE3=Artist
SONG_JUMPTO_SONGSFOUND=%d Sang(er) funnet
SONG_JUMPTO_NOSONGSFOUND=Ingen funnet
-SONG_JUMPTO_HELP=Skriv inn tekst å lete etter
-SONG_JUMPTO_CATTEXT=Søk etter: %s
-
+SONG_JUMPTO_HELP=Skriv inn tekst å lete etter
+SONG_JUMPTO_CATTEXT=Søk etter: %s
+
PARTY_MODE=Partymodus
PARTY_DIFFICULTY=Vanskelighetsgrad
PARTY_PLAYLIST=Spilleliste-modus
PARTY_PLAYLIST_ALL=Alle sanger
PARTY_PLAYLIST_CATEGORY=Mappe
PARTY_PLAYLIST_PLAYLIST=Spillelist
-PARTY_ROUNDS=Runder
PARTY_TEAMS=Lag
PARTY_TEAMS_PLAYER1=Spiller Lag1
PARTY_TEAMS_PLAYER2=Spiller Lag2
PARTY_TEAMS_PLAYER3=Spiller Lag3
-
+
PARTY_LEGEND_CONTINUE=Fortsett
-
+
PARTY_OPTIONS_DESC=Innstillinger for party-spillet
PARTY_OPTIONS_WHEREAMI=Party-innstillinger
-
+
PARTY_PLAYER_DESC=skriv spiller- og lagnavn!
PARTY_PLAYER_WHEREAMI=Party-navn
PARTY_PLAYER_ENTER_NAME=skriv navn
-PARTY_PLAYER_LEGEND_CONTINUE=start party-game
-
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=start party-game
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
+
PARTY_ROUND_DESC=neste spillere til mikrofonene
PARTY_ROUND_WHEREAMI=Party neste runde
PARTY_ROUND_LEGEND_CONTINUE=start runden
-
+
PARTY_SONG_WHEREAMI=Party sangvalg
PARTY_SONG_LEGEND_CONTINUE=syng
PARTY_SONG_MENU=partymeny
-
+
PARTY_SCORE_DESC=Siste rundes poengsum
PARTY_SCORE_WHEREAMI=Partypoeng
-
+
PARTY_WIN_DESC=vinner av partyspillet
PARTY_WIN_WHEREAMI=Party-vinner
PARTY_WIN_LEGEND_CONTINUE=tilbake til hovedmenyen
-
+
PARTY_ROUND=Runde
PARTY_ROUND_WINNER=Vinner
-PARTY_NOTPLAYEDYET=Ikke spilt ennå
+PARTY_NOTPLAYEDYET=Ikke spilt ennå
PARTY_NOBODY=ingen
NEXT_ROUND=Neste runde:
-
+
PARTY_DISMISSED=Avbrutt!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=Vinner!
-
-PLUGIN_HDL_NAME=Hold linja
-PLUGIN_HDL_DESC=Ikke syng dårligere enn hva markøren på statuslinja viser.
-
-PLUGIN_UNTIL5000_NAME=Først til 5000
-PLUGIN_UNTIL5000_DESC=Førstemann til 5000 poeng vinner.
-
-PLUGIN_DUELL_NAME=Duell
-PLUGIN_DUELL_DESC=Syng en duell - først til 10000.
-
-PLUGIN_BLIND_NAME=Blindemodus
-PLUGIN_BLIND_DESC=Duell der notene ikke vises
-
+
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=Hold linja
+MODE_HDL_DESC=Ikke syng dårligere enn hva markøren på statuslinja viser.
+
+MODE_5000POINTS_NAME=Først til 5000
+MODE_5000POINTS_DESC=Førstemann til 5000 poeng vinner.
+
+MODE_DUEL_NAME=Duell
+MODE_DUEL_DESC=Syng en duell - først til 10000.
+
+;TODO: MODE_TEAMDUEL_NAME=Team Duell
+;TODO: MODE_TEAMDUEL_DESC=Pass The Mic!
+
+MODE_BLIND_NAME=Blindemodus
+MODE_BLIND_DESC=Duell der notene ikke vises
+
STAT_MAIN=Statistikk
STAT_MAIN_DESC=Hoved
STAT_MAIN_WHEREAMI=Statistikk
-
+
STAT_OVERVIEW_INTRO=%0:s Statistikk. \n Siste avslutning ved %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Sanger(%3:d med video), hvorav %1:d allerede har vært sunget og %2:d ennå ikke har vært sunget.\n Den mest populære sangen er %5:s av %4:s.
-STAT_OVERVIEW_PLAYER=Siden den siste avlutningen var det %0:d ulike spillere.\n Den beste spilleren er %1:s med en gjennomsnitts-score på %2:d poeng.\n %3:s fikk høyeste score med %4:d poeng.
-
+STAT_OVERVIEW_SONG=%0:d Sanger(%3:d med video), hvorav %1:d allerede har vært sunget og %2:d ennå ikke har vært sunget.\n Den mest populære sangen er %5:s av %4:s.
+STAT_OVERVIEW_PLAYER=Siden den siste avlutningen var det %0:d ulike spillere.\n Den beste spilleren er %1:s med en gjennomsnitts-score på %2:d poeng.\n %3:s fikk høyeste score med %4:d poeng.
+
+;TODO: STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
STAT_DETAIL=Statistikk
STAT_DETAIL_WHEREAMI=Detaljert statistikk
-
+
STAT_NEXT=Neste side
STAT_PREV=Forrige side
-STAT_REVERSE=Bytt rekkefølge
+STAT_REVERSE=Bytt rekkefølge
STAT_PAGE=Side %0:d av %1:d Sider\n (%2:d av %3:d )
-
+
STAT_DESC_SCORES=Toppscore
STAT_DESC_SCORES_REVERSED=Bunnscore
STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
+
STAT_DESC_SINGERS=Beste sangere
-STAT_DESC_SINGERS_REVERSED=Dårligste sangere
+STAT_DESC_SINGERS_REVERSED=DÃ¥rligste sangere
STAT_FORMAT_SINGERS=%0:s \n Gjennomsnitts-score: %1:d
-
-STAT_DESC_SONGS=Mest populære sang
-STAT_DESC_SONGS_REVERSED=Minst populære sang
+
+STAT_DESC_SONGS=Mest populære sang
+STAT_DESC_SONGS_REVERSED=Minst populære sang
STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sunget
-
-STAT_DESC_BANDS=Mest populære artist
-STAT_DESC_BANDS_REVERSED=Minst populære artist
+
+STAT_DESC_BANDS=Mest populære artist
+STAT_DESC_BANDS_REVERSED=Minst populære artist
STAT_FORMAT_BANDS=%0:s \n %1:dx Sunget
-
+
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Feil
-MSG_QUESTION_TITLE=Spørsmål
+;TODO: MSG_INFO_TITLE=Information
+MSG_QUESTION_TITLE=Spørsmål
MSG_QUIT_USDX=Vil du virkelig avslutte UltraStar?
MSG_END_PARTY=Vil du virkelig forlate party-modusen?
+
ERROR_NO_SONGS=Ingen sanger lastet
ERROR_NO_PLUGINS=Ingen plug-ins lastet
-ERROR_CORRUPT_SONG=Sangen kunne ikke lastes \ No newline at end of file
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
+ERROR_CORRUPT_SONG=Sangen kunne ikke lastes
+;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found
+;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes
+;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks
+;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
+;UNUSED: SING_SCORE_HIT_ARTIST=Hitartist
+;UNUSED: PARTY_ROUNDS=Runder
diff --git a/us_maker_edition/game/languages/Portuguese.ini b/us_maker_edition/game/languages/Portuguese.ini
index 686190bd..c78a3a5b 100644
--- a/us_maker_edition/game/languages/Portuguese.ini
+++ b/us_maker_edition/game/languages/Portuguese.ini
@@ -1,76 +1,85 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
+OPTION_VALUE_CATALAN=Catalão
+OPTION_VALUE_CROATIAN=Croata
+OPTION_VALUE_CZECH=Tcheco
+OPTION_VALUE_DANISH=Dinamarquês
+OPTION_VALUE_DUTCH=Holandês
+OPTION_VALUE_ENGLISH=Inglês
OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
+OPTION_VALUE_FINNISH=Finlandês
+OPTION_VALUE_FRENCH=Francês
+OPTION_VALUE_GERMAN=Alemão
+OPTION_VALUE_GREEK=Grego
+OPTION_VALUE_HUNGARIAN=Hungaro
+OPTION_VALUE_ICELANDIC=Islandês
+OPTION_VALUE_ITALIAN=Italiano
+OPTION_VALUE_JAPANESE=Japonês
+OPTION_VALUE_LUXEMBOURGISH=Luxemburguês
+OPTION_VALUE_NORWEGIAN=Norueguês
+OPTION_VALUE_POLISH=Polaco
+OPTION_VALUE_PORTUGUESE=Português
+OPTION_VALUE_SERBIAN=Sérvio
+OPTION_VALUE_SLOVAK=Eslovaco
+OPTION_VALUE_SLOVENIAN=Esloveno
+OPTION_VALUE_SPANISH=Espanhol
+OPTION_VALUE_SWEDISH=Sueco
+
+OPTION_VALUE_EASY=Fácil
+OPTION_VALUE_MEDIUM=Médio
+OPTION_VALUE_HARD=Difícil
OPTION_VALUE_ON=On
OPTION_VALUE_OFF=Off
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
+OPTION_VALUE_EDITION=Edição
+OPTION_VALUE_GENRE=Gênero
+OPTION_VALUE_LANGUAGE=Idioma
+OPTION_VALUE_FOLDER=Directoria
+OPTION_VALUE_TITLE=Título
+OPTION_VALUE_ARTIST=Artista
+OPTION_VALUE_TITLE2=Título 2
+OPTION_VALUE_ARTIST2=Artista 2
-OPTION_VALUE_WHENNOVIDEO=When No Video
+OPTION_VALUE_WHENNOVIDEO=Não existir Vídeo
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
+OPTION_VALUE_SMALL=Pequeno
+OPTION_VALUE_BIG=Grande
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+OPTION_VALUE_HALF=Parcial
+OPTION_VALUE_FULL_VID=Completo (Vídeo)
+OPTION_VALUE_FULL_VID_BG=Completo (Fundo & Vídeo)
OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
+OPTION_VALUE_SEC=Segundo
+OPTION_VALUE_SECS=Segundos
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
+OPTION_VALUE_PLAIN=Plano
+OPTION_VALUE_OLINE1=Negrito 1
+OPTION_VALUE_OLINE2=Negrito 2
-OPTION_VALUE_SIMPLE=Simple
+OPTION_VALUE_SIMPLE=Simples
OPTION_VALUE_ZOOM=Zoom
OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
+OPTION_VALUE_BALL=Bola
+OPTION_VALUE_SHIFT=Salto
+
+OPTION_VALUE_EURO=Europeu
+OPTION_VALUE_JAPAN=Japonês
+OPTION_VALUE_AMERICAN=Americano
+
+OPTION_VALUE_BLUE=Azul
+OPTION_VALUE_GREEN=Verde
+OPTION_VALUE_PINK=Rosa
+OPTION_VALUE_RED=Vermelho
+OPTION_VALUE_VIOLET=Violeta
+OPTION_VALUE_ORANGE=Laranja
+OPTION_VALUE_YELLOW=Amarelo
+OPTION_VALUE_BROWN=Castanho
+OPTION_VALUE_BLACK=Preto
+
+OPTION_VALUE_SING=Cantar
+OPTION_VALUE_SELECT_PLAYERS=Escolher Jogadores
+OPTION_VALUE_OPEN_MENU=Abrir Menu
OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Fade do Ecrã
SING_OPTIONS_ADVANCED_LOADANIMATION=Animação
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Segurança
SING_OPTIONS_ADVANCED_LINEBONUS=Linha de Bónus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Escolha da Canção
SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu de Festa
@@ -267,7 +275,7 @@ SONG_MENU_NAME_PLAYLIST_NEW=Nova Playlist
SONG_MENU_PLAYLIST_NEW_CREATE=Criar
SONG_MENU_PLAYLIST_NEW_UNNAMED=Sem nome
-SONG_MENU_NAME_PLAYLIST_DEL=Apagar mesmo?
+SONG_MENU_NAME_PLAYLIST_DELITEM=Deseja mesmo eliminar?
SONG_MENU_YES=Sim
SONG_MENU_NO=Não
@@ -275,7 +283,7 @@ SONG_MENU_NAME_PLAYLIST_LOAD=Abrir Playlist
SONG_MENU_PLAYLIST_LOAD=abrir
SONG_MENU_PLAYLIST_DELCURRENT=apagar Playlist actual
-SONG_MENU_NAME_PLAYLIST_DEL=Apagar Playlist?
+SONG_MENU_NAME_PLAYLIST_DEL=Apagar mesmo?
SONG_MENU_NAME_PARTY_MAIN=Menu de Festa
SONG_MENU_JOKER=Joker
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Modo Playlist
PARTY_PLAYLIST_ALL=Todas as Canções
PARTY_PLAYLIST_CATEGORY=Directório
PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Rondas
PARTY_TEAMS=Equipas
PARTY_TEAMS_PLAYER1=Jogador Equipa1
PARTY_TEAMS_PLAYER2=Jogador Equipa2
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Opções de Festa
PARTY_PLAYER_DESC=Inserir nomes de jogadores e equipas
PARTY_PLAYER_WHEREAMI=Nomes de Festa
PARTY_PLAYER_ENTER_NAME=Inserir nomes
-PARTY_PLAYER_LEGEND_CONTINUE=Iniciar Festa
+
+
+PARTY_ROUNDS_DESC=Escolha os modos que deseja jogar
+PARTY_ROUNDS_WHEREAMI=Rondas da Festa
+PARTY_ROUNDS_LEGEND_CONTINUE=Iniciar Festa
+PARTY_ROUNDCOUNT=Nº de Rondas
+PARTY_SELECTMODE1=Ronda 1
+PARTY_SELECTMODE2=Ronda 2
+PARTY_SELECTMODE3=Ronda 3
+PARTY_SELECTMODE4=Ronda 4
+PARTY_SELECTMODE5=Ronda 5
+PARTY_SELECTMODE6=Ronda 6
+PARTY_SELECTMODE7=Ronda 7
PARTY_ROUND_DESC=Jogadores seguintes para os microfones
PARTY_ROUND_WHEREAMI=Ronda seguinte
@@ -339,20 +358,23 @@ PARTY_DISMISSED=Dispensado!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=Ganhou!
-PLUGIN_HDL_NAME=Manter a linha
-PLUGIN_HDL_DESC=Não piorar o ponteiro que é mostrado na barra de pontuação
+MODE_RANDOM_NAME=Modo Aleatório
+MODE_RANDOM_DESC=Será escolhido um Modo Aleatóriamente
+
+MODE_HDL_NAME=Manter a linha
+MODE_HDL_DESC=Não piorar o ponteiro que é mostrado na barra de pontuação
-PLUGIN_UNTIL5000_NAME=Até 5000
-PLUGIN_UNTIL5000_DESC=Quem obter primeiro 5000 pontos ganha a partida
+MODE_5000POINTS_NAME=Até 5000
+MODE_5000POINTS_DESC=Quem obter primeiro 5000 pontos ganha a partida
-PLUGIN_DUELL_NAME=Duelo
-PLUGIN_DUELL_DESC=Fazer um Duelo até aos 10000 pontos.
+MODE_DUEL_NAME=Duelo
+MODE_DUEL_DESC=Fazer um Duelo até aos 10000 pontos.
-PLUGIN_TEAMDUELL_NAME=Duelo de equipa
-PLUGIN_TEAMDUELL_DESC=Passa o Microfone!
+MODE_TEAMDUEL_NAME=Duelo de equipa
+MODE_TEAMDUEL_DESC=Passa o Microfone!
-PLUGIN_BLIND_NAME=Modo Cego
-PLUGIN_BLIND_DESC=Duelo sem ver as notas.
+MODE_BLIND_NAME=Modo Cego
+MODE_BLIND_DESC=Duelo sem ver as notas.
STAT_MAIN=Estatísticas
STAT_MAIN_DESC=Geral
@@ -388,14 +410,31 @@ STAT_DESC_BANDS=Top Bandas
STAT_DESC_BANDS_REVERSED=Bandas Menos Populares
STAT_FORMAT_BANDS=%0:s \n %1:dx Cantaram
+SCREENSHOT_SAVED=Screenshot Guardado
+SCREENSHOT_FAILED=Impossível Guardar Screenshot
+
+INFO_FILE_SAVED=Ficheiro Guardado
+ERROR_SAVE_FILE_FAILED=Impossível Guardar Ficheiro
+ERROR_FILE_NOT_FOUND=Ficheiro Não Encontrado
+
+ENCODING_ERROR_ASK_FOR_UTF8=Impossível guardar na codificação corrente. Converter pata UTF-8?
+EDITOR_ERROR_NO_TRACK_SELECTED=Nenhuma pista seleccionada
+
MSG_ERROR_TITLE=Erro
+MSG_INFO_TITLE=Informação
MSG_QUESTION_TITLE=Questão
MSG_QUIT_USDX=Deseja mesmo sair do UltraStar?
MSG_END_PARTY=Deseja mesmo terminar o Modo Festa?
+
ERROR_NO_SONGS=Nenhuma Canção lida
ERROR_NO_PLUGINS=Nenhum Plugin lido
+ERROR_NO_MODES_FOR_CURRENT_SETUP=Não existem modos para a corrente configuração
+ERROR_CAN_NOT_START_PARTY=Erro ao iniciar o Modo Festa!
ERROR_CORRUPT_SONG=Canção não pôde ser lida!
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=A canção não foi encontrada!
ERROR_CORRUPT_SONG_NO_NOTES=A canção não tem notas!
ERROR_CORRUPT_SONG_NO_BREAKS=A canção não tem quebras de linha!
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Erro durante o parsing da linha %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Erro durante o parsing da linha %0:d
+ERROR_NO_EDITOR=Esta opção não está disponível no Linux/Mac
+ERROR_PLAYER_DEVICE_ASSIGNMENT=O Jogador %d está atribuído a vários microfones. Por favor verifique as opções de gravação!
+ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=O Jogador %d não está atribuído a nenhum microfone. Por favor verifique as opções de gravação!
diff --git a/us_maker_edition/game/languages/old/Serbian.ini b/us_maker_edition/game/languages/Serbian.ini
index 1896c6de..cb440028 100644
--- a/us_maker_edition/game/languages/old/Serbian.ini
+++ b/us_maker_edition/game/languages/Serbian.ini
@@ -1,4 +1,89 @@
-[Text]
+[Text]
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+
SING_LOADING=Ucitava se...
SING_CHOOSE_MODE=izaberi mod
@@ -49,12 +134,15 @@ SING_OPTIONS_GRAPHICS_DESC=graficka podesavanja
SING_OPTIONS_GRAPHICS_RESOLUTION=Rezolucija
SING_OPTIONS_GRAPHICS_FULLSCREEN=Pun Ekran
SING_OPTIONS_GRAPHICS_DEPTH=Boje
+;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization
SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop
SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus Linija
SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velicina Videa
SING_OPTIONS_SOUND_WHEREAMI=Opcije Zvuk
SING_OPTIONS_SOUND_DESC=podesavanja zvuka
+;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback
+;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music
SING_OPTIONS_SOUND_MIC_BOOST=Pojacanje mikrofona
SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist
SING_OPTIONS_SOUND_BEAT_CLICK=Beat click
@@ -68,6 +156,7 @@ SING_OPTIONS_LYRICS_DESC=Podesavanja lirika
SING_OPTIONS_LYRICS_FONT=Font
SING_OPTIONS_LYRICS_EFFECT=Efekti
SING_OPTIONS_LYRICS_SOLMIZATION=Solmizacija
+;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves
SING_OPTIONS_THEMES_WHEREAMI=Opcije Teme
SING_OPTIONS_THEMES_DESC=podesavanja teme i skina
@@ -88,10 +177,21 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Pomracenje Ekrana
SING_OPTIONS_ADVANCED_LOADANIMATION=Animacija Ucitavanja
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Bezbednosna Pitanja
SING_OPTIONS_ADVANCED_LINEBONUS=Linijski Bonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Posle Odabira Pesme
SING_OPTIONS_ADVANCED_PARTYPOPUP=Automatski Timski Meni
+;TODO: SING_EDIT=Editor
+;TODO: SING_EDIT_MENU_DESCRIPTION=create your own song
+
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file
+;TODO: SING_EDIT_BUTTON_DESCRIPTION_EXIT=back
+;TODO: SING_EDIT_BUTTON_CONVERT=Import
+;TODO: SING_EDIT_BUTTON_EXIT=back
+
+;TODO: SING_EDIT_NAVIGATE=navigate
+;TODO: SING_EDIT_SELECT=select
+;TODO: SING_EDIT_EXIT=back
+
SING_LEGEND_SELECT=izaberi
SING_LEGEND_NAVIGATE=biraj
SING_LEGEND_CONTINUE=nastavi
@@ -131,15 +231,17 @@ SONG_SCORE_WHEREAMI=Rezultat
SING_SCORE_TONE_DEAF=Antitalenat
SING_SCORE_AMATEUR=Amater
+;TODO: SING_SCORE_WANNABE=Wannabe
+;TODO: SING_SCORE_HOPEFUL=Hopeful
SING_SCORE_RISING_STAR=Zvezda U Usponu
SING_SCORE_LEAD_SINGER=Solista
-SING_SCORE_HIT_ARTIST=Hit Pevac
SING_SCORE_SUPERSTAR=SuperZvezda
SING_SCORE_ULTRASTAR=UltraZvezda
SING_TOP_5_CHARTS=najboljih 5 Igraca
SING_TOP_5_CHARTS_WHEREAMI=najboljih pet
SING_TOP_5_CHARTS_CONTINUE=do izbora pesme
+;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty
POPUP_PERFECT=savrseno!
POPUP_AWESOME=odlicno!
@@ -204,7 +306,6 @@ PARTY_PLAYLIST=Mod Liste Pesama
PARTY_PLAYLIST_ALL=Sve Pesme
PARTY_PLAYLIST_CATEGORY=Direktorijum
PARTY_PLAYLIST_PLAYLIST=Lista Pesama
-PARTY_ROUNDS=Runde
PARTY_TEAMS=Timovi
PARTY_TEAMS_PLAYER1=Igrac Tim1
PARTY_TEAMS_PLAYER2=Igrac Tim2
@@ -218,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Timske Opcije
PARTY_PLAYER_DESC=unesi imena igraca i timova!
PARTY_PLAYER_WHEREAMI=Imena Timova
PARTY_PLAYER_ENTER_NAME=unesi imena
-PARTY_PLAYER_LEGEND_CONTINUE=zapocni timsku igru
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=zapocni timsku igru
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=sledeci igraci za mikrofonom
PARTY_ROUND_WHEREAMI=Timska Sledeca Runda
@@ -245,17 +358,23 @@ PARTY_DISMISSED=Otpusten!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=Pobedio!
-PLUGIN_HDL_NAME=Drzi liniju
-PLUGIN_HDL_DESC=Ne budi losiji nego sto ti strelica pokazuje.
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=Drzi liniju
+MODE_HDL_DESC=Ne budi losiji nego sto ti strelica pokazuje.
-PLUGIN_UNTIL5000_NAME=Do 5000
-PLUGIN_UNTIL5000_DESC=Ko stigne prvi do 5000 poena pobedjuje.
+MODE_5000POINTS_NAME=Do 5000
+MODE_5000POINTS_DESC=Ko stigne prvi do 5000 poena pobedjuje.
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=Pevaj duel do 10000 poena.
+MODE_DUEL_NAME=Duel
+MODE_DUEL_DESC=Pevaj duel do 10000 poena.
-PLUGIN_BLIND_NAME=Slepi Mod
-PLUGIN_BLIND_DESC=Duel bez gledanja nota.
+;TODO: MODE_TEAMDUEL_NAME=Team Duell
+;TODO: MODE_TEAMDUEL_DESC=Pass The Mic!
+
+MODE_BLIND_NAME=Slepi Mod
+MODE_BLIND_DESC=Duel bez gledanja nota.
STAT_MAIN=Statistike
STAT_MAIN_DESC=Generalne
@@ -265,6 +384,8 @@ STAT_OVERVIEW_INTRO=%0:s Statistike. \n Poslednji reset bio je %2:.2d.%1:.2d.%3
STAT_OVERVIEW_SONG=%0:d Pesme(%3:d sa Videom), gde su %1:d vec igrane i %2:d nisu jos igrane.\n Najpopularnija pesma je %5:s sa %4:s.
STAT_OVERVIEW_PLAYER=Od poslednjeg reseta bilo je %0:d razlicitih igraca.\n Najbolji igrac je %1:s sa prosecnim rezultatom od %2:d poena.\n %3:s je imao najveci rezultat sa %4:d poena.
+;TODO: STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d
+
STAT_DETAIL=Statistike
STAT_DETAIL_WHEREAMI=Detalji Statistike
@@ -289,10 +410,33 @@ STAT_DESC_BANDS=Najpopularniji Bendovi
STAT_DESC_BANDS_REVERSED=Najmanje Popularni Bendovi
STAT_FORMAT_BANDS=%0:s \n %1:dx Pevano
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Greska
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Pitanje
MSG_QUIT_USDX=Stvarno napustate UltraStar?
MSG_END_PARTY=Stvarno napustate Timski Mod?
+
ERROR_NO_SONGS=Nema ucitanih pesama
ERROR_NO_PLUGINS=Nema ucitanih plugin-ova
-ERROR_CORRUPT_SONG=Pesma se ne moze ucitati. \ No newline at end of file
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
+ERROR_CORRUPT_SONG=Pesma se ne moze ucitati.
+;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found
+;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes
+;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks
+;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: SING_SCORE_HIT_ARTIST=Hit Pevac
+;UNUSED: PARTY_ROUNDS=Runde
diff --git a/us_maker_edition/game/languages/Spanish.ini b/us_maker_edition/game/languages/Spanish.ini
index c746e2e8..4c669dcf 100644
--- a/us_maker_edition/game/languages/Spanish.ini
+++ b/us_maker_edition/game/languages/Spanish.ini
@@ -1,79 +1,88 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=Cargando...
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Desvanecimiento
SING_OPTIONS_ADVANCED_LOADANIMATION=Animación de carga
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Preguntas de seguridad
SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de línea
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Al seleccionar canción
SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto menú de grupo
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Modo lista
PARTY_PLAYLIST_ALL=Todas las canciones
PARTY_PLAYLIST_CATEGORY=Carpeta
PARTY_PLAYLIST_PLAYLIST=Lista de canciones
-PARTY_ROUNDS=Rondas
PARTY_TEAMS=Equipos
PARTY_TEAMS_PLAYER1=Miembros del equipo 1
PARTY_TEAMS_PLAYER2=Miembros del equipo 2
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Opciones del modo grupo
PARTY_PLAYER_DESC=¡Escribe los nombres de jugadores y equipos!
PARTY_PLAYER_WHEREAMI=Nombre de los equipos
PARTY_PLAYER_ENTER_NAME=Escribe los nombres
-PARTY_PLAYER_LEGEND_CONTINUE=Empezar
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=Empezar
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=Siguientes jugadores
PARTY_ROUND_WHEREAMI=Siguiente ronda
@@ -339,20 +358,23 @@ PARTY_DISMISSED=¡Perdió!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=¡Ganó!
-PLUGIN_HDL_NAME=Mantén la línea
-PLUGIN_HDL_DESC=No bajes tu puntuación de lo indicado en pantalla
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
-PLUGIN_UNTIL5000_NAME=Hasta 5000
-PLUGIN_UNTIL5000_DESC=Gana quien obtenga 5000 puntos.
+MODE_HDL_NAME=Mantén la línea
+MODE_HDL_DESC=No bajes tu puntuación de lo indicado en pantalla
-PLUGIN_DUELL_NAME=Duelo
-PLUGIN_DUELL_DESC=Canta un duelo hasta 10000 puntos.
+MODE_5000POINTS_NAME=Hasta 5000
+MODE_5000POINTS_DESC=Gana quien obtenga 5000 puntos.
-PLUGIN_TEAMDUELL_NAME=Duelo de equipos
-PLUGIN_TEAMDUELL_DESC=¡Pasa el micro!
+MODE_DUEL_NAME=Duelo
+MODE_DUEL_DESC=Canta un duelo hasta 10000 puntos.
-PLUGIN_BLIND_NAME=Modo a ciegas
-PLUGIN_BLIND_DESC=Duelo sin ver las notas.
+MODE_TEAMDUEL_NAME=Duelo de equipos
+MODE_TEAMDUEL_DESC=¡Pasa el micro!
+
+MODE_BLIND_NAME=Modo a ciegas
+MODE_BLIND_DESC=Duelo sin ver las notas.
STAT_MAIN=Estadísticas
STAT_MAIN_DESC=General
@@ -388,14 +410,32 @@ STAT_DESC_BANDS=Grupos más populares
STAT_DESC_BANDS_REVERSED=Grupos menos populares
STAT_FORMAT_BANDS=%0:s \n %1:dx veces cantado
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Error
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Pregunta
MSG_QUIT_USDX=¿Seguro que quieres salir?
MSG_END_PARTY=¿Seguro que quieres salir del modo grupo?
+
ERROR_NO_SONGS=Sin canciones
ERROR_NO_PLUGINS=Sin plugins
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=Imposible cargar la canción.
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Imposible cargar la canción: Archivo no encontrado
ERROR_CORRUPT_SONG_NO_NOTES=Imposible cargar la canción: No se encuentran notas
ERROR_CORRUPT_SONG_NO_BREAKS=Imposible cargar la canción: No se encuentran interrupciones de línea
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposible cargar la canción: Error durante el parsing de la línea %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposible cargar la canción: Error durante el parsing de la línea %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: PARTY_ROUNDS=Rondas
diff --git a/us_maker_edition/game/languages/Swedish.ini b/us_maker_edition/game/languages/Swedish.ini
index 429080ef..8cd84d5f 100644
--- a/us_maker_edition/game/languages/Swedish.ini
+++ b/us_maker_edition/game/languages/Swedish.ini
@@ -1,79 +1,88 @@
[Text]
-OPTION_VALUE_CATALAN=Catalan
-OPTION_VALUE_CROATIAN=Croatian
-OPTION_VALUE_DUTCH=Dutch
-OPTION_VALUE_ENGLISH=English
-OPTION_VALUE_EUSKARA=Euskara
-OPTION_VALUE_FINNISH=Finnish
-OPTION_VALUE_FRENCH=French
-OPTION_VALUE_GERMAN=German
-OPTION_VALUE_GREEK=Greek
-OPTION_VALUE_ITALIAN=Italian
-OPTION_VALUE_JAPANESE=Japanese
-OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
-OPTION_VALUE_PORTUGUESE=Portuguese
-OPTION_VALUE_SPANISH=Spanish
-OPTION_VALUE_SWEDISH=Swedish
-
-OPTION_VALUE_EASY=Easy
-OPTION_VALUE_MEDIUM=Medium
-OPTION_VALUE_HARD=Hard
-
-OPTION_VALUE_ON=On
-OPTION_VALUE_OFF=Off
-
-OPTION_VALUE_EDITION=Edition
-OPTION_VALUE_GENRE=Genre
-OPTION_VALUE_LANGUAGE=Language
-OPTION_VALUE_FOLDER=Folder
-OPTION_VALUE_TITLE=Title
-OPTION_VALUE_ARTIST=Artist
-OPTION_VALUE_TITLE2=Title2
-OPTION_VALUE_ARTIST2=Artist2
-
-OPTION_VALUE_WHENNOVIDEO=When No Video
-
-OPTION_VALUE_SMALL=Small
-OPTION_VALUE_BIG=Big
-
-OPTION_VALUE_HALF=Half
-OPTION_VALUE_FULL_VID=Full (Video)
-OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
-
-OPTION_VALUE_AUTO=Auto
-OPTION_VALUE_SEC=Second
-OPTION_VALUE_SECS=Seconds
-
-OPTION_VALUE_PLAIN=Plain
-OPTION_VALUE_OLINE1=OLine1
-OPTION_VALUE_OLINE2=OLine2
-
-OPTION_VALUE_SIMPLE=Simple
-OPTION_VALUE_ZOOM=Zoom
-OPTION_VALUE_SLIDE=Slide
-OPTION_VALUE_BALL=Ball
-OPTION_VALUE_SHIFT=Shift
-
-OPTION_VALUE_EURO=Euro
-OPTION_VALUE_JAPAN=Japan
-OPTION_VALUE_AMERICAN=American
-
-OPTION_VALUE_BLUE=Blue
-OPTION_VALUE_GREEN=Green
-OPTION_VALUE_PINK=Pink
-OPTION_VALUE_RED=Red
-OPTION_VALUE_VIOLET=Violet
-OPTION_VALUE_ORANGE=Orange
-OPTION_VALUE_YELLOW=Yellow
-OPTION_VALUE_BROWN=Brown
-OPTION_VALUE_BLACK=Black
-
-OPTION_VALUE_SING=Sing
-OPTION_VALUE_SELECT_PLAYERS=Select Players
-OPTION_VALUE_OPEN_MENU=Open Menu
-
-OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
-OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
+;TODO: OPTION_VALUE_CATALAN=Catalan
+;TODO: OPTION_VALUE_CROATIAN=Croatian
+;TODO: OPTION_VALUE_CZECH=Czech
+;TODO: OPTION_VALUE_DANISH=Danish
+;TODO: OPTION_VALUE_DUTCH=Dutch
+;TODO: OPTION_VALUE_ENGLISH=English
+;TODO: OPTION_VALUE_EUSKARA=Euskara
+;TODO: OPTION_VALUE_FINNISH=Finnish
+;TODO: OPTION_VALUE_FRENCH=French
+;TODO: OPTION_VALUE_GERMAN=German
+;TODO: OPTION_VALUE_GREEK=Greek
+;TODO: OPTION_VALUE_HUNGARIAN=Hungarian
+;TODO: OPTION_VALUE_ICELANDIC=Icelandic
+;TODO: OPTION_VALUE_ITALIAN=Italian
+;TODO: OPTION_VALUE_JAPANESE=Japanese
+;TODO: OPTION_VALUE_LUXEMBOURGISH=Luxembourgish
+;TODO: OPTION_VALUE_NORWEGIAN=Norwegian
+;TODO: OPTION_VALUE_POLISH=Polish
+;TODO: OPTION_VALUE_PORTUGUESE=Portuguese
+;TODO: OPTION_VALUE_SERBIAN=Serbian
+;TODO: OPTION_VALUE_SLOVAK=Slovak
+;TODO: OPTION_VALUE_SLOVENIAN=Slovenian
+;TODO: OPTION_VALUE_SPANISH=Spanish
+;TODO: OPTION_VALUE_SWEDISH=Swedish
+
+;TODO: OPTION_VALUE_EASY=Easy
+;TODO: OPTION_VALUE_MEDIUM=Medium
+;TODO: OPTION_VALUE_HARD=Hard
+
+;TODO: OPTION_VALUE_ON=On
+;TODO: OPTION_VALUE_OFF=Off
+
+;TODO: OPTION_VALUE_EDITION=Edition
+;TODO: OPTION_VALUE_GENRE=Genre
+;TODO: OPTION_VALUE_LANGUAGE=Language
+;TODO: OPTION_VALUE_FOLDER=Folder
+;TODO: OPTION_VALUE_TITLE=Title
+;TODO: OPTION_VALUE_ARTIST=Artist
+;TODO: OPTION_VALUE_TITLE2=Title2
+;TODO: OPTION_VALUE_ARTIST2=Artist2
+
+;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video
+
+;TODO: OPTION_VALUE_SMALL=Small
+;TODO: OPTION_VALUE_BIG=Big
+
+;TODO: OPTION_VALUE_HALF=Half
+;TODO: OPTION_VALUE_FULL_VID=Full (Video)
+;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video)
+
+;TODO: OPTION_VALUE_AUTO=Auto
+;TODO: OPTION_VALUE_SEC=Second
+;TODO: OPTION_VALUE_SECS=Seconds
+
+;TODO: OPTION_VALUE_PLAIN=Plain
+;TODO: OPTION_VALUE_OLINE1=OLine1
+;TODO: OPTION_VALUE_OLINE2=OLine2
+
+;TODO: OPTION_VALUE_SIMPLE=Simple
+;TODO: OPTION_VALUE_ZOOM=Zoom
+;TODO: OPTION_VALUE_SLIDE=Slide
+;TODO: OPTION_VALUE_BALL=Ball
+;TODO: OPTION_VALUE_SHIFT=Shift
+
+;TODO: OPTION_VALUE_EURO=Euro
+;TODO: OPTION_VALUE_JAPAN=Japan
+;TODO: OPTION_VALUE_AMERICAN=American
+
+;TODO: OPTION_VALUE_BLUE=Blue
+;TODO: OPTION_VALUE_GREEN=Green
+;TODO: OPTION_VALUE_PINK=Pink
+;TODO: OPTION_VALUE_RED=Red
+;TODO: OPTION_VALUE_VIOLET=Violet
+;TODO: OPTION_VALUE_ORANGE=Orange
+;TODO: OPTION_VALUE_YELLOW=Yellow
+;TODO: OPTION_VALUE_BROWN=Brown
+;TODO: OPTION_VALUE_BLACK=Black
+
+;TODO: OPTION_VALUE_SING=Sing
+;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players
+;TODO: OPTION_VALUE_OPEN_MENU=Open Menu
+
+;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor
+;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor
SING_LOADING=Laddar...
@@ -168,7 +177,6 @@ SING_OPTIONS_ADVANCED_SCREENFADE=Skärmtoning
SING_OPTIONS_ADVANCED_LOADANIMATION=Laddningsanimering
SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Säkerhetsfråga
SING_OPTIONS_ADVANCED_LINEBONUS=Radbonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
SING_OPTIONS_ADVANCED_ONSONGCLICK=Vid LÃ¥tval
SING_OPTIONS_ADVANCED_PARTYPOPUP=Automatisk Partymeny
@@ -298,7 +306,6 @@ PARTY_PLAYLIST=Spellistläge
PARTY_PLAYLIST_ALL=Alla låtar
PARTY_PLAYLIST_CATEGORY=Mapp
PARTY_PLAYLIST_PLAYLIST=Spellista
-PARTY_ROUNDS=Omgångar
PARTY_TEAMS=Lag
PARTY_TEAMS_PLAYER1=Spelare Lag1
PARTY_TEAMS_PLAYER2=Spelare Lag2
@@ -312,7 +319,19 @@ PARTY_OPTIONS_WHEREAMI=Partyinställningar
PARTY_PLAYER_DESC=skriv spelar- och lagnamn!
PARTY_PLAYER_WHEREAMI=Partynamn
PARTY_PLAYER_ENTER_NAME=skriv namn
-PARTY_PLAYER_LEGEND_CONTINUE=starta partyspel
+
+
+;TODO: PARTY_ROUNDS_DESC=select which modes you want to play
+;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds
+PARTY_ROUNDS_LEGEND_CONTINUE=starta partyspel
+;TODO: PARTY_ROUNDCOUNT=number of rounds
+;TODO: PARTY_SELECTMODE1=mode round 1
+;TODO: PARTY_SELECTMODE2=mode round 2
+;TODO: PARTY_SELECTMODE3=mode round 3
+;TODO: PARTY_SELECTMODE4=mode round 4
+;TODO: PARTY_SELECTMODE5=mode round 5
+;TODO: PARTY_SELECTMODE6=mode round 6
+;TODO: PARTY_SELECTMODE7=mode round 7
PARTY_ROUND_DESC=nästa spelare till mikrofonerna
PARTY_ROUND_WHEREAMI=Party Nästa omgång
@@ -339,19 +358,23 @@ PARTY_DISMISSED=Avbröt!
PARTY_SCORE_WINS=%s
PARTY_SCORE_WINS2=vann!
-PLUGIN_HDL_NAME=HÃ¥ll god ton
-PLUGIN_HDL_DESC=Bli inte sämre än vad markeringen på omdömesmätaren visar.
-PLUGIN_UNTIL5000_NAME=Till 5000
-PLUGIN_UNTIL5000_DESC=Den som först får 5000 poäng vinner matchen.
+;TODO: MODE_RANDOM_NAME=Random Mode
+;TODO: MODE_RANDOM_DESC=One mode will be choosen randomly
+
+MODE_HDL_NAME=HÃ¥ll god ton
+MODE_HDL_DESC=Bli inte sämre än vad markeringen på omdömesmätaren visar.
+
+MODE_5000POINTS_NAME=Till 5000
+MODE_5000POINTS_DESC=Den som först får 5000 poäng vinner matchen.
-PLUGIN_DUELL_NAME=Duell
-PLUGIN_DUELL_DESC=Sjung en duett till 10000 poäng.
+MODE_DUEL_NAME=Duell
+MODE_DUEL_DESC=Sjung en duett till 10000 poäng.
-PLUGIN_TEAMDUELL_NAME=Lagduell
-PLUGIN_TEAMDUELL_DESC=Skicka micken!
+MODE_TEAMDUEL_NAME=Lagduell
+MODE_TEAMDUEL_DESC=Skicka micken!
-PLUGIN_BLIND_NAME=Blindläge
-PLUGIN_BLIND_DESC=Duell utan att se tonerna.
+MODE_BLIND_NAME=Blindläge
+MODE_BLIND_DESC=Duell utan att se tonerna.
STAT_MAIN=Statistik
STAT_MAIN_DESC=Allmänn
@@ -387,14 +410,32 @@ STAT_DESC_BANDS=Populäraste artisterna
STAT_DESC_BANDS_REVERSED=Minst populära artisterna
STAT_FORMAT_BANDS=%0:s \n %1:dx sjungna
+;TODO: SCREENSHOT_SAVED=Screenshot saved
+;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot
+
+;TODO: INFO_FILE_SAVED=File saved
+;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file
+;TODO: ERROR_FILE_NOT_FOUND=File not found
+
+;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8?
+;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected
+
MSG_ERROR_TITLE=Fel
+;TODO: MSG_INFO_TITLE=Information
MSG_QUESTION_TITLE=Fråga
MSG_QUIT_USDX=Vill du verkligen avsluta UltraStar?
MSG_END_PARTY=Vill du verkligen avsluta partyläge?
+
ERROR_NO_SONGS=Inga låtar laddade
ERROR_NO_PLUGINS=Inga insticksprogram laddade
+;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup
+;TODO: ERROR_CAN_NOT_START_PARTY=an error occurred starting the party game
ERROR_CORRUPT_SONG=LÃ¥ten kunde inte laddas.
ERROR_CORRUPT_SONG_FILE_NOT_FOUND=LÃ¥ten kunde inte laddas: Filen kunde inte hittas
ERROR_CORRUPT_SONG_NO_NOTES=LÃ¥ten kunde inte laddas: Kan inte hitta toner
ERROR_CORRUPT_SONG_NO_BREAKS=LÃ¥ten kunde inte laddas: Kan inte hitta radbrytningar
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Låten kunde inte laddas: Fel på rad %0:d \ No newline at end of file
+ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Låten kunde inte laddas: Fel på rad %0:d
+;TODO: ERROR_NO_EDITOR=This feature is not available on Linux/Mac
+;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options
+;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options
+;UNUSED: PARTY_ROUNDS=Omgångar
diff --git a/us_maker_edition/game/languages/old/Danish.ini b/us_maker_edition/game/languages/old/Danish.ini
deleted file mode 100644
index 39d0379d..00000000
--- a/us_maker_edition/game/languages/old/Danish.ini
+++ /dev/null
@@ -1,297 +0,0 @@
-[Text]
-SING_LOADING=Loader...
-
-SING_CHOOSE_MODE=Vælg modus
-SING_SING=Syng
-SING_SING_DESC=Hurtigt spil: Syng solo eller duet
-
-SING_MULTI=Fest
-SING_MULTI_DESC=Syng i fest modus
-
-SING_TOOLS=Værktøjer
-
-SING_STATS=stats
-SING_STATS_DESC=Se statestikker
-
-SING_EDITOR=editor
-SING_EDITOR_DESC=Lav dine egne sange
-SING_GAME_OPTIONS=Spil Indstillinger
-SING_GAME_OPTIONS_DESC=Ændre spil Indstillinger
-
-SING_EXIT=Forlad
-SING_EXIT_DESC=Forlad spillet
-
-SING_OPTIONS=Indstillinger
-SING_OPTIONS_DESC=Ændre Instillinger
-SING_OPTIONS_WHEREAMI=Indstillinger
-
-SING_OPTIONS_GAME=Spil
-SING_OPTIONS_GRAPHICS=Grafik
-SING_OPTIONS_SOUND=Lyd
-SING_OPTIONS_LYRICS=Tekster
-SING_OPTIONS_THEMES=Temaer
-SING_OPTIONS_RECORD=Optag
-SING_OPTIONS_ADVANCED=Advanceret
-SING_OPTIONS_EXIT=Tilbage
-
-SING_OPTIONS_GAME_WHEREAMI=Spil Indstillinger
-SING_OPTIONS_GAME_DESC=Generelle Spil Indstillinger
-SING_OPTIONS_GAME_PLAYERS=Spillere
-SING_OPTIONS_GAME_DIFFICULTY=Sværhedsgrad
-SING_OPTIONS_GAME_LANGUAGE=Sprog
-SING_OPTIONS_GAME_TABS=Tabs
-SING_OPTIONS_GAME_SORTING=Sorting
-SING_OPTIONS_GAME_DEBUG=Debug
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Grafik Indstillinger
-SING_OPTIONS_GRAPHICS_DESC=Grafik Indstillinger
-SING_OPTIONS_GRAPHICS_RESOLUTION=Opløsning
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Fuldskærm
-SING_OPTIONS_GRAPHICS_DEPTH=Farve dybte
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop
-SING_OPTIONS_GRAPHICS_LINEBONUS=Linie Bonus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Film Størrelse
-
-SING_OPTIONS_SOUND_WHEREAMI=Lyd Indstillinger
-SING_OPTIONS_SOUND_DESC=Lyd Indstillinger
-SING_OPTIONS_SOUND_MIC_BOOST=Mikrofon Boost
-SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist
-SING_OPTIONS_SOUND_BEAT_CLICK=Beat click
-SING_OPTIONS_SOUND_THRESHOLD=Tærskel
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2 Spiller modus
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Frosmag Volume
-SING_OPTIONS_SOUND_PREVIEWFADING=Forsmag Fader
-
-SING_OPTIONS_LYRICS_WHEREAMI=Tekst Indstillinger
-SING_OPTIONS_LYRICS_DESC=Tekst Indstillinger
-SING_OPTIONS_LYRICS_FONT=Tekst Type
-SING_OPTIONS_LYRICS_EFFECT=Effekt
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmization
-
-SING_OPTIONS_THEMES_WHEREAMI=Tema Indstillinger
-SING_OPTIONS_THEMES_DESC=Tema og Skin Indstillinger
-SING_OPTIONS_THEMES_THEME=Tema
-SING_OPTIONS_THEMES_SKIN=Skin
-SING_OPTIONS_THEMES_COLOR=Farve
-
-SING_OPTIONS_RECORD_WHEREAMI=Optagelses Indstillinger
-SING_OPTIONS_RECORD_DESC=Mikrofon Indstillinger
-SING_OPTIONS_RECORD_CARD=Lydkort
-SING_OPTIONS_RECORD_INPUT=Input
-SING_OPTIONS_RECORD_CHANNEL=Kanal
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Advancerede Indstillinger
-SING_OPTIONS_ADVANCED_DESC=Advancerede Indstillinger
-SING_OPTIONS_ADVANCED_EFFECTSING=Sang Effekter
-SING_OPTIONS_ADVANCED_SCREENFADE=Skærm Fading
-SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Savety Questions
-SING_OPTIONS_ADVANCED_LINEBONUS=Linie Bonus
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Efter sang valg
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Festmodus
-
-SING_LEGEND_SELECT=Vælg
-SING_LEGEND_NAVIGATE=Naviger
-SING_LEGEND_CONTINUE=Fortsæt
-SING_LEGEND_ESC=Tilbage
-
-SING_PLAYER_DESC=Skriv Spiller Navn/e
-SING_PLAYER_WHEREAMI=Spiller Navne
-SING_PLAYER_ENTER_NAME=Skriv navn
-
-SING_DIFFICULTY_DESC=Vælg Sværhedsgrad
-SING_DIFFICULTY_WHEREAMI=Sværhedsgrad
-SING_DIFFICULTY_CONTINUE=Til sang valg
-SING_EASY=Let
-SING_MEDIUM=Normal
-SING_HARD=Svær
-
-SING_SONG_SELECTION_DESC=Vælg Din Sang
-SING_SONG_SELECTION_WHEREAMI=Sang Valg
-SING_SONG_SELECTION_GOTO=Gå Til ..
-SING_SONG_SELECTION=Sang Valg
-SING_SONG_SELECTION_MENU=Menu
-SING_SONG_SELECTION_PLAYLIST=Afspilningsliste
-SING_SONGS_IN_CAT=Songs
-PLAYLIST_CATTEXT=Playlist: %s
-
-SING_TIME=TID
-SING_TOTAL=Total
-SING_MODE=Syng Solo
-SING_NOTES=Noder
-SING_GOLDEN_NOTES=Gyldne Noder
-SING_PHRASE_BONUS=Linie Bonus
-
-SING_MENU=Hoved Menu
-
-SONG_SCORE=Sang score
-SONG_SCORE_WHEREAMI=Score
-
-SING_SCORE_TONE_DEAF=Tone Døv!
-SING_SCORE_AMATEUR=Amatør!
-SING_SCORE_RISING_STAR=Aspirende Stjerne
-SING_SCORE_LEAD_SINGER=Forsanger
-SING_SCORE_HIT_ARTIST=Etableret Stjerne
-SING_SCORE_SUPERSTAR=Super Stjerne
-SING_SCORE_ULTRASTAR=Ultra Stjerne
-
-SING_TOP_5_CHARTS=Top 5 Spillere
-SING_TOP_5_CHARTS_WHEREAMI=Top 5
-SING_TOP_5_CHARTS_CONTINUE=Til Sang Valg
-
-POPUP_PERFECT=Perfekt!
-POPUP_AWESOME=Utroligt!
-POPUP_GREAT=Meget Godt!
-POPUP_GOOD=Godt!
-POPUP_NOTBAD=Ikke dårligt!
-POPUP_BAD=Dårligt!
-POPUP_POOR=Meget Dårligt!
-POPUP_AWFUL=Ringe!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= og
-
-SONG_MENU_NAME_MAIN=Sang Menu
-SONG_MENU_PLAY=Syng
-SONG_MENU_CHANGEPLAYERS=Skift Spillere
-SONG_MENU_EDIT=Ændre
-SONG_MENU_MODI=Sing a Modi
-SONG_MENU_CANCEL=Annuller
-
-SONG_MENU_NAME_PLAYLIST=Sang Menu
-SONG_MENU_PLAYLIST_ADD=Tilføj Sang
-SONG_MENU_PLAYLIST_DEL=Slet Sang
-
-SONG_MENU_NAME_PLAYLIST_ADD=Tilføj Song
-SONG_MENU_PLAYLIST_ADD_NEW=Til Ny Afspilningsliste
-SONG_MENU_PLAYLIST_ADD_EXISTING=Til Eksisterende Afspilningsliste
-SONG_MENU_PLAYLIST_NOEXISTING=Ingen Tilgængelige Afspilningslister
-
-SONG_MENU_NAME_PLAYLIST_NEW=Ny Afspilningsliste
-SONG_MENU_PLAYLIST_NEW_CREATE=Skab
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Unavngiven
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Vil Du Virkelig Slette?
-SONG_MENU_YES=Ja
-SONG_MENU_NO=Nej
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Åben Afspilningsliste
-SONG_MENU_PLAYLIST_LOAD=Åben
-SONG_MENU_PLAYLIST_DELCURRENT=Slet Nuværende Afspilningsliste
-
-SONG_MENU_NAME_PLAYLIST_DEL=Slet Afspilningslisten?
-
-SONG_MENU_NAME_PARTY_MAIN=Fest Menu
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=Brug Jokeren
-
-SONG_JUMPTO_DESC=Søg Sang
-SONG_JUMPTO_TYPE_DESC=Søg Efter:
-SONG_JUMPTO_TYPE1=Alle
-SONG_JUMPTO_TYPE2=Titel
-SONG_JUMPTO_TYPE3=Kunstner
-SONG_JUMPTO_SONGSFOUND=%d Sang(e) fundet!
-SONG_JUMPTO_NOSONGSFOUND=Ingen Sange Fundet
-SONG_JUMPTO_HELP=Skriv Teksten Du Vil Søge Efter
-SONG_JUMPTO_CATTEXT=Søg Efter: %s
-
-PARTY_MODE=Fest modus
-PARTY_DIFFICULTY=Sværhedsgrad
-PARTY_PLAYLIST=Afspilningsliste modus
-PARTY_PLAYLIST_ALL=Alle sange
-PARTY_PLAYLIST_CATEGORY=Mappe
-PARTY_PLAYLIST_PLAYLIST=Afspilningsliste
-PARTY_ROUNDS=Runder
-PARTY_TEAMS=Teams
-PARTY_TEAMS_PLAYER1=Spiller Team 1
-PARTY_TEAMS_PLAYER2=Spiller Team 2
-PARTY_TEAMS_PLAYER3=Spiller Team 3
-
-PARTY_LEGEND_CONTINUE=Fortsæt
-
-PARTY_OPTIONS_DESC=Indstillinger for Fest spil
-PARTY_OPTIONS_WHEREAMI=Fest Indstillinger
-
-PARTY_PLAYER_DESC=Skriv Spiller of Team Navn!
-PARTY_PLAYER_WHEREAMI=Fest navne
-PARTY_PLAYER_ENTER_NAME=Skriv Navne
-PARTY_PLAYER_LEGEND_CONTINUE=Start Fest Spil
-
-PARTY_ROUND_DESC=Næste spillere til mikrofonerne
-PARTY_ROUND_WHEREAMI=Fest Næste runde
-PARTY_ROUND_LEGEND_CONTINUE=Start runde
-
-PARTY_SONG_WHEREAMI=Fest Sang-Valg
-PARTY_SONG_LEGEND_CONTINUE=Syng
-PARTY_SONG_MENU=Fest menu
-
-PARTY_SCORE_DESC=Sidste Rundes Score
-PARTY_SCORE_WHEREAMI=Fest Point
-
-PARTY_WIN_DESC=Vinderen Af Fest Spillet
-PARTY_WIN_WHEREAMI=Fest Vinder
-PARTY_WIN_LEGEND_CONTINUE=Tilbage til Hoved Menuen
-
-PARTY_ROUND=Runde
-PARTY_ROUND_WINNER=vinder
-PARTY_NOTPLAYEDYET=Ikke spillet endnu
-PARTY_NOBODY=Ingen
-NEXT_ROUND=Næste Runde:
-
-PARTY_DISMISSED=Afsluttet!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=Vinder!
-
-PLUGIN_HDL_NAME=Hold Linien
-PLUGIN_HDL_DESC=Få ikke værrer end pilen på skalaen peger på
-
-PLUGIN_UNTIL5000_NAME=Until 5000
-PLUGIN_UNTIL5000_DESC=Hvem får 5000 point først vinder the kampen.
-
-PLUGIN_DUELL_NAME=Duell
-PLUGIN_DUELL_DESC=Syng en duel intil 10000 point.
-
-PLUGIN_BLIND_NAME=Blind Modus
-PLUGIN_BLIND_DESC=Duel med usynlige noder.
-
-STAT_MAIN=Statestikker
-STAT_MAIN_DESC=Generelle
-STAT_MAIN_WHEREAMI=Statestikker
-
-STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s.
-STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points.
-
-STAT_DETAIL=Statestikker
-STAT_DETAIL_WHEREAMI=Detaljerede Statestikker
-
-STAT_NEXT=Næste Side
-STAT_PREV=Tidligere Side
-STAT_REVERSE=Omvendt Orden
-STAT_PAGE=Seite %0:d of %1:d Pages\n (%2:d of %3:d Entrys)
-
-STAT_DESC_SCORES=HighScore
-STAT_DESC_SCORES_REVERSED=LowScore
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Bedste Sangere
-STAT_DESC_SINGERS_REVERSED=Værste Sangere
-STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d
-
-STAT_DESC_SONGS=Mest Populære Sange
-STAT_DESC_SONGS_REVERSED=Mindst Populære Sange
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung
-
-STAT_DESC_BANDS=Mest Populære Bands
-STAT_DESC_BANDS_REVERSED=Mindst Populære Bands
-STAT_FORMAT_BANDS=%0:s \n %1:dx Sung
-
-MSG_ERROR_TITLE=Fejl
-MSG_QUESTION_TITLE=Spørgsmål
-MSG_QUIT_USDX=Vil du virkelig forlade UltraStar?
-MSG_END_PARTY=Vil du virkelig forlade fest Modus?
-ERROR_NO_SONGS=Ingen Sange hentet
-ERROR_NO_PLUGINS=Igen Plugins hentet
-ERROR_CORRUPT_SONG=Sangen kunne ikke hentes. \ No newline at end of file
diff --git a/us_maker_edition/game/languages/old/French.ini b/us_maker_edition/game/languages/old/French.ini
deleted file mode 100644
index 8a841fab..00000000
--- a/us_maker_edition/game/languages/old/French.ini
+++ /dev/null
@@ -1,310 +0,0 @@
-[Text]
-SING_LOADING=Chargement...
-
-SING_CHOOSE_MODE=Choisir un mode
-SING_SING=Solo
-SING_SING_DESC=Chanter
-
-SING_MULTI=Multi
-SING_MULTI_DESC=Chanter à plusieurs
-
-SING_TOOLS=Outils
-
-SING_STATS=Statistiques
-SING_STATS_DESC=Consulter les statistiques
-
-SING_EDITOR=Éditeur
-SING_EDITOR_DESC=Créer vos propre chansons
-
-SING_GAME_OPTIONS=Options
-SING_GAME_OPTIONS_DESC=Modifier les paramètres du jeu
-
-SING_EXIT=Quitter
-SING_EXIT_DESC=Quitter le jeu
-
-SING_OPTIONS=Options
-SING_OPTIONS_DESC=Changer les paramètres
-SING_OPTIONS_WHEREAMI=Options
-
-SING_OPTIONS_GAME=Jeu
-SING_OPTIONS_GRAPHICS=Graphismes
-SING_OPTIONS_SOUND=Audio
-SING_OPTIONS_LYRICS=Paroles
-SING_OPTIONS_THEMES=Thèmes
-SING_OPTIONS_RECORD=Micros
-SING_OPTIONS_ADVANCED=Avancé
-SING_OPTIONS_EXIT=Retour
-
-SING_OPTIONS_GAME_WHEREAMI=Options de jeu
-SING_OPTIONS_GAME_DESC=Options générales de jeu
-SING_OPTIONS_GAME_PLAYERS=Joueurs
-SING_OPTIONS_GAME_DIFFICULTY=Difficulté
-SING_OPTIONS_GAME_LANGUAGE=Langue
-SING_OPTIONS_GAME_TABS=Dossier
-SING_OPTIONS_GAME_SORTING=Tri
-SING_OPTIONS_GAME_DEBUG=Débogage
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Options graphiques
-SING_OPTIONS_GRAPHICS_DESC=Paramètres des graphismes
-SING_OPTIONS_GRAPHICS_RESOLUTION=Résolution
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Plein écran
-SING_OPTIONS_GRAPHICS_DEPTH=Couleurs
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscope
-SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de phrases
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Taille vidéo
-
-SING_OPTIONS_SOUND_WHEREAMI=Options de son
-SING_OPTIONS_SOUND_DESC=Paramètres de son
-SING_OPTIONS_SOUND_MIC_BOOST=Amplif. mic.
-SING_OPTIONS_SOUND_CLICK_ASSIST=Clics d'aide
-SING_OPTIONS_SOUND_BEAT_CLICK=Métronome
-SING_OPTIONS_SOUND_THRESHOLD=Suppression bruit
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mode 2 joueurs
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Prévis. volume
-SING_OPTIONS_SOUND_PREVIEWFADING=Prévis. baisse
-
-SING_OPTIONS_LYRICS_WHEREAMI=Options de paroles
-SING_OPTIONS_LYRICS_DESC=Paramètres de paroles
-SING_OPTIONS_LYRICS_FONT=Caractères
-SING_OPTIONS_LYRICS_EFFECT=Effet
-SING_OPTIONS_LYRICS_SOLMIZATION=Afficher gamme
-
-SING_OPTIONS_THEMES_WHEREAMI=Options des thèmes
-SING_OPTIONS_THEMES_DESC=Paramètres des thèmes
-SING_OPTIONS_THEMES_THEME=Thèmes
-SING_OPTIONS_THEMES_SKIN=Aspect
-SING_OPTIONS_THEMES_COLOR=Couleur
-
-SING_OPTIONS_RECORD_WHEREAMI=Options d'enregistrement
-SING_OPTIONS_RECORD_DESC=Paramètres des micros
-SING_OPTIONS_RECORD_CARD=Carte son
-SING_OPTIONS_RECORD_INPUT=Entrée
-SING_OPTIONS_RECORD_CHANNEL=Canal
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Options avancées
-SING_OPTIONS_ADVANCED_DESC=Paramètres avancés
-SING_OPTIONS_ADVANCED_EFFECTSING=Effet de chant
-SING_OPTIONS_ADVANCED_SCREENFADE=Fondu écran
-SING_OPTIONS_ADVANCED_LOADANIMATION=Charge animation
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirm sup.
-SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de phrases
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Compteur de titres chantés
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Choix ap. chanson
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu multi auto
-
-SING_EDIT=Éditeur
-SING_EDIT_MENU_DESCRIPTION=Créer vos propre chansons
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importer texte à une dossier de midi file
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=Retour
-SING_EDIT_BUTTON_CONVERT=Importer
-SING_EDIT_BUTTON_EXIT=Retour
-
-SING_EDIT_NAVIGATE=Naviguer
-SING_EDIT_SELECT=Valider
-SING_EDIT_EXIT=Retour
-
-SING_LEGEND_SELECT=Valider
-SING_LEGEND_NAVIGATE=Naviguer
-SING_LEGEND_CONTINUE=Valider
-SING_LEGEND_ESC=Retour
-
-SING_PLAYER_DESC=Entrer le nom du joueur
-SING_PLAYER_WHEREAMI=Nom du joueur
-SING_PLAYER_ENTER_NAME=Modifier
-
-SING_DIFFICULTY_DESC=Choisir le niveau de difficulté
-SING_DIFFICULTY_WHEREAMI=Difficulté
-SING_DIFFICULTY_CONTINUE=Valider
-SING_EASY=Facile
-SING_MEDIUM=Moyen
-SING_HARD=Difficile
-
-SING_SONG_SELECTION_DESC=Choisir une chanson
-SING_SONG_SELECTION_WHEREAMI=Sélection du titre
-SING_SONG_SELECTION_GOTO=Atteindre
-SING_SONG_SELECTION=Choix de chanson
-SING_SONG_SELECTION_MENU=Menu
-SING_SONG_SELECTION_PLAYLIST=Playlist
-SING_SONGS_IN_CAT=Chansons
-PLAYLIST_CATTEXT=Playlist: %s
-
-SING_TIME=TEMPS
-SING_TOTAL=Total
-SING_MODE=Mode
-SING_NOTES=Notes
-SING_GOLDEN_NOTES=Notes en or
-SING_PHRASE_BONUS=Bonus de phrases
-
-SING_MENU=Menu principal
-
-SONG_SCORE=Score
-SONG_SCORE_WHEREAMI=Points
-
-SING_SCORE_TONE_DEAF=Casserole
-SING_SCORE_AMATEUR=Amateur
-SING_SCORE_RISING_STAR=Star en herbe
-SING_SCORE_LEAD_SINGER=Artiste
-SING_SCORE_HIT_ARTIST=Révélation
-SING_SCORE_SUPERSTAR=Superstar
-SING_SCORE_ULTRASTAR=Ultrastar
-
-SING_TOP_5_CHARTS=Top 5
-SING_TOP_5_CHARTS_WHEREAMI=Meilleurs joueurs
-SING_TOP_5_CHARTS_CONTINUE=Continuer
-
-POPUP_PERFECT=Parfait !
-POPUP_AWESOME=Cool !
-POPUP_GREAT=Grandiose !
-POPUP_GOOD=Bien !
-POPUP_NOTBAD=O.K. !
-POPUP_BAD=Pas terrible !
-POPUP_POOR=Mauvais !
-POPUP_AWFUL=Nul !
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= et
-
-SONG_MENU_NAME_MAIN=Menu
-SONG_MENU_PLAY=Chanter
-SONG_MENU_CHANGEPLAYERS=Changer de joueur
-SONG_MENU_EDIT=Éditeur
-SONG_MENU_MODI=Chanter un mode
-SONG_MENU_CANCEL=Annuler
-
-SONG_MENU_NAME_PLAYLIST=Menu
-SONG_MENU_PLAYLIST_ADD=Ajouter une chanson
-SONG_MENU_PLAYLIST_DEL=Supprimer la chanson
-
-SONG_MENU_NAME_PLAYLIST_ADD=Ajouter chanson
-SONG_MENU_PLAYLIST_ADD_NEW=À la nouvelle playlist
-SONG_MENU_PLAYLIST_ADD_EXISTING=Ajouter à la playlist
-SONG_MENU_PLAYLIST_NOEXISTING=Pas de playlist
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nouvelle playlist
-SONG_MENU_PLAYLIST_NEW_CREATE=Créer
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Sans-nom
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Supprimer ?
-SONG_MENU_YES=Oui
-SONG_MENU_NO=Non
-
-SONG_MENU_NAME_PLAYLIST_DEL=Supprimer la playlist ?
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Ouvrir une playlist
-SONG_MENU_PLAYLIST_LOAD=Ouvrir
-SONG_MENU_PLAYLIST_DELCURRENT=Supprimer la playlist actuel
-
-SONG_MENU_NAME_PARTY_MAIN=Menu
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=Joker
-
-SONG_JUMPTO_DESC=Rechercher
-SONG_JUMPTO_TYPE_DESC=Recherche :
-SONG_JUMPTO_TYPE1=Tout
-SONG_JUMPTO_TYPE2=Titre
-SONG_JUMPTO_TYPE3=Artiste
-SONG_JUMPTO_SONGSFOUND=%d Chanson(s) trouvée(s)
-SONG_JUMPTO_NOSONGSFOUND=Aucune chanson trouvée
-SONG_JUMPTO_HELP=Entrer le texte à rechercher
-SONG_JUMPTO_CATTEXT=Recherche: %s
-
-PARTY_MODE=Mode multi
-PARTY_DIFFICULTY=Difficulté
-PARTY_PLAYLIST=Playlist
-PARTY_PLAYLIST_ALL=Toutes les chansons
-PARTY_PLAYLIST_CATEGORY=Dossier
-PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Nbre manches
-PARTY_TEAMS=Nbre équipes
-PARTY_TEAMS_PLAYER1=Joueur(s) équipe 1
-PARTY_TEAMS_PLAYER2=Joueur(s) équipe 2
-PARTY_TEAMS_PLAYER3=Joueur(s) équipe 3
-
-PARTY_LEGEND_CONTINUE=Suivant
-
-PARTY_OPTIONS_DESC=Paramètres du mode multi
-PARTY_OPTIONS_WHEREAMI=Options du mode multi
-
-PARTY_PLAYER_DESC=Entrer le nom des équipes et des joueurs
-PARTY_PLAYER_WHEREAMI=Mode multi: Equipes
-PARTY_PLAYER_ENTER_NAME=Modifier
-PARTY_PLAYER_LEGEND_CONTINUE=Valider
-
-PARTY_ROUND_DESC=Joueurs suivants à vos micros !
-PARTY_ROUND_WHEREAMI=Mode multi: Manche suivante
-PARTY_ROUND_LEGEND_CONTINUE=Commencer
-
-PARTY_SONG_WHEREAMI=Mode multi: Choix de la chanson
-PARTY_SONG_LEGEND_CONTINUE=Chanter
-PARTY_SONG_MENU=Menu
-
-PARTY_SCORE_DESC=Score de la manche
-PARTY_SCORE_WHEREAMI=Mode multi: Score
-
-PARTY_WIN_DESC=Gagnant de la partie
-PARTY_WIN_WHEREAMI=Mode multi: Gagnant
-PARTY_WIN_LEGEND_CONTINUE=Retour au menu principal
-
-PARTY_ROUND=Manche
-PARTY_ROUND_WINNER=Gagnant
-PARTY_NOTPLAYEDYET=-
-PARTY_NOBODY=Personne ne
-NEXT_ROUND=Manche suivante:
-
-PARTY_DISMISSED=Rétrogradé
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=l'emporte !
-
-PLUGIN_HDL_NAME=Tiens la barre
-PLUGIN_HDL_DESC=Maintiens la jauge dans le secteur indiqué
-
-PLUGIN_UNTIL5000_NAME=A 5000
-PLUGIN_UNTIL5000_DESC=Le 1er qui atteint 5000 points remporte la manche
-
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=Le meilleur score remporte la manche
-
-PLUGIN_BLIND_NAME=A l'aveugle
-PLUGIN_BLIND_DESC=Obtiens le meilleur score sans regarder l'écran.
-
-STAT_MAIN=Statistiques
-STAT_MAIN_DESC=Général
-STAT_MAIN_WHEREAMI=Statistiques
-
-STAT_OVERVIEW_INTRO=Statistiques d'%0:s \n Dernière réinitialisation le %1:.2d.%2:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d chansons (%3:d avec vidéo)\n%1:d ont déjà été chantées une fois, %2:d pas encore. \n\n La chanson la plus chantée est %5:s de %4:s.
-STAT_OVERVIEW_PLAYER=%0:d joueurs différents ont chantés depuis la dernière réinitialisation . \n\n Le meilleur joueur est %1:s avec %2:d points. \n Meilleur score, %4:d, atteint par %3:s.
-
-STAT_DETAIL=Statistiques
-STAT_DETAIL_WHEREAMI=Statistiques détaillées
-
-STAT_NEXT=Page suiv.
-STAT_PREV=Page préc.
-STAT_REVERSE=Inverser
-STAT_PAGE=Page %0:d de %1:d \n (%2:d entrées sur %3:d)
-
-STAT_DESC_SCORES=Score
-STAT_DESC_SCORES_REVERSED=Pires scores
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Chanteurs
-STAT_DESC_SINGERS_REVERSED=Pires chanteurs
-STAT_FORMAT_SINGERS=%0:s \n Score moyen: %1:d
-
-STAT_DESC_SONGS=Chansons
-STAT_DESC_SONGS_REVERSED=Chansons impopulaires
-STAT_FORMAT_SONGS=%0:s - %1:s \n Chanté %2:dx
-
-STAT_DESC_BANDS=Artistes
-STAT_DESC_BANDS_REVERSED=Artistes impopulaires
-STAT_FORMAT_BANDS=%0:s \n Chansons chantées: %1:d
-
-MSG_ERROR_TITLE=Erreur
-MSG_QUESTION_TITLE=Confirmation
-MSG_QUIT_USDX=Quitter le jeu ?
-MSG_END_PARTY=Quitter la partie ?
-ERROR_NO_SONGS=Aucune chanson.
-ERROR_NO_PLUGINS=Aucun plugin.
-ERROR_CORRUPT_SONG=Impossible de charger la chanson. \ No newline at end of file
diff --git a/us_maker_edition/game/languages/old/Polish.ini b/us_maker_edition/game/languages/old/Polish.ini
deleted file mode 100644
index 74ced1d0..00000000
--- a/us_maker_edition/game/languages/old/Polish.ini
+++ /dev/null
@@ -1,304 +0,0 @@
-[Text]
-SING_LOADING=Wczytywanie...
-
-SING_CHOOSE_MODE=wybierz tryb
-SING_SING=œpiewaj
-SING_SING_DESC=œpiewaj solo lub w kilka osób
-
-SING_MULTI=impreza
-SING_MULTI_DESC=rozkrêæ imprezê!
-
-SING_TOOLS=narzêdzia
-
-SING_STATS=statystyki
-SING_STATS_DESC=zobacz statystyki
-
-SING_EDITOR=edytor
-SING_EDITOR_DESC=stwórz w³asne piosenki
-
-SING_GAME_OPTIONS=opcje
-SING_GAME_OPTIONS_DESC=zmieñ ustawienia
-
-SING_EXIT=wyjœcie
-SING_EXIT_DESC=wyjdŸ z gry
-
-SING_OPTIONS=opcje
-SING_OPTIONS_DESC=zmieñ ustawienia
-SING_OPTIONS_WHEREAMI=Opcje
-
-SING_OPTIONS_GAME=gra
-SING_OPTIONS_GRAPHICS=grafika
-SING_OPTIONS_SOUND=dŸwiêk
-SING_OPTIONS_LYRICS=s³owa
-SING_OPTIONS_THEMES=tematy
-SING_OPTIONS_RECORD=nagrywanie
-SING_OPTIONS_ADVANCED=zaawansowane
-SING_OPTIONS_EXIT=wstecz
-
-SING_OPTIONS_GAME_WHEREAMI=Opcje Gra
-SING_OPTIONS_GAME_DESC=opcje gry
-SING_OPTIONS_GAME_PLAYERS=IloϾ graczy
-SING_OPTIONS_GAME_DIFFICULTY=Poziom trudnoœci
-SING_OPTIONS_GAME_LANGUAGE=Jêzyk
-SING_OPTIONS_GAME_TABS=Zak³adki
-SING_OPTIONS_GAME_SORTING=Sortowanie
-SING_OPTIONS_GAME_DEBUG=Debug
-
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Opcje Grafika
-SING_OPTIONS_GAME_DESC=opcje gry
-SING_OPTIONS_GAME_PLAYERS=IloϾ graczy
-SING_OPTIONS_GAME_DIFFICULTY=Poziom trudnoœci
-SING_OPTIONS_GAME_LANGUAGE=Jêzyk
-SING_OPTIONS_GAME_TABS=Zak³adki
-SING_OPTIONS_GAME_SORTING=Sortowanie
-SING_OPTIONS_GAME_DEBUG=Debug
-
-SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus Linii
-
-SING_OPTIONS_SOUND_WHEREAMI=Opcje DŸwiêk
-SING_OPTIONS_SOUND_DESC=opcje dŸwiêku
-SING_OPTIONS_SOUND_MIC_BOOST=Podbicie mikrofonu
-SING_OPTIONS_SOUND_CLICK_ASSIST=Pomoc klikniêciami
-SING_OPTIONS_SOUND_BEAT_CLICK=Klikniêcia w rytm
-SING_OPTIONS_SOUND_THRESHOLD=Próg
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tryb dwóch graczy
-SING_OPTIONS_SOUND_PREVIEWVOLUME=G³oœnoœæ w podgl¹dzie
-SING_OPTIONS_SOUND_PREVIEWFADING=Zanikanie w podgl¹dzie
-
-SING_OPTIONS_LYRICS_WHEREAMI=Opcje S³owa
-SING_OPTIONS_LYRICS_DESC=opcje s³ów
-SING_OPTIONS_LYRICS_FONT=Czcionka
-SING_OPTIONS_LYRICS_EFFECT=Efekt
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmizacja
-
-SING_OPTIONS_THEMES_WHEREAMI=Options Tematy
-SING_OPTIONS_THEMES_DESC=opcje tematów
-SING_OPTIONS_THEMES_THEME=Temat
-SING_OPTIONS_THEMES_SKIN=Skóra
-SING_OPTIONS_THEMES_COLOR=Kolor
-
-SING_OPTIONS_RECORD_WHEREAMI=Opcje Nagrywanie
-SING_OPTIONS_RECORD_DESC=opcje nagrywania
-SING_OPTIONS_RECORD_CARD=Karta dŸwiêkowa
-SING_OPTIONS_RECORD_INPUT=Wejœcie
-SING_OPTIONS_RECORD_CHANNEL=Kana³
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Opcje Zaawansowane
-SING_OPTIONS_ADVANCED_DESC=ustawienia zaawansowane
-SING_OPTIONS_ADVANCED_EFFECTSING=Efekty specjalne
-SING_OPTIONS_ADVANCED_SCREENFADE=Przenikanie
-SING_OPTIONS_ADVANCED_LOADANIMATION=Animacja ³adowania
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Pytania przy wyjœciu
-SING_OPTIONS_ADVANCED_LINEBONUS=Bonus Linii
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=Licznik
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Po wyborze piosenki
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Menu Imprezy
-
-SING_LEGEND_SELECT=wybierz
-SING_LEGEND_NAVIGATE=nawigacja
-SING_LEGEND_CONTINUE=dalej
-SING_LEGEND_ESC=wstecz
-
-SING_PLAYER_DESC=wprowadŸ imiê gracza
-SING_PLAYER_WHEREAMI=Imiê
-SING_PLAYER_ENTER_NAME=wpisz imiê
-
-SING_DIFFICULTY_DESC=wybierz poziom trudnoœci
-SING_DIFFICULTY_WHEREAMI=Poziom
-SING_DIFFICULTY_CONTINUE=do wyboru piosenki
-SING_EASY=³atwo
-SING_MEDIUM=œrednio
-SING_HARD=trudno
-
-SING_SONG_SELECTION_DESC=wybierz piosenkê
-SING_SONG_SELECTION_WHEREAMI=Wybór Piosenki
-SING_SONG_SELECTION_GOTO=idŸ do...
-SING_SONG_SELECTION=wybór piosenki
-SING_SONG_SELECTION_MENU=menu
-SING_SONG_SELECTION_PLAYLIST=playlista
-SING_SONGS_IN_CAT=Piosenki
-PLAYLIST_CATTEXT=Playlista: %s
-
-SING_TIME=CZAS
-SING_TOTAL=³¹cznie
-SING_MODE=œpiew solo
-SING_NOTES=nuty
-SING_GOLDEN_NOTES=z³ote nuty
-SING_PHRASE_BONUS=Bonus Linii
-
-SING_MENU=Menu G³ówne
-
-SONG_SCORE=wynik
-SONG_SCORE_WHEREAMI=Wynik
-
-SING_SCORE_TONE_DEAF=G³uche nuty
-SING_SCORE_AMATEUR=Amator
-SING_SCORE_RISING_STAR=Wschodz¹ca gwiazda
-SING_SCORE_LEAD_SINGER=Niez³y grajek
-SING_SCORE_HIT_ARTIST=Wielki Artysta
-SING_SCORE_SUPERSTAR=Supergwiazda
-SING_SCORE_ULTRASTAR=Ultrastar
-
-SING_TOP_5_CHARTS=lista 5 najlepszych
-SING_TOP_5_CHARTS_WHEREAMI=top 5
-SING_TOP_5_CHARTS_CONTINUE=do wyboru piosenki
-
-POPUP_PERFECT=idealnie!
-POPUP_AWESOME=niesamowicie!
-POPUP_GREAT=œwietnie!
-POPUP_GOOD=dobrze!
-POPUP_NOTBAD=nieŸle!
-POPUP_BAD=Ÿle!
-POPUP_POOR=s³abo!
-POPUP_AWFUL=okropnie!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= oraz
-
-SONG_MENU_NAME_MAIN=menu piosenki
-SONG_MENU_PLAY=Œpiewaj
-SONG_MENU_CHANGEPLAYERS=Zmieñ graczy
-SONG_MENU_EDIT=Edytuj
-SONG_MENU_MODI=Œpiewaj Modi
-SONG_MENU_CANCEL=Anuluj
-
-SONG_MENU_NAME_PLAYLIST=Menu Piosenki
-SONG_MENU_PLAYLIST_ADD=Dodaj piosenkê
-SONG_MENU_PLAYLIST_DEL=Usuñ piosenkê
-
-SONG_MENU_NAME_PLAYLIST_ADD=Dodaj piosenkê
-SONG_MENU_PLAYLIST_ADD_NEW=do nowej playlisty
-SONG_MENU_PLAYLIST_ADD_EXISTING=do istniej¹cej playlisty
-SONG_MENU_PLAYLIST_NOEXISTING=Brak playlist
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nowa Playlista
-SONG_MENU_PLAYLIST_NEW_CREATE=Stwórz
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Bez nazwy
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Usun¹æ?
-SONG_MENU_YES=Tak
-SONG_MENU_NO=Nie
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Otwórz Playlistê
-SONG_MENU_PLAYLIST_LOAD=otwórz
-SONG_MENU_PLAYLIST_DELCURRENT=usuñ tê playlistê
-
-SONG_MENU_NAME_PLAYLIST_DEL=Usun¹æ playlistê?
-
-SONG_MENU_NAME_PARTY_MAIN=Menu Imprezy
-SONG_MENU_JOKER=Jokera
-
-SONG_MENU_NAME_PARTY_JOKER=weŸ jokera
-
-SONG_JUMPTO_DESC=szukaj
-SONG_JUMPTO_TYPE_DESC=Szukaj:
-SONG_JUMPTO_TYPE1=Wszêdzie
-SONG_JUMPTO_TYPE2=Tytu³
-SONG_JUMPTO_TYPE3=Wykonawca
-SONG_JUMPTO_SONGSFOUND=Znaleziono %d utworów
-SONG_JUMPTO_NOSONGSFOUND=Nic nie znaleziono
-SONG_JUMPTO_HELP=Wpisz tekst do wyszukania
-SONG_JUMPTO_CATTEXT=Szukaj: %s
-
-PARTY_MODE=tryb imprezy
-PARTY_DIFFICULTY=Poziom
-PARTY_PLAYLIST=Tryb playlisty
-PARTY_PLAYLIST_ALL=Wszystko
-PARTY_PLAYLIST_CATEGORY=Folder
-PARTY_PLAYLIST_PLAYLIST=Playlista
-PARTY_ROUNDS=Rundy
-PARTY_TEAMS=Dru¿yny
-PARTY_TEAMS_PLAYER1=Dru¿yna 1
-PARTY_TEAMS_PLAYER2=Dru¿yna 2
-PARTY_TEAMS_PLAYER3=Dru¿yna 3
-
-PARTY_LEGEND_CONTINUE=dalej
-
-PARTY_OPTIONS_DESC=ustawienia trybu imprezy
-PARTY_OPTIONS_WHEREAMI=Impreza - Ustawienia
-
-PARTY_PLAYER_DESC=wpisz nazwy graczy i dru¿yn
-PARTY_PLAYER_WHEREAMI=Nazwy dru¿yn
-PARTY_PLAYER_ENTER_NAME=wpisz nazwy
-PARTY_PLAYER_LEGEND_CONTINUE=start!
-
-PARTY_ROUND_DESC=nastêpni do mikrofonów
-PARTY_ROUND_WHEREAMI=Nastêpna Runda
-PARTY_ROUND_LEGEND_CONTINUE=rozpocznij rundê
-
-PARTY_SONG_WHEREAMI=Wybór piosenki
-PARTY_SONG_LEGEND_CONTINUE=œpiewaj
-PARTY_SONG_MENU=menu
-
-PARTY_SCORE_DESC=wynik ostatniej rundy
-PARTY_SCORE_WHEREAMI=Punkty
-
-PARTY_WIN_DESC=zwyciêzca gry
-PARTY_WIN_WHEREAMI=Zwyciêzca
-PARTY_WIN_LEGEND_CONTINUE=do menu g³ównego
-
-PARTY_ROUND=Runda
-PARTY_ROUND_WINNER=Zwyciêzca
-PARTY_NOTPLAYEDYET=jeszcze nie gra³
-PARTY_NOBODY=nikt
-NEXT_ROUND=Nastêpna runda:
-
-PARTY_DISMISSED=Odpada!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=wygrywa!
-
-PLUGIN_HDL_NAME=Trzymaj liniê
-PLUGIN_HDL_DESC=Œpiewaj lepiej ni¿ linia na wykresie.
-
-PLUGIN_UNTIL5000_NAME=Do 5000
-PLUGIN_UNTIL5000_DESC=Wygrywa ten, kto pierwszy uzyska 5000 punktów.
-
-PLUGIN_DUELL_NAME=Pojedynek
-PLUGIN_DUELL_DESC=Œpiewacie w pojedynku do 10000 punktów.
-
-PLUGIN_TEAMDUELL_NAME=Team Duell
-PLUGIN_TEAMDUELL_DESC=Pass The Mic!
-
-PLUGIN_BLIND_NAME=Œlepiec
-PLUGIN_BLIND_DESC=Pojedynek, w którym nie widzicie nut.
-
-STAT_MAIN=Statystyki
-STAT_MAIN_DESC=Ogólne
-STAT_MAIN_WHEREAMI=Statystyki
-
-STAT_OVERVIEW_INTRO=Statystyki dla: %0:d. \n Ostatnio resetowane: %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Piosenek (%3:d z filmem), z czego %1:d by³o granych a %2:d jeszcze nie.\n Najpopularniejsz¹ piosenk¹ jest %5:s z %4:s.
-STAT_OVERVIEW_PLAYER=Od ostatniego resetu:%0:d ró¿nych graczy.\n Najlepszym graczem jest %1:s ze œrednim wynikiem %2:d punktów.\n %3:s ustanowi³ rekord wynikiem %4:d punktów.
-
-STAT_DETAIL=Statystyki
-STAT_DETAIL_WHEREAMI=Statystyki szczegó³owe
-
-STAT_NEXT=Nastêpna strona
-STAT_PREV=Poprzednia strona
-STAT_REVERSE=Odwróæ kolejnoœæ
-STAT_PAGE=Strona %0:d z %1:d \n (%2:d of %3:d wpisów)
-
-STAT_DESC_SCORES=Najwy¿sze wyniki
-STAT_DESC_SCORES_REVERSED=Najni¿sze wyniki
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Najlepsi
-STAT_DESC_SINGERS_REVERSED=Najgorsi
-STAT_FORMAT_SINGERS=%0:s \n Œredni wynik: %1:d
-
-STAT_DESC_SONGS=Najpopularniejsze piosenki
-STAT_DESC_SONGS_REVERSED=Najmniej popularne piosenki
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx œpiewane
-
-STAT_DESC_BANDS=Najpopularniejsi wykonawcy
-STAT_DESC_BANDS_REVERSED=Najmniej popularni wykonawcy
-STAT_FORMAT_BANDS=%0:s \n %1:dx œpiewani
-
-MSG_ERROR_TITLE=B³¹d
-MSG_QUESTION_TITLE=Pytanie
-MSG_QUIT_USDX=Na pewno chcesz wyjϾ?
-MSG_END_PARTY=Na pewno chcesz zakoñczyæ tryb imprezy?
-ERROR_NO_SONGS=Brak piosenek
-ERROR_NO_PLUGINS=Brak wtyczek
-ERROR_CORRUPT_SONG=Piosenka nie mog³a zostaæ za³adowana. \ No newline at end of file
diff --git a/us_maker_edition/game/languages/old/Slovak.ini b/us_maker_edition/game/languages/old/Slovak.ini
deleted file mode 100644
index c7a7fb2e..00000000
--- a/us_maker_edition/game/languages/old/Slovak.ini
+++ /dev/null
@@ -1,301 +0,0 @@
-[Text]
-SING_LOADING=... nahráva sa hra !
-
-SING_CHOOSE_MODE=vyberte si z možností
-SING_SING=Hra
-SING_SING_DESC=sólo alebo duet
-
-SING_MULTI=Párty
-SING_MULTI_DESC=párty-mód
-
-SING_TOOLS=Nástroje
-
-SING_STATS=štatistika
-SING_STATS_DESC=zobrazi štatistiku
-
-SING_EDITOR=editor
-SING_EDITOR_DESC=vytvorte si vlastnú skladbu
-
-SING_GAME_OPTIONS=nastavenia
-SING_GAME_OPTIONS_DESC=nastavenia hry
-
-SING_EXIT=Koniec
-SING_EXIT_DESC=návrat do systému
-
-SING_OPTIONS=nastavenia
-SING_OPTIONS_DESC=zmeni nastavenia
-SING_OPTIONS_WHEREAMI=Nastavenia
-
-SING_OPTIONS_GAME=hra
-SING_OPTIONS_GRAPHICS=grafika
-SING_OPTIONS_SOUND=zvuk
-SING_OPTIONS_LYRICS=text
-SING_OPTIONS_THEMES=témy
-SING_OPTIONS_RECORD=mikrofón
-SING_OPTIONS_ADVANCED=iné
-SING_OPTIONS_EXIT=spä
-
-SING_OPTIONS_GAME_WHEREAMI=Nastavenia hry
-SING_OPTIONS_GAME_DESC=všeobecné nastavenia
-SING_OPTIONS_GAME_PLAYERS=Poèet hráèov
-SING_OPTIONS_GAME_DIFFICULTY=Obtiažnos
-SING_OPTIONS_GAME_LANGUAGE=Jazyk
-SING_OPTIONS_GAME_TABS=Kategórie
-SING_OPTIONS_GAME_SORTING=Zoradenie
-SING_OPTIONS_GAME_DEBUG=Debug mód
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Grafika
-SING_OPTIONS_GRAPHICS_DESC=nastavenie grafických detailov
-SING_OPTIONS_GRAPHICS_RESOLUTION=Rozlíšenie
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Celá obrazovka
-SING_OPTIONS_GRAPHICS_DEPTH=Far. håbka
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop
-SING_OPTIONS_GRAPHICS_LINEBONUS=Èiarový Bonus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Zobrazenie videa
-
-SING_OPTIONS_SOUND_WHEREAMI=Zvuk
-SING_OPTIONS_SOUND_DESC=nastavenie zvuku
-SING_OPTIONS_SOUND_MIC_BOOST=Zosilnenie mikrof.
-SING_OPTIONS_SOUND_CLICK_ASSIST=Pomocný klik
-SING_OPTIONS_SOUND_BEAT_CLICK=Rytmický klik
-SING_OPTIONS_SOUND_THRESHOLD=Prah poèute¾.
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mód dvoch hráèov
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Náh¾ad(volume)
-SING_OPTIONS_SOUND_PREVIEWFADING=Prechod skladieb
-
-SING_OPTIONS_LYRICS_WHEREAMI=Text
-SING_OPTIONS_LYRICS_DESC=nastavenia zobrazovania textov piesní
-SING_OPTIONS_LYRICS_FONT=Písmo
-SING_OPTIONS_LYRICS_EFFECT=Efekt zvýraznenia
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmizácia
-
-SING_OPTIONS_THEMES_WHEREAMI=Témy
-SING_OPTIONS_THEMES_DESC=zmena témy
-SING_OPTIONS_THEMES_THEME=Téma
-SING_OPTIONS_THEMES_SKIN=Vzh¾ad
-SING_OPTIONS_THEMES_COLOR=Farba
-
-SING_OPTIONS_RECORD_WHEREAMI=Mikrofón
-SING_OPTIONS_RECORD_DESC=nastavenie mikrofónu
-SING_OPTIONS_RECORD_CARD=Zvuková karta
-SING_OPTIONS_RECORD_INPUT=Vstup
-SING_OPTIONS_RECORD_CHANNEL=Kanál
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Iné
-SING_OPTIONS_ADVANCED_DESC=rozširujúce nastavenia
-SING_OPTIONS_ADVANCED_EFFECTSING=Efekty pri speve
-SING_OPTIONS_ADVANCED_SCREENFADE=Jemný prechod
-SING_OPTIONS_ADVANCED_LOADANIMATION=Animácia loading(u)
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Potvrdzovanie
-SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za riadok
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Po zvolení skladby
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu
-
-SING_LEGEND_SELECT=výber
-SING_LEGEND_NAVIGATE=navigácia
-SING_LEGEND_CONTINUE=pokraèova
-SING_LEGEND_ESC=spä
-
-SING_PLAYER_DESC=zadajte meno hráèa(ov)
-SING_PLAYER_WHEREAMI=Mená hráèov
-SING_PLAYER_ENTER_NAME=zadávanie mena
-
-SING_DIFFICULTY_DESC=Vyberte obtiažnos
-SING_DIFFICULTY_WHEREAMI=Obtiažnos
-SING_DIFFICULTY_CONTINUE=pokraèova
-SING_EASY=¼ahká
-SING_MEDIUM=Stredná
-SING_HARD=ažká
-
-SING_SONG_SELECTION_DESC=Vyberte skladbu
-SING_SONG_SELECTION_WHEREAMI=výber skladby
-SING_SONG_SELECTION_GOTO=choï na ..
-SING_SONG_SELECTION=výber skladby
-SING_SONG_SELECTION_MENU=menu
-SING_SONG_SELECTION_PLAYLIST=playlist
-SING_SONGS_IN_CAT=Skladba
-PLAYLIST_CATTEXT=Playlist: %s
-
-SING_TIME=Èas
-SING_TOTAL=celkovo
-SING_MODE=spieva sólo
-SING_NOTES=noty
-SING_GOLDEN_NOTES=zlaté noty
-SING_PHRASE_BONUS=bonus za riadok
-
-SING_MENU=Hlavné Menu
-
-SONG_SCORE=hodnotenie
-SONG_SCORE_WHEREAMI=Skóre
-
-SING_SCORE_TONE_DEAF=Antitalent
-SING_SCORE_AMATEUR=Amatér
-SING_SCORE_RISING_STAR=Vychádzajúca hviezda
-SING_SCORE_LEAD_SINGER=Spevák
-SING_SCORE_HIT_ARTIST=Star
-SING_SCORE_SUPERSTAR=Superstar
-SING_SCORE_ULTRASTAR=Ultrastar
-
-SING_TOP_5_CHARTS=najlepších 5
-SING_TOP_5_CHARTS_WHEREAMI=top 5
-SING_TOP_5_CHARTS_CONTINUE=pre výber skladby
-
-POPUP_PERFECT=neskutoèné!
-POPUP_AWESOME=paráda!
-POPUP_GREAT=super!
-POPUP_GOOD=dobré!
-POPUP_NOTBAD=nie zlé!
-POPUP_BAD=zle!
-POPUP_POOR=bieda!
-POPUP_AWFUL=otrasné!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= a
-
-SONG_MENU_NAME_MAIN=Výber hudby
-SONG_MENU_PLAY=Štart
-SONG_MENU_CHANGEPLAYERS=Iný hráè
-SONG_MENU_EDIT=Uprav
-SONG_MENU_MODI=Sing a Modi
-SONG_MENU_CANCEL=Zruši
-
-SONG_MENU_NAME_PLAYLIST=Skladby
-SONG_MENU_PLAYLIST_ADD=Pridaj skladbu
-SONG_MENU_PLAYLIST_DEL=Zmaž skladbu
-
-SONG_MENU_NAME_PLAYLIST_ADD=Pridaj Skladbu
-SONG_MENU_PLAYLIST_ADD_NEW=do nového playlistu
-SONG_MENU_PLAYLIST_ADD_EXISTING=do existujúceho playlistu
-SONG_MENU_PLAYLIST_NOEXISTING=Nie je dostupný žiadny playlist
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nový Playlist
-SONG_MENU_PLAYLIST_NEW_CREATE=Vytvor
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Bez mena
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Skutoène Zmaza ?
-SONG_MENU_YES=Áno
-SONG_MENU_NO=Nie
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Naèítaj Playlist
-SONG_MENU_PLAYLIST_LOAD=naèítaj
-SONG_MENU_PLAYLIST_DELCURRENT=zmaž tento Playlist
-
-SONG_MENU_NAME_PLAYLIST_DEL=Zmaza Playlist?
-
-SONG_MENU_NAME_PARTY_MAIN=Party Menu
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=použi jokera
-
-SONG_JUMPTO_DESC=h¾adaj skladbu
-SONG_JUMPTO_TYPE_DESC=h¾adaj:
-SONG_JUMPTO_TYPE1=všade
-SONG_JUMPTO_TYPE2=v názve skladby
-SONG_JUMPTO_TYPE3=v mene autora
-SONG_JUMPTO_SONGSFOUND=%d skladieb vyhovuje filtru
-SONG_JUMPTO_NOSONGSFOUND=Žiadna skladba
-SONG_JUMPTO_HELP=Napíš k¾úèové slovo pre h¾adanie
-SONG_JUMPTO_CATTEXT=H¾adaj: %s
-
-PARTY_MODE=párty mód
-PARTY_DIFFICULTY=Obtiažnos
-PARTY_PLAYLIST=Skladby z playlistu
-PARTY_PLAYLIST_ALL=Všetky skladby
-PARTY_PLAYLIST_CATEGORY=Kategória
-PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Poèet kôl
-PARTY_TEAMS=Poèet tímov
-PARTY_TEAMS_PLAYER1=Hráèov v Tíme 1
-PARTY_TEAMS_PLAYER2=Hráèov v Tíme 2
-PARTY_TEAMS_PLAYER3=Hráèov v Tíme 3
-
-PARTY_LEGEND_CONTINUE=pokraèova
-
-PARTY_OPTIONS_DESC=nastavenia pre párty-mód
-PARTY_OPTIONS_WHEREAMI=Párty nastavenia
-
-PARTY_PLAYER_DESC=Zadajte mená tímov a hráèov!
-PARTY_PLAYER_WHEREAMI=Párty mená
-PARTY_PLAYER_ENTER_NAME=zadajte mená
-PARTY_PLAYER_LEGEND_CONTINUE=Pokraèova
-
-PARTY_ROUND_DESC=párty pre hráèov
-PARTY_ROUND_WHEREAMI=List párty disciplín
-PARTY_ROUND_LEGEND_CONTINUE=Štart disciplíny
-
-PARTY_SONG_WHEREAMI=Párty - Výver Skladby
-PARTY_SONG_LEGEND_CONTINUE=Štart
-PARTY_SONG_MENU=party menu
-
-PARTY_SCORE_DESC=skóre posledného kola
-PARTY_SCORE_WHEREAMI=Párty skóre
-
-PARTY_WIN_DESC=Víaz párty
-PARTY_WIN_WHEREAMI=Stupeò víazov
-PARTY_WIN_LEGEND_CONTINUE=spä do hlavného menu
-
-PARTY_ROUND=Kolo
-PARTY_ROUND_WINNER=Víaz
-PARTY_NOTPLAYEDYET=nehralo
-PARTY_NOBODY=ani jedno družstvo
-NEXT_ROUND=Ïalšie kolo:
-
-PARTY_DISMISSED=Ukonèené !
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=víaz tohto kola
-
-PLUGIN_HDL_NAME=Superstar
-PLUGIN_HDL_DESC=nesmieš klesnú pod hranicu ukazovate¾a úspešnosti
-
-PLUGIN_UNTIL5000_NAME=Po 5000
-PLUGIN_UNTIL5000_DESC=kto prvý získa 5000 bodov sa stane víazom
-
-PLUGIN_DUELL_NAME=Duel
-PLUGIN_DUELL_DESC=spievaj, kým nedosiahneš 10000 bodov
-
-PLUGIN_TEAMDUELL_NAME=Duel Tímov
-PLUGIN_TEAMDUELL_DESC=každý hráè sa vystrieda za mikrofónom
-
-PLUGIN_BLIND_NAME=Slepý
-PLUGIN_BLIND_DESC=neuvidíš noty pre hlas
-
-STAT_MAIN=Štatistika
-STAT_MAIN_DESC=Všeobecne
-STAT_MAIN_WHEREAMI=Štatistiky
-
-STAT_OVERVIEW_INTRO=%0:s štatistika \n Štatistika od %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=SKLADBY \n Celkove: %0:d z toho %3:d s videom\n Poèet už hraných: %1:d \n Poèet nehraných: %2:d \n Najhranejšia skladba: %5:s od %4:s
-STAT_OVERVIEW_PLAYER=HRÁÈI \n Celkove: %0:d rôznych hráèov.\n Najlepší hráè: %1:s (%2:d - priemer bodov)\n Najvyššie skóre: %3:s (%4:d bodov)
-
-STAT_DETAIL=Štatistiky
-STAT_DETAIL_WHEREAMI=Podrobná štatistika
-
-STAT_NEXT=Ïalšia strana
-STAT_PREV=Predošlá strana
-STAT_REVERSE=Otoè poradie
-STAT_PAGE=%0:d. z %1:d strán\n (%2:d z %3:d položiek)
-
-STAT_DESC_SCORES=Najvyššie skóre
-STAT_DESC_SCORES_REVERSED=Najhoršie skóre
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Najlepší speváci
-STAT_DESC_SINGERS_REVERSED=Najhorší speváci
-STAT_FORMAT_SINGERS=%0:s \n Priemer skóre: %1:d
-
-STAT_DESC_SONGS=Najhranejšie skladby
-STAT_DESC_SONGS_REVERSED=Najmenej hrané skladby
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx spievaná
-
-STAT_DESC_BANDS=Najhranejšia kapela
-STAT_DESC_BANDS_REVERSED=Najmenej hraná kapela
-STAT_FORMAT_BANDS=%0:s \n %1:dx spievaná
-
-MSG_ERROR_TITLE=Chyba
-MSG_QUESTION_TITLE=Otázka
-MSG_QUIT_USDX=Skutoène chcete skonèi UltraStar?
-MSG_END_PARTY=Skutoène chcete skonèit Párty Mód ?
-ERROR_NO_SONGS=Žiadna skladba
-ERROR_NO_PLUGINS=Žiadny zásuvný modul
-ERROR_CORRUPT_SONG=Skladbu sa nepodarilo nahra.
diff --git a/us_maker_edition/game/languages/old/Slovenian.ini b/us_maker_edition/game/languages/old/Slovenian.ini
deleted file mode 100644
index 2fd50c9d..00000000
--- a/us_maker_edition/game/languages/old/Slovenian.ini
+++ /dev/null
@@ -1,322 +0,0 @@
-[Text]
-SING_LOADING=Nalaganje...
-
-SING_CHOOSE_MODE=izberi nacin
-SING_SING=poj
-SING_SING_DESC=poj sam ali v duetu
-
-SING_MULTI=zabava
-SING_MULTI_DESC=poj v nacinu zabave
-
-SING_TOOLS=orodja
-
-SING_STATS=statistika
-SING_STATS_DESC=poglej statistiko
-
-SING_EDITOR=urednik
-SING_EDITOR_DESC=izdelaj svoje pesmi
-
-SING_GAME_OPTIONS=nastavitve igre
-SING_GAME_OPTIONS_DESC=spremeni nastavitve igre
-
-SING_EXIT=izhod
-SING_EXIT_DESC=izhod iz igre
-
-SING_OPTIONS=nastavitve
-SING_OPTIONS_DESC=spremeni nastavitve
-SING_OPTIONS_WHEREAMI=Nastavitve
-
-SING_OPTIONS_GAME=igra
-SING_OPTIONS_GRAPHICS=izgled
-SING_OPTIONS_SOUND=zvok
-SING_OPTIONS_LYRICS=besedilo
-SING_OPTIONS_THEMES=tema
-SING_OPTIONS_RECORD=snemanje
-SING_OPTIONS_ADVANCED=napredno
-SING_OPTIONS_EXIT=nazaj
-
-SING_OPTIONS_GAME_WHEREAMI=Nastavitve Igre
-SING_OPTIONS_GAME_DESC=osnovne nastavitve
-SING_OPTIONS_GAME_PLAYERS=Igralci
-SING_OPTIONS_GAME_DIFFICULTY=Težavnost
-SING_OPTIONS_GAME_LANGUAGE=Jezik
-SING_OPTIONS_GAME_TABS=Mape
-SING_OPTIONS_GAME_SORTING=Sortiranje
-SING_OPTIONS_GAME_DEBUG=Odpravljanje hrošcev
-
-SING_OPTIONS_GRAPHICS_WHEREAMI=Nastavitve prikaza
-SING_OPTIONS_GRAPHICS_DESC=nastavitve prikaza
-SING_OPTIONS_GRAPHICS_RESOLUTION=Locljivost
-SING_OPTIONS_GRAPHICS_FULLSCREEN=Celozaslonski nacin
-SING_OPTIONS_GRAPHICS_DEPTH=Globina
-SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizacija
-SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop
-SING_OPTIONS_GRAPHICS_LINEBONUS=Vrsticni bonus
-SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa
-
-SING_OPTIONS_SOUND_WHEREAMI=Nastavitve zvoka
-SING_OPTIONS_SOUND_DESC=nastavitve zvoka
-SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofonski Playback
-SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Glasbena podlaga
-SING_OPTIONS_SOUND_MIC_BOOST=Ojacitev mikrofona
-SING_OPTIONS_SOUND_CLICK_ASSIST=Asistent klikanja
-SING_OPTIONS_SOUND_BEAT_CLICK=Klikanje po ritmu
-SING_OPTIONS_SOUND_THRESHOLD=Prag
-SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Nacin za dva igralca
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Glasnost predogleda
-SING_OPTIONS_SOUND_PREVIEWFADING=narašcanje glasnosti
-
-SING_OPTIONS_LYRICS_WHEREAMI=Nastavitve besedila
-SING_OPTIONS_LYRICS_DESC=nastavitve besedila
-SING_OPTIONS_LYRICS_FONT=Pisava
-SING_OPTIONS_LYRICS_EFFECT=Ucinek
-SING_OPTIONS_LYRICS_SOLMIZATION=Solmizacija
-SING_OPTIONS_LYRICS_NOTELINES=Notno crtovje
-
-SING_OPTIONS_THEMES_WHEREAMI=Nastavitve tem
-SING_OPTIONS_THEMES_DESC=nastavitve teme
-SING_OPTIONS_THEMES_THEME=Tema
-SING_OPTIONS_THEMES_SKIN=Izgled
-SING_OPTIONS_THEMES_COLOR=Barva
-
-SING_OPTIONS_RECORD_WHEREAMI=Nastavitve snemanja
-SING_OPTIONS_RECORD_DESC=nastavitve mikrofona
-SING_OPTIONS_RECORD_CARD=Vir zvoka
-SING_OPTIONS_RECORD_INPUT=Vhod
-SING_OPTIONS_RECORD_CHANNEL=Kanal
-
-SING_OPTIONS_ADVANCED_WHEREAMI=Napredne nastavitve
-SING_OPTIONS_ADVANCED_DESC=Napredne nastavitve
-SING_OPTIONS_ADVANCED_EFFECTSING=Pevski efekt
-SING_OPTIONS_ADVANCED_SCREENFADE=Zamegljevanje prikaza
-SING_OPTIONS_ADVANCED_LOADANIMATION=Zacetna animacija
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Zašcitno vprašanje
-SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za vrstico
-SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG=
-SING_OPTIONS_ADVANCED_ONSONGCLICK=Po izboru pesmi
-SING_OPTIONS_ADVANCED_PARTYPOPUP=Samodejni nacin Zabava
-
-SING_EDIT=Urednik
-SING_EDIT_MENU_DESCRIPTION=Izdelaj lastno pesem
-
-SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Izvozi besedilo iz midi datoteke
-SING_EDIT_BUTTON_DESCRIPTION_EXIT=Nazaj
-SING_EDIT_BUTTON_CONVERT=Uvozi
-SING_EDIT_BUTTON_EXIT=Nazaj
-
-SING_EDIT_NAVIGATE=Navigacija
-SING_EDIT_SELECT=Izberi
-SING_EDIT_EXIT=Nazaj
-
-SING_LEGEND_SELECT=izberi
-SING_LEGEND_NAVIGATE=premik
-SING_LEGEND_CONTINUE=nadaljuj
-SING_LEGEND_ESC=nazaj
-
-SING_PLAYER_DESC=vpiši imena igralcev
-SING_PLAYER_WHEREAMI=Imena igralcev
-SING_PLAYER_ENTER_NAME=vnesi ime
-
-SING_DIFFICULTY_DESC=izberi težavnost
-SING_DIFFICULTY_WHEREAMI=Težavnost
-SING_DIFFICULTY_CONTINUE=k izbiri pesmi
-SING_EASY=Enostavno
-SING_MEDIUM=Srednje
-SING_HARD=Težko
-
-SING_SONG_SELECTION_DESC=izberi svojo pesem
-SING_SONG_SELECTION_WHEREAMI=Izbira pesmi
-SING_SONG_SELECTION_GOTO=pojdi na...
-SING_SONG_SELECTION=izbira pesmi
-SING_SONG_SELECTION_MENU=meni
-SING_SONG_SELECTION_PLAYLIST=seznam predvajanja
-SING_SONGS_IN_CAT=Pesmi
-PLAYLIST_CATTEXT=Lista: %s
-
-SING_TIME=CAS
-SING_TOTAL=skupaj
-SING_MODE=Petje
-SING_NOTES=note
-SING_GOLDEN_NOTES=zlate note
-SING_PHRASE_BONUS=bonus za vrstico
-
-SING_MENU=Glavni meni
-
-SONG_SCORE=rezultat petja
-SONG_SCORE_WHEREAMI=Rezultat
-
-SING_SCORE_TONE_DEAF=Gluhonem
-SING_SCORE_AMATEUR=Amater
-SING_SCORE_WANNABE=Igralec
-SING_SCORE_HOPEFUL=Nadebudnež
-SING_SCORE_RISING_STAR=Vzhajajoca zvezda
-SING_SCORE_LEAD_SINGER=Vodilni pevec
-SING_SCORE_SUPERSTAR=Superzvezda
-SING_SCORE_ULTRASTAR=Ultrazvezda
-
-SING_TOP_5_CHARTS=najboljših 5 pevcev
-SING_TOP_5_CHARTS_WHEREAMI=najboljših 5
-SING_TOP_5_CHARTS_CONTINUE=k izbiri pesmi
-
-POPUP_PERFECT=popolno!
-POPUP_AWESOME=odlicno!
-POPUP_GREAT=zelo dobro!
-POPUP_GOOD=dobro!
-POPUP_NOTBAD=ni slabo!
-POPUP_BAD=slabo!
-POPUP_POOR=zelo slabo!
-POPUP_AWFUL=obupno!
-
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= in
-
-SONG_MENU_NAME_MAIN=meni pesmi
-SONG_MENU_PLAY=Poj
-SONG_MENU_CHANGEPLAYERS=Spremeni igralca
-SONG_MENU_EDIT=Uredi
-SONG_MENU_MODI=Poj "a Modi"
-SONG_MENU_CANCEL=Preklici
-
-SONG_MENU_NAME_PLAYLIST=Meni Pesem
-SONG_MENU_PLAYLIST_ADD=Dodaj pesem
-SONG_MENU_PLAYLIST_DEL=Izbriši pesem
-
-SONG_MENU_NAME_PLAYLIST_ADD=Dodaj pesem
-SONG_MENU_PLAYLIST_ADD_NEW=dodaj nov seznam
-SONG_MENU_PLAYLIST_ADD_EXISTING=dodaj shranjen seznam
-SONG_MENU_PLAYLIST_NOEXISTING=Ni seznamov
-
-SONG_MENU_NAME_PLAYLIST_NEW=Nov seznam
-SONG_MENU_PLAYLIST_NEW_CREATE=Ustvari
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Neimenovan
-
-SONG_MENU_NAME_PLAYLIST_DELITEM=Res izbrišem?
-SONG_MENU_YES=Da
-SONG_MENU_NO=Ne
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Odpri seznam
-SONG_MENU_PLAYLIST_LOAD=odpri
-SONG_MENU_PLAYLIST_DELCURRENT=izbriši trenuten seznam
-
-SONG_MENU_NAME_PLAYLIST_DEL=Izbrišem seznam?
-
-SONG_MENU_NAME_PARTY_MAIN=Meni Zabava
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=izkoristi jokerja
-
-SONG_JUMPTO_DESC=poišci pesem
-SONG_JUMPTO_TYPE_DESC=Isci po:
-SONG_JUMPTO_TYPE1=Vse
-SONG_JUMPTO_TYPE2=Naslov
-SONG_JUMPTO_TYPE3=Avtor
-SONG_JUMPTO_SONGSFOUND=%d pesmi najdenih
-SONG_JUMPTO_NOSONGSFOUND=Ne najdem
-SONG_JUMPTO_HELP=Vpiši besedilo za iskanje
-SONG_JUMPTO_CATTEXT=Išci po: %s
-
-PARTY_MODE=zabava
-PARTY_DIFFICULTY=Težavnost
-PARTY_PLAYLIST=Izbor
-PARTY_PLAYLIST_ALL=Vse pesmi
-PARTY_PLAYLIST_CATEGORY=Mapa
-PARTY_PLAYLIST_PLAYLIST=Seznam
-PARTY_ROUNDS=Število rund
-PARTY_TEAMS=Ekipe
-PARTY_TEAMS_PLAYER1=Igralec Ekipa1
-PARTY_TEAMS_PLAYER2=Igralec Ekipa2
-PARTY_TEAMS_PLAYER3=Igralec Ekipa3
-
-PARTY_LEGEND_CONTINUE=nadaljuj
-
-PARTY_OPTIONS_DESC=nastavitve za nacin zabave
-PARTY_OPTIONS_WHEREAMI=nastavitve zabave
-
-PARTY_PLAYER_DESC=vpiši igralce in imena ekip!
-PARTY_PLAYER_WHEREAMI=Imena
-PARTY_PLAYER_ENTER_NAME=vpiši imena
-PARTY_PLAYER_LEGEND_CONTINUE=zacni zabavo
-
-PARTY_ROUND_DESC=naslednji igralec k mikrofonu
-PARTY_ROUND_WHEREAMI=Naslednja runda
-PARTY_ROUND_LEGEND_CONTINUE=zacni rundo
-
-PARTY_SONG_WHEREAMI=Izbor pesmi - Zabava
-PARTY_SONG_LEGEND_CONTINUE=poj
-PARTY_SONG_MENU=meni Zabava
-
-PARTY_SCORE_DESC=tocke zadnje runde
-PARTY_SCORE_WHEREAMI=Tocke v zabavi
-
-PARTY_WIN_DESC=Zmagovalec
-PARTY_WIN_WHEREAMI=Zmagovalec
-PARTY_WIN_LEGEND_CONTINUE=nazaj k glavnemu meniju
-
-PARTY_ROUND=Runda
-PARTY_ROUND_WINNER=Zmagovalec
-PARTY_NOTPLAYEDYET=neizvedeno
-PARTY_NOBODY=nobeden
-NEXT_ROUND=Naslednja runda:
-
-PARTY_DISMISSED=Zakljucena!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=zmaga!
-
-PLUGIN_HDL_NAME=Zdrži nivo
-PLUGIN_HDL_DESC=Ne poj slabše, kot kaže kazalnik na števcu za ocenjevanje.
-
-PLUGIN_UNTIL5000_NAME=Do 5000
-PLUGIN_UNTIL5000_DESC=Kdor prvi doseže 5000 tock, zmaga.
-
-PLUGIN_DUELL_NAME=Dvoboj
-PLUGIN_DUELL_DESC=Tekmovanje do 10000 tock.
-
-PLUGIN_TEAMDUELL_NAME=Ekipni dvoboj
-PLUGIN_TEAMDUELL_DESC=Podaj mikrofon!
-
-PLUGIN_BLIND_NAME=Slepi dvoboj
-PLUGIN_BLIND_DESC=Dvoboj brez prikaza not.
-
-STAT_MAIN=Statika
-STAT_MAIN_DESC=Splošno
-STAT_MAIN_WHEREAMI=Statistika
-
-STAT_OVERVIEW_INTRO=%0:s Statistika. \n Nazadnje ponastavljeno %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Pesmi(%3:d z videom), od katerih je bilo %1:d že zapetih in %2:d ne.\n Najbolj priljubljena pesem je %5:s od %4:s.
-STAT_OVERVIEW_PLAYER=Od zadnje ponastavitve statistike je igro igralo %0:d igralcev.\n Najboljši/a je %1:s s povprecnim rezultatom %2:d tock.\n %3:s je dosegel/la najboljši rezultat s %4:d tockami.
-
-STAT_DETAIL=Statistika
-STAT_DETAIL_WHEREAMI=Podrobna statistika
-
-STAT_NEXT=Naslednja stran
-STAT_PREV=Prejšnja stran
-STAT_REVERSE=Obratni vrstni red
-STAT_PAGE=Stran %0:d od %1:d strani\n (%2:d od %3:d zapisov)
-
-STAT_DESC_SCORES=Najboljši rezultati
-STAT_DESC_SCORES_REVERSED=Najslabši rezultati
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Najboljši igralec
-STAT_DESC_SINGERS_REVERSED=Najslabši igralec
-STAT_FORMAT_SINGERS=%0:s \n povprecni rezultat: %1:d
-
-STAT_DESC_SONGS=Najbolj popularne pesmi
-STAT_DESC_SONGS_REVERSED=Najmanj popularne pesmi
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx igrano
-
-STAT_DESC_BANDS=Najbolj popularen izvajalec
-STAT_DESC_BANDS_REVERSED=Najmanj popularen izvajalec
-STAT_FORMAT_BANDS=%0:s \n %1:dx igrano
-
-MSG_ERROR_TITLE=Napaka
-MSG_QUESTION_TITLE=Vprašanje
-MSG_QUIT_USDX=Želite zapustiti Ultrastar?
-MSG_END_PARTY=Koncam zabavo?
-ERROR_NO_SONGS=Ni pesmi: Naloži jih v mapo Songs
-ERROR_NO_PLUGINS=Ni vkljuckov
-ERROR_CORRUPT_SONG=Ne morem naložiti pesmi.
-ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ne morem naložiti pesmi: Ne najdem datoteke
-ERROR_CORRUPT_SONG_NO_NOTES=Ne morem naloziti pesmi: Ne najdem not.
-ERROR_CORRUPT_SONG_NO_BREAKS=Ne morem naložiti pesmi: Ne najdem prelomov vrstic.
-ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ne morem naložiti pesmi: Napaka v parsanju vrstice %0:d \ No newline at end of file
diff --git a/us_maker_edition/game/languages/old/readme.txt b/us_maker_edition/game/languages/old/readme.txt
deleted file mode 100644
index 83ba6cd6..00000000
--- a/us_maker_edition/game/languages/old/readme.txt
+++ /dev/null
@@ -1,286 +0,0 @@
-.o0 Ultrastar Deluxe in your language 0o.
-
------------------------
- Table of Contents
------------------------
-1. Introduction
-2. Statistic wildcards
-3. Texts to add
-
------------------------
-1. Introduction:
------------------------
-To translate USD to a new language, take the English language file, or another one that is up to date and edit the texts behind the equal mark(=).
-
------------------------
-2. Statistic Wild-Cards:
------------------------
-Here are some informations about the wildcards in the language texts for the statistic screens (STAT_...):
-Information that will replace the wildcards:
-
-STAT_OVERVIEW_INTRO:
- Format:
- %0:d Ultrastar Version
- %1:d Day of Reset (A1)
- %2:d Month of Reset (A2)
- %3:d Year of Reset (A3)
-
-STAT_OVERVIEW_SONG:
- Format:
- %0:d Count Songs (A1)
- %1:d Count of Sung Songs (A2)
- %2:d Count of UnSung Songs
- %3:d Count of Songs with Video (A3)
- %4:s Name of the most popular Song
-
-STAT_OVERVIEW_PLAYER:
- Format:
- %0:d Count Players (A1)
- %1:s Best Player (Result)
- %2:d Best Players Score
- %3:s Best Score Player (Result2)
- %4:d Best Score
-
-STAT_FORMAT_SCORES:
- Format:
- %0:s Singer
- %1:d Score
- %2:s Difficulty
- %3:s Song Artist
- %4:s Song Title
-
-STAT_FORMAT_SINGERS:
- Format:
- %0:s Singer
- %1:d Average Score
-
-
-STAT_FORMAT_SONGS:
- Format:
- %0:s Artist
- %1:s Title
- %2:d Times Sung
-
-STAT_FORMAT_BANDS:
- Format:
- %0:s Artist Name
- %1:d Times Sung
-
-Some further explanations about the wildcards:
-%x:[.y]z
-
-Where X is the number of the wildcard,
-Y is optional, it is the number of digits for deciaml numbers (Z=d). So, if y is 2 there and the number is only 0 to 9 there will be a zero added in front of the number.
-z can be d for numbers and s for texts
-
-For the date thing in STAT_OVERVIEW_INTRO you may use %1:.2d for the day and %2:.2d for the month.
-
------------------------
-3. Texts to Add:
------------------------
-To port a language file from Ultrastar 0.5.2 or higher add the following texts to the end of the file:
-
-#Main Screen
-SING_MENU=Main Menu
-
-SING_MULTI=party
-SING_MULTI_DESC=Sing in PartyMode
-
-SING_TOOLS=Tools
-
-SING_STATS=stats
-SING_STATS_DESC=View the Statistics
-
-#Sound Options Screen
-SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview Volume
-SING_OPTIONS_SOUND_PREVIEWFADING=Preview Fading
-
-#Advanced Options Screen
-SING_OPTIONS_ADVANCED=advanced
-SING_OPTIONS_ADVANCED_DESC=advanced options
-SING_OPTIONS_ADVANCED_EFFECTSING=Singscreen effects
-SING_OPTIONS_ADVANCED_SCREENFADE=Screen Fading
-SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation
-SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Savety Questions
-SING_OPTIONS_ADVANCED_LINEBONUS=Line Bonus
-SING_OPTIONS_ADVANCED_ONSONGCLICK=after SongSelection
-
-#Ratings at the Score Screen
-SING_SCORE_TONE_DEAF=Tone Deaf
-SING_SCORE_AMATEUR=Amateur
-SING_SCORE_RISING_STAR=Rising Star
-SING_SCORE_LEAD_SINGER=Lead Singer
-SING_SCORE_HIT_ARTIST=Hit Artist
-SING_SCORE_SUPERSTAR=Superstar
-SING_SCORE_ULTRASTAR=Ultrastar
-
-#Line Bonus PopUps
-POPUP_PERFECT=perfect!
-POPUP_AWESOME=awesome!
-POPUP_GREAT=great!
-POPUP_GOOD=good!
-POPUP_NOTBAD=not bad!
-POPUP_BAD=bad!
-POPUP_POOR=poor!
-POPUP_AWFUL=awful!
-
-#To connect strings with, e.g.: He, you and I
-IMPLODE_GLUE1=,
-IMPLODE_GLUE2= and
-
-#Song Screen Legend
-PLAYLIST_CATTEXT=Playlist: %s
-
-#Text for the legend bar at the bottom
-SING_LEGEND_CONTINUE=Continue
-
-#Texts of the menu that appears when M is pressed at the song selection
-SONG_MENU_NAME_MAIN=Song Menu
-SONG_MENU_PLAY=Sing
-SONG_MENU_EDIT=Edit
-SONG_MENU_MODI=Sing a Modi
-SONG_MENU_CHANGEPLAYERS=Change Players
-SONG_MENU_CANCEL=Cancel
-
-#Playlist Menu
-SONG_MENU_NAME_MAIN=song menu
-SONG_MENU_PLAY=Sing
-SONG_MENU_CHANGEPLAYERS=Change Players
-SONG_MENU_EDIT=Edit
-SONG_MENU_MODI=Sing a Modi
-SONG_MENU_CANCEL=Cancel
-
-SONG_MENU_NAME_PLAYLIST=Song Menu
-SONG_MENU_PLAYLIST_ADD=Add Song
-SONG_MENU_PLAYLIST_DEL=Delete Song
-
-SONG_MENU_NAME_PLAYLIST_ADD=Add Song
-SONG_MENU_PLAYLIST_ADD_NEW=to new playlist
-SONG_MENU_PLAYLIST_ADD_EXISTING=to exiting playlist
-SONG_MENU_PLAYLIST_NOEXISTING=No playlist available
-
-SONG_MENU_NAME_PLAYLIST_NEW=New Playlist
-SONG_MENU_PLAYLIST_NEW_CREATE=Create
-SONG_MENU_PLAYLIST_NEW_UNNAMED=Unnamed
-
-SONG_MENU_NAME_PLAYLIST_DEL=Really Delete?
-SONG_MENU_YES=Yes
-SONG_MENU_NO=No
-
-SONG_MENU_NAME_PLAYLIST_LOAD=Open Playlist
-SONG_MENU_PLAYLIST_LOAD=open
-SONG_MENU_PLAYLIST_DELCURRENT=delete current Playlist
-
-SONG_MENU_NAME_PLAYLIST_DEL=Delete Playlist?
-
-#Menu Party Modus
-SONG_MENU_NAME_PARTY_MAIN=Menu
-SONG_MENU_JOKER=Joker
-
-SONG_MENU_NAME_PARTY_JOKER=take Joker
-
-#Texts of the jump to window
-SONG_JUMPTO_DESC=Jump to Song
-SONG_JUMPTO_TYPE_DESC=Search for:
-SONG_JUMPTO_TYPE1=All
-SONG_JUMPTO_TYPE2=Title
-SONG_JUMPTO_TYPE3=Artist
-SONG_JUMPTO_SONGSFOUND=%d Song(s) found
-SONG_JUMPTO_NOSONGSFOUND=No Song found
-SONG_JUMPTO_HELP=Type Text to Search for
-SONG_JUMPTO_CATTEXT=Search for: %s
-
-#Texts for Party Mode
-PARTY_MODE=party mode
-PARTY_DIFFICULTY=Difficulty
-PARTY_PLAYLIST=Playlist Mode
-PARTY_PLAYLIST_ALL=All songs
-PARTY_PLAYLIST_CATEGORY=Folder
-PARTY_PLAYLIST_PLAYLIST=Playlist
-PARTY_ROUNDS=Rounds
-PARTY_TEAMS=Teams
-PARTY_TEAMS_PLAYER1=Player Team1
-PARTY_TEAMS_PLAYER2=Player Team2
-PARTY_TEAMS_PLAYER3=Player Team3
-PARTY_LEGEND_CONTINUE=continue
-PARTY_OPTIONS_DESC=settings for the party-game
-PARTY_OPTIONS_WHEREAMI=Party Options
-PARTY_PLAYER_DESC=enter player- and teamnames!
-PARTY_PLAYER_WHEREAMI=Party Names
-PARTY_PLAYER_ENTER_NAME=enter names
-PARTY_PLAYER_LEGEND_CONTINUE=start party-game
-PARTY_SONG_WHEREAMI=Party Song-Selection
-PARTY_SONG_LEGEND_CONTINUE=sing
-PARTY_SONG_MENU=party menu
-PARTY_ROUND_DESC=next players to the mics
-PARTY_ROUND_WHEREAMI=Party Next Round
-PARTY_ROUND_LEGEND_CONTINUE=start round
-PARTY_SCORE_DESC=score of the last round
-PARTY_SCORE_WHEREAMI=Party Points
-PARTY_WIN_DESC=winner of the party-game
-PARTY_WIN_WHEREAMI=Party Winner
-PARTY_WIN_LEGEND_CONTINUE=back to main-menu
-PARTY_ROUND=Round
-PARTY_ROUND_WINNER=Winner
-PARTY_NOTPLAYEDYET=not played yet
-PARTY_NOBODY=nobody
-NEXT_ROUND=Next round:
-PARTY_DISMISSED=Dismissed!
-PARTY_SCORE_WINS=%s
-PARTY_SCORE_WINS2=wins!
-PARTY_SONG_WHEREAMI=Party Song-Selection
-PARTY_SONG_LEGEND_CONTINUE=Party-Menu
-
-#Texts describing Plugins or Modi
-PLUGIN_HDL_NAME=Hold the Line
-PLUGIN_HDL_DESC=Don't get worse than the pointer at the rating bar shows you.
-PLUGIN_UNTIL5000_NAME=Until 5000
-PLUGIN_UNTIL5000_DESC=Who gets 5000 points first wins the match.
-PLUGIN_DUELL_NAME=Duell
-PLUGIN_DUELL_DESC=Sing a duell until 10000 points.
-PLUGIN_BLIND_NAME=Blind Mode
-PLUGIN_BLIND_DESC=Duell without seeing the notes.
-PLUGIN_TEAMDUELL_NAME=Team Duell
-PLUGIN_TEAMDUELL_DESC=Pass The Mic!
-
-#Statistics Screen
-#For more info about the format strings look at the source code (UScreenStatMain)
-STAT_MAIN=Statistics
-STAT_MAIN_DESC=General
-STAT_MAIN_WHEREAMI=Statistics
-
-STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d
-STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s.
-STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The Best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points.
-
-#Stat Detail Screen
-STAT_DETAIL=Statistics
-STAT_DETAIL_WHEREAMI=Detail Statistics
-
-STAT_NEXT=Next Page
-STAT_PREV=Previous Page
-STAT_REVERSE=Reverse Order
-STAT_PAGE=Seite %0:d of %1:d Pages\n (%2:d of %3:d Entrys)
-
-STAT_DESC_SCORES=HighScores
-STAT_DESC_SCORES_REVERSED=LowScores
-STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s)
-
-STAT_DESC_SINGERS=Best Singers
-STAT_DESC_SINGERS_REVERSED=Worst Singers
-STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d
-
-STAT_DESC_SONGS=Most popular Songs
-STAT_DESC_SONGS_REVERSED=Least popular Songs
-STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung
-
-STAT_DESC_BANDS=Most popular Bands
-STAT_DESC_BANDS_REVERSED=Least popular Bands
-STAT_FORMAT_BANDS=%0:s \n %1:dx Sung
-
-#Messages for Popup Message Boxes
-MSG_QUESTION_TITLE=Chicken Out
-MSG_QUIT_USDX=Really leave\n\nUltraStar?
-MSG_END_PARTY=Really end\n\nParty Mode?
-ERROR_NO_SONGS=Error: \n No Songs \n loaded
-ERROR_NO_PLUGINS=Error: \n No Plugins \n loaded \ No newline at end of file
diff --git a/us_maker_edition/game/languages/readme.txt b/us_maker_edition/game/languages/readme.txt
new file mode 100644
index 00000000..5628092c
--- /dev/null
+++ b/us_maker_edition/game/languages/readme.txt
@@ -0,0 +1,99 @@
+.o0 Ultrastar Deluxe in your language 0o.
+
+-----------------------
+ Table of Contents
+-----------------------
+1. Introduction
+2. Translate texts
+3. Wildcards
+
+-----------------------
+1. Introduction:
+-----------------------
+To translate USDX to a new language, copy the file Language.new to [Language].ini with [Language]
+replaced by the English name of your language (e.g. German.ini for German).
+Translate all texts according to section (2) of this file.
+
+-----------------------
+2. Translate texts:
+-----------------------
+1) For each target language there is a translation file named [Language].ini where [Language] is the target
+ language.
+2) All lines that have not been translated so far are prefixed with ";TODO:" like the following line
+ ;TODO: SOME_OPTION=English text here
+3) Translate the text if you are familiar with the target language
+4) After you have done so remove the ";TODO: " prefix so that it looks like in this German translation:
+ SOME_OPTION=Hier der deutsche Text
+ IMPORTANT: Do NOT remove the ";TODO: " prefix if you did not translate the text and it is still English.
+5) At the end of the file there might be some lines which start with ";INVALID: " or ";UNUSED: ".
+ Invalid lines are not correctly formatted lines and might crash USDX. Unused lines are not used
+ anymore by USDX or they have been renamed.
+6) If you want you may add your name to the END (not the beginning) of the file:
+ ;TRANSLATOR: Mario Translatori
+ Note the ";" in front of it.
+7) Share your translation with others:
+ - Send the translated file to our Patch-Tracker at SourceForge (http://sourceforge.net/tracker/?group_id=191560&atid=937872)
+ - or contact us via our IRC channel
+
+-----------------------
+3. Wildcards:
+-----------------------
+Here are some informations about the wildcards in the language texts for the statistic screens (STAT_...):
+Information that will replace the wildcards:
+
+STAT_OVERVIEW_INTRO:
+ Format:
+ %0:d Ultrastar Version
+ %1:d Day of Reset (A1)
+ %2:d Month of Reset (A2)
+ %3:d Year of Reset (A3)
+
+STAT_OVERVIEW_SONG:
+ Format:
+ %0:d Count Songs (A1)
+ %1:d Count of Sung Songs (A2)
+ %2:d Count of UnSung Songs
+ %3:d Count of Songs with Video (A3)
+ %4:s Name of the most popular Song
+
+STAT_OVERVIEW_PLAYER:
+ Format:
+ %0:d Count Players (A1)
+ %1:s Best Player (Result)
+ %2:d Best Players Score
+ %3:s Best Score Player (Result2)
+ %4:d Best Score
+
+STAT_FORMAT_SCORES:
+ Format:
+ %0:s Singer
+ %1:d Score
+ %2:s Difficulty
+ %3:s Song Artist
+ %4:s Song Title
+
+STAT_FORMAT_SINGERS:
+ Format:
+ %0:s Singer
+ %1:d Average Score
+
+
+STAT_FORMAT_SONGS:
+ Format:
+ %0:s Artist
+ %1:s Title
+ %2:d Times Sung
+
+STAT_FORMAT_BANDS:
+ Format:
+ %0:s Artist Name
+ %1:d Times Sung
+
+Some further explanations about the wildcards:
+%x:[.y]z
+
+Where X is the number of the wildcard,
+Y is optional, it is the number of digits for deciaml numbers (Z=d). So, if y is 2 there and the number is only 0 to 9 there will be a zero added in front of the number.
+z can be d for numbers and s for texts
+
+For the date thing in STAT_OVERVIEW_INTRO you may use %1:.2d for the day and %2:.2d for the month.
diff --git a/us_maker_edition/game/languages/update.py b/us_maker_edition/game/languages/update.py
new file mode 100755
index 00000000..74b4b774
--- /dev/null
+++ b/us_maker_edition/game/languages/update.py
@@ -0,0 +1,140 @@
+#!/usr/bin/python
+
+# UltraStar Deluxe - Karaoke Game
+#
+# UltraStar Deluxe is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# 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; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+import re
+import sys
+import os
+import codecs
+
+# buffer english file (always open binary, handle newline uniformly as "\n")
+f = open("English.ini", "rbU")
+english = []
+for line in f:
+ english.append(line.rstrip("\n"))
+f.close
+
+transPattern = re.compile("\s*(\w+)\s*=(.+)$")
+
+def update(lang):
+ print "\nUpdate " + lang
+
+ # buffer translation file (always open binary, handle newline uniformly)
+ f = open(lang, "rbU")
+ translation = []
+ for line in f:
+ translation.append(line.rstrip("\n"))
+ f.close
+ # WORKAROUND: On windows the file does not seem to be closed by f.close
+ # as long as it is still referenced. Hence os.rename(lang, oldLang) will
+ # fail later as the file is still opened for reading.
+ f = None;
+
+ outList = []
+ # find new fields
+ for line in english:
+ # header
+ if re.search("\[Text\]", line, re.I):
+ outList.append(codecs.BOM_UTF8 + "[Text]")
+ continue
+ # ignore comments
+ elif re.match("\s*[;#]", line):
+ continue
+ # copy empty lines
+ elif re.match("\s*$", line):
+ outList.append("")
+ continue
+ m = transPattern.match(line)
+ if (not m):
+ print "Invalid line: " + line
+ sys.exit(1)
+ untranslated = True
+ for transline in translation:
+ m2 = re.match("\s*" + m.group(1) + "\s*=(.+)$", transline)
+ if (m2):
+ outList.append(m.group(1) + "=" + m2.group(1))
+ untranslated = False
+ break
+ if (untranslated):
+ print (" +" + m.group(1))
+ outList.append(";TODO: " + line)
+
+ # find unsupported (not in English.ini) translations
+ for line in translation:
+ # ignore header
+ if re.search("\[Text\]", line, re.I):
+ continue
+ # ignore TODOs
+ if re.match(";TODO:", line):
+ continue
+ # copy comments
+ elif re.match("\s*[;#]", line):
+ outList.append(line)
+ continue
+ # ignore empty line
+ elif re.match("\s*$", line):
+ continue
+ m = transPattern.match(line)
+ if (not m):
+ print (" -" + line)
+ outList.append(";INVALID: " + line)
+ continue
+ # check if field is in English.ini
+ unsupported = True
+ for orig in english:
+ m2 = re.match("\s*" + m.group(1) + "\s*=(.+)$", orig)
+ # ignore translated lines (already written in first pass)
+ if (m2):
+ unsupported = False
+ break
+ # unsupported translation
+ if (unsupported):
+ print (" -" + m.group(1))
+ outList.append(";UNUSED: " + m.group(1) + "=" + m.group(2))
+
+ oldLang = lang + ".old"
+ if (os.path.exists(oldLang)):
+ os.remove(oldLang)
+ os.rename(lang, oldLang)
+
+ f = open(lang, 'wb')
+ for line in outList:
+ # binary mode does not convert "\n" to the os specific line-ending.
+ # Use os.linesep instead.
+ f.write(line + os.linesep)
+ f.close()
+
+if len(sys.argv) >= 2:
+ # update specific language file passed as command-line argument
+ update(sys.argv[1])
+else:
+ # update all language (ini) files
+ iniList=os.listdir(".")
+ for ini in iniList:
+ if not re.search(".ini$", ini):
+ continue
+ if ini == "English.ini":
+ continue
+ update(ini);
+
+ # update template (do not use an .ini prefix as USDX would load it)
+ update("Language.new");
diff --git a/us_maker_edition/game/themes/Deluxe.ini b/us_maker_edition/game/themes/Deluxe.ini
index 102f3811..143a8be0 100644
--- a/us_maker_edition/game/themes/Deluxe.ini
+++ b/us_maker_edition/game/themes/Deluxe.ini
@@ -384,8 +384,8 @@ Tex = SongCD
Type = Colorized
[SongTextCat]
-X = 70
-Y = 53
+X = 72
+Y = 58
Color = White
Font = 0
Size = 30
diff --git a/us_maker_edition/game/themes/Verdure.ini b/us_maker_edition/game/themes/Verdure.ini
new file mode 100644
index 00000000..126e0134
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure.ini
@@ -0,0 +1,8994 @@
+;1.10
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+
+[Theme]
+Name = Verdure
+Creator = MezzoX
+US_Version = USD 110
+
+[Colors]
+White = 255 255 255
+LightBlue = 119 187 210
+DarkBlue = 28 126 171
+LightRed = 170 146 146
+DarkRed = 155 113 113
+LightGreen = 136 168 136
+DarkGreen = 106 152 104
+LightPurple = 155 136 168
+DarkPurple = 145 104 152
+LightOrange = 168 155 136
+DarkOrange = 151 131 76
+LightYellow = 168 168 136
+DarkYellow = 150 151 76
+Turkis = 13 186 167
+GrayLightest = 223 223 223
+GrayLight = 191 191 191
+Gray = 127 127 127
+GrayDark = 63 63 63
+Black = 0 0 0
+GrayPopup = 51 51 51
+Gold = 255 223 31
+Silver = 223 223 223
+Bronze = 205 127 50
+Red = 255 0 0
+
+[Loading]
+[LoadingBackground]
+Tex = LoadingBG
+Color = DarkRed
+Type = Colorized
+
+[LoadingStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Z = 0.4
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[LoadingStatic3]
+X = 150
+Y = 180
+W = 500
+H = 180
+Z = 0.4
+Tex = LoadLogo
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[LoadingStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Z = 0.4
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[LoadingText1]
+X = 30
+Y = 548
+Color = White
+Font = 0
+Align = 0
+Size = 24
+Text = SING_LOADING
+Reflection = 1
+ReflectionSpacing = 13
+
+[LoadingText2]
+X = 790
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 2
+Text = US_VERSION
+Reflection = 1
+ReflectionSpacing = 13
+
+[Main]
+[MainBackground]
+Tex = MainBG
+
+[MainStatic1]
+X = 110
+Y = 190
+W = 25
+H = 23
+Tex = MainIcon
+Color = Black
+Type = Transparent
+
+[MainStatic6]
+X = 95
+Y = 180
+W = 500
+H = 75
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[MainText1]
+X = 140
+Y = 176
+Color = Black
+Font = 0
+Size = 54
+Align = 0
+Text = SING_MENU
+
+[MainTextDescriptionLong]
+X = 140
+Y = 223
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text =
+
+[MainStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Z = 0.4
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[MainStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Z = 0.4
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[MainStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Z = 0.5
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[MainText2]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 13
+
+[MainStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Z = 0.5
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[MainText3]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_SELECT
+Reflection = 1
+ReflectionSpacing = 13
+
+[MainButtonSolo]
+X = 95
+Y = 270
+W = 150
+H = 50
+Tex = ButtonLeft
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+
+[MainButtonSoloText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_SING
+Color = White
+
+[MainButtonMulti]
+X = 250
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[MainButtonMultiText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_MULTI
+Color = White
+
+[MainButtonCollection1]
+X = 405
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+Fade = 1
+FadeText = 0
+SelectH = 150
+FadeTex = ButtonFade
+FadeTexPos = 0
+FirstChild = 3
+
+[MainButtonCollection1Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_TOOLS
+Color = White
+
+[MainButtonStats]
+X = 410
+Y = 310
+W = 140
+H = 30
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+Parent = 1
+
+[MainButtonStatsText1]
+X = 70
+Y = 3
+Font = 0
+Size = 24
+Align = 1
+Text = SING_STATS
+Color = White
+
+[MainButtonEditor]
+X = 410
+Y = 345
+W = 140
+H = 30
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+Parent = 1
+
+[MainButtonEditorText1]
+X = 70
+Y = 3
+Font = 0
+Size = 24
+Align = 1
+Text = SING_EDITOR
+Color = White
+
+[MainButtonOptions]
+X = 410
+Y = 380
+W = 140
+H = 30
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+Parent = 1
+
+[MainButtonOptionsText1]
+X = 70
+Y = 3
+Font = 0
+Size = 24
+Align = 1
+Text = SING_OPTIONS
+Color = White
+
+[MainButtonExit]
+X = 560
+Y = 270
+W = 150
+H = 50
+Tex = ButtonRight
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[MainButtonExitText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_EXIT
+Color = White
+
+#######
+###############
+########
+
+[Song]
+
+[SongBackground]
+Tex = SongBG
+
+[SongStaticNonParty1]
+X = 40
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = SongCD
+Type = Transparent
+
+[SongTextCat]
+X = 70
+Y = 60
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = SING_SONG_SELECTION_DESC
+
+[SongStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Z = 0.4
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Z = 0.951
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongCover]
+X = 300
+Y = 120
+W = 325
+H = 200
+Reflections = 1
+Style=5
+
+[SongEqualizer]
+Visible = 1
+Direction = 1
+Color = ColorDark
+Alpha = 1
+X = 255
+Y = 476
+PieceW = 4
+PieceH = 4
+Space = 1
+Bands = 5
+Length = 15
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongVideoIcon]
+X = 310
+Y = 445
+W = 24
+H = 24
+Z = 0.95
+Color = White
+Tex = icon_song_video
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 22
+
+:[SongStatic3]
+:X = 278
+;Y = 120
+;W = 244
+;H = 200
+;Z = 0.95
+;Color = ColorLight
+;Tex = SongSelection1
+;Type = Transparent
+
+[SongStatic3]
+X = 283
+Y = 110
+W = 230
+H = 210
+Tex = SongSelection1
+Color = White
+Type = Transparent
+
+[SongStatic4]
+X = 283
+Y = 320
+W = 230
+H = 160
+Z = 0.95
+Color = White
+Tex = SongSelection2
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongStatic5]
+X = 20
+Y = 10
+W = 500
+H = 85
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[SongTextArtist]
+X = 400
+Y = 328
+W = 200
+Color = Black
+Font = 1
+Size = 24
+Align = 1
+Text =
+
+[SongTextTitle]
+X = 400
+Y = 394
+W = 200
+Color = ColorDark
+Font = 0
+Size = 25
+Align = 1
+Text =
+
+[SongTextNumber]
+X = 492
+Y = 457
+Z = 0.95
+Color = Black
+Size = 18
+Align = 2
+Reflection = 1
+ReflectionSpacing = 21
+
+#Variable statics and texts for song-screen in sing- and partymode
+# There can be an unlimited Number of Statics and Texts, As long
+# as the numbers are in order.
+# Statics that are shown in PartyMode Only are Named_
+# SongStaticParty[No]
+# Texts that are shown in PartyMode Only are Named_
+# SongTextParty[No]
+# Statics that are shown in Normal Mode Only are Named_
+# SongStaticNonParty[No]
+# Texts that are shown in Normal Mode Only are Named_
+# SongTextNonParty[No]
+#Here are the ones for singmode
+
+[SongTextNonParty1]
+X = 70
+Y = 6
+Color = Black
+Font = 0
+Size = 60
+Text = SING_SONG_SELECTION
+Align = 0
+
+# NAVBAR #########################
+# Jump to a letter with [ALT] + [A..Z]
+[SongStaticNonParty2]
+X = 260
+Y = 545
+W = 32
+H = 30
+Z = 0.952
+Tex = ButtonAlt
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongTextNonParty2]
+X = 292
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = +
+Reflection = 1
+ReflectionSpacing = 13
+
+[SongStaticNonParty3]
+X = 300
+Y = 545
+W = 32
+H = 30
+Z = 0.952
+Tex = ButtonAZ
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongTextNonParty3]
+X = 340
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_SONG_SELECTION_GOTO
+Reflection = 1
+ReflectionSpacing = 13
+
+# Menu opens with [M]
+[SongStaticNonParty4]
+X = 425
+Y = 545
+W = 32
+H = 30
+Z = 0.952
+Tex = ButtonM
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongTextNonParty4]
+X = 465
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_SONG_SELECTION_MENU
+Reflection = 1
+ReflectionSpacing = 13
+
+# The so famous search, shown with [J]
+[SongStaticNonParty5]
+X = 515
+Y = 545
+W = 32
+H = 30
+Z = 0.952
+Tex = ButtonJ
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongTextNonParty5]
+X = 555
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SONG_JUMPTO_DESC
+Reflection = 1
+ReflectionSpacing = 13
+
+# [P]laylist
+[SongStaticNonParty6]
+X = 680
+Y = 545
+W = 32
+H = 30
+Z = 0.952
+Tex = ButtonP
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[SongTextNonParty6]
+X = 720
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_SONG_SELECTION_PLAYLIST
+Reflection = 1
+ReflectionSpacing = 13
+
+#and these are the ones for partymode
+[SongStaticParty1]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+# NAVBAR for party
+# enter a number
+[SongStaticParty2]
+X = 260
+Y = 547
+Z = 0.952
+W = 32
+H = 30
+Tex = Button13
+Color = White
+Type = Transparent
+
+[SongTextParty3]
+X = 300
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SONG_MENU_NAME_PARTY_JOKER
+Reflection = 1
+ReflectionSpacing = 13
+
+# menu
+[SongStaticParty3]
+X = 435
+Y = 547
+Z = 0.952
+W = 32
+H = 30
+Tex = ButtonM
+Color = White
+Type = Transparent
+
+[SongTextParty4]
+X = 475
+Y = 548
+Z = 0.952
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = PARTY_SONG_MENU
+Reflection = 1
+ReflectionSpacing = 13
+
+[SongStaticParty4]
+X = 575
+Y = 547
+Z = 0.952
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[SongTextParty5]
+X = 615
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = PARTY_SONG_LEGEND_CONTINUE
+Reflection = 1
+ReflectionSpacing = 13
+
+#Texts for Party Mode
+[SongTextParty1]
+X = 70
+Y = 5
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[SongTextParty2]
+X = 238
+Y = 548
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_SONG_WHEREAMI
+#variable statics end
+
+# Jokers, 5 for each team, only shown in party Mode
+[SongStaticTeam1Joker1]
+Tex = Joker
+X = 520
+Y = 400
+W = 40
+H = 40
+Z = 0.98
+Color = P1Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam1Joker2]
+Tex = Joker
+X = 570
+Y = 400
+W = 40
+H = 40
+Z = 0.98
+Color = P1Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam1Joker3]
+Tex = Joker
+X = 620
+Y = 400
+W = 40
+H = 40
+Z = 0.98
+Color = P1Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam1Joker4]
+Tex = Joker
+X = 670
+Y = 400
+W = 40
+H = 40
+Z = 0.98
+Color = P1Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam1Joker5]
+Tex = Joker
+X = 720
+Y = 400
+W = 40
+H = 40
+Z = 0.98
+Color = P1Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam2Joker1]
+Tex = Joker
+X = 520
+Y = 450
+W = 40
+H = 40
+Z = 0.98
+Color = P2Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam2Joker2]
+Tex = Joker
+X = 570
+Y = 450
+W = 40
+H = 40
+Z = 0.98
+Color = P2Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam2Joker3]
+Tex = Joker
+X = 620
+Y = 450
+W = 40
+H = 40
+Z = 0.98
+Color = P2Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam2Joker4]
+Tex = Joker
+X = 670
+Y = 450
+W = 40
+H = 40
+Z = 0.98
+Color = P2Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam2Joker5]
+Tex = Joker
+X = 720
+Y = 450
+W = 40
+H = 40
+Z = 0.98
+Color = P2Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam3Joker1]
+Tex = Joker
+X = 520
+Y = 500
+W = 40
+H = 40
+Z = 0.98
+Color = P3Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam3Joker2]
+Tex = Joker
+X = 570
+Y = 500
+W = 40
+H = 40
+Z = 0.98
+Color = P3Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam3Joker3]
+Tex = Joker
+X = 620
+Y = 500
+W = 40
+H = 40
+Z = 0.98
+Color = P3Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam3Joker4]
+Tex = Joker
+X = 670
+Y = 500
+W = 40
+H = 40
+Z = 0.98
+Color = P3Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+[SongStaticTeam3Joker5]
+Tex = Joker
+X = 720
+Y = 500
+W = 40
+H = 40
+Z = 0.98
+Color = P3Dark
+Type = Transparent
+TexX1 = 0
+TexY1 = 0
+TexX2 = 1
+TexY2 = 1
+
+
+[Sing]
+Texts = 1
+
+[SingBackground]
+Type=color
+ColR=1
+ColB=1
+ColG=1
+
+[SingText1]
+Text = SING_TIME
+X = 43
+Y = 577
+Font = 1
+Size = 18
+Color = White
+Align = 1
+
+[SingStatic1]
+;TextBG
+Tex = LyricBar
+X = 10
+Y = 492
+W = 780
+H = 85
+Color = White
+Type = Transparent
+
+[SingStatic2]
+;TimeBar
+Tex = TimeBar1
+X = 10
+Y = 577
+W = 780
+H = 20
+Color = White
+Type = Transparent
+
+[SingTimeProgress]
+X = 87
+Y = 584
+W = 633
+H = 6
+Color = White
+
+[SingTimeText]
+Text = SING_TIME
+X = 761
+Y = 577
+Font = 1
+Size = 18
+Color = White
+Align = 1
+
+# O N E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # #
+#PlayerOne
+[SingP1Static]
+Tex = P
+X = 20
+Y = 297
+W = 30
+H = 28
+Color = P1Dark
+Type = Colorized
+
+[SingP1Text]
+Text = P1
+X = 25
+Y = 302
+Font = 1
+Size = 18
+Color = DarkGreen
+Align = 0
+
+[SingP1Static2]
+Tex = ScoreBG
+X = 680
+Y = 282
+W = 100
+H = 36
+Color = P1Dark
+Type = Colorized
+
+[SingP1TextScore]
+Text = 00000
+X = 698
+Y = 284
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP1SingBar]
+X = 680
+Y = 316
+W = 100
+H = 8
+
+# T W O P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # #
+#Player One
+[SingP1TwoPStatic]
+Tex = P
+X = 20
+Y = 117
+W = 30
+H = 28
+Color = P1Dark
+Type = Colorized
+
+[SingP1TwoPText]
+Text = P1
+X = 25
+Y = 122
+Font = 1
+Size = 18
+Color = White
+Align = 0
+
+[SingP1TwoPStatic2]
+Tex = ScoreBG
+X = 680
+Y = 102
+W = 100
+H = 36
+Color = P1Dark
+Type = Colorized
+
+[SingP1TwoPTextScore]
+Text = 00000
+X = 698
+Y = 104
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP1TwoPSingBar]
+X = 680
+Y = 136
+W = 100
+H = 8
+
+#Player Two
+[SingP2RStatic]
+Tex = P
+X = 20
+Y = 297
+W = 30
+H = 28
+Color = P2Dark
+Type = Colorized
+
+[SingP2RText]
+Text = P2
+X = 24
+Y = 302
+Font = 1
+Size = 18
+Color = White
+Align = 0
+
+[SingP2RStatic2]
+Tex = ScoreBG
+X = 680
+Y = 282
+W = 100
+H = 36
+Color = P2Dark
+Type = Colorized
+
+[SingP2RTextScore]
+Text = 00000
+X = 698
+Y = 284
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP2RSingBar]
+X = 680
+Y = 316
+W = 100
+H = 8
+
+# T H R E E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # #
+#Player One
+[SingP1ThreePStatic]
+Tex = P
+X = 16
+Y = 59
+W = 50
+H = 44
+Color = P1Dark
+Type = Colorized
+
+[SingP1ThreePText]
+Text = P1
+X = 27
+Y = 66
+Font = 1
+Size = 24
+Color = White
+Align = 0
+
+[SingP1ThreePStatic2]
+Tex = ScoreBG
+X = 75
+Y = 61
+W = 100
+H = 36
+Color = P1Dark
+Type = Colorized
+
+[SingP1ThreePTextScore]
+Text = 00000
+X = 93
+Y = 63
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP1ThreePSingBar]
+X = 75
+Y = 95
+W = 100
+H = 8
+
+#Player Two
+[SingP2MStatic]
+Tex = P
+X = 311
+Y = 59
+W = 50
+H = 44
+Color = P2Dark
+Type = Colorized
+
+[SingP2MText]
+Text = P2
+X = 321
+Y = 66
+Font = 1
+Size = 24
+Color = White
+Align = 0
+
+[SingP2MStatic2]
+Tex = ScoreBG
+X = 370
+Y = 61
+W = 100
+H = 36
+Color = P2Dark
+Type = Colorized
+
+[SingP2MTextScore]
+Text = 00000
+X = 388
+Y = 63
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP2MSingBar]
+X = 370
+Y = 95
+W = 100
+H = 8
+
+#Player Three
+[SingP3RStatic]
+Tex = P
+X = 611
+Y = 59
+W = 50
+H = 44
+Color = P3Dark
+Type = Colorized
+
+[SingP3RText]
+Text = P3
+X = 621
+Y = 66
+Font = 1
+Size = 24
+Color = White
+Align = 0
+
+[SingP3RStatic2]
+Tex = ScoreBG
+X = 670
+Y = 61
+W = 100
+H = 36
+Color = P3Dark
+Type = Colorized
+
+[SingP3RTextScore]
+Text = 00000
+X = 688
+Y = 63
+Font = 0
+Size = 30
+Color = White
+Align = 0
+
+[SingP3SingBar]
+X = 670
+Y = 95
+W = 100
+H = 8
+
+[Score]
+Texts = 1
+
+[ScoreBackground]
+Tex = ScoreScreenBG
+
+[ScoreText1]
+X = 60
+Y = 6
+Color = Black
+Font = 0
+Size = 60
+Text = SONG_SCORE
+Align = 0
+
+[ScoreTextArtistTitle]
+X = 60
+Y = 59
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = ArtistTitle
+
+[ScoreStatic1]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = ScoreIcon
+Type = Transparent
+
+[ScoreStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[ScoreStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[ScoreStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[ScoreStatic5]
+X = 20
+Y = 10
+W = 700
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+;[ScoreStatic6]
+;X = 20
+;Y = 110
+;W = 755
+;H = 420
+;z = 0.1
+;Tex = ScoreGlassBG
+;Color = White
+;Type = Transparent
+
+[ScoreText2]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_CONTINUE
+Reflection = 1
+ReflectionSpacing = 13
+#end of main stuff
+
+# # # # # # # # # # # # # # # # # # One Player Score # # # # # # # # # # # #
+[ScoreTextName1]
+X = 197
+Y = 290
+Font = 0
+Size = 30
+Text = P1
+Color = Black
+Align = 0
+
+# Rating
+[ScoreStaticRatingPicture1]
+X = 385
+Y = 165
+H = 75
+W = 75
+z = 0.95
+
+[ScoreTextScore1]
+X = 422
+Y = 235
+width = 100
+Color = Black
+Font = 0
+Size = 27
+Text = Tone Deaf
+Align = 1
+
+# Note Score
+[ScoreStaticBoxDark1]
+Tex = ScoreBar_box_dark
+X = 200
+Y = 327
+W = 22
+H = 20
+Color = P1Dark
+Type = Colorized
+
+[ScoreTextNotes1]
+X = 227
+Y = 322
+Color = Black
+Font = 0
+Size = 30
+Text = SING_NOTES
+Align = 0
+
+[ScoreTextNotesScore1]
+X = 487
+Y = 322
+Color = Black
+Font = 0
+Size = 30
+Align = 2
+Text = 0
+
+# A simple line
+[ScorePlayer1Static1]
+Tex = ScoreLine
+X = 200
+Y = 351
+W = 287
+H = 1
+Color = White
+Type = Colorized
+
+# Line Bonus
+[ScoreStaticBoxLight1]
+Tex = ScoreBar_box_light
+X = 200
+Y = 358
+W = 22
+H = 20
+Color = P1Light
+Type = Colorized
+
+[ScoreTextLineBonus1]
+X = 227
+Y = 352
+Color = Black
+Font = 0
+Size = 30
+Text = SING_PHRASE_BONUS
+Align = 0
+
+[ScoreTextLineBonusScore1]
+X = 487
+Y = 352
+Color = Black
+Font = 0
+Size = 30
+Align = 2
+Text = 0
+
+# A simple line
+[ScorePlayer1Static2]
+Tex = ScoreLine
+X = 200
+Y = 382
+W = 287
+H = 1
+Color = White
+Type = Colorized
+
+# Golden Notes
+[ScoreStaticBoxLightest1]
+Tex = ScoreBar_box_lightest
+X = 200
+Y = 390
+W = 22
+H = 20
+Color = P1Lightest
+Type = Colorized
+
+[ScoreTextGoldenNotes1]
+X = 227
+Y = 383
+Color = Black
+Font = 0
+Size = 30
+Text = SING_GOLDEN_NOTES
+Align = 0
+
+[ScoreTextGoldenNotesScore1]
+X = 487
+Y = 383
+Color = Black
+Font = 0
+Size = 30
+Align = 2
+Text = 0
+
+#Total Score
+[ScoreStaticPlayerIdBox1]
+Tex = PlayerIDBox01
+X = 200
+Y = 455
+W = 26
+H = 23
+Type = Transparent
+Color = White
+Reflection = 1
+ReflectionSpacing = 31
+
+[ScoreTextTotal1]
+X = 237
+Y = 454
+Color = Black
+Font = 0
+Size = 30
+Text = SING_TOTAL
+Align = 0
+Reflection = 1
+ReflectionSpacing = 26
+
+[ScoreTextTotalSCore1]
+X = 487
+Y = 444
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 0
+Reflection = 1
+ReflectionSpacing = 24
+
+#ScoreBar
+[ScoreStaticBackLevel1]
+Tex = ScoreLevel
+X = 503
+Y = 168
+W = 95
+H = 310
+Color = P1Lightest
+Type = Colorized
+
+[ScoreStaticBackLevelRound1]
+Tex = ScoreLevelRound
+X = 503
+Y = 138
+W = 95
+H = 8
+Color = P1Lightest
+Type = Colorized
+
+[ScoreStaticLevel1]
+Tex = ScoreLevel
+X = 503
+Y = 400
+W = 95
+H = 10
+Color = P1Dark
+Type = Colorized
+
+[ScoreStaticLevelRound1]
+Tex = ScoreLevelRound
+X = 503
+Y = 392
+W = 95
+H = 8
+Color = P1Dark
+Type = Colorized
+
+[ScorePlayer1Static3]
+Tex = ScoreEndCap
+X = 499
+Y = 478
+W = 110
+H = 30
+z = 0.9
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 0
+
+[ScorePlayer1Static4]
+Tex = ScoreGlassBox
+X = 499
+Y = 148
+W = 113
+H = 331
+z = 0.89
+Color = White
+Type = Transparent
+
+# # # # # # # # # # # # # # # # # # Two Player Score # # # # # # # # # # # #
+# P L A Y E R O N E
+[ScoreTextName2]
+X = 42
+Y = 290
+Font = 0
+Size = 30
+Text = P1
+Color = Black
+Align = 0
+
+[ScoreStaticRatingPicture2]
+X = 180
+Y = 165
+H = 75
+W = 75
+z = 1.0
+
+[ScoreTextScore2]
+X = 217
+Y = 235
+Width = 100
+Color = Black
+Font = 0
+Size = 27
+Text = Tone Deaf
+Align = 1
+
+[ScoreStaticBoxDark2]
+Tex = ScoreBar_box_dark
+X = 45
+Y = 327
+W = 22
+H = 20
+Color = P1Dark
+Type = Colorized
+
+[ScoreTextNotes2]
+X = 72
+Y = 324
+Color = Black
+Font = 0
+Size = 24
+Text = SING_NOTES
+Align = 0
+
+[ScoreTextNotesScore2]
+X = 282
+Y = 324
+Color = Black
+Font = 0
+Size = 24
+Align = 2
+Text = 0000
+
+[ScoreStaticBoxLight2]
+Tex = ScoreBar_box_light
+X = 45
+Y = 358
+W = 22
+H = 20
+Color = P1Lightest
+Type = Colorized
+
+[ScoreTextLineBonus2]
+X = 72
+Y = 355
+Color = Black
+Font = 0
+Size = 24
+Text = SING_PHRASE_BONUS
+Align = 0
+
+[ScoreTextLineBonusScore2]
+X = 282
+Y = 355
+Color = Black
+Font = 0
+Size = 24
+Align = 2
+Text = 0000
+
+[ScoreStaticBoxLightest2]
+Tex = ScoreBar_box_lightest
+X = 45
+Y = 390
+W = 22
+H = 20
+Color = P1Lightest
+Type = Colorized
+
+[ScoreTextGoldenNotes2]
+X = 72
+Y = 387
+Color = Black
+Font = 0
+Size = 24
+Text = SING_GOLDEN_NOTES
+Align = 0
+
+[ScoreTextGoldenNotesScore2]
+X = 282
+Y = 387
+Color = Black
+Font = 0
+Size = 24
+Align = 2
+Text = 0000
+
+[ScoreTextTotal2]
+X = 82
+Y = 454
+Color = Black
+Font = 0
+Size = 30
+Text = SING_TOTAL
+Reflection = 1
+ReflectionSpacing = 24
+
+[ScoreTextTotalSCore2]
+X = 283
+Y = 444
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+Reflection = 1
+ReflectionSpacing = 24
+
+# Lines
+[ScorePlayer2Static1]
+Tex = ScoreLine
+X = 45
+Y = 351
+W = 237
+H = 1
+Type = Colorized
+Color = ColorDark
+
+[ScorePlayer2Static2]
+Tex = ScoreLine
+X = 45
+Y = 382
+W = 237
+H = 1
+Type = Colorized
+Color = ColorDark
+
+[ScoreStaticPlayerIdBox2]
+Tex = PlayerIDBox01
+X = 45
+Y = 455
+W = 26
+H = 23
+Type = Transparent
+Color = White
+Reflection = 1
+ReflectionSpacing = 31
+
+#ScoreBar
+[ScoreStaticBackLevel2]
+Tex = ScoreLevel
+X = 298
+Y = 168
+W = 95
+H = 310
+Color = P1Lightest
+Type = Colorized
+
+[ScoreStaticBackLevelRound2]
+Tex = ScoreLevelRound
+X = 298
+Y = 138
+W = 95
+H = 8
+Color = P1Lightest
+Type = Colorized
+
+[ScoreStaticLevel2]
+Tex = ScoreLevel
+X = 298
+Y = 400
+W = 95
+H = 10
+Color = P1Dark
+Type = Colorized
+
+[ScoreStaticLevelRound2]
+Tex = ScoreLevelRound
+X = 298
+Y = 392
+W = 95
+H = 8
+Color = P1Dark
+Type = Colorized
+
+[ScorePlayer2Static3]
+Tex = ScoreEndCap
+X = 294
+Y = 478
+W = 110
+H = 30
+z = 0.9
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 0
+
+[ScorePlayer2Static4]
+Tex = ScoreGlassBox
+X = 294
+Y = 148
+W = 113
+H = 331
+z = 0.89
+Color = White
+Type = Transparent
+
+# P L A Y E R T W O
+[ScoreTextName3]
+X = 758
+Y = 290
+Font = 0
+Size = 30
+Text = P2
+Color = Black
+Align = 2
+
+[ScoreStaticRatingPicture3]
+X = 545
+Y = 165
+H = 75
+W = 75
+
+[ScoreTextScore3]
+X = 583
+Y = 235
+width = 100
+Color = Black
+Font = 0
+Size = 27
+Text = Tone Deaf
+Align = 1
+
+[ScoreStaticBoxDark3]
+Tex = ScoreBar_box_dark
+X = 733
+Y = 327
+W = 22
+H = 20
+Color = P2Dark
+Type = Colorized
+
+[ScoreTextNotes3]
+X = 728
+Y = 324
+Color = Black
+Font = 0
+Size = 24
+Text = SING_NOTES
+Align = 2
+
+[ScoreTextNotesScore3]
+X = 518
+Y = 324
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = 0000
+
+[ScoreStaticBoxLight3]
+Tex = ScoreBar_box_light
+X = 733
+Y = 358
+W = 22
+H = 20
+Color = P2Lightest
+Type = Colorized
+
+[ScoreTextLineBonus3]
+X = 728
+Y = 355
+Color = Black
+Font = 0
+Size = 24
+Text = SING_PHRASE_BONUS
+Align = 2
+
+[ScoreTextLineBonusScore3]
+X = 518
+Y = 355
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = 0000
+
+[ScoreStaticBoxLightest3]
+Tex = ScoreBar_box_lightest
+X = 733
+Y = 390
+W = 22
+H = 20
+Color = P2Lightest
+Type = Colorized
+
+[ScoreTextGoldenNotes3]
+X = 728
+Y = 387
+Color = Black
+Font = 0
+Size = 24
+Text = SING_GOLDEN_NOTES
+Align = 2
+
+[ScoreTextGoldenNotesScore3]
+X = 518
+Y = 387
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = 0000
+
+[ScoreTextTotal3]
+X = 718
+Y = 454
+Color = Black
+Font = 0
+Size = 30
+Text = SING_TOTAL
+Align = 2
+Reflection = 1
+ReflectionSpacing = 24
+
+[ScoreTextTotalScore3]
+X = 517
+Y = 444
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 00000
+Reflection = 1
+ReflectionSpacing = 24
+
+#Lines
+[ScorePlayer3Static1]
+Tex = ScoreLine
+X = 518
+Y = 351
+W = 237
+H = 1
+Type = Colorized
+Color = White
+
+[ScorePlayer3Static2]
+Tex = ScoreLine
+X = 518
+Y = 382
+W = 237
+H = 1
+Type = Colorized
+Color = White
+
+[ScoreStaticPlayerIdBox3]
+Tex = PlayerIDBox02
+X = 729
+Y = 455
+W = 26
+H = 23
+Type = Transparent
+Color = White
+Reflection = 1
+ReflectionSpacing = 31
+
+#ScoreBar
+[ScoreStaticBackLevel3]
+Tex = ScoreLevel
+X = 409
+Y = 168
+W = 95
+H = 310
+Color = P2Lightest
+Type = Colorized
+
+[ScoreStaticBackLevelRound3]
+Tex = ScoreLevelRound
+X = 409
+Y = 138
+W = 95
+H = 8
+Color = P2Lightest
+Type = Colorized
+
+[ScoreStaticLevel3]
+Tex = ScoreLevel
+X = 409
+Y = 400
+W = 95
+H = 10
+Color = P2Dark
+Type = Colorized
+
+[ScoreStaticLevelRound3]
+Tex = ScoreLevelRound
+X = 409
+Y = 392
+W = 95
+H = 8
+Color = P2Dark
+Type = Colorized
+
+[ScorePlayer3Static3]
+Tex = ScoreEndCap
+X = 405
+Y = 478
+W = 110
+H = 30
+z = 0.9
+Color = P2Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 0
+
+[ScorePlayer3Static4]
+Tex = ScoreGlassBox
+X = 405
+Y = 148
+W = 113
+H = 331
+z = 0.89
+Color = White
+Type = Transparent
+
+# # # # # # # # # # # # # # # # # # Three Player Score # # # # # # # # # # # #
+# P L A Y E R O N E
+[ScoreTextName4]
+X = 20
+Y = 160
+Font = 0
+Size = 42
+Align = 0
+Text = P1
+Color = Black
+
+# Rating
+[ScoreStaticRatingPicture4]
+X = 200
+Y = 150
+H = 60
+W = 60
+
+[ScoreTextNotes4]
+X = 20
+Y = 220
+Font = 0
+Size = 27
+Align = 0
+Text = SING_NOTES
+Color = Black
+
+[ScoreTextNotesScore4]
+X = 260
+Y = 220
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextLineBonus4]
+X = 20
+Y = 250
+Font = 0
+Size = 27
+Align = 0
+Text = SING_PHRASE_BONUS
+Color = Black
+
+[ScoreTextLineBonusScore4]
+X = 260
+Y = 250
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextGoldenNotes4]
+X = 20
+Y = 280
+Font = 0
+Size = 27
+Align = 0
+Text = SING_GOLDEN_NOTES
+Color = Black
+
+[ScoreTextGoldenNotesScore4]
+X = 260
+Y = 280
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextScore4]
+X = 20
+Y = 310
+Font = 1
+Size = 27
+Align = 0
+Text = Tone Deaf
+Color = Black
+
+[ScoreTextTotal4]
+X = 47
+Y = 371
+Font = 0
+Size = 30
+Align = 0
+Text = SING_TOTAL
+Color = Black
+Reflection = 1
+ReflectionSpacing = -1
+
+[ScoreTextTotalScore4]
+X = 260
+Y = 361
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+Color = Black
+Reflection = 1
+ReflectionSpacing = -3
+
+[ScoreStaticBoxDark4]
+Tex = PlayerNumberBox
+X = 20
+Y = 370
+W = 25
+H = 25
+Type = Colorized
+Color = P1Dark
+Z = 0.9
+Reflection = 1
+ReflectionSpacing = 4
+
+[ScorePlayer4Text1]
+X = 24
+Y = 376
+W = 30
+H = 30
+Z = 1
+Color = White
+Font = 1
+Size = 15
+Align = 0
+Text = P1
+
+#lines
+[ScorePlayer4Static1]
+X = 20
+Y = 218
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer4Static2]
+X = 20
+Y = 248
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer4Static3]
+X = 20
+Y = 278
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer4Static4]
+X = 20
+Y = 308
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer4Static5]
+X = 20
+Y = 338
+W = 240
+H = 4
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+# P L A Y E R T W O
+[ScoreTextName5]
+X = 280
+Y = 160
+Font = 0
+Size = 42
+Align = 0
+Text = P2
+Color = Black
+
+# Rating
+[ScoreStaticRatingPicture5]
+X = 460
+Y = 150
+H = 60
+W = 60
+
+[ScoreTextNotes5]
+X = 280
+Y = 220
+Font = 0
+Size = 27
+Align = 0
+Text = SING_NOTES
+Color = Black
+
+[ScoreTextNotesScore5]
+X = 520
+Y = 220
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextLineBonus5]
+X = 280
+Y = 250
+Font = 0
+Size = 27
+Align = 0
+Text = SING_PHRASE_BONUS
+Color = Black
+
+[ScoreTextLineBonusScore5]
+X = 520
+Y = 250
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextGoldenNotes5]
+X = 280
+Y = 280
+Font = 0
+Size = 27
+Align = 0
+Text = SING_GOLDEN_NOTES
+Color = Black
+
+[ScoreTextGoldenNotesScore5]
+X = 520
+Y = 280
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextScore5]
+X = 280
+Y = 310
+Font = 1
+Size = 27
+Align = 0
+Text = Tone Deaf
+Color = Black
+
+[ScoreTextTotal5]
+X = 307
+Y = 371
+Font = 0
+Size = 30
+Align = 0
+Text = SING_TOTAL
+Color = Black
+Reflection = 1
+ReflectionSpacing = -1
+
+[ScoreTextTotalScore5]
+X = 520
+Y = 361
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+Color = Black
+Reflection = 1
+ReflectionSpacing = -3
+
+[ScoreStaticBoxDark5]
+Tex = PlayerNumberBox
+X = 280
+Y = 370
+W = 25
+H = 25
+Type = Colorized
+Color = P2Dark
+Z = 0.9
+Reflection = 1
+ReflectionSpacing = 4
+
+[ScorePlayer5Text1]
+X = 284
+Y = 376
+W = 30
+H = 30
+Z = 1
+Color = Black
+Font = 1
+Size = 15
+Align = 0
+Text = P2
+
+[ScorePlayer5Static1]
+X = 280
+Y = 218
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer5Static2]
+X = 280
+Y = 248
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer5Static3]
+X = 280
+Y = 278
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer5Static4]
+X = 280
+Y = 308
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer5Static5]
+X = 280
+Y = 338
+W = 240
+H = 4
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+# P L A Y E R T H R E E
+[ScoreTextName6]
+X = 540
+Y = 160
+Font = 0
+Size = 42
+Align = 0
+Text = P3
+Color = Black
+
+# Rating
+[ScoreStaticRatingPicture6]
+X = 720
+Y = 150
+H = 60
+W = 60
+
+[ScoreTextNotes6]
+X = 540
+Y = 220
+Font = 0
+Size = 27
+Align = 0
+Text = SING_NOTES
+Color = Black
+
+[ScoreTextNotesScore6]
+X = 780
+Y = 220
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextLineBonus6]
+X = 540
+Y = 250
+Font = 0
+Size = 27
+Align = 0
+Text = SING_PHRASE_BONUS
+Color = Black
+
+[ScoreTextLineBonusScore6]
+X = 780
+Y = 250
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextGoldenNotes6]
+X = 540
+Y = 280
+Font = 0
+Size = 27
+Align = 0
+Text = SING_GOLDEN_NOTES
+Color = Black
+
+[ScoreTextGoldenNotesScore6]
+X = 780
+Y = 280
+Font = 0
+Size = 30
+Align = 2
+Text = 0000
+Color = Black
+
+[ScoreTextScore6]
+X = 540
+Y = 310
+Font = 1
+Size = 27
+Align = 0
+Text = Tone Deaf
+Color = Black
+
+[ScoreTextTotal6]
+X = 567
+Y = 371
+Font = 0
+Size = 30
+Align = 0
+Text = SING_TOTAL
+Color = Black
+Reflection = 1
+ReflectionSpacing = -1
+
+[ScoreTextTotalScore6]
+X = 780
+Y = 361
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+Color = Black
+Reflection = 1
+ReflectionSpacing = -3
+
+[ScoreStaticBoxDark6]
+Tex = PlayerNumberBox
+X = 540
+Y = 370
+W = 25
+H = 25
+Type = Colorized
+Color = P3Dark
+Z = 0.9
+Reflection = 1
+ReflectionSpacing = 4
+
+[ScorePlayer6Text1]
+X = 544
+Y = 376
+W = 30
+H = 30
+Z = 1
+Color = Black
+Font = 1
+Size = 15
+Align = 0
+Text = P3
+
+#lines
+[ScorePlayer6Static1]
+X = 540
+Y = 218
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer6Static2]
+X = 540
+Y = 248
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer6Static3]
+X = 540
+Y = 278
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer6Static4]
+X = 540
+Y = 308
+W = 240
+H = 2
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+[ScorePlayer6Static5]
+X = 540
+Y = 338
+W = 240
+H = 4
+Tex = ScoreLine
+Type = Colorized
+Color = Black
+
+##################
+#################################
+#################
+
+[Options]
+Texts = 6
+Fade = 2
+
+[OptionsBackground]
+Tex = OptionsBG
+
+[OptionsStatic1]
+X = 110
+Y = 130
+W = 25
+H = 25
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsStatic7]
+X = 95
+Y = 115
+W = 500
+H = 115
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsText1]
+X = 140
+Y = 115
+Color = Black
+Font = 0
+Size = 54
+Text = SING_OPTIONS
+Align = 0
+
+[OptionsText2]
+X = 140
+Y = 165
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = SING_OPTIONS_DESC
+
+[OptionsTextDescription]
+X = 140
+Y = 195
+Color = Color
+Font = 0
+Size = 30
+Align = 0
+Text =
+
+[OptionsStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsText3]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+Reflection=1
+ReflectionSpacing=13
+
+[OptionsStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsText4]
+X = 440
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_SELECT
+Reflection=1
+ReflectionSpacing=13
+
+[OptionsStatic6]
+X = 550
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsText5]
+X = 590
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_ESC
+Reflection=1
+ReflectionSpacing=13
+
+[OptionsButtonGame]
+X = 95
+Y = 245
+W = 150
+H = 50
+Tex = ButtonLeft
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonGameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_GAME
+Color = White
+
+[OptionsButtonGraphics]
+X = 250
+Y = 245
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonGraphicsText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_GRAPHICS
+Color = White
+
+[OptionsButtonSound]
+X = 405
+Y = 245
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonSoundText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_SOUND
+Color = White
+
+[OptionsButtonLyrics]
+X = 560
+Y = 245
+W = 150
+H = 50
+Tex = ButtonRight
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Align = 0
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonLyricsText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_LYRICS
+Color = White
+
+[OptionsButtonThemes]
+X = 95
+Y = 335
+W = 150
+H = 50
+Tex = ButtonLeft
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Align = 0
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonThemesText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_THEMES
+Color = White
+
+[OptionsButtonRecord]
+X = 250
+Y = 335
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Align = 0
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonRecordText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_RECORD
+Color = White
+Texts = 1
+
+[OptionsButtonAdvanced]
+X = 405
+Y = 335
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Align = 0
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonAdvancedText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_ADVANCED
+Color = White
+Texts = 1
+
+[OptionsButtonExit]
+X = 560
+Y = 335
+W = 150
+H = 50
+Tex = ButtonRight
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Align = 0
+Texts = 1
+;Fade = 1
+;FadeText = 1
+;SelectH = 100
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[OptionsButtonExitText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+#################
+###########################################################################################
+################
+
+[OptionsGame]
+Texts = 5
+
+[OptionsGameBackground]
+Tex = OptionsBG
+
+[OptionsGameStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsGameStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsGameText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsGameText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_GAME_DESC
+
+[OptionsGameText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_GAME_WHEREAMI
+
+[OptionsGameStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGameStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGameStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGameText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_NAVIGATE
+
+[OptionsGameStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGameText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_ESC
+
+[OptionsGameSelectPlayers]
+Text = SING_OPTIONS_GAME_PLAYERS
+Tex = MainBar
+TexSBG = SelectBG
+Type = Transparent
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameSelectDifficulty]
+Text = SING_OPTIONS_GAME_DIFFICULTY
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameSelectSlideLanguage]
+Text = SING_OPTIONS_GAME_LANGUAGE
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameSelectTabs]
+Text = SING_OPTIONS_GAME_TABS
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 280
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameSelectSlideSorting]
+Text = SING_OPTIONS_GAME_SORTING
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 330
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameSelectDebug]
+Text = SING_OPTIONS_GAME_DEBUG
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 380
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGameButtonExit]
+X = 70
+Y = 440
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsGameButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+################################
+
+[OptionsGraphics]
+Texts = 5
+
+[OptionsGraphicsBackground]
+Tex = OptionsBG
+
+[OptionsGraphicsStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsGraphicsStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsGraphicsText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsGraphicsText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_GRAPHICS_DESC
+
+[OptionsGraphicsText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_GRAPHICS_WHEREAMI
+
+
+[OptionsGraphicsStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGraphicsStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGraphicsStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGraphicsText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsGraphicsStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Z = 0.5
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsGraphicsText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_ESC
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsGraphicsSelectSlideResolution]
+Text = SING_OPTIONS_GRAPHICS_RESOLUTION
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsSelectFullscreen]
+Text = SING_OPTIONS_GRAPHICS_FULLSCREEN
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsSelectDepth]
+Text = SING_OPTIONS_GRAPHICS_DEPTH
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsSelectVisualizer]
+Text = SING_OPTIONS_GRAPHICS_VISUALIZER
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 280
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsSelectOscilloscope]
+Text = SING_OPTIONS_GRAPHICS_OSCILLOSCOPE
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 330
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsSelectMovieSize]
+Text = SING_OPTIONS_GRAPHICS_MOVIE_SIZE
+Tex = MainBar
+Type = Transparent
+TexSBG = SelectBG
+X = 70
+Y = 380
+W = 250
+H = 40
+SkipX = 10
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsGraphicsButtonExit]
+X = 70
+Y = 440
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsGraphicsButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[OptionsSound]
+Texts = 5
+
+[OptionsSoundBackground]
+Tex = OptionsBG
+
+[OptionsSoundStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsSoundText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsSoundText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_SOUND_DESC
+
+[OptionsSoundText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_SOUND_WHEREAMI
+
+[OptionsSoundStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsSoundStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsSoundStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsSoundStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsSoundText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsSoundStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsSoundText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_ESC
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsSoundSelectVoicePassthrough]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_VOICEPASSTHROUGH
+X = 70
+Y = 130
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectBackgroundMusic]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_BACKGROUNDMUSIC
+X = 70
+Y = 170
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectMicBoost]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_MIC_BOOST
+X = 70
+Y = 210
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectClickAssist]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_CLICK_ASSIST
+X = 70
+Y = 250
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectBeatClick]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_BEAT_CLICK
+X = 70
+Y = 290
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectThreshold]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_THRESHOLD
+X = 70
+Y = 330
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectSlidePreviewVolume]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_PREVIEWVOLUME
+X = 70
+Y = 370
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundSelectSlidePreviewFADING]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_SOUND_PREVIEWFADING
+X = 70
+Y = 410
+W = 250
+H = 35
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsSoundButtonExit]
+X = 70
+Y = 460
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsSoundButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[OptionsLyrics]
+Texts = 1
+
+[OptionsLyricsBackground]
+Tex = OptionsBG
+
+[OptionsLyricsStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsLyricsText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsLyricsText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_LYRICS_DESC
+
+[OptionsLyricsText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_LYRICS_WHEREAMI
+
+[OptionsLyricsStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsLyricsStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsLyricsStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsLyricsStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsLyricsText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsLyricsStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsLyricsText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Text = SING_LEGEND_ESC
+Reflection = 1
+ReflectionSpacing = 20
+
+[OptionsLyricsSelectLyricsFont]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_LYRICS_FONT
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsLyricsSelectLyricsEffect]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_LYRICS_EFFECT
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsLyricsSelectNoteLines]
+Tex = MainBar
+TexSBG = SelectBG
+Text = SING_OPTIONS_LYRICS_NOTELINES
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsLyricsButtonExit]
+X = 70
+Y = 290
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsLyricsButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[OptionsThemes]
+Texts = 5
+
+[OptionsThemesBackground]
+Tex = OptionsBG
+
+[OptionsThemesStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsThemesText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsThemesText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_THEMES_DESC
+
+[OptionsThemesText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_THEMES_WHEREAMI
+
+[OptionsThemesStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsThemesStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsThemesStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsThemesStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsThemesText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_NAVIGATE
+
+[OptionsThemesStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsThemesText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_ESC
+
+[OptionsThemesSelectTheme]
+Text = SING_OPTIONS_THEMES_THEME
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsThemesSelectSkin]
+Text = SING_OPTIONS_THEMES_SKIN
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsThemesSelectColor]
+Text = SING_OPTIONS_THEMES_COLOR
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsThemesButtonExit]
+X = 70
+Y = 290
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsThemesButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[OptionsRecord]
+Texts = 5
+
+[OptionsRecordBackground]
+Tex = OptionsBG
+
+[OptionsRecordStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsRecordText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsRecordText2]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_RECORD_DESC
+
+[OptionsRecordText3]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_RECORD_WHEREAMI
+
+[OptionsRecordStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsRecordStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsRecordStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsRecordStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsRecordText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_NAVIGATE
+
+[OptionsRecordStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsRecordText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_ESC
+
+[OptionsRecordSelectSlideCard]
+Text = SING_OPTIONS_RECORD_CARD
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsRecordSelectSlideInput]
+Text = SING_OPTIONS_RECORD_INPUT
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsRecordSelectSlideChannel]
+Text = SING_OPTIONS_RECORD_CHANNEL
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsRecordButtonExit]
+X = 70
+Y = 390
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsRecordButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[OptionsAdvanced]
+Texts = 5
+
+[OptionsAdvancedBackground]
+Tex = OptionsBG
+
+[OptionsAdvancedStatic1]
+X = 40
+Y = 22
+W = 25
+H = 23
+Color = Black
+Tex = IconOption
+Type = Transparent
+
+[OptionsAdvancedText1]
+X = 70
+Y = 5
+Color = Black
+Size = 54
+Text = SING_OPTIONS
+
+[OptionsAdvancedText3]
+X = 70
+Y = 55
+Color = ColorDark
+Size = 30
+Text = SING_OPTIONS_ADVANCED_DESC
+
+[OptionsAdvancedText2]
+X = 70
+Y = 85
+Color = Black
+Size = 30
+Text = SING_OPTIONS_ADVANCED_WHEREAMI
+
+[OptionsAdvancedStatic6]
+X = 20
+Y = 10
+W = 500
+H = 110
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[OptionsAdvancedStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsAdvancedStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsAdvancedStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsAdvancedText4]
+X = 300
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_NAVIGATE
+
+[OptionsAdvancedStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[OptionsAdvancedText5]
+X = 440
+Y = 548
+Z = 0.5
+Color = Black
+Size = 24
+Reflection = 1
+ReflectionSpacing = 20
+Text = SING_LEGEND_ESC
+
+#########unused at the moment#########
+#[OptionsAdvancedSelectLoadAnimation]
+#Text = SING_OPTIONS_ADVANCED_LOADANIMATION
+#Tex = MainBar
+#TexSBG = SelectBG
+#X = 40
+#Y = 85
+#W = 230
+#H = 70
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectScreenFade]
+Text = SING_OPTIONS_ADVANCED_SCREENFADE
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 130
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectEffectSing]
+Text = SING_OPTIONS_ADVANCED_EFFECTSING
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 180
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectLineBonus]
+Text = SING_OPTIONS_GRAPHICS_LINEBONUS
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 230
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectSlideOnSongClick]
+Text = SING_OPTIONS_ADVANCED_ONSONGCLICK
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 280
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectAskbeforeDel]
+Text = SING_OPTIONS_ADVANCED_ASKBEFOREDEL
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 330
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedSelectPartyPopup]
+Text = SING_OPTIONS_ADVANCED_PARTYPOPUP
+Tex = MainBar
+TexSBG = SelectBG
+X = 70
+Y = 380
+W = 250
+H = 40
+SkipX = 10
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[OptionsAdvancedButtonExit]
+X = 70
+Y = 440
+W = 250
+H = 40
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+Align = 0
+Texts = 1
+
+[OptionsAdvancedButtonExitText1]
+X = 60
+Y = 5
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[Top5]
+Texts = 1
+
+[Top5Background]
+Tex = Top5BG
+
+[Top5Text1]
+X = 60
+Y = 6
+Color = Black
+Font = 0
+Size = 60
+Align = 0
+Text = SING_TOP_5_CHARTS
+
+[Top5TextArtistTitle]
+X = 60
+Y = 60
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = artist - title
+
+[Top5Text4]
+X = 370
+Y = 30
+Color = Black
+Font = 0
+Size = 30
+Align = 0
+Text = SING_OPTIONS_GAME_DIFFICULTY
+
+[Top5Static6]
+X = 20
+Y = 10
+W = 700
+H = 85
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[Top5TextLevel]
+X = 580
+Y = 30
+Color = Black
+Font = 0
+Size = 30
+Align = 1
+Text = easy
+
+[Top5Static1]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = ScoreIcon
+Type = Transparent
+
+[Top5Static2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[Top5Static3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[Top5Text2]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = SING_TOP_5_CHARTS_WHEREAMI
+
+[Top5Static4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[Top5Text3]
+X = 290
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_TOP_5_CHARTS_CONTINUE
+
+[Top5Static5]
+X = 530
+Y = 552
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[Top5Text5]
+X = 560
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_TOP_5_CHARTS_SWITCH_DIFFICULTY
+
+[Top5TextName1]
+X = 150
+Y = 190
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 1. Player1
+
+[Top5TextName2]
+X = 150
+Y = 240
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 2. Player2
+
+[Top5TextName3]
+X = 150
+Y = 290
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 3. Player3
+
+[Top5TextName4]
+X = 150
+Y = 340
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 4. Player4
+
+[Top5TextName5]
+X = 150
+Y = 390
+Color = Black
+Font = 0
+Size = 42
+Align = 0
+Text = 5. Player5
+
+[Top5TextScore1]
+X = 560
+Y = 190
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextScore2]
+X = 560
+Y = 240
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextScore3]
+X = 560
+Y = 290
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextScore4]
+X = 560
+Y = 340
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextScore5]
+X = 560
+Y = 390
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+
+[Top5TextDate1]
+X = 760
+Y = 190
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextDate2]
+X = 760
+Y = 240
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextDate3]
+X = 760
+Y = 290
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextDate4]
+X = 760
+Y = 340
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextDate5]
+X = 760
+Y = 390
+Color = Black
+Font = 0
+Size = 42
+Align = 2
+Text = 00000
+
+[Top5TextNumber1]
+X = 120
+Y = 193
+Color = White
+Font = 1
+Size = 27
+Align = 1
+Text = 1
+
+[Top5TextNumber2]
+X = 120
+Y = 243
+Color = White
+Font = 1
+Size = 27
+Align = 1
+Text = 2
+
+[Top5TextNumber3]
+X = 120
+Y = 293
+Color = White
+Font = 1
+Size = 27
+Align = 1
+Text = 3
+
+[Top5TextNumber4]
+X = 120
+Y = 343
+Color = White
+Font = 1
+Size = 27
+Align = 1
+Text = 4
+
+[Top5TextNumber5]
+X = 120
+Y = 393
+Color = White
+Font = 1
+Size = 27
+Align = 1
+Text = 5
+
+[Top5StaticNumber1]
+Tex = PlayerNumberBox
+X = 100
+Y = 186
+W = 40
+H = 40
+Color = ColorDark
+Type = Transparent
+
+[Top5StaticNumber2]
+Tex = PlayerNumberBox
+X = 100
+Y = 236
+W = 40
+H = 40
+Color = ColorDark
+Type = Transparent
+
+[Top5StaticNumber3]
+Tex = PlayerNumberBox
+X = 100
+Y = 286
+W = 40
+H = 40
+Color = ColorDark
+Type = Transparent
+
+[Top5StaticNumber4]
+Tex = PlayerNumberBox
+X = 100
+Y = 336
+W = 40
+H = 40
+Color = ColorDark
+Type = Transparent
+
+[Top5StaticNumber5]
+Tex = PlayerNumberBox
+X = 100
+Y = 386
+W = 40
+H = 40
+Color = ColorDark
+Type = Transparent
+
+[Edit]
+Texts = 5
+
+[EditBackground]
+Tex = EditBG
+
+# main icon
+[EditStatic1]
+X = 65
+Y = 150
+W = 25
+H = 25
+Color = White
+Tex = IconEdit
+Type = Transparent
+# Type = Colorized
+
+# main icon title
+[EditText1]
+X = 95
+Y = 135
+Color = White
+Font = 0
+Size = 54
+Align = 0
+Text = SING_EDIT
+
+# main icon subtitle
+[EditText2]
+X = 95
+Y = 175
+Color = ColorLightest
+Font = 0
+Size = 30
+Align = 0
+Text = SING_EDIT_MENU_DESCRIPTION
+
+# Navigate button text
+[EditText3]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_EDIT_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 13
+
+# Select button text
+[EditText4]
+X = 440
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_EDIT_SELECT
+Reflection=1
+ReflectionSpacing=13
+
+# Esc button text
+[EditText5]
+X = 590
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_EDIT_EXIT
+Reflection=1
+ReflectionSpacing=13
+
+[EditTextDescription]
+X = 95
+Y = 195
+Color = White
+Font = 0
+Size = 30
+Align = 0
+Text = SING_EDIT_TEXTDESCRIPTION
+
+[EditStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[EditStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[EditStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[EditStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[EditStatic6]
+X = 550
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[EditButtonConvert]
+X = 250
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+DeSelectReflectionSpacing = 280
+Fade = 1
+FadeText = 1
+SelectH = 150
+FadeTex = ButtonFade
+FadeTexPos = 0
+
+[EditButtonConvertText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_EDIT_BUTTON_CONVERT
+Color = White
+
+[EditButtonExit]
+X = 405
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+DeSelectReflectionSpacing = 280
+Fade = 1
+FadeText = 1
+SelectH = 150
+FadeTex = ButtonFade
+FadeTexPos = 0
+
+[EditButtonExitText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_EDIT_BUTTON_EXIT
+Color = White
+
+[Level]
+Texts = 5
+
+[LevelBackground]
+Tex = MainBG
+
+[LevelStatic1]
+X = 110
+Y = 195
+W = 25
+H = 23
+Tex = MainIcon
+Color = Black
+Type = Transparent
+
+[LevelText1]
+X = 140
+Y = 176
+Color = Black
+Font = 0
+Size = 54
+Align = 0
+Text = SING_MODE
+
+[LevelText2]
+X = 140
+Y = 223
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = SING_DIFFICULTY_DESC
+
+[LevelStatic6]
+X = 95
+Y = 180
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[LevelStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[LevelStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[LevelStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[LevelStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[LevelText3]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 13
+
+[LevelText4]
+X = 440
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_DIFFICULTY_CONTINUE
+Reflection = 1
+ReflectionSpacing = 13
+
+[LevelButtonEasy]
+X = 180
+Y = 270
+W = 150
+H = 50
+Tex = ButtonLeft
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[LevelButtonMedium]
+X = 335
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[LevelButtonHard]
+X = 490
+Y = 270
+W = 150
+H = 50
+Tex = ButtonRight
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 15
+;DeSelectReflectionSpacing = 280
+;Fade = 1
+;FadeText = 1
+;SelectH = 150
+;FadeTex = ButtonFade
+;FadeTexPos = 0
+
+[LevelButtonEasyText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text = SING_EASY
+
+[LevelButtonMediumText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text = SING_MEDIUM
+
+[LevelButtonHardText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text = SING_HARD
+
+[Name]
+Texts = 2
+
+[NameBackground]
+Tex = MainBG
+
+[NameStatic1]
+X = 110
+Y = 195
+W = 25
+H = 23
+Tex = MainIcon
+Color = Black
+Type = Transparent
+
+[NameText1]
+X = 140
+Y = 176
+Color = Black
+Font = 0
+Size = 54
+Text = SING_MODE
+
+[NameText2]
+X = 140
+Y = 223
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = SING_PLAYER_DESC
+
+[NameStatic7]
+X = 95
+Y = 180
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[NameStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameStatic4]
+X = 260
+Y = 545
+W = 32
+H = 30
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameText3]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+Reflection = 1
+ReflectionSpacing = 13
+
+[NameStatic5]
+X = 400
+Y = 545
+W = 32
+H = 30
+Tex = ButtonAZ
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameText4]
+X = 440
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_PLAYER_ENTER_NAME
+Reflection = 1
+ReflectionSpacing = 13
+
+[NameStatic6]
+X = 590
+Y = 545
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameText5]
+X = 630
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = SING_LEGEND_CONTINUE
+Reflection = 1
+ReflectionSpacing = 13
+
+[NameButtonPlayer1]
+X = 180
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = P1Dark
+DColor = P1Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer1Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[NameButtonPlayer2]
+X = 335
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = P2Dark
+DColor = P2Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer2Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[NameButtonPlayer3]
+X = 490
+Y = 270
+W = 150
+H = 50
+Tex = Button
+Color = P3Dark
+DColor = P3Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer3Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[NameButtonPlayer4]
+X = 180
+Y = 400
+W = 150
+H = 50
+Tex = Button
+Color = P4Dark
+DColor = P4Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer4Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[NameButtonPlayer5]
+X = 335
+Y = 400
+W = 150
+H = 50
+Tex = Button
+Color = P5Dark
+DColor = P5Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer5Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[NameButtonPlayer6]
+X = 490
+Y = 400
+W = 150
+H = 50
+Tex = Button
+Color = P6Dark
+DColor = P6Light
+Type = Transparent
+Texts = 1
+Reflection = 1
+ReflectionSpacing = 2
+
+[NameButtonPlayer6Text1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Color = White
+Text =
+
+[PartyNewRound]
+Texts = 7
+
+[PartyNewRoundBackground]
+Tex = MainBG
+
+[PartyNewRoundStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyNewRoundStatic8]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[PartyNewRoundStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyNewRoundStatic3]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+[PartyNewRoundText1]
+X = 70
+Y = 5
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[PartyNewRoundText2]
+X = 70
+Y = 55
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_ROUND_DESC
+
+[PartyNewRoundText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_ROUND_WHEREAMI
+
+[PartyNewRoundText4]
+X = 290
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = PARTY_ROUND_LEGEND_CONTINUE
+
+[PartyNewRoundText5]
+X = 460
+Y = 100
+Color = White
+Font = 0
+Size = 30
+Text = PARTY_ROUND
+Align = 0
+
+[PartyNewRoundText6]
+X = 600
+Y = 100
+Color = White
+Font = 0
+Size = 30
+Text = PARTY_ROUND_WINNER
+Align = 0
+
+[PartyNewRoundText7]
+X = 448
+Y = 350
+Color = White
+Font = 0
+Size = 54
+Text = PARTY_ROUND
+Align = 2
+
+[PartyNewRoundTextTeam1Players]
+X = 30
+Y = 137
+Color = White
+Font = 0
+Size = 21
+Align = 0
+Text = Dummytext, Player2, Player3, Player4
+
+[PartyNewRoundTextTeam2Players]
+X = 30
+Y = 218
+Color = White
+Font = 0
+Size = 21
+Align = 0
+Text = Dummytext, Player2, Player3, Player4
+
+[PartyNewRoundTextTeam3Players]
+X = 30
+Y = 299
+Color = White
+Font = 0
+Size = 21
+Align = 0
+Text = Dummytext, Player2, Player3, Player4
+
+[PartyNewRoundStatic4]
+Tex = PartyRoundBG1
+X = 450
+Y = 103
+W = 330
+H = 24
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStatic5]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyNewRoundStatic6]
+Tex = PartyRoundBG3
+X = 250
+Y = 350
+W = 300
+H = 50
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStatic7]
+Tex = PartyRoundBG4
+X = 50
+Y = 495
+W = 700
+H = 30
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticTeam1]
+Tex = PartyTeamButton1
+X = 20
+Y = 110
+W = 400
+H = 50
+Color = P1Dark
+Type = Transparent
+Reflection = 0
+
+[PartyNewRoundStaticTeam2]
+Tex = PartyTeamButton1
+X = 20
+Y = 191
+W = 400
+H = 50
+Color = P2Dark
+Type = Transparent
+Reflection = 0
+
+[PartyNewRoundStaticTeam3]
+Tex = PartyTeamButton1
+X = 20
+Y = 272
+W = 400
+H = 50
+Color = P3Dark
+Type = Transparent
+Reflection = 0
+
+[PartyNewRoundStaticNextPlayer1]
+Tex = PartyPlayerButton
+X = 155
+Y = 415
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyNewRoundStaticNextPlayer2]
+Tex = PartyPlayerButton
+X = 325
+Y = 415
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyNewRoundStaticNextPlayer3]
+Tex = PartyPlayerButton
+X = 495
+Y = 415
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+
+[PartyNewRoundTextRound1]
+X = 460
+Y = 133
+Color = White
+Font = 0
+Size = 24
+Text = Round 1
+Align = 0
+
+[PartyNewRoundTextRound2]
+X = 460
+Y = 162
+Color = White
+Font = 0
+Size = 24
+Text = Round 2
+Align = 0
+
+[PartyNewRoundTextRound3]
+X = 460
+Y = 191
+Color = White
+Font = 0
+Size = 24
+Text = Round 3
+Align = 0
+
+[PartyNewRoundTextRound4]
+X = 460
+Y = 220
+Color = White
+Font = 0
+Size = 24
+Text = Round 4
+Align = 0
+
+[PartyNewRoundTextRound5]
+X = 460
+Y = 249
+Color = White
+Font = 0
+Size = 24
+Text = Round 5
+Align = 0
+
+[PartyNewRoundTextRound6]
+X = 460
+Y = 278
+Color = White
+Font = 0
+Size = 24
+Text = Round 6
+Align = 0
+
+[PartyNewRoundTextRound7]
+X = 460
+Y = 307
+Color = White
+Font = 0
+Size = 24
+Text = Round 7
+Align = 0
+
+[PartyNewRoundTextWinner1]
+X = 600
+Y = 133
+Color = White
+Font = 0
+Size = 24
+Text = Winner 1
+Align = 0
+
+[PartyNewRoundTextWinner2]
+X = 600
+Y = 162
+Color = White
+Font = 0
+Size = 24
+Text = Winner 2
+Align = 0
+
+[PartyNewRoundTextWinner3]
+X = 600
+Y = 191
+Color = White
+Font = 0
+Size = 24
+Text = Winner 3
+Align = 0
+
+[PartyNewRoundTextWinner4]
+X = 600
+Y = 220
+Color = White
+Font = 0
+Size = 24
+Text = Winner 4
+Align = 0
+
+[PartyNewRoundTextWinner5]
+X = 600
+Y = 249
+Color = White
+Font = 0
+Size = 24
+Text = Winner 5
+Align = 0
+
+[PartyNewRoundTextWinner6]
+X = 600
+Y = 278
+Color = White
+Font = 0
+Size = 24
+Text = Winner 6
+Align = 0
+
+[PartyNewRoundTextWinner7]
+X = 600
+Y = 307
+Color = White
+Font = 0
+Size = 24
+Text = Winner 7
+Align = 0
+
+[PartyNewRoundStaticRound1]
+Tex = PartyRoundBG2
+X = 450
+Y = 135
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound2]
+Tex = PartyRoundBG2
+X = 450
+Y = 164
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound3]
+Tex = PartyRoundBG2
+X = 450
+Y = 193
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound4]
+Tex = PartyRoundBG2
+X = 450
+Y = 222
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound5]
+Tex = PartyRoundBG2
+X = 450
+Y = 251
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound6]
+Tex = PartyRoundBG2
+X = 450
+Y = 280
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundStaticRound7]
+Tex = PartyRoundBG2
+X = 450
+Y = 309
+W = 330
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyNewRoundTextNextRound]
+X = 400
+Y = 495
+Color = White
+Font = 0
+Size = 30
+Text = Next Round
+Align = 1
+
+[PartyNewRoundTextNextRoundNo]
+X = 457
+Y = 350
+Color = White
+Font = 0
+Size = 54
+Text = 99
+Align = 0
+
+[PartyNewRoundTextScoreTeam1]
+X = 390
+Y = 110
+Color = White
+Font = 0
+Size = 51
+Text = 3000
+Align = 1
+
+[PartyNewRoundTextScoreTeam2]
+X = 390
+Y = 191
+Color = White
+Font = 0
+Size = 51
+Text = 2000
+Align = 1
+
+[PartyNewRoundTextScoreTeam3]
+X = 390
+Y = 272
+Color = White
+Font = 0
+Size = 51
+Text = 1000
+Align = 1
+
+[PartyNewRoundTextNameTeam1]
+X = 30
+Y = 108
+Color = White
+Font = 0
+Size = 36
+Text = Team 1
+Align = 0
+
+[PartyNewRoundTextNameTeam2]
+X = 30
+Y = 189
+Color = White
+Font = 0
+Size = 36
+Text = Team 2
+Align = 0
+
+[PartyNewRoundTextNameTeam3]
+X = 30
+Y = 270
+Color = White
+Font = 0
+Size = 36
+Text = Team 3
+Align = 0
+
+[PartyNewRoundTextNextPlayer1]
+X = 230
+Y = 425
+Color = White
+Font = 0
+Size = 30
+Text = Player 1
+Align = 1
+
+[PartyNewRoundTextNextPlayer2]
+X = 400
+Y = 425
+Color = White
+Font = 0
+Size = 30
+Text = Player 2
+Align = 1
+
+[PartyNewRoundTextNextPlayer3]
+X = 570
+Y = 425
+Color = White
+Font = 0
+Size = 30
+Text = Player 3
+Align = 1
+
+
+[PartyScore]
+Texts = 5
+
+[PartyScoreBackground]
+Tex = PartyBG
+
+[PartyScoreDecoTextures]
+ChangeTextures = 1
+
+FirstTexture = PartyScoreDeco
+FirstTyp = Colorized
+FirstColor = Gold
+
+SecondTexture = PartyScoreDeco
+SecondTyp = Colorized
+SecondColor = Silver
+
+ThirdTexture = PartyScoreDeco
+ThirdTyp = Colorized
+ThirdColor = Bronze
+
+[PartyScoreStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyScoreStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyScoreStatic3]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+[PartyScoreStatic7]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[PartyScoreStatic4]
+X = 260
+Y = 547
+W = 32
+H = 30
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyScoreText1]
+X = 70
+Y = 6
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[PartyScoreText2]
+X = 70
+Y = 58
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_SCORE_DESC
+
+[PartyScoreText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_SCORE_WHEREAMI
+
+[PartyScoreText4]
+X = 300
+Y = 548
+Color = Black
+Font = 0
+Size = 24
+Align = 0
+Text = PARTY_LEGEND_CONTINUE
+
+[PartyScoreStatic5]
+Tex = PartyScoreBG1
+X = 50
+Y = 100
+W = 700
+H = 80
+Color = ColorDark
+Type = Transparent
+
+[PartyScoreStatic6]
+Tex = PartyScoreBG2
+X = 50
+Y = 495
+W = 700
+H = 20
+Color = ColorDark
+Type = Transparent
+
+[PartyScoreText5]
+X = 400
+Y = 136
+Color = White
+Font = 0
+Size = 45
+Text = PARTY_SCORE_WINS2
+Align = 1
+
+[PartyScoreTextWinner]
+X = 400
+Y = 98
+Color = White
+Font = 0
+Size = 54
+Text = The Winner is...
+Align = 1
+
+[PartyScoreTextScoreTeam1]
+X = 568
+Y = 198
+Color = White
+Font = 0
+Size = 36
+Text = 3000
+Align = 2
+
+[PartyScoreTextScoreTeam2]
+X = 568
+Y = 298
+Color = White
+Font = 0
+Size = 36
+Text = 2000
+Align = 2
+
+[PartyScoreTextScoreTeam3]
+X = 568
+Y = 398
+Color = White
+Font = 0
+Size = 36
+Text = 1000
+Align = 2
+
+[PartyScoreTextNameTeam1]
+X = 188
+Y = 198
+Font = 0
+Size = 36
+Align = 0
+Text = Team 1
+Color = White
+
+[PartyScoreTextNameTeam2]
+X = 188
+Y = 298
+Color = White
+Font = 0
+Size = 36
+Text = Team 2
+Align = 0
+
+[PartyScoreTextNameTeam3]
+X = 188
+Y = 398
+Color = White
+Font = 0
+Size = 36
+Text = Team 3
+Align = 0
+
+[PartyScoreStaticTeam1]
+X = 188
+Y = 230
+W = 380
+H = 16
+Z = 1
+Tex = PartyTeamPoints
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyScoreStaticTeam1BG]
+Tex = PartyTeamButton2
+X = 178
+Y = 200
+W = 400
+H = 50
+Type = Transparent
+Color = P1Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyScoreStaticTeam1Deco]
+Tex = PartyScoreDeco
+X = 563
+Y = 191
+W = 64
+H = 64
+Type = Colorized
+Color = Gold
+Reflection = 1
+ReflectionSpacing = -5
+
+[PartyScoreStaticTeam2]
+X = 188
+Y = 330
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P2Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyScoreStaticTeam2BG]
+Tex = PartyTeamButton2
+X = 178
+Y = 300
+W = 400
+H = 50
+Type = Transparent
+Color = P2Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyScoreStaticTeam2Deco]
+Tex = PartyScoreDeco
+X = 563
+Y = 291
+W = 64
+H = 64
+Type = Colorized
+Color = Gold
+Reflection = 1
+ReflectionSpacing = -5
+
+[PartyScoreStaticTeam3]
+X = 188
+Y = 430
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P3Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyScoreStaticTeam3BG]
+Tex = PartyTeamButton2
+X = 178
+Y = 400
+W = 400
+H = 50
+Type = Transparent
+Color = P3Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyScoreStaticTeam3Deco]
+Tex = PartyScoreDeco
+X = 563
+Y = 391
+W = 64
+H = 64
+Type = Colorized
+Color = Gold
+Reflection = 1
+ReflectionSpacing = -5
+
+[PartyWin]
+Texts = 4
+
+[PartyWinBackground]
+Tex = PartyBG
+
+[PartyWinStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStatic3]
+X = 40
+Y = 22
+W = 27
+H = 27
+Color = White
+Tex = PartyIcon
+Type = Colorized
+
+[PartyWinStatic4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyWinText1]
+X = 70
+Y = 6
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = White
+Text = PARTY_MODE
+
+[PartyWinText2]
+X = 70
+Y = 53
+Color = White
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_WIN_DESC
+
+[PartyWinText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_WIN_WHEREAMI
+
+[PartyWinText4]
+X = 290
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = PARTY_WIN_LEGEND_CONTINUE
+
+#[PartyWinTextWinner]
+#X = 150
+#Y = 120
+#Color = White
+#Font = 1
+#Size = 42
+#Text = The Winner is...
+#Align = 0
+
+[PartyWinTextScoreTeam1]
+X = 699
+Y = 183
+Color = White
+Font = 0
+Size = 57
+Text = 3000
+Align = 2
+
+[PartyWinTextScoreTeam2]
+X = 669
+Y = 298
+Color = White
+Font = 0
+Size = 36
+Text = 2000
+Align = 2
+
+[PartyWinTextScoreTeam3]
+X = 649
+Y = 398
+Color = White
+Font = 0
+Size = 27
+Text = 1000
+Align = 2
+
+[PartyWinTextNameTeam1]
+X = 169
+Y = 183
+Font = 0
+Size = 57
+Align = 0
+Text = Team 1
+Color = White
+
+[PartyWinTextNameTeam2]
+X = 289
+Y = 298
+Color = White
+Font = 0
+Size = 36
+Text = Team 2
+Align = 0
+
+[PartyWinTextNameTeam3]
+X = 369
+Y = 398
+Color = White
+Font = 0
+Size = 27
+Text = Team 3
+Align = 0
+
+[PartyWinStaticTeam1]
+X = 169
+Y = 230
+W = 530
+H = 16
+Z = 1
+Tex = PartyTeamPoints
+Color = TeamColor
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam1BG]
+Tex = PartyTeamButton3
+X = 159
+Y = 185
+W = 550
+H = 65
+Type = Colorized
+Color = TeamColor
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam1Rank1]
+X = 169
+Y = 230
+W = 530
+H = 16
+Z = 1
+Tex = PartyTeamPoints
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam1BGRank1]
+Tex = PartyTeamButton3
+X = 159
+Y = 185
+W = 550
+H = 65
+Type = Colorized
+Color = P1Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam1Rank2]
+X = 289
+Y = 330
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam1BGRank2]
+Tex = PartyTeamButton3
+X = 279
+Y = 300
+W = 400
+H = 50
+Type = Colorized
+Color = P1Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam1Rank3]
+X = 369
+Y = 420
+W = 280
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P1Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam1BGRank3]
+Tex = PartyTeamButton3
+X = 359
+Y = 400
+W = 300
+H = 40
+Type = Colorized
+Color = P1Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+
+[PartyWinStaticTeam1Deco]
+Tex = PartyWinDeco1
+X = 91
+Y = 176
+W = 79
+H = 79
+Type = Colorized
+Color = Gold
+Reflection = 1
+ReflectionSpacing = 3
+
+[PartyWinStaticTeam2]
+X = 289
+Y = 330
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = TeamColor
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam2BG]
+Tex = PartyTeamButton4
+X = 279
+Y = 300
+W = 400
+H = 50
+Type = Colorized
+Color = TeamColor
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam2Rank1]
+X = 169
+Y = 230
+W = 530
+H = 16
+Z = 1
+Tex = PartyTeamButton3
+Color = P2Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam2BGRank1]
+Tex = PartyTeamButton4
+X = 159
+Y = 185
+W = 550
+H = 65
+Type = Colorized
+Color = P2Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam2Rank2]
+X = 289
+Y = 330
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P2Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam2BGRank2]
+Tex = PartyTeamButton4
+X = 279
+Y = 300
+W = 400
+H = 50
+Type = Colorized
+Color = P2Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam2Rank3]
+X = 369
+Y = 420
+W = 280
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = TeamColor
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam2BGRank3]
+Tex = PartyTeamButton4
+X = 359
+Y = 400
+W = 300
+H = 40
+Type = Colorized
+Color = TeamColor
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam2Deco]
+Tex = PartyWinDeco2
+X = 226
+Y = 291
+W = 64
+H = 64
+Type = Colorized
+Color = Silver
+Reflection = 1
+ReflectionSpacing = 3
+
+[PartyWinStaticTeam3]
+X = 369
+Y = 420
+W = 280
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = TeamColor
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam3BG]
+Tex = PartyTeamButton5
+X = 359
+Y = 400
+W = 300
+H = 40
+Type = Colorized
+Color = TeamColor
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam3Rank1]
+X = 169
+Y = 230
+W = 530
+H = 16
+Z = 1
+Tex = PartyTeamPoints
+Color = P3Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam3BGRank1]
+Tex = PartyTeamButton3
+X = 159
+Y = 185
+W = 550
+H = 65
+Type = Colorized
+Color = P3Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam3Rank2]
+X = 289
+Y = 330
+W = 380
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P3Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam3BGRank2]
+Tex = PartyTeamButton5
+X = 279
+Y = 300
+W = 400
+H = 50
+Type = Colorized
+Color = P3Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam3Rank3]
+X = 369
+Y = 420
+W = 280
+H = 15
+Z = 1
+Tex = PartyTeamPoints
+Color = P3Dark
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 12
+
+[PartyWinStaticTeam3BGRank3]
+Tex = PartyTeamButton5
+X = 359
+Y = 400
+W = 300
+H = 40
+Type = Colorized
+Color = P3Dark
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyWinStaticTeam3Deco]
+Tex = PartyWinDeco3
+X = 316
+Y = 391
+W = 54
+H = 54
+Type = Colorized
+Color = Bronze
+Reflection = 1
+ReflectionSpacing = 3
+
+[PartyOptions]
+Texts = 5
+
+[PartyOptionsBackground]
+Tex = PartyBG
+
+[PartyOptionsStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyOptionsStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyOptionsStatic3]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+[PartyOptionsStatic4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[PartyOptionsStatic5]
+X = 388
+Y = 552
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyOptionsStatic6]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[PartyOptionsText1]
+X = 70
+Y = 5
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[PartyOptionsText2]
+X = 70
+Y = 55
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_OPTIONS_DESC
+
+[PartyOptionsText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_OPTIONS_WHEREAMI
+
+[PartyOptionsText4]
+X = 294
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+
+[PartyOptionsText5]
+X = 418
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_CONTINUE
+
+[PartyOptionsSelectLevel]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_DIFFICULTY
+X = 70
+Y = 110
+W = 230
+H = 40
+SkipX = 10
+Fields = 1
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+#TexSBG = SelectBG
+#W = 230
+#H = 40
+#SkipX = 10
+
+[PartyOptionsSelectPlayList]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_PLAYLIST
+X = 70
+Y = 165
+W = 230
+H = 40
+SkipX = 10
+Fields = 1
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyOptionsSelectPlayList2]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_PLAYLIST
+X = 70
+Y = 220
+W = 230
+H = 40
+SkipX = 10
+Fields = 1
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyOptionsSelectRounds]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_ROUNDS
+X = 70
+Y = 275
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyPlayer]
+Texts = 6
+
+[PartyPlayerBackground]
+Tex = PartyBG
+
+[PartyPlayerStatic1]
+X = 0
+Y = 545
+Z = 0.7
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyPlayerStatic2]
+X = 250
+Y = 545
+Z = 0.7
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyPlayerStatic3]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+[PartyPlayerStatic4]
+X = 260
+Y = 552
+Z = 0.75
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[PartyPlayerStatic5]
+X = 388
+Y = 552
+Z = 0.75
+W = 24
+H = 23
+Tex = ButtonAZ
+Color = White
+Type = Transparent
+
+[PartyPlayerStatic6]
+X = 556
+Y = 552
+Z = 0.75
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyPlayerStatic7]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[PartyPlayerText1]
+X = 70
+Y = 6
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[PartyPlayerText2]
+X = 70
+Y = 58
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_PLAYER_DESC
+
+[PartyPlayerText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_PLAYER_WHEREAMI
+
+[PartyPlayerText4]
+X = 294
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+
+[PartyPlayerText5]
+X = 418
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = PARTY_PLAYER_ENTER_NAME
+
+[PartyPlayerText6]
+X = 586
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_CONTINUE
+
+[PartyPlayerSelectTeams]
+Tex = MainBar
+TexSBG = PartyPlayerSelectBG
+Text = PARTY_TEAMS
+X = 45
+Y = 105
+W = 310
+SBGW = 150
+H = 40
+SkipX = 170
+Fields = 2
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyPlayerSelectPlayers1]
+;Tex = MainBar
+TexSBG = PartyPlayerSelectBG
+;Text = PARTY_TEAMS_PLAYER1
+X = 315
+Y = 170
+W = 200
+SBGW = 150
+H = 40
+SkipX = 10
+Fields = 1
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = P1Light
+DColor = P1Dark
+TColor = White
+TDColor = White
+
+SBGColor = P1Light
+SBGDColor = P1Dark
+STColor = White
+STDColor = GrayDark
+
+[PartyPlayerSelectPlayers2]
+;Tex = MainBar
+TexSBG = PartyPlayerSelectBG
+;Text = PARTY_TEAMS_PLAYER2
+X = 315
+Y = 300
+W = 200
+SBGW = 150
+H = 40
+SkipX = 10
+Fields = 1
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = P2Light
+DColor = P2Dark
+TColor = White
+TDColor = White
+
+SBGColor = P2Light
+SBGDColor = P2Dark
+STColor = White
+STDColor = GrayDark
+
+[PartyPlayerSelectPlayers3]
+;Tex = MainBar
+TexSBG = PartyPlayerSelectBG
+;Text = PARTY_TEAMS_PLAYER3
+X = 315
+Y = 430
+W = 200
+SBGW = 150
+H = 40
+SkipX = 10
+Fields = 4
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = P3Light
+DColor = P3Dark
+TColor = White
+TDColor = White
+
+SBGColor = P3Light
+SBGDColor = P3Dark
+STColor = White
+STDColor = GrayDark
+
+
+
+[PartyPlayerTeam1Name]
+Tex = PartyTeamButton2
+X = 45
+Y = 160
+W = 310
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Lightest
+DColor = P1Dark
+
+[PartyPlayerTeam1NameText1]
+X = 115
+Y = 8
+Font = 0
+Size = 36
+Align = 1
+Text = Team 1
+Color = White
+
+[PartyPlayerPlayer1Name]
+Tex = Button
+X = 45
+Y = 220
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Lightest
+DColor = P1Dark
+
+[PartyPlayerPlayer1NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 1
+Color = White
+
+[PartyPlayerPlayer2Name]
+Tex = Button
+X = 205
+Y = 220
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Lightest
+DColor = P1Dark
+
+[PartyPlayerPlayer2NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 2
+Color = White
+
+[PartyPlayerPlayer3Name]
+Tex = Button
+X = 365
+Y = 220
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Lightest
+DColor = P1Dark
+
+[PartyPlayerPlayer3NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 3
+Color = White
+
+[PartyPlayerPlayer4Name]
+Tex = Button
+X = 525
+Y = 220
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P1Lightest
+DColor = P1Dark
+
+[PartyPlayerPlayer4NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 4
+Color = White
+
+[PartyPlayerTeam2Name]
+Tex = PartyTeamButton2
+X = 45
+Y = 290
+W = 310
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Lightest
+DColor = P2Dark
+
+[PartyPlayerTeam2NameText1]
+X = 115
+Y = 8
+Font = 0
+Size = 36
+Align = 1
+Text = Team 2
+Color = White
+
+[PartyPlayerPlayer5Name]
+Tex = Button
+X = 45
+Y = 350
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Lightest
+DColor = P2Dark
+
+[PartyPlayerPlayer5NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 5
+Color = White
+
+[PartyPlayerPlayer6Name]
+Tex = Button
+X = 205
+Y = 350
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Lightest
+DColor = P2Dark
+
+[PartyPlayerPlayer6NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 6
+Color = White
+
+[PartyPlayerPlayer7Name]
+Tex = Button
+X = 365
+Y = 350
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Lightest
+DColor = P2Dark
+
+[PartyPlayerPlayer7NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 7
+Color = White
+
+[PartyPlayerPlayer8Name]
+Tex = Button
+X = 525
+Y = 350
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P2Lightest
+DColor = P2Dark
+
+[PartyPlayerPlayer8NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 8
+Color = White
+
+[PartyPlayerTeam3Name]
+Tex = PartyTeamButton2
+X = 45
+Y = 420
+W = 310
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Lightest
+DColor = P3Dark
+
+[PartyPlayerTeam3NameText1]
+X = 115
+Y = 8
+Font = 0
+Size = 36
+Align = 1
+Text = Team 3
+Color = White
+
+[PartyPlayerPlayer9Name]
+Tex = Button
+X = 45
+Y = 480
+Z = 0.6
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Lightest
+DColor = P3Dark
+
+[PartyPlayerPlayer9NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 9
+Color = White
+
+[PartyPlayerPlayer10Name]
+Tex = Button
+X = 205
+Y = 480
+Z = 0.6
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Lightest
+DColor = P3Dark
+
+[PartyPlayerPlayer10NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 10
+Color = White
+
+[PartyPlayerPlayer11Name]
+Tex = Button
+X = 365
+Y = 480
+Z = 0.6
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Lightest
+DColor = P3Dark
+
+[PartyPlayerPlayer11NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 11
+Color = White
+
+[PartyPlayerPlayer12Name]
+Tex = Button
+X = 525
+Y = 480
+Z = 0.6
+W = 150
+H = 50
+Type = Transparent
+Texts = 1
+Color = P3Lightest
+DColor = P3Dark
+
+[PartyPlayerPlayer12NameText1]
+X = 75
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = Player 12
+Color = White
+
+
+
+[PartyRoundsBackground]
+Tex = PartyBG
+
+[PartyRoundsStatic1]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyRoundsStatic2]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[PartyRoundsStatic3]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = PartyIcon
+Type = Transparent
+
+[PartyRoundsStatic4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[PartyRoundsStatic5]
+X = 388
+Y = 552
+W = 24
+H = 23
+Tex = ButtonEnter
+Color = White
+Type = Transparent
+
+[PartyRoundsStatic6]
+X = 20
+Y = 10
+W = 500
+H = 75
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[PartyRoundsText1]
+X = 70
+Y = 6
+ColR = 0.7
+ColG = 0.7
+ColB = 0.7
+Font = 0
+Size = 60
+Color = Black
+Text = PARTY_MODE
+
+[PartyRoundsText2]
+X = 70
+Y = 53
+Color = ColorDark
+Font = 0
+Size = 30
+Align = 0
+Text = PARTY_ROUNDS_DESC
+
+[PartyRoundsText3]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = PARTY_ROUNDS_WHEREAMI
+
+[PartyRoundsText4]
+X = 294
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+
+[PartyRoundsText5]
+X = 418
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = PARTY_ROUNDS_LEGEND_CONTINUE
+
+[PartyRoundsSelectRoundCount]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_ROUNDCOUNT
+X = 70
+Y = 100
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound1]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE1
+X = 70
+Y = 155
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound2]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE2
+X = 70
+Y = 210
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound3]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE3
+X = 70
+Y = 265
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound4]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE4
+X = 70
+Y = 320
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound5]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE5
+X = 70
+Y = 375
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound6]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE6
+X = 70
+Y = 430
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+[PartyRoundsSelectRound7]
+Tex = MainBar
+TexSBG = SelectBG
+Text = PARTY_SELECTMODE7
+X = 70
+Y = 485
+W = 230
+H = 40
+SkipX = 10
+Fields = 7
+
+Type = Transparent
+TypeSBG = Transparent
+
+Color = ColorLight
+DColor = ColorDark
+TColor = White
+TDColor = White
+
+SBGColor = ColorLight
+SBGDColor = ColorDark
+STColor = White
+STDColor = GrayDark
+
+
+
+[SongMenu]
+
+[SongMenuBackground]
+Type=Fade
+;ColR=0
+;ColG=0
+;ColB=0
+Alpha=0.0
+Tex = SongBG
+
+
+[SongMenuStatic1]
+Tex = interface_dialog_background
+X = 520
+Y = 120
+W = 270
+H = 200
+Z = 0.96
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 0
+
+[SongMenuStatic2]
+X = 528
+Y = 131
+W = 24
+H = 24
+Color = White
+Tex = icon_song_menu
+Type = Colorized
+Z = 0.97
+
+[SongMenuTextMenu]
+X = 558
+Y = 125
+Z = 0.97
+Color = ColorDark
+Size = 36
+Text = MENU
+
+[SongMenuButton1]
+X = 540
+Y = 175
+Z = 0.97
+W = 220
+H = 25
+Tex = Rectangle
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+
+[SongMenuButton1Text1]
+X = 6
+Y = 0
+Z = 0.97
+Color = White
+Size = 24
+Text = SONG_MENU_PLAY
+
+[SongMenuButton2]
+X = 540
+Y = 205
+Z = 0.97
+W = 220
+H = 25
+Tex = Rectangle
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+
+[SongMenuButton2Text1]
+X = 6
+Y = 0
+Color = White
+Size = 24
+Text = SONG_MENU_EDIT
+Z = 0.97
+
+[SongMenuButton3]
+X = 540
+Y = 235
+Z = 0.97
+W = 220
+H = 25
+Tex = Rectangle
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+
+[SongMenuButton3Text1]
+X = 6
+Y = 0
+Color = White
+Font = 0
+Size = 24
+Text = SONG_MENU_MODI
+Align = 0
+Z = 0.97
+
+# shows up instead of BUtton 3
+# in some song menus
+[SongMenuSelectSlide3]
+TexSBG = Rectangle
+Text =
+Type = Colorized
+ShowArrows = 1
+OneItemOnly = 1
+X = 540
+Y = 235
+W = 0
+H = 25
+Z = 0.97
+SkipX = 0
+SBGW = 220
+TextSize = 24
+Color = LightBlue
+DColor = DarkBlue
+TColor = White
+TDColor = White
+SBGColor = LightBlue
+SBGDColor = DarkBlue
+STColor = White
+STDColor = White
+
+[SongMenuButton4]
+X = 540
+Y = 265
+Z = 0.97
+W = 220
+H = 25
+Tex = Rectangle
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+
+[SongMenuButton4Text1]
+X = 6
+Y = 0
+Color = White
+Font = 0
+Size = 24
+Text = SONG_MENU_CANCEL
+Align = 0
+Z = 0.97
+
+[SongJumpto]
+
+[SongJumptoBackground]
+Type=Fade
+;ColR=0
+;ColG=0
+;ColB=0
+Alpha=0.0
+Tex = SongBG
+
+[SongJumptoStatic1]
+Tex = interface_dialog_background
+X = 520
+Y = 320
+W = 270
+H = 160
+Z = 0.965
+Color = White
+Type = Transparent
+
+[SongJumptoStatic2]
+X = 528
+Y = 328
+W = 24
+H = 24
+Color = Black
+Tex = icon_song_search
+Type = Colorized
+Z = 0.97
+
+[SongJumptoText1]
+X = 558
+Y = 323
+Color = ColorDark
+Size = 36
+Text = SONG_JUMPTO_TYPE_DESC
+Z = 0.97
+
+#arrows over the select
+#TODO: remove, add this for all in code
+[SongJumptoStatic3]
+X = 520
+Y = 363
+W = 260
+H = 30
+Color = ColorDark
+Tex = interface_selectbg_search
+Type = Colorized
+Z = 0.97
+
+[SongJumptoSelectSlideType]
+#Text = SONG_JUMPTO_TYPE_DESC
+X = 526
+Y = 363
+Z = 0.97
+H = 30
+SBGW = 150
+SkipX = 4
+Color = Black
+Size = 36
+
+#text
+TColor = Black
+TDColor = Black
+#Select0r.Text.Color
+STColor = Black
+STDColor = Black
+
+[SongJumptoButtonSearchText]
+X = 536
+Y = 375
+Z = 0.97
+W = 160
+H = 50
+Size = 36
+Font = 1
+Align = 0
+Color = Black
+
+[SongJumptoTextFound]
+X = 549
+Y = 425
+Color = Black
+Font = 0
+Size = 24
+Text = SONG_JUMPTO_HELP
+Align = 0
+Z = 0.97
+
+##### STATISTIKEN ######
+
+[StatMain]
+Texts = 0
+Statics = 0
+
+[StatMainBackground]
+Tex = MainBG
+
+[StatMainButtonScores]
+X = 589
+Y = 100
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatMainButtonScoresText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = STAT_DESC_SCORES
+Color = White
+
+[StatMainButtonSingers]
+X = 589
+Y = 160
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatMainButtonSingersText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = STAT_DESC_SINGERS
+Color = White
+
+[StatMainButtonSongs]
+X = 589
+Y = 220
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatMainButtonSongsText1]
+X = 95
+Y = 13
+Font = 0
+Size = 24
+Align = 1
+Text = STAT_DESC_SONGS
+Color = White
+
+[StatMainButtonBands]
+X = 589
+Y = 280
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatMainButtonBandsText1]
+X = 95
+Y = 13
+Font = 0
+Size = 24
+Align = 1
+Text = STAT_DESC_BANDS
+Color = White
+
+[StatMainButtonExit]
+X = 589
+Y = 340
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatMainButtonExitText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[StatMainTextOverview]
+X = 45
+Y = 125
+W = 510
+Color = White
+Font = 0
+Size = 27
+Align = 0
+Text =
+
+[StatMainStatic9]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[StatMainStatic1]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = StatIcon
+Type = Transparent
+
+[StatMainStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[StatMainStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[StatMainStatic4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[StatMainStatic5]
+X = 388
+Y = 552
+W = 32
+H = 23
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+
+[StatMainStatic6]
+X = 40
+Y = 100
+W = 520
+H = 20
+Tex = StatMainBG1
+Color = ColorLight
+Type = Transparent
+
+[StatMainStatic7]
+X = 40
+Y = 120
+W = 520
+H = 300
+Tex = StatMainBG2
+Color = ColorLight
+Type = Transparent
+
+[StatMainStatic8]
+X = 40
+Y = 420
+W = 520
+H = 20
+Tex = StatMainBG3
+Color = ColorLight
+Type = Transparent
+
+[StatMainText1]
+X = 70
+Y = 6
+Color = Black
+Font = 0
+Size = 60
+Text = STAT_MAIN
+Align = 0
+
+[StatMainText2]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = STAT_MAIN_WHEREAMI
+
+[StatMainText3]
+X = 70
+Y = 53
+Color = Black
+Font = 0
+Size = 30
+Align = 0
+Text = STAT_MAIN_DESC
+
+[StatMainText4]
+X = 294
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+
+[StatMainText5]
+X = 418
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_ESC
+
+[StatDetail]
+Texts = 0
+Statics = 0
+
+[StatDetailBackground]
+Tex = MainBG
+
+[StatDetailButtonNext]
+X = 589
+Y = 100
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatDetailButtonNextText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = STAT_NEXT
+Color = White
+
+[StatDetailButtonPrev]
+X = 589
+Y = 160
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatDetailButtonPrevText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = STAT_PREV
+Color = White
+
+[StatDetailButtonReverse]
+X = 589
+Y = 220
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatDetailButtonReverseText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = STAT_REVERSE
+Color = White
+
+[StatDetailButtonExit]
+X = 589
+Y = 280
+W = 190
+H = 50
+Tex = Button
+Color = ColorDark
+DColor = ColorLight
+Type = Transparent
+Texts = 1
+Reflection = 0
+
+[StatDetailButtonExitText1]
+X = 95
+Y = 10
+Font = 0
+Size = 30
+Align = 1
+Text = SING_OPTIONS_EXIT
+Color = White
+
+[StatDetailTextDescription]
+X = 70
+Y = 53
+Color = White
+Font = 0
+Size = 30
+Align = 0
+Text =
+
+[StatDetailTextPage]
+X = 546
+Y = 98
+Color = Black
+Font = 0
+Size = 15
+Align = 2
+Text =
+
+[StatDetailTextList1]
+X = 45
+Y = 122
+Color = White
+Font = 0
+Size = 21
+Text = Stat1
+
+[StatDetailTextList2]
+X = 45
+Y = 160
+Color = White
+Font = 0
+Size = 21
+Text = Stat2
+
+[StatDetailTextList3]
+X = 45
+Y = 198
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList4]
+X = 45
+Y = 236
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList5]
+X = 45
+Y = 274
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList6]
+X = 45
+Y = 312
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList7]
+X = 45
+Y = 350
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList8]
+X = 45
+Y = 388
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList9]
+X = 45
+Y = 426
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailTextList10]
+X = 45
+Y = 464
+Color = White
+Font = 0
+Size = 21
+Text =
+
+[StatDetailStatic1]
+X = 30
+Y = 22
+W = 27
+H = 27
+Color = Black
+Tex = StatIcon
+Type = Transparent
+
+[StatDetailStatic9]
+X = 20
+Y = 10
+W = 500
+H = 80
+Tex = MainTextBG
+Color = White
+Type = Transparent
+
+[StatDetailStatic2]
+X = 0
+Y = 545
+W = 250
+H = 30
+Tex = Leiste1
+Color = ColorLight
+Type = Colorized
+Reflection = 1
+ReflectionSpacing = 2
+
+[StatDetailStatic3]
+X = 250
+Y = 545
+W = 550
+H = 30
+Tex = Leiste2
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 2
+
+[StatDetailStatic4]
+X = 260
+Y = 552
+W = 24
+H = 23
+Tex = ButtonNavi
+Color = White
+Type = Transparent
+
+[StatDetailStatic5]
+X = 388
+Y = 552
+W = 32
+H = 23
+Tex = ButtonEsc
+Color = White
+Type = Transparent
+
+[StatDetailStatic6]
+X = 40
+Y = 100
+W = 520
+H = 24
+Tex = StatDetailBG1
+Color = ColorLight
+Type = Transparent
+
+[StatDetailStatic7]
+X = 40
+Y = 124
+W = 520
+H = 376
+Tex = StatMainBG2
+Color = ColorLight
+Type = Transparent
+
+[StatDetailStatic8]
+X = 40
+Y = 500
+W = 520
+H = 20
+Tex = StatMainBG3
+Color = ColorLight
+Type = Transparent
+
+[StatDetailText1]
+X = 70
+Y = 6
+Color = Black
+Font = 0
+Size = 60
+Text = STAT_DETAIL
+Align = 0
+
+[StatDetailText2]
+X = 238
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 2
+Text = STAT_DETAIL_WHEREAMI
+
+[StatDetailText3]
+X = 294
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_NAVIGATE
+
+[StatDetailText4]
+X = 418
+Y = 552
+Color = Black
+Font = 0
+Size = 21
+Align = 0
+Text = SING_LEGEND_ESC
+
+[CheckPopup]
+
+[CheckPopupBackground]
+Type=Fade
+ColR=0
+ColG=0
+ColB=0
+Alpha=0.4
+
+[CheckPopupStatic1]
+Tex = interface_dialog_background
+X = 200
+Y = 150
+W = 400
+H = 200
+Z = 1
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 15
+
+[CheckPopupText1]
+X = 400
+Y = 160
+W = 400
+Color = ColorDark
+Font = 0
+Size = 30
+Text = MSG_QUESTION_TITLE
+Align = 1
+Z = 1
+
+[CheckPopupText]
+X = 400
+Y = 210
+W = 280
+Color = Black
+Font = 0
+Size = 30
+Text = error text
+Align = 1
+Z = 1
+
+[CheckPopupButton1]
+X = 285
+Y = 310
+W = 100
+H = 25
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Z = 1
+
+[CheckPopupButton1Text1]
+X = 50
+Y = 0
+Color = White
+Font = 0
+Size = 24
+Text = YES
+Align = 1
+Z = 1
+
+[CheckPopupButton2]
+X = 415
+Y = 310
+W = 100
+H = 25
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Z = 1
+
+[CheckPopupButton2Text1]
+X = 50
+Y = 0
+Color = White
+Font = 0
+Size = 24
+Text = NO
+Align = 1
+Z = 1
+
+
+[ErrorPopup]
+
+[ErrorPopupBackground]
+Type=Fade
+ColR=0
+ColG=0
+ColB=0
+Alpha=0.4
+
+[ErrorPopupStatic1]
+Tex = interface_dialog_background
+X = 200
+Y = 150
+W = 400
+H = 200
+Z = 0.98
+Color = White
+Type = Transparent
+Reflection = 1
+ReflectionSpacing = 15
+
+[ErrorPopupText1]
+X = 400
+Y = 160
+W = 400
+Color = ColorDark
+Font = 0
+Size = 30
+Text = MSG_ERROR_TITLE
+Align = 1
+Z = 1
+
+[ErrorPopupText]
+X = 400
+Y = 210
+W = 280
+Color = Black
+Font = 0
+Size = 30
+Text = error text
+Align = 1
+Z = 1
+
+[ErrorPopupButton1]
+X = 350
+Y = 310
+W = 100
+H = 25
+Tex = Button
+Color = ColorLight
+DColor = ColorDark
+Type = Transparent
+Texts = 1
+Z = 1
+
+[ErrorPopupButton1Text1]
+X = 50
+Y = 0
+Color = White
+Font = 0
+Size = 24
+Text = OK
+Align = 1
+Z = 1
+
+[PausePopUpStatic]
+Tex = Pause
+X = 0
+Y = 0
+W = 800
+H = 600
+Z = 0.95
+Color = White
+Type = Colorized
+
+[SingLyricsUpperBar]
+X = 80
+W = 640
+Y = 493
+H = 41
+;YOffSet (+/-) for the Sing-Indicator
+IndicatorYOffset = 3
+
+[SingLyricsLowerBar]
+X = 80
+W = 640
+Y = 535
+H = 41 \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Drippin.ini b/us_maker_edition/game/themes/Verdure/Drippin.ini
new file mode 100644
index 00000000..bda3141f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Drippin.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Drippin
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]drippin.jpg
+MainBG = [bg-video]drippin.avi
+SongBG = [bg-video]drippin.avi
+ScoreScreenBG = [bg-video]drippin.avi
+Top5BG = [bg-video]drippin.avi
+OptionsBG = [bg-video]drippin.avi
+EditBG = [bg-video]drippin.avi
+PartyBG = [bg-video]drippin.avi
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Drippin_Low.ini b/us_maker_edition/game/themes/Verdure/Drippin_Low.ini
new file mode 100644
index 00000000..183e7405
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Drippin_Low.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Drippin (Low)
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]drippin.jpg
+MainBG = [bg-video]drippin_low.avi
+SongBG = [bg-video]drippin_low.avi
+ScoreScreenBG = [bg-video]drippin_low.avi
+Top5BG = [bg-video]drippin_low.avi
+OptionsBG = [bg-video]drippin_low.avi
+EditBG = [bg-video]drippin_low.avi
+PartyBG = [bg-video]drippin_low.avi
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Drippin_Static.ini b/us_maker_edition/game/themes/Verdure/Drippin_Static.ini
new file mode 100644
index 00000000..c9b0fc10
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Drippin_Static.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Drippin (Static)
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]drippin.jpg
+MainBG = [bg]drippin.jpg
+SongBG = [bg]drippin.jpg
+ScoreScreenBG = [bg]drippin.jpg
+Top5BG = [bg]drippin.jpg
+OptionsBG = [bg]drippin.jpg
+EditBG = [bg]drippin.jpg
+PartyBG = [bg]drippin.jpg
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Springtime.ini b/us_maker_edition/game/themes/Verdure/Springtime.ini
new file mode 100644
index 00000000..52e69d18
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Springtime.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Springtime
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]springtime.jpg
+MainBG = [bg-video]springtime.avi
+SongBG = [bg-video]springtime.avi
+ScoreScreenBG = [bg-video]springtime.avi
+Top5BG = [bg-video]springtime.avi
+OptionsBG = [bg-video]springtime.avi
+EditBG = [bg-video]springtime.avi
+PartyBG = [bg-video]springtime.avi
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Springtime_Low.ini b/us_maker_edition/game/themes/Verdure/Springtime_Low.ini
new file mode 100644
index 00000000..93e91ac4
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Springtime_Low.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Springtime (Low)
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]springtime.jpg
+MainBG = [bg-video]springtime_low.avi
+SongBG = [bg-video]springtime_low.avi
+ScoreScreenBG = [bg-video]springtime_low.avi
+Top5BG = [bg-video]springtime_low.avi
+OptionsBG = [bg-video]springtime_low.avi
+EditBG = [bg-video]springtime_low.avi
+PartyBG = [bg-video]springtime_low.avi
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/Springtime_Static.ini b/us_maker_edition/game/themes/Verdure/Springtime_Static.ini
new file mode 100644
index 00000000..999c1b02
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/Springtime_Static.ini
@@ -0,0 +1,241 @@
+;0.5.1
+;experimental version
+;if you are using this as a sample for your theme
+;don't be suprised it doesn't work good with newer releases
+;
+;The video is free for private / non-commercial use.
+;© Copyright dreamscene.org - All rights reserved.
+
+[Skin]
+Theme=Verdure
+Name=Springtime (Static)
+Color=Green
+
+[Textures]
+/**
+ * Interface
+ */
+interface_selectbg_search = [interface]selectbg_search.png
+interface_dialog_background = [interface]dialog_background.png
+Select_ArrowLeft = [interface]select_arrow_left.png
+Select_ArrowRight = [interface]select_arrow_right.png
+
+Cursor = [interface]cursor.png
+Cursor_Pressed = [interface]cursor_pressed.png
+
+/**
+ * Icons
+ */
+icon_song_menu = [icon]song_menu.png
+icon_song_search = [icon]song_search.png
+icon_song_video = [icon]song_video.png
+
+
+# # # M A I N # # #
+LoadLogo = [main]logo.png
+Button = [main]button.png
+ButtonF = [main]buttonf.jpg
+MainBar = [main]mainBar.png
+SelectBG = [main]selectbg.png
+MainTextBG = [main]textbg.png
+ButtonLeft = [main]button_left.png
+ButtonRight = [main]button_right.png
+
+#Backgrounds
+LoadingBG = [bg]springtime.jpg
+MainBG = [bg]springtime.jpg
+SongBG = [bg]springtime.jpg
+ScoreScreenBG = [bg]springtime.jpg
+Top5BG = [bg]springtime.jpg
+OptionsBG = [bg]springtime.jpg
+EditBG = [bg]springtime.jpg
+PartyBG = [bg]springtime.jpg
+
+#Icons on screen
+SongCD = [icon]cd.png
+MainIcon = [icon]main.png
+MainSearch = [icon]search.png
+IconOption = [icon]options.png
+IconEdit = [icon]options.png
+IconSongMenu = [icon]songmenu.png
+ScoreIcon = [icon]score.png
+PartyIcon = [icon]party.png
+StatIcon = [icon]stats.png
+VideoIcon = [icon]video.png
+
+IconError = [icon]error.png
+IconQuestion = [icon]question.png
+
+
+# # # S O N G S E L E C E T # # #
+SongSelection1 = [main]songSelection1.png
+SongSelection2 = [main]songSelection2.png
+SongCover = [main]songCover.jpg
+
+
+# # # S I N G # # #
+#the bar where the lyrics reside
+LyricBar = [sing]textBar.png
+
+#this one slides in, to tell you that singing starts immediately
+LyricHelpBar = [sing]lyricsHelpBar.png
+
+#the bar behind the timestuff
+TimeBar1 = [sing]timeBarBG.png
+
+#the time progress bar (not skinned in this theme :P )
+TimeBar = [sing]timeBar.jpg
+
+#linebonus, the thing that pop ups at the score
+LineBonusBack = [sing]lineBonusPopUp.png
+
+#Singbar (the thing beneath the scores)
+SingBarBack = [sing]singBarBack.png
+SingBarBar = [sing]singBarBar.png
+SingBarFront = [sing]singBarFront.png
+
+#Background for scores
+ScoreBG = [sing]scoreBg.png
+
+#Background for the P1, P2 and so on
+P = [sing]p.png
+
+#Pointer for lyrics
+Ball = [sing]LyricsBall.png
+
+
+# # # S C O R E / T O P 5 # # #
+ScoreBox = [score]box.png
+ScoreGlassBox = [score]glass_box.png
+ScoreLevel = [score]level.png
+ScoreLevelRound = [score]levelRound.png
+
+ScoreLevel_Dark = [score]level_dark.png
+ScoreLevel_Dark_Round = [score]level_dark_round.png
+
+ScoreLevel_Light = [score]level_light.png
+ScoreLevel_Light_Round = [score]level_light_round.png
+
+ScoreLevel_Lightest = [score]level_lightest.png
+ScoreLevel_Lightest_Round = [score]level_lightest_round.png
+
+# Boxes near the text, that show what color is for which bar
+ScoreBar_box_lightest = [score]bar_box_lightest.png
+ScoreBar_box_light = [score]bar_box_light.png
+ScoreBar_box_dark = [score]bar_box_dark.png
+
+ScoreEndCap = [score]endcap.png
+ScoreLine = [score]line.png
+PlayerNumberBox = [main]playerNumberBox.png
+
+PlayerIDBox01 = [sing.player1]lyric_active.png
+PlayerIDBox02 = [sing.player2]lyric_active.png
+PlayerIDBox03 = [sing.player3]lyric_active.png
+PlayerIDBox04 = [sing.player4]lyric_active.png
+PlayerIDBox05 = [sing.player5]lyric_active.png
+PlayerIDBox06 = [sing.player6]lyric_active.png
+
+# these icons are part of the tango icon set
+# licensed under Creative Commons Attribution Share-Alike license
+# http://tango.freedesktop.org
+Rating_0 = [score]rating_0.png
+Rating_1 = [score]rating_1.png
+Rating_2 = [score]rating_2.png
+Rating_3 = [score]rating_3.png
+Rating_4 = [score]rating_4.png
+Rating_5 = [score]rating_5.png
+Rating_6 = [score]rating_6.png
+Rating_7 = [score]rating_7.png
+# thank you girls and guys!!!
+
+
+# # # P A R T Y # # #
+Joker =[party]Joker.png
+PartyPlayerButton =[party]playerButton.png
+PartyTeamButton1 =[party]roundTeamButton.png
+PartyTeamButton2 =[party]playerTeamButton.png
+PartyTeamButton3 =[party]winTeamButton1.png
+PartyTeamButton4 =[party]winTeamButton2.png
+PartyTeamButton5 =[party]winTeamButton3.png
+PartyRoundBG1 =[party]roundBG1.png
+PartyRoundBG2 =[party]roundBG2.png
+PartyRoundBG3 =[party]roundBG3.png
+PartyRoundBG4 =[party]roundBG4.png
+HDL_Pointer =[party]pointer.png
+PartyTeamPoints =[party]teamPoints.png
+PartyScoreDeco =[party]scoreDecoration.png
+PartyScoreBG1 =[party]scoreBG1.png
+PartyScoreBG2 =[party]scoreBG2.png
+PartyWinDeco1 =[party]winDecoration.png
+PartyWinDeco2 =[party]winDecoration.png
+PartyWinDeco3 =[party]winDecoration.png
+PartyPlayerSelectBG = [party]playerselectbg.png
+
+
+# # # S T A T S # # #
+StatMainBG1 = [stat]mainBG1.png
+StatMainBG2 = [stat]mainBG2.png
+StatMainBG3 = [stat]mainBG3.png
+StatDetailBG1 = [stat]detailBG1.png
+
+
+# # # N A V I # # #
+ButtonP = [button]p.png
+ButtonM = [button]m.png
+ButtonJ = [button]j.png
+ButtonAlt = [button]alt.png
+ButtonAZ = [button]az.png
+ButtonEnter = [button]enter.png
+ButtonNavi = [button]navi.png
+ButtonEsc = [button]esc.png
+Button13 = [button]13.png
+
+Leiste1 = [special]bar1.png
+Leiste2 = [special]bar2.png
+
+JumpToBG = [menu]jumpToBg.png
+SongMenuBG = [menu]songMenuBg.png
+SongMenuSelectBG = [menu]songMenuSelectBg.png
+PopUpBG = [menu]popUpBG.png
+
+
+# # # N O T E S # # #
+# sung notes - colorized with playercolors
+GrayLeft = [sing]notesLeft.png
+GrayMid = [sing]notesMid.png
+GrayRight = [sing]notesRight.png
+# unsung notes - colorized with playercolors
+NotePlainLeft = [sing]notesPlainLeft.png
+NotePlainMid = [sing]notesPlainMid.png
+NotePlainRight = [sing]notesPlainRight.png
+# the glow around unsung/sung notes - colorized with playercolors
+NoteBGLeft = [sing]notesBgLeft.png
+NoteBGMid = [sing]notesBgMid.png
+NoteBGRight = [sing]notesBgRight.png
+Pause = [sing]pause.png
+
+
+# # # E F F E C T S # # #
+NoteStar = [effect]goldenNoteStar.png
+NotePerfectStar = [effect]perfectNoteStar.png
+
+
+# # # dirty helpers # # #
+Rectangle = [helper]rectangle.png
+ButtonFade = [helper]buttonFade.png
+BGFade = [special]bg_fade.png
+
+
+# # # D U E T # # #
+LyricIcon_P1 = [sing.player1]lyric_active.png
+LyricIconD_P1 = [sing.player1]lyric_inactive.png
+LyricIcon_P2 = [sing.player2]lyric_active.png
+LyricIconD_P2 = [sing.player2]lyric_inactive.png
+LyricIcon_P3 = [sing.player3]lyric_active.png
+LyricIconD_P3 = [sing.player3]lyric_inactive.png
+LyricIcon_P4 = [sing.player4]lyric_active.png
+LyricIconD_P4 = [sing.player4]lyric_inactive.png
+LyricIcon_P5 = [sing.player5]lyric_active.png
+LyricIconD_P5 = [sing.player5]lyric_inactive.png
+LyricIcon_P6 = [sing.player6]lyric_active.png
+LyricIconD_P6 = [sing.player6]lyric_inactive.png \ No newline at end of file
diff --git a/us_maker_edition/game/themes/Verdure/[bg-video]drippin.avi b/us_maker_edition/game/themes/Verdure/[bg-video]drippin.avi
new file mode 100644
index 00000000..5da1dc7f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg-video]drippin.avi
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[bg-video]drippin_low.avi b/us_maker_edition/game/themes/Verdure/[bg-video]drippin_low.avi
new file mode 100644
index 00000000..286bc12b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg-video]drippin_low.avi
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[bg-video]springtime.avi b/us_maker_edition/game/themes/Verdure/[bg-video]springtime.avi
new file mode 100644
index 00000000..778a45f7
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg-video]springtime.avi
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[bg-video]springtime_low.avi b/us_maker_edition/game/themes/Verdure/[bg-video]springtime_low.avi
new file mode 100644
index 00000000..2cdf57b8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg-video]springtime_low.avi
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[bg]drippin.jpg b/us_maker_edition/game/themes/Verdure/[bg]drippin.jpg
new file mode 100644
index 00000000..183d076e
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg]drippin.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[bg]springtime.jpg b/us_maker_edition/game/themes/Verdure/[bg]springtime.jpg
new file mode 100644
index 00000000..52aa04f5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[bg]springtime.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]13.png b/us_maker_edition/game/themes/Verdure/[button]13.png
new file mode 100644
index 00000000..8e4694c4
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]13.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]alt.png b/us_maker_edition/game/themes/Verdure/[button]alt.png
new file mode 100644
index 00000000..b3db5380
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]alt.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]az.png b/us_maker_edition/game/themes/Verdure/[button]az.png
new file mode 100644
index 00000000..fe070495
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]az.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]enter.png b/us_maker_edition/game/themes/Verdure/[button]enter.png
new file mode 100644
index 00000000..fcdb95ec
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]enter.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]esc.png b/us_maker_edition/game/themes/Verdure/[button]esc.png
new file mode 100644
index 00000000..fdf025eb
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]esc.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]j.png b/us_maker_edition/game/themes/Verdure/[button]j.png
new file mode 100644
index 00000000..5a2f2087
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]j.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]m.png b/us_maker_edition/game/themes/Verdure/[button]m.png
new file mode 100644
index 00000000..97070b5f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]m.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]navi.png b/us_maker_edition/game/themes/Verdure/[button]navi.png
new file mode 100644
index 00000000..96f46860
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]navi.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[button]p.png b/us_maker_edition/game/themes/Verdure/[button]p.png
new file mode 100644
index 00000000..e597ddda
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[button]p.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[effect]goldenNoteStar.png b/us_maker_edition/game/themes/Verdure/[effect]goldenNoteStar.png
new file mode 100644
index 00000000..7bd6225f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[effect]goldenNoteStar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[effect]perfectNoteStar.png b/us_maker_edition/game/themes/Verdure/[effect]perfectNoteStar.png
new file mode 100644
index 00000000..99132c39
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[effect]perfectNoteStar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[helper]buttonFade.png b/us_maker_edition/game/themes/Verdure/[helper]buttonFade.png
new file mode 100644
index 00000000..27a94c44
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[helper]buttonFade.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[helper]rectangle.png b/us_maker_edition/game/themes/Verdure/[helper]rectangle.png
new file mode 100644
index 00000000..57c77385
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[helper]rectangle.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]cd.png b/us_maker_edition/game/themes/Verdure/[icon]cd.png
new file mode 100644
index 00000000..2633d235
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]cd.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]error.png b/us_maker_edition/game/themes/Verdure/[icon]error.png
new file mode 100644
index 00000000..f952f3fa
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]error.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]main.png b/us_maker_edition/game/themes/Verdure/[icon]main.png
new file mode 100644
index 00000000..f7d50067
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]main.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]options.png b/us_maker_edition/game/themes/Verdure/[icon]options.png
new file mode 100644
index 00000000..9fac0bfd
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]options.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]party.png b/us_maker_edition/game/themes/Verdure/[icon]party.png
new file mode 100644
index 00000000..e23230e3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]party.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]question.png b/us_maker_edition/game/themes/Verdure/[icon]question.png
new file mode 100644
index 00000000..a72a5c43
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]question.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]score.png b/us_maker_edition/game/themes/Verdure/[icon]score.png
new file mode 100644
index 00000000..ccc3d8ff
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]score.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]song_menu.png b/us_maker_edition/game/themes/Verdure/[icon]song_menu.png
new file mode 100644
index 00000000..acf69bfb
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]song_menu.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]song_search.png b/us_maker_edition/game/themes/Verdure/[icon]song_search.png
new file mode 100644
index 00000000..f5190315
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]song_search.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]song_video.png b/us_maker_edition/game/themes/Verdure/[icon]song_video.png
new file mode 100644
index 00000000..4a679249
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]song_video.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]stats.png b/us_maker_edition/game/themes/Verdure/[icon]stats.png
new file mode 100644
index 00000000..d8e5eac1
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]stats.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[icon]video.png b/us_maker_edition/game/themes/Verdure/[icon]video.png
new file mode 100644
index 00000000..9bd65f86
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[icon]video.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]cursor.png b/us_maker_edition/game/themes/Verdure/[interface]cursor.png
new file mode 100644
index 00000000..0fe390f0
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]cursor.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]cursor_pressed.png b/us_maker_edition/game/themes/Verdure/[interface]cursor_pressed.png
new file mode 100644
index 00000000..fa0056cc
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]cursor_pressed.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]dialog_background.png b/us_maker_edition/game/themes/Verdure/[interface]dialog_background.png
new file mode 100644
index 00000000..a66837cc
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]dialog_background.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]select_arrow_left.png b/us_maker_edition/game/themes/Verdure/[interface]select_arrow_left.png
new file mode 100644
index 00000000..e4a32d2d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]select_arrow_left.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]select_arrow_right.png b/us_maker_edition/game/themes/Verdure/[interface]select_arrow_right.png
new file mode 100644
index 00000000..b2a29793
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]select_arrow_right.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[interface]selectbg_search.png b/us_maker_edition/game/themes/Verdure/[interface]selectbg_search.png
new file mode 100644
index 00000000..57d0ca88
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[interface]selectbg_search.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]button.png b/us_maker_edition/game/themes/Verdure/[main]button.png
new file mode 100644
index 00000000..1d5ccaed
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]button.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]button_left.png b/us_maker_edition/game/themes/Verdure/[main]button_left.png
new file mode 100644
index 00000000..7dc9f6aa
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]button_left.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]button_right.png b/us_maker_edition/game/themes/Verdure/[main]button_right.png
new file mode 100644
index 00000000..10a5c490
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]button_right.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]buttonf.jpg b/us_maker_edition/game/themes/Verdure/[main]buttonf.jpg
new file mode 100644
index 00000000..d844add5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]buttonf.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]logo.png b/us_maker_edition/game/themes/Verdure/[main]logo.png
new file mode 100644
index 00000000..b7810fab
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]logo.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]mainBar.png b/us_maker_edition/game/themes/Verdure/[main]mainBar.png
new file mode 100644
index 00000000..a9797e15
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]mainBar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]playerNumberBox.png b/us_maker_edition/game/themes/Verdure/[main]playerNumberBox.png
new file mode 100644
index 00000000..2035c4cc
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]playerNumberBox.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]selectbg.png b/us_maker_edition/game/themes/Verdure/[main]selectbg.png
new file mode 100644
index 00000000..9a9e89ac
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]selectbg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]songCover.jpg b/us_maker_edition/game/themes/Verdure/[main]songCover.jpg
new file mode 100644
index 00000000..7cf8930b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]songCover.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]songSelection1.png b/us_maker_edition/game/themes/Verdure/[main]songSelection1.png
new file mode 100644
index 00000000..c9f2ba22
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]songSelection1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]songSelection2.png b/us_maker_edition/game/themes/Verdure/[main]songSelection2.png
new file mode 100644
index 00000000..73fe2652
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]songSelection2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]songSelection3.png b/us_maker_edition/game/themes/Verdure/[main]songSelection3.png
new file mode 100644
index 00000000..f4704ef2
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]songSelection3.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[main]textbg.png b/us_maker_edition/game/themes/Verdure/[main]textbg.png
new file mode 100644
index 00000000..f355bb57
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[main]textbg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[menu]PopUpFg.png b/us_maker_edition/game/themes/Verdure/[menu]PopUpFg.png
new file mode 100644
index 00000000..2c9785b4
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[menu]PopUpFg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[menu]jumpToBg.png b/us_maker_edition/game/themes/Verdure/[menu]jumpToBg.png
new file mode 100644
index 00000000..8e3a3a00
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[menu]jumpToBg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[menu]songMenuBg.png b/us_maker_edition/game/themes/Verdure/[menu]songMenuBg.png
new file mode 100644
index 00000000..92beff8e
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[menu]songMenuBg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[menu]songMenuSelectBg.png b/us_maker_edition/game/themes/Verdure/[menu]songMenuSelectBg.png
new file mode 100644
index 00000000..8ff5eef8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[menu]songMenuSelectBg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]Joker.png b/us_maker_edition/game/themes/Verdure/[party]Joker.png
new file mode 100644
index 00000000..59093432
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]Joker.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]playerButton.png b/us_maker_edition/game/themes/Verdure/[party]playerButton.png
new file mode 100644
index 00000000..d66b195d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]playerButton.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]playerTeamButton.png b/us_maker_edition/game/themes/Verdure/[party]playerTeamButton.png
new file mode 100644
index 00000000..1d645717
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]playerTeamButton.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]playerselectbg.png b/us_maker_edition/game/themes/Verdure/[party]playerselectbg.png
new file mode 100644
index 00000000..79a449e7
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]playerselectbg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]pointer.png b/us_maker_edition/game/themes/Verdure/[party]pointer.png
new file mode 100644
index 00000000..2292d6c1
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]pointer.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]roundBG1.png b/us_maker_edition/game/themes/Verdure/[party]roundBG1.png
new file mode 100644
index 00000000..9cd6397e
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]roundBG1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]roundBG2.png b/us_maker_edition/game/themes/Verdure/[party]roundBG2.png
new file mode 100644
index 00000000..03a52fb5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]roundBG2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]roundBG3.png b/us_maker_edition/game/themes/Verdure/[party]roundBG3.png
new file mode 100644
index 00000000..1e758ede
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]roundBG3.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]roundBG4.png b/us_maker_edition/game/themes/Verdure/[party]roundBG4.png
new file mode 100644
index 00000000..45e81d6b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]roundBG4.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]roundTeamButton.png b/us_maker_edition/game/themes/Verdure/[party]roundTeamButton.png
new file mode 100644
index 00000000..9bdfe994
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]roundTeamButton.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]scoreBG1.png b/us_maker_edition/game/themes/Verdure/[party]scoreBG1.png
new file mode 100644
index 00000000..42d4464b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]scoreBG1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]scoreBG2.png b/us_maker_edition/game/themes/Verdure/[party]scoreBG2.png
new file mode 100644
index 00000000..90aa5cce
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]scoreBG2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]scoreDecoration.png b/us_maker_edition/game/themes/Verdure/[party]scoreDecoration.png
new file mode 100644
index 00000000..388077e6
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]scoreDecoration.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]teamPoints.png b/us_maker_edition/game/themes/Verdure/[party]teamPoints.png
new file mode 100644
index 00000000..a6d2f42d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]teamPoints.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]winDecoration.png b/us_maker_edition/game/themes/Verdure/[party]winDecoration.png
new file mode 100644
index 00000000..f84dbc8a
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]winDecoration.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]winTeamButton1.png b/us_maker_edition/game/themes/Verdure/[party]winTeamButton1.png
new file mode 100644
index 00000000..d080b6fe
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]winTeamButton1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]winTeamButton2.png b/us_maker_edition/game/themes/Verdure/[party]winTeamButton2.png
new file mode 100644
index 00000000..9bdfe994
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]winTeamButton2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[party]winTeamButton3.png b/us_maker_edition/game/themes/Verdure/[party]winTeamButton3.png
new file mode 100644
index 00000000..c2b2e730
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[party]winTeamButton3.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]Line.png b/us_maker_edition/game/themes/Verdure/[score]Line.png
new file mode 100644
index 00000000..954caf94
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]Line.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]bar_box_dark.png b/us_maker_edition/game/themes/Verdure/[score]bar_box_dark.png
new file mode 100644
index 00000000..e4fbfa41
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]bar_box_dark.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]bar_box_light.png b/us_maker_edition/game/themes/Verdure/[score]bar_box_light.png
new file mode 100644
index 00000000..ddc17ed8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]bar_box_light.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]bar_box_lightest.png b/us_maker_edition/game/themes/Verdure/[score]bar_box_lightest.png
new file mode 100644
index 00000000..995bb9ef
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]bar_box_lightest.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]box.png b/us_maker_edition/game/themes/Verdure/[score]box.png
new file mode 100644
index 00000000..71a0cee6
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]box.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]endcap.png b/us_maker_edition/game/themes/Verdure/[score]endcap.png
new file mode 100644
index 00000000..3cccd2e1
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]endcap.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]glass_box.png b/us_maker_edition/game/themes/Verdure/[score]glass_box.png
new file mode 100644
index 00000000..c0cf2a9c
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]glass_box.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]glassbackground.png b/us_maker_edition/game/themes/Verdure/[score]glassbackground.png
new file mode 100644
index 00000000..6bc60500
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]glassbackground.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level.png b/us_maker_edition/game/themes/Verdure/[score]level.png
new file mode 100644
index 00000000..1f627560
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]levelRound.png b/us_maker_edition/game/themes/Verdure/[score]levelRound.png
new file mode 100644
index 00000000..2bc7a6b8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]levelRound.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_dark.png b/us_maker_edition/game/themes/Verdure/[score]level_dark.png
new file mode 100644
index 00000000..da4fd407
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_dark.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_dark_round.png b/us_maker_edition/game/themes/Verdure/[score]level_dark_round.png
new file mode 100644
index 00000000..de239cb2
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_dark_round.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_light.png b/us_maker_edition/game/themes/Verdure/[score]level_light.png
new file mode 100644
index 00000000..1c1c8a4d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_light.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_light_round.png b/us_maker_edition/game/themes/Verdure/[score]level_light_round.png
new file mode 100644
index 00000000..641151a5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_light_round.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_lightest.png b/us_maker_edition/game/themes/Verdure/[score]level_lightest.png
new file mode 100644
index 00000000..f02fdf7b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_lightest.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]level_lightest_round.png b/us_maker_edition/game/themes/Verdure/[score]level_lightest_round.png
new file mode 100644
index 00000000..9f1bb09e
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]level_lightest_round.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_0.png b/us_maker_edition/game/themes/Verdure/[score]rating_0.png
new file mode 100644
index 00000000..7e836b99
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_0.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_1.png b/us_maker_edition/game/themes/Verdure/[score]rating_1.png
new file mode 100644
index 00000000..556821cb
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_2.png b/us_maker_edition/game/themes/Verdure/[score]rating_2.png
new file mode 100644
index 00000000..ffa23fd3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_3.png b/us_maker_edition/game/themes/Verdure/[score]rating_3.png
new file mode 100644
index 00000000..5204dc5f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_3.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_4.png b/us_maker_edition/game/themes/Verdure/[score]rating_4.png
new file mode 100644
index 00000000..f5d7267c
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_4.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_5.png b/us_maker_edition/game/themes/Verdure/[score]rating_5.png
new file mode 100644
index 00000000..0f6a553b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_5.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_6.png b/us_maker_edition/game/themes/Verdure/[score]rating_6.png
new file mode 100644
index 00000000..e8127c85
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_6.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[score]rating_7.png b/us_maker_edition/game/themes/Verdure/[score]rating_7.png
new file mode 100644
index 00000000..6b1d30f5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[score]rating_7.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_active.png
new file mode 100644
index 00000000..089c8c5e
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_inactive.png
new file mode 100644
index 00000000..a349007d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player1]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_active.png
new file mode 100644
index 00000000..509767fa
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_inactive.png
new file mode 100644
index 00000000..ac40ec61
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player2]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_active.png
new file mode 100644
index 00000000..7b130ac5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_inactive.png
new file mode 100644
index 00000000..c5a00600
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player3]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_active.png
new file mode 100644
index 00000000..993041fd
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_inactive.png
new file mode 100644
index 00000000..f09669b2
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player4]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_active.png
new file mode 100644
index 00000000..631dc9c3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_inactive.png
new file mode 100644
index 00000000..716071e8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player5]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_active.png b/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_active.png
new file mode 100644
index 00000000..65133d03
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_active.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_inactive.png b/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_inactive.png
new file mode 100644
index 00000000..0c5f34d3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing.player6]lyric_inactive.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]LyricsBall.png b/us_maker_edition/game/themes/Verdure/[sing]LyricsBall.png
new file mode 100644
index 00000000..aa4401dd
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]LyricsBall.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]lineBonusPopUp.png b/us_maker_edition/game/themes/Verdure/[sing]lineBonusPopUp.png
new file mode 100644
index 00000000..c7bd0a41
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]lineBonusPopUp.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]lyricsHelpBar.png b/us_maker_edition/game/themes/Verdure/[sing]lyricsHelpBar.png
new file mode 100644
index 00000000..33ea8ddf
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]lyricsHelpBar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesBgLeft.png b/us_maker_edition/game/themes/Verdure/[sing]notesBgLeft.png
new file mode 100644
index 00000000..9fe2621c
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesBgLeft.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesBgMid.png b/us_maker_edition/game/themes/Verdure/[sing]notesBgMid.png
new file mode 100644
index 00000000..612da5d3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesBgMid.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesBgRight.png b/us_maker_edition/game/themes/Verdure/[sing]notesBgRight.png
new file mode 100644
index 00000000..a6f42c33
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesBgRight.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesLeft.png b/us_maker_edition/game/themes/Verdure/[sing]notesLeft.png
new file mode 100644
index 00000000..3a404b9c
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesLeft.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesMid.png b/us_maker_edition/game/themes/Verdure/[sing]notesMid.png
new file mode 100644
index 00000000..8769d01a
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesMid.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesPlainLeft.png b/us_maker_edition/game/themes/Verdure/[sing]notesPlainLeft.png
new file mode 100644
index 00000000..1a94a9d8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesPlainLeft.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesPlainMid.png b/us_maker_edition/game/themes/Verdure/[sing]notesPlainMid.png
new file mode 100644
index 00000000..7fc64282
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesPlainMid.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesPlainRight.png b/us_maker_edition/game/themes/Verdure/[sing]notesPlainRight.png
new file mode 100644
index 00000000..ff8bb502
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesPlainRight.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]notesRight.png b/us_maker_edition/game/themes/Verdure/[sing]notesRight.png
new file mode 100644
index 00000000..8dc40cc8
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]notesRight.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]p.png b/us_maker_edition/game/themes/Verdure/[sing]p.png
new file mode 100644
index 00000000..7458d8e5
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]p.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]pause.png b/us_maker_edition/game/themes/Verdure/[sing]pause.png
new file mode 100644
index 00000000..f5ab158c
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]pause.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]scoreBg.jpg b/us_maker_edition/game/themes/Verdure/[sing]scoreBg.jpg
new file mode 100644
index 00000000..4a4459f6
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]scoreBg.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]scoreBg.png b/us_maker_edition/game/themes/Verdure/[sing]scoreBg.png
new file mode 100644
index 00000000..db6ba67f
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]scoreBg.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]singBarBack.png b/us_maker_edition/game/themes/Verdure/[sing]singBarBack.png
new file mode 100644
index 00000000..14d2ba42
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]singBarBack.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]singBarBar.jpg b/us_maker_edition/game/themes/Verdure/[sing]singBarBar.jpg
new file mode 100644
index 00000000..4fd9bde9
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]singBarBar.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]singBarBar.png b/us_maker_edition/game/themes/Verdure/[sing]singBarBar.png
new file mode 100644
index 00000000..9c57057b
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]singBarBar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]singBarFront.png b/us_maker_edition/game/themes/Verdure/[sing]singBarFront.png
new file mode 100644
index 00000000..42477c5a
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]singBarFront.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]textBar.png b/us_maker_edition/game/themes/Verdure/[sing]textBar.png
new file mode 100644
index 00000000..d2069235
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]textBar.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]timeBar.jpg b/us_maker_edition/game/themes/Verdure/[sing]timeBar.jpg
new file mode 100644
index 00000000..cc5cb552
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]timeBar.jpg
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[sing]timeBarBG.png b/us_maker_edition/game/themes/Verdure/[sing]timeBarBG.png
new file mode 100644
index 00000000..6094fdf3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[sing]timeBarBG.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[special]bar1.png b/us_maker_edition/game/themes/Verdure/[special]bar1.png
new file mode 100644
index 00000000..a6da49e3
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[special]bar1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[special]bar12.png b/us_maker_edition/game/themes/Verdure/[special]bar12.png
new file mode 100644
index 00000000..00afb41d
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[special]bar12.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[special]bar2.png b/us_maker_edition/game/themes/Verdure/[special]bar2.png
new file mode 100644
index 00000000..e42a3217
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[special]bar2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[special]bar22.png b/us_maker_edition/game/themes/Verdure/[special]bar22.png
new file mode 100644
index 00000000..c828a8e1
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[special]bar22.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[special]bg_fade.png b/us_maker_edition/game/themes/Verdure/[special]bg_fade.png
new file mode 100644
index 00000000..dc3248ef
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[special]bg_fade.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[stat]detailBG1.png b/us_maker_edition/game/themes/Verdure/[stat]detailBG1.png
new file mode 100644
index 00000000..e89394cb
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[stat]detailBG1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[stat]mainBG1.png b/us_maker_edition/game/themes/Verdure/[stat]mainBG1.png
new file mode 100644
index 00000000..440791df
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[stat]mainBG1.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[stat]mainBG2.png b/us_maker_edition/game/themes/Verdure/[stat]mainBG2.png
new file mode 100644
index 00000000..bd7f6146
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[stat]mainBG2.png
Binary files differ
diff --git a/us_maker_edition/game/themes/Verdure/[stat]mainBG3.png b/us_maker_edition/game/themes/Verdure/[stat]mainBG3.png
new file mode 100644
index 00000000..ab956992
--- /dev/null
+++ b/us_maker_edition/game/themes/Verdure/[stat]mainBG3.png
Binary files differ
diff --git a/us_maker_edition/installer/UAC.nsh b/us_maker_edition/installer/UAC.nsh
new file mode 100644
index 00000000..b21e72ff
--- /dev/null
+++ b/us_maker_edition/installer/UAC.nsh
@@ -0,0 +1,191 @@
+/*
+=======================
+UAC helper include file
+.......................
+
+Macros starting with UAC.I should only be called from the installer and vice versa for UAC.U macros.
+
+*/
+!ifndef UAC_HDR__INC
+!define UAC_HDR__INC
+!include LogicLib.nsh
+
+!define UAC.RunElevatedAndProcessMessages 'UAC::RunElevated '
+!define UAC.Unload 'UAC::Unload '
+!define UAC.StackPush 'UAC::StackPush '
+
+/*!macro _UAC.BuildOnInitElevationFunc _funcprefix
+Function ${_funcprefix}onInit
+!ifmacrodef
+FunctionEnd
+!macroend*/
+
+!macro _UAC.GenerateSimpleFunction _funcprefix _funcName _funcCode
+Function ${_funcprefix}${_funcName}
+${_funcCode}
+#messagebox mb_ok "${_funcprefix}${_funcName}"
+FunctionEnd
+!macroend
+
+!macro _UAC.TryDef _d _v
+!ifndef ${_d}
+!define ${_d} "${_v}"
+!endif
+!macroend
+
+!macro _UAC.InitStrings _modeprefix
+!insertmacro _UAC.TryDef UACSTR.UnDataFile "UAC.dat"
+!insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvWinErr "Unable to elevate , error $0"
+!ifNdef __UNINSTALL__
+ !insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvAbortReqAdmin "This installer requires admin access, aborting!"
+ !insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvMustTryAgain "This installer requires admin access, try again"
+ !else
+ !insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvAbortReqAdmin "This uninstaller requires admin access, aborting!"
+ !insertmacro _UAC.TryDef UACSTR.${_modeprefix}ElvMustTryAgain "This uninstaller requires admin access, try again"
+ !endif
+!macroend
+
+!ifmacroNdef _UAC.GenerateUninstallerTango
+!macro _UAC.GenerateUninstallerTango UninstallerFileName
+!ifdef __GLOBAL__
+ !error "UAC: Needs to be called inside a function"
+ !endif
+!ifNdef __UNINSTALL__
+ !error "UAC: _UAC.GenerateUninstallerTango should only be called by uninstaller, see http://forums.winamp.com/showthread.php?threadid=280330"
+ !endif
+!ifNdef UAC_UNINSTALLERTANGOFORALLPLATFORMS
+ !include WinVer.nsh
+ !endif
+!insertmacro _UAC.InitStrings 'U.'
+ReadIniStr $0 "$ExeDir\${UACSTR.UnDataFile}" UAC "Un.Ready"
+${IF} $0 != 1
+!ifNdef UAC_UNINSTALLERTANGOFORALLPLATFORMS
+${AndIf} ${AtLeastWinVista}
+!endif
+ InitPluginsDir
+ WriteIniStr "$PluginsDir\${UACSTR.UnDataFile}" UAC "Un.Ready" 1
+ CopyFiles /SILENT "$EXEPATH" "$PluginsDir\${UninstallerFileName}"
+ StrCpy $0 ""
+ ${IfThen} ${Silent} ${|} StrCpy $0 "/S " ${|}
+ ExecWait '"$PluginsDir\${UninstallerFileName}" $0/NCRC _?=$INSTDIR' $0
+ SetErrorLevel $0
+ Quit
+ ${EndIf}
+!macroend
+!endif
+
+!ifmacroNdef _UAC.GenerateOnInitElevationCode
+!macro _UAC.GenerateOnInitElevationCode _modeprefix
+!ifndef __FUNCTION__
+ !error "UAC: Needs to be called inside a function"
+ !endif
+!insertmacro _UAC.InitStrings ${_modeprefix}
+!define _UAC.GOIECUniq L${__LINE__}
+UAC_Elevate_${_UAC.GOIECUniq}:
+UAC::RunElevated
+StrCmp 1223 $0 UAC_ElevationAborted_${_UAC.GOIECUniq} ; UAC dialog aborted by user?
+StrCmp 0 $0 0 UAC_Err_${_UAC.GOIECUniq} ; Error?
+StrCmp 1 $1 0 UAC_Success_${_UAC.GOIECUniq} ;Are we the real deal or just the wrapper?
+Quit
+UAC_Err_${_UAC.GOIECUniq}:
+MessageBox mb_iconstop "${UACSTR.${_modeprefix}ElvWinErr}"
+Abort
+UAC_ElevationAborted_${_UAC.GOIECUniq}:
+MessageBox mb_iconstop "${UACSTR.${_modeprefix}ElvAbortReqAdmin}"
+Abort
+UAC_Success_${_UAC.GOIECUniq}:
+# if $0==0 && $3==1, we are a member of the admin group (Any OS)
+# if $0==0 && $1==0, UAC not supported (Probably <NT6), run as normal?
+# if $0==0 && $1==3, we can try to elevate again
+StrCmp 1 $3 /*+4*/ UAC_Done_${_UAC.GOIECUniq} ;Admin?
+StrCmp 3 $1 0 UAC_ElevationAborted_${_UAC.GOIECUniq} ;Try again or abort?
+MessageBox mb_iconexclamation "${UACSTR.${_modeprefix}ElvMustTryAgain}" ;Inform user...
+goto UAC_Elevate_${_UAC.GOIECUniq} ;...lets try again
+UAC_Done_${_UAC.GOIECUniq}:
+!undef _UAC.GOIECUniq
+!macroend
+!endif
+
+!define UAC.I.Elevate.AdminOnly '!insertmacro UAC.I.Elevate.AdminOnly '
+!macro UAC.I.Elevate.AdminOnly
+!insertmacro _UAC.GenerateOnInitElevationCode 'I.'
+!macroend
+
+!define UAC.U.Elevate.AdminOnly '!insertmacro UAC.U.Elevate.AdminOnly '
+!macro UAC.U.Elevate.AdminOnly _UninstallerName
+!ifNdef UAC_DISABLEUNINSTALLERTANGO
+ !insertmacro _UAC.GenerateUninstallerTango "${_UninstallerName}"
+ !endif
+!insertmacro _UAC.GenerateOnInitElevationCode 'U.'
+!macroend
+
+!define UAC.AutoCodeUnload '!insertmacro UAC.AutoCodeUnload '
+!macro UAC.AutoCodeUnload _HasUninstaller
+!insertmacro _UAC.GenerateSimpleFunction "" .OnInstFailed '${UAC.Unload}'
+!insertmacro _UAC.GenerateSimpleFunction "" .OnInstSuccess '${UAC.Unload}'
+!ifNdef MUI_INCLUDED
+ !insertmacro _UAC.GenerateSimpleFunction "" .onUserAbort '${UAC.Unload}'
+ !else
+ !ifNdef MUI_CUSTOMFUNCTION_ABORT
+ !error "UAC: must call $$ {UAC.Unload} in MUI_CUSTOMFUNCTION_ABORT!"
+ !endif
+ !endif
+!if "${_HasUninstaller}" != ""
+ !insertmacro _UAC.GenerateSimpleFunction "un" .onUninstFailed '${UAC.Unload}'
+ !insertmacro _UAC.GenerateSimpleFunction "un" .onUninstSuccess '${UAC.Unload}'
+ !ifNdef MUI_INCLUDED
+ !insertmacro _UAC.GenerateSimpleFunction "un" .onUserAbort '${UAC.Unload}'
+ !else
+ !ifNdef MUI_CUSTOMFUNCTION_ABORT
+ !error "UAC: must call $$ {UAC.Unload} in MUI_CUSTOMFUNCTION_(UN)ABORT!"
+ !endif
+ !endif
+ !endif
+!macroend
+
+!define UAC.FastCallFunctionAsUser '!insertmacro UAC.FastCallFunctionAsUser '
+!macro UAC.FastCallFunctionAsUser _func _var
+GetFunctionAddress ${_var} ${_func}
+UAC::ExecCodeSegment ${_var}
+!macroend
+!define UAC.CallFunctionAsUser '!insertmacro UAC.CallFunctionAsUser '
+!macro UAC.CallFunctionAsUser _func
+push $R9
+!insertmacro UAC.FastCallFunctionAsUser ${_func} $R9
+pop $R9
+!macroend
+
+!define UAC.FastCallGetOuterInstanceHwndParent UAC::GetOuterHwnd
+!define UAC.GetOuterInstanceHwndParent '!insertmacro UAC.GetOuterInstanceHwndParent '
+!macro UAC.GetOuterInstanceHwndParent _var
+push $0
+${UAC.FastCallGetOuterInstanceHwndParent}
+Exch $0
+Pop ${_var}
+!macroend
+
+
+
+!macro _UAC.DumpEx _disp _f _fp _v
+${_f} ${_fp}
+DetailPrint "${_disp}=${_v}"
+!macroend
+!macro _UAC.Dump _f _fp _v
+!insertmacro _UAC.DumpEx `${_f}` `${_f}` `${_fp}` `${_v}`
+!macroend
+!macro _UAC.DbgDetailPrint
+push $0
+push $1
+System::Call /NoUnload "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})"
+System::Call "Kernel32::GetComputerName(t.r1,*i${NSIS_MAX_STRLEN})"
+DetailPrint "$1\$0"
+;!insertmacro _UAC.DumpEx "User" System::Call "advapi32::GetUserName(t.r0,*i${NSIS_MAX_STRLEN})" $0
+!insertmacro _UAC.DumpEx "CmdLine" "" "" "$CmdLine"
+!insertmacro _UAC.Dump UAC::IsAdmin "" $0
+!insertmacro _UAC.Dump UAC::SupportsUAC "" $0
+!insertmacro _UAC.Dump UAC::GetElevationType "" $0
+pop $1
+pop $0
+!macroend
+
+!endif /* ifndef UAC_HDR__INC */ \ No newline at end of file
diff --git a/us_maker_edition/installer/UltraStar Deluxe.nsi b/us_maker_edition/installer/UltraStar Deluxe.nsi
index 13cf46d0..6eeeefb1 100644
--- a/us_maker_edition/installer/UltraStar Deluxe.nsi
+++ b/us_maker_edition/installer/UltraStar Deluxe.nsi
@@ -7,6 +7,7 @@
!include LogicLib.nsh
!include InstallOptions.nsh
!include nsDialogs.nsh
+!include UAC.nsh
; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
; Variables
@@ -49,8 +50,8 @@ InstallDir "$PROGRAMFILES\${name}"
InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\UltraStar Deluxe" "InstallDir"
; Windows Vista / Windows 7:
-
-RequestExecutionLevel admin
+; must be "user" for UAC plugin
+RequestExecutionLevel user
; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
; Interface Settings
@@ -109,8 +110,16 @@ RequestExecutionLevel admin
!define MUI_FINISHPAGE_TEXT_LARGE
!define MUI_FINISHPAGE_TEXT "$(page_finish_txt)"
-!define MUI_FINISHPAGE_RUN "$INSTDIR\${exe}.exe"
+; MUI_FINISHPAGE_RUN is executed as admin by default.
+; To get the config.ini location right it must be executed with user
+; rights instead.
+!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_NOTCHECKED
+!define MUI_FINISHPAGE_RUN_FUNCTION RunAppAsUser
+
+Function RunAppAsUser
+ UAC::ShellExec 'open' '' '$INSTDIR\${exe}.exe' '' '$INSTDIR'
+FunctionEnd
!define MUI_FINISHPAGE_LINK "$(page_finish_linktxt)"
!define MUI_FINISHPAGE_LINK_LOCATION "${homepage}"
@@ -135,7 +144,7 @@ RequestExecutionLevel admin
; Start menu page
-var ICONS_GROUP
+Var ICONS_GROUP
!define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${name}"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
@@ -149,70 +158,99 @@ var ICONS_GROUP
Page custom Settings
-Function Settings
-!insertmacro INSTALLOPTIONS_WRITE "Settings-$LANGUAGE" "Field 18" "State" "$INSTDIR\songs"
-
-!insertmacro MUI_HEADER_TEXT " " "$(page_settings_subtitle)"
-!insertmacro INSTALLOPTIONS_DISPLAY "Settings-$LANGUAGE"
-
-; Get all the variables:
-
-Var /GLOBAL LABEL_COMPONENTS
-
-Var /GLOBAL CHECKBOX_COVERS
-Var /GLOBAL CB_COVERS_State
-Var /GLOBAL CHECKBOX_SCORES
-Var /GLOBAL CB_SCORES_State
-Var /GLOBAL CHECKBOX_CONFIG
-Var /GLOBAL CB_CONFIG_State
-Var /GLOBAL CHECKBOX_SCREENSHOTS
-Var /GLOBAL CB_SCREENSHOTS_State
-Var /GLOBAL CHECKBOX_PLAYLISTS
-Var /GLOBAL CB_PLAYLISTS_State
-Var /GLOBAL CHECKBOX_SONGS
-Var /GLOBAL CB_SONGS_State
-
-var /GLOBAL fullscreen
-var /GLOBAL language2
-var /GLOBAL resolution
-var /GLOBAL tabs
-var /GLOBAL sorting
-var /GLOBAL songdir
-
- !insertmacro INSTALLOPTIONS_READ $fullscreen "Settings-$LANGUAGE" "Field 5" "State"
- !insertmacro INSTALLOPTIONS_READ $language2 "Settings-$LANGUAGE" "Field 6" "State"
- !insertmacro INSTALLOPTIONS_READ $resolution "Settings-$LANGUAGE" "Field 7" "State"
- !insertmacro INSTALLOPTIONS_READ $tabs "Settings-$LANGUAGE" "Field 8" "State"
- !insertmacro INSTALLOPTIONS_READ $sorting "Settings-$LANGUAGE" "Field 15" "State"
- !insertmacro INSTALLOPTIONS_READ $songdir "Settings-$LANGUAGE" "Field 18" "State"
-
-; Write all variables to config.ini
-
-var /GLOBAL path_config
-var /GLOBAL path_configini
-
-${If} ${AtLeastWinVista}
- SetShellVarContext current
- StrCpy $path_config "$APPDATA\ultrastardx"
- SetShellVarContext all
-${Else}
- StrCpy $path_config "$INSTDIR"
-${EndIf}
-
-StrCpy $path_configini "$path_config\config.ini"
-
-WriteINIStr "$path_configini" "Game" "Language" "$language2"
-WriteINIStr "$path_configini" "Game" "Tabs" "$tabs"
-WriteINIStr "$path_configini" "Game" "Sorting" "$sorting"
+; User data info
+
+Var UseAppData ; true if APPDATA is used for user data, false for INSTDIR
+Var UserDataPath ; Path to user data dir (e.g. $INSTDIR)
+Var ConfigIniPath ; Path to config.ini (e.g. "$INSTDIR\config.ini")
+
+; Checks for write permissions on $INSTDIR\config.ini.
+; This function creates $INSTDIR\config.use as a marker file if
+; the user has write permissions.
+; Note: Must be run with user privileges
+Function CheckInstDirUserPermissions
+ ClearErrors
+ ; try to open the ini file.
+ ; Use "append" mode so an existing config.ini is not destroyed.
+ FileOpen $0 "$INSTDIR\config.ini" a
+ IfErrors end
+ ; we have write permissions -> create a marker file
+ FileOpen $1 "$INSTDIR\config.use" a
+ FileClose $1
+end:
+ FileClose $0
+FunctionEnd
-WriteINIStr "$path_configini" "Graphics" "FullScreen" "$fullscreen"
-WriteINIStr "$path_configini" "Graphics" "Resolution" "$resolution"
+; Determines the directory used for config.ini and other user
+; settings and data.
+; Sets $UseAppData, $UserDataPath and $ConfigIniPath
+Function DetermineUserDataDir
+ Delete "$INSTDIR\config.use"
+ !insertmacro UAC.CallFunctionAsUser CheckInstDirUserPermissions
+ IfFileExists "$INSTDIR\config.use" 0 notexists
+ StrCpy $UseAppData false
+ StrCpy $UserDataPath "$INSTDIR"
+ Goto end
+notexists:
+ StrCpy $UseAppData true
+ SetShellVarContext current
+ StrCpy $UserDataPath "$APPDATA\ultrastardx"
+ SetShellVarContext all
+end:
+ Delete "$INSTDIR\config.use"
+ StrCpy $ConfigIniPath "$UserDataPath\config.ini"
+FunctionEnd
-${If} $songdir != "$INSTDIR\songs"
-WriteINIStr "$path_configini" "Directories" "SongDir1" "$songdir"
-${EndIf}
+Function Settings
+ !insertmacro INSTALLOPTIONS_WRITE "Settings-$LANGUAGE" "Field 18" "State" "$INSTDIR\songs"
+
+ !insertmacro MUI_HEADER_TEXT " " "$(page_settings_subtitle)"
+ !insertmacro INSTALLOPTIONS_DISPLAY "Settings-$LANGUAGE"
+
+ ; Get all the variables:
+
+ Var /GLOBAL LABEL_COMPONENTS
+
+ Var /GLOBAL CHECKBOX_COVERS
+ Var /GLOBAL CB_COVERS_State
+ Var /GLOBAL CHECKBOX_SCORES
+ Var /GLOBAL CB_SCORES_State
+ Var /GLOBAL CHECKBOX_CONFIG
+ Var /GLOBAL CB_CONFIG_State
+ Var /GLOBAL CHECKBOX_SCREENSHOTS
+ Var /GLOBAL CB_SCREENSHOTS_State
+ Var /GLOBAL CHECKBOX_PLAYLISTS
+ Var /GLOBAL CB_PLAYLISTS_State
+ Var /GLOBAL CHECKBOX_SONGS
+ Var /GLOBAL CB_SONGS_State
+
+ Var /GLOBAL fullscreen
+ Var /GLOBAL language2
+ Var /GLOBAL resolution
+ Var /GLOBAL tabs
+ Var /GLOBAL sorting
+ Var /GLOBAL songdir
+
+ !insertmacro INSTALLOPTIONS_READ $fullscreen "Settings-$LANGUAGE" "Field 5" "State"
+ !insertmacro INSTALLOPTIONS_READ $language2 "Settings-$LANGUAGE" "Field 6" "State"
+ !insertmacro INSTALLOPTIONS_READ $resolution "Settings-$LANGUAGE" "Field 7" "State"
+ !insertmacro INSTALLOPTIONS_READ $tabs "Settings-$LANGUAGE" "Field 8" "State"
+ !insertmacro INSTALLOPTIONS_READ $sorting "Settings-$LANGUAGE" "Field 15" "State"
+ !insertmacro INSTALLOPTIONS_READ $songdir "Settings-$LANGUAGE" "Field 18" "State"
+
+ WriteINIStr "$ConfigIniPath" "Game" "Language" "$language2"
+ WriteINIStr "$ConfigIniPath" "Game" "Tabs" "$tabs"
+ WriteINIStr "$ConfigIniPath" "Game" "Sorting" "$sorting"
+
+ WriteINIStr "$ConfigIniPath" "Graphics" "FullScreen" "$fullscreen"
+ WriteINIStr "$ConfigIniPath" "Graphics" "Resolution" "$resolution"
+
+ ${If} $songdir != "$INSTDIR\songs"
+ WriteINIStr "$ConfigIniPath" "Directories" "SongDir1" "$songdir"
+ ${EndIf}
+
FunctionEnd ; Settings page End
!insertmacro MUI_PAGE_FINISH
@@ -229,7 +267,7 @@ UninstPage custom un.AskDelete un.DeleteAll
Function un.AskDelete
-nsDialogs::Create /NOUNLOAD 1018
+ nsDialogs::Create /NOUNLOAD 1018
${NSD_CreateLabel} 0 -195 100% 12u "$(delete_components)"
Pop $LABEL_COMPONENTS
@@ -259,7 +297,7 @@ nsDialogs::Create /NOUNLOAD 1018
nsDialogs::OnClick /NOUNLOAD $CHECKBOX_SONGS $6
-nsDialogs::Show
+ nsDialogs::Show
FunctionEnd
@@ -273,45 +311,45 @@ ${NSD_GetState} $CHECKBOX_SCORES $CB_PLAYLISTS_State
${NSD_GetState} $CHECKBOX_SONGS $CB_SONGS_State
${If} $CB_COVERS_State == "1" ; Remove covers
- RMDir /r "$INSTDIR\covers"
- SetShellVarContext current
- RMDir /r "$APPDATA\ultrastardx\covers"
- SetShellVarContext all
+ RMDir /r "$INSTDIR\covers"
+ SetShellVarContext current
+ RMDir /r "$APPDATA\ultrastardx\covers"
+ SetShellVarContext all
${EndIf}
${If} $CB_CONFIG_State == "1" ; Remove config
- SetShellVarContext current
- Delete "$APPDATA\ultrastardx\config.ini"
- SetShellVarContext all
- Delete "$INSTDIR\config.ini"
+ SetShellVarContext current
+ Delete "$APPDATA\ultrastardx\config.ini"
+ SetShellVarContext all
+ Delete "$INSTDIR\config.ini"
${EndIf}
${If} $CB_SCORES_State == "1" ; Remove highscores
- SetShellVarContext current
- Delete "$APPDATA\ultrastardx\Ultrastar.db"
- SetShellVarContext all
- Delete "$INSTDIR\Ultrastar.db"
+ SetShellVarContext current
+ Delete "$APPDATA\ultrastardx\Ultrastar.db"
+ SetShellVarContext all
+ Delete "$INSTDIR\Ultrastar.db"
${EndIf}
${If} $CB_SCREENSHOTS_State == "1" ; Remove screenshots
- RMDir /r "$INSTDIR\sreenshots"
- SetShellVarContext current
- RMDir /r "$APPDATA\ultrastardx\screenshots"
- SetShellVarContext all
+ RMDir /r "$INSTDIR\sreenshots"
+ SetShellVarContext current
+ RMDir /r "$APPDATA\ultrastardx\screenshots"
+ SetShellVarContext all
${EndIf}
${If} $CB_SCREENSHOTS_State == "1" ; Remove playlists
- RMDir /r "$INSTDIR\playlists"
- SetShellVarContext current
- RMDir /r "$APPDATA\ultrastardx\playlists"
- SetShellVarContext all
+ RMDir /r "$INSTDIR\playlists"
+ SetShellVarContext current
+ RMDir /r "$APPDATA\ultrastardx\playlists"
+ SetShellVarContext all
${EndIf}
${If} $CB_SONGS_State == "1" ; Remove songs
- RMDir /r "$INSTDIR\songs"
- SetShellVarContext current
- RMDir /r "$APPDATA\ultrastardx\songs"
- SetShellVarContext all
+ RMDir /r "$INSTDIR\songs"
+ SetShellVarContext current
+ RMDir /r "$APPDATA\ultrastardx\songs"
+ SetShellVarContext all
${EndIf}
@@ -333,39 +371,41 @@ Section $(name_section1) Section1
SetOutPath $INSTDIR
SetOverwrite try
-!include "${path_settings}\files_main_install.nsh"
+ Call DetermineUserDataDir
+
+ !include "${path_settings}\files_main_install.nsh"
-; Create Shortcuts:
-SetOutPath "$INSTDIR"
+ ; Create Shortcuts:
+ SetOutPath "$INSTDIR"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
- SetShellVarContext all
- SetOutPath "$INSTDIR"
-
- CreateDirectory "${name}"
- CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
- CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_shortcut).lnk" "$INSTDIR\${exe}.exe"
- CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_website).lnk" "http://www.ultrastardeluxe.org/"
- CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_songs).lnk" "$INSTDIR\songs"
- CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_uninstall).lnk" "$INSTDIR\Uninstall.exe"
+ SetShellVarContext all
+ SetOutPath "$INSTDIR"
+
+ CreateDirectory "${name}"
+ CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_shortcut).lnk" "$INSTDIR\${exe}.exe"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_website).lnk" "http://www.ultrastardeluxe.org/"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_songs).lnk" "$INSTDIR\songs"
+ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(sm_uninstall).lnk" "$INSTDIR\Uninstall.exe"
!insertmacro MUI_STARTMENU_WRITE_END
-; Vista Game Explorer:
-; (removed due to incompatibility with Windows 7, needs rewrite)
+ ; Vista Game Explorer:
+ ; (removed due to incompatibility with Windows 7, needs rewrite)
-; Create Uninstaller:
+ ; Create Uninstaller:
- WriteUninstaller "$INSTDIR\Uninstall.exe"
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${name}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\ultrastardx.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallDir" "$INSTDIR"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${name}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\ultrastardx.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallDir" "$INSTDIR"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
- SetOutPath "$INSTDIR"
+ SetOutPath "$INSTDIR"
SectionEnd
@@ -388,14 +428,14 @@ SectionEnd
Section Uninstall
- !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
+ !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
- !include "${path_settings}\files_main_uninstall.nsh"
+ !include "${path_settings}\files_main_uninstall.nsh"
- DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
-; Unregister from Windows Vista Game Explorer
-; (removed due to incompatibility with Windows 7)
+ ; Unregister from Windows Vista Game Explorer
+ ; (removed due to incompatibility with Windows 7)
SectionEnd
@@ -406,59 +446,59 @@ SectionEnd
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
- !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1} $(DESC_Section2_sub1)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2} $(DESC_Section2_sub2)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3} $(DESC_Section2_sub3)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub4} $(DESC_Section2_sub4)
-; !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3) THEMES
-
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section1} $(DESC_g2Section1)
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section2} $(DESC_g2Section2)
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section3} $(DESC_g2Section3)
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section4} $(DESC_g2Section4)
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section5} $(DESC_g2Section5)
- !insertmacro MUI_DESCRIPTION_TEXT ${g2Section6} $(DESC_g2Section6)
-
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section1} $(DESC_s2_sub1_Section1)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section2} $(DESC_s2_sub1_Section2)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section3} $(DESC_s2_sub1_Section3)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section4} $(DESC_s2_sub1_Section4)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section5} $(DESC_s2_sub1_Section5)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section6} $(DESC_s2_sub1_Section6)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section7} $(DESC_s2_sub1_Section7)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section8} $(DESC_s2_sub1_Section8)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section9} $(DESC_s2_sub1_Section9)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section10} $(DESC_s2_sub1_Section10)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section11} $(DESC_s2_sub1_Section11)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section12} $(DESC_s2_sub1_Section12)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section13} $(DESC_s2_sub1_Section13)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section14} $(DESC_s2_sub1_Section14)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section15} $(DESC_s2_sub1_Section15)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section16} $(DESC_s2_sub1_Section16)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section17} $(DESC_s2_sub1_Section17)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section18} $(DESC_s2_sub1_Section18)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section19} $(DESC_s2_sub1_Section19)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section20} $(DESC_s2_sub1_Section20)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section21} $(DESC_s2_sub1_Section21)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section22} $(DESC_s2_sub1_Section22)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section23} $(DESC_s2_sub1_Section23)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section24} $(DESC_s2_sub1_Section24)
-
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section1} $(DESC_s2_sub2_Section1)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section2} $(DESC_s2_sub2_Section2)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section3} $(DESC_s2_sub2_Section3)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section4} $(DESC_s2_sub2_Section4)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section5} $(DESC_s2_sub2_Section5)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section6} $(DESC_s2_sub2_Section6)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section7} $(DESC_s2_sub2_Section7)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section8} $(DESC_s2_sub2_Section8)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section9} $(DESC_s2_sub2_Section9)
-
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section1} $(DESC_s2_sub3_Section1)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section2} $(DESC_s2_sub3_Section2)
- !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section3} $(DESC_s2_sub3_Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1} $(DESC_Section2_sub1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2} $(DESC_Section2_sub2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3} $(DESC_Section2_sub3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub4} $(DESC_Section2_sub4)
+; !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3) THEMES
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section1} $(DESC_g2Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section2} $(DESC_g2Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section3} $(DESC_g2Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section4} $(DESC_g2Section4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section5} $(DESC_g2Section5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${g2Section6} $(DESC_g2Section6)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section1} $(DESC_s2_sub1_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section2} $(DESC_s2_sub1_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section3} $(DESC_s2_sub1_Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section4} $(DESC_s2_sub1_Section4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section5} $(DESC_s2_sub1_Section5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section6} $(DESC_s2_sub1_Section6)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section7} $(DESC_s2_sub1_Section7)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section8} $(DESC_s2_sub1_Section8)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section9} $(DESC_s2_sub1_Section9)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section10} $(DESC_s2_sub1_Section10)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section11} $(DESC_s2_sub1_Section11)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section12} $(DESC_s2_sub1_Section12)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section13} $(DESC_s2_sub1_Section13)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section14} $(DESC_s2_sub1_Section14)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section15} $(DESC_s2_sub1_Section15)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section16} $(DESC_s2_sub1_Section16)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section17} $(DESC_s2_sub1_Section17)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section18} $(DESC_s2_sub1_Section18)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section19} $(DESC_s2_sub1_Section19)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section20} $(DESC_s2_sub1_Section20)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section21} $(DESC_s2_sub1_Section21)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section22} $(DESC_s2_sub1_Section22)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section23} $(DESC_s2_sub1_Section23)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub1_Section24} $(DESC_s2_sub1_Section24)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section1} $(DESC_s2_sub2_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section2} $(DESC_s2_sub2_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section3} $(DESC_s2_sub2_Section3)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section4} $(DESC_s2_sub2_Section4)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section5} $(DESC_s2_sub2_Section5)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section6} $(DESC_s2_sub2_Section6)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section7} $(DESC_s2_sub2_Section7)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section8} $(DESC_s2_sub2_Section8)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub2_Section9} $(DESC_s2_sub2_Section9)
+
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section1} $(DESC_s2_sub3_Section1)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section2} $(DESC_s2_sub3_Section2)
+ !insertmacro MUI_DESCRIPTION_TEXT ${s2_sub3_Section3} $(DESC_s2_sub3_Section3)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
@@ -469,95 +509,106 @@ SectionEnd
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Hungarian"
+!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_RESERVEFILE_LANGDLL
!include "${path_languages}\*.nsh"
;!addPluginDir "${path_plugins}\"
-
+
Function bgmusic
- File /oname=$PLUGINSDIR\loop.wav .\dependencies\loop.wav
- BGImage::Sound /NOUNLOAD /LOOP $PLUGINSDIR\loop.wav
+ File /oname=$PLUGINSDIR\loop.wav .\dependencies\loop.wav
+ BGImage::Sound /NOUNLOAD /LOOP $PLUGINSDIR\loop.wav
FunctionEnd
Function .onGUIEnd
- BGImage::Sound /STOP
+ BGImage::Sound /STOP
FunctionEnd
Function .onInit
-var /GLOBAL version
-StrCpy $version "1.1beta"
+ ${UAC.I.Elevate.AdminOnly}
+ var /GLOBAL version
+ StrCpy $version "1.1RC"
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "USdx Installer.exe") ?e'
- Pop $R0
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "USdx Installer.exe") ?e'
- StrCmp $R0 0 +3
- MessageBox MB_OK|MB_ICONEXCLAMATION $(oninit_running)
- Abort
+ Pop $R0
- ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'DisplayVersion'
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION $(oninit_running)
+ Abort
- ${If} $R0 == $version
- MessageBox MB_YESNO|MB_ICONEXCLAMATION \
- "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_installagain)" \
- IDYES continue
- Abort
- ${EndIf}
+ ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'DisplayVersion'
- ReadRegStr $R1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'UninstallString'
- StrCmp $R1 "" done
+ ${If} $R0 == $version
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_installagain)" \
+ IDYES continue
+ Abort
+ ${EndIf}
+
+ ReadRegStr $R1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'UninstallString'
+ StrCmp $R1 "" done
- ${If} $R0 != $version
- MessageBox MB_YESNO|MB_ICONEXCLAMATION \
- "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_updateusdx) v.$R0 -> v.${version}" \
- IDYES continue
- Abort
- ${EndIf}
+ ${If} $R0 != $version
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "${name} v.$R0 $(oninit_alreadyinstalled). $\n$\n $(oninit_updateusdx) v.$R0 -> v.${version}" \
+ IDYES continue
+ Abort
+ ${EndIf}
continue:
- ReadRegStr $R2 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'UninstallString'
- MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(oninit_uninstall)" IDNO done
- ExecWait '"$R2" _?=$INSTDIR'
+ ReadRegStr $R2 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${name}" 'UninstallString'
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(oninit_uninstall)" IDNO done
+ ExecWait '"$R2" _?=$INSTDIR'
done:
+ !insertmacro MUI_LANGDLL_DISPLAY
- !insertmacro MUI_LANGDLL_DISPLAY
-
- !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1031.ini" "Settings-1031"
- !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1033.ini" "Settings-1033"
- !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1038.ini" "Settings-1038"
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1031.ini" "Settings-1031"
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1033.ini" "Settings-1033"
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1038.ini" "Settings-1038"
+ !insertmacro INSTALLOPTIONS_EXTRACT_AS ".\settings\settings-1045.ini" "Settings-1045"
FunctionEnd
Function un.onInit
- ${nsProcess::FindProcess} "USdx.exe" $R0
- StrCmp $R0 0 0 +2
- MessageBox MB_YESNO|MB_ICONEXCLAMATION '$(oninit_closeusdx)' IDYES closeit IDNO end
+ ${nsProcess::FindProcess} "USdx.exe" $R0
+ StrCmp $R0 0 0 +2
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION '$(oninit_closeusdx)' IDYES closeit IDNO end
- closeit:
- ${nsProcess::KillProcess} "USdx.exe" $R0
- goto continue
+closeit:
+ ${nsProcess::KillProcess} "USdx.exe" $R0
+ goto continue
- ${nsProcess::FindProcess} "ultrastardx.exe" $R0
- StrCmp $R0 0 0 +2
- MessageBox MB_YESNO|MB_ICONEXCLAMATION '$(oninit_closeusdx)' IDYES closeusdx IDNO end
+ ${nsProcess::FindProcess} "ultrastardx.exe" $R0
+ StrCmp $R0 0 0 +2
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION '$(oninit_closeusdx)' IDYES closeusdx IDNO end
- closeusdx:
+closeusdx:
${nsProcess::KillProcess} "ultrastardx.exe" $R0
- goto continue
+ goto continue
- end:
- ${nsProcess::Unload}
- Abort
+end:
+ ${nsProcess::Unload}
+ Abort
- continue:
- !insertmacro MUI_LANGDLL_DISPLAY
+continue:
+ !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
+Function .onInstFailed
+ ${UAC.Unload}
+FunctionEnd
+
+Function .onInstSuccess
+ ${UAC.Unload}
FunctionEnd
diff --git a/us_maker_edition/installer/dependencies/plugins/UAC.dll b/us_maker_edition/installer/dependencies/plugins/UAC.dll
new file mode 100644
index 00000000..edf21305
--- /dev/null
+++ b/us_maker_edition/installer/dependencies/plugins/UAC.dll
Binary files differ
diff --git a/us_maker_edition/installer/languages/Polish.nsh b/us_maker_edition/installer/languages/Polish.nsh
new file mode 100644
index 00000000..00d04d8e
--- /dev/null
+++ b/us_maker_edition/installer/languages/Polish.nsh
@@ -0,0 +1,131 @@
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+; UltraStar Deluxe Installer - Language file: Polish
+; ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~ ~+~
+
+LangString abort_install ${LANG_POLISH} "Czy jesteœ pewien ¿e chcesz zatrzymaæ instalacjê ?"
+LangString abort_uninstall ${LANG_POLISH} "Czy jesteœ pewien ¿e chcesz zatrzymaæ odinstalowywanie ?"
+LangString oninit_running ${LANG_POLISH} "Instajacja jest ju¿ uruchomiona."
+LangString oninit_installagain ${LANG_POLISH} "Jesteœ pewien ¿e chcesz zainstalowaæ jeszcze raz ?"
+LangString oninit_alreadyinstalled ${LANG_POLISH} "Jest obecnie zainstalowany"
+LangString oninit_closeusdx ${LANG_POLISH} "nie mo¿e byæ odinstalowany dopóki jest uruchomiony! Czy chcesz zamkn¹æ go ?"
+LangString oninit_updateusdx ${LANG_POLISH} "Do you want to update the installation from:"
+LangString oninit_uninstall ${LANG_POLISH} "Czy chcesz odinstalowaæ star¹ wersjê ? (rekomendowane)"
+
+LangString update_connect ${LANG_POLISH} "SprawdŸ po³¹czenie z insternetm i sprawdŸ nowe wersje"
+LangString button_next ${LANG_POLISH} "Dalej >"
+LangString button_close ${LANG_POLISH} "Zamknij"
+LangString update_information ${LANG_POLISH} "Mo¿esz sprawdziæ czy jest nowsza wersja 'UltraStar Deluxe'. Aby to zrobiæ po³¹cz siê z internetm. Jeœli nowa wersja zostanie znaleziona, bêdzie mo¿na j¹ zainstalowaæ."
+
+LangString delete_components ${LANG_POLISH} "Tak¿ê usun¹æ nastêpuj¹ce sk³adniki:"
+LangString delete_covers ${LANG_POLISH} "Ok³adka?"
+LangString delete_highscores ${LANG_POLISH} "Wyniki?"
+LangString delete_config ${LANG_POLISH} "Koniguracja?"
+LangString delete_screenshots ${LANG_POLISH} "Zrzuty ekranów?"
+LangString delete_playlists ${LANG_POLISH} "Playlisty?"
+LangString delete_songs ${LANG_POLISH} "Usun¹æ piosenki? UWAGA: Wszystkie pliki w katalogu InstallationDir\songs bêd¹ usuniête(!)"
+
+LangString update_check_older ${LANG_POLISH} "Twoja werjsa $R0 jest przestarza³a. Nowa wersja $1 UltraStar'a Deluxe jest ju¿ dostêpna. Czy chcesz dokonaæ aktualizacji ?"
+LangString update_check_equal ${LANG_POLISH} "Obecnie zainstalowana wersja $R0 jest najbardziej aktualna. Nie ma nowszych wersji."
+LangString update_check_newer ${LANG_POLISH} "Twoja obecnie zainstalowana wersja $R0 jest nowsza ni¿ $\n$\robecnie wydana wersja $1 UltraStar'a Deluxe. Nie ma nowszych aktualizacji."
+LangString update_check_failed ${LANG_POLISH} "Poszukiwanie nowyszch wersji zakoñczy³o siê b³êdem. Czy chcesz odwiedziæ stronê g³ówn¹ i sprawdziæ rêcznie ?"
+
+; Welcome Page:
+
+LangString page_welcome_title_update ${LANG_POLISH} "Witamy w kreatorze aktualizacji programu UltraStar Deluxe"
+LangString page_welcome_txt_update ${LANG_POLISH} "Ten kreator przeprowadzi ciê przez proces aktualizacji gry UltraStar Deluxe. UltraStar Deluxe jest bezp³atn¹ i Otwart¹ gr¹ Karaoke, któr¹ mo¿na porównaæ z SingStar'em.$\n$\r$\n$\rZespó³ UltraStar Deluxe ¿yczy mi³ej zabawy.$\n$\rStrona projektu: http://www.ultrastardeluxe.org$\n$\rForum wsparcia: http://forum.ultrastardeluxe.org"
+LangString page_welcome_title ${LANG_POLISH} "Witamy w kreatorze instalacji programu UltraStar Deluxe"
+LangString page_welcome_txt ${LANG_POLISH} "Ten kreator przeprowadzi ciê przez proces instalacji gry UltraStar Deluxe. UltraStar Deluxe jest bezp³atn¹ i Otwart¹ gr¹ Karaoke, któr¹ mo¿na porównaæ z SingStar'em.$\n$\r$\n$\rZespó³ UltraStar Deluxe ¿yczy mi³ej zabawy.$\n$\rStrona projektu: http://www.ultrastardeluxe.org$\n$\rForum wsparcia: http://forum.ultrastardeluxe.org"
+LangString page_un_welcome_title ${LANG_POLISH} "Witamy w kreatorze deinstalacji gry UltraStar Deluxe"
+
+; Components Page:
+
+LangString page_components_info ${LANG_POLISH} "NajedŸ myszk¹ na komponent, aby zobaczyæ szczegó³y"
+
+; Custom Page
+
+LangString page_settings_fullscreen ${LANG_POLISH} "Tryb Pe³noekranowy"
+LangString page_settings_subtitle ${LANG_POLISH} "Wybierz ustawienia dogodne dla Ciebie."
+
+; Finish Page:
+
+LangString page_finish_txt ${LANG_POLISH} "UltraStar Deluxe zosta³ poprawnie zainstalowany na twoim komputerze.$\n$\r$\n$\rOdwiedŸ Nasz¹ stronê aby otrzymaæ najnowsze wiadomoœci i aktualizacjê."
+LangString page_finish_linktxt ${LANG_POLISH} "Strona Projektu"
+LangString page_finish_desktop ${LANG_POLISH} "Czy stwórzyæ skrót na Pulpicie ?"
+
+; Start Menu and Shortcuts
+
+LangString sm_shortcut ${LANG_POLISH} "Graj w UltraStar Deluxe"
+LangString sm_uninstall ${LANG_POLISH} "Odinstaluj"
+LangString sm_website ${LANG_POLISH} "Strona Projektu"
+LangString sm_license ${LANG_POLISH} "Licencja"
+LangString sm_readme ${LANG_POLISH} "Readme"
+LangString sm_songs ${LANG_POLISH} "Piosenki"
+LangString sm_documentation ${LANG_POLISH} "Dokumentacja"
+
+LangString sc_play ${LANG_POLISH} "Graj"
+LangString sc_desktop ${LANG_POLISH} "Czy stwórzyæ skrót na Pulpicie ?"
+
+; Sections and SectionGroups
+
+LangString name_section1 ${LANG_POLISH} "G³ówne komponenty"
+LangString name_section2 ${LANG_POLISH} "Piosenki"
+LangString name_s2_sub1 ${LANG_POLISH} "Jonathan Coulton"
+LangString name_s2_sub2 ${LANG_POLISH} "Shearer"
+LangString name_s2_sub3 ${LANG_POLISH} "Wise Guys"
+LangString name_s2_sub4 ${LANG_POLISH} "Pornophonique"
+
+LangString DESC_Section1 ${LANG_POLISH} "To s¹ podstawowe pliki potrzebe przez UltraStar Deluxe"
+LangString DESC_Section2 ${LANG_POLISH} "Mo¿esz wybraæ które piosenki chcesz œci¹gn¹æ (Wymagane po³¹czenie z internetem!)"
+LangString DESC_Section2_sub1 ${LANG_POLISH} "Mo¿esz wybraæ które piosenki Jonathan Coulton (CC by-nc 3.0) chcesz zainstalowaæ."
+LangString DESC_Section2_sub2 ${LANG_POLISH} "Mo¿esz wybraæ które piosenki Shearer (CC by-nc-sa 2.0 / 3.0) chcesz zainstalowaæ."
+LangString DESC_Section2_sub3 ${LANG_POLISH} "Mo¿esz wybraæ które piosenki Wise Guys chcesz zainstalowaæ."
+LangString DESC_Section2_sub4 ${LANG_POLISH} "Mo¿esz wybraæ które piosenki Pornophonique chcesz zainstalowaæ."
+
+LangString DESC_g2Section2 ${LANG_POLISH} "Œci¹gnij piosenkê 'Dead Smiling Pirates - I 18' (CC by-nc-nd 2.5)."
+LangString DESC_g2Section3 ${LANG_POLISH} "Œci¹gnij piosenkê 'Joshua Morin - On The Run' (CC by-sa 2.5)."
+LangString DESC_g2Section4 ${LANG_POLISH} "Œci¹gnij piosenkê 'Pornophonique - Space Invaders' (CC by-nc-nd 2.0)."
+LangString DESC_g2Section5 ${LANG_POLISH} "Œci¹gnij piosenkê 'Steven Dunston - Northern Star' (CC by-nc-sa 2.5)."
+LangString DESC_g2Section1 ${LANG_POLISH} "Œci¹gnij piosenkê 'Bodo Wartke - Liebeslied (Love Song)'."
+LangString DESC_g2Section6 ${LANG_POLISH} "Œci¹gnij piosenkê 'Pornophonique - Space Invaders (Karaoke)' (CC by-nc-nd 2.0)."
+
+LangString DESC_s2_sub1_Section1 ${LANG_POLISH} "Œci¹gnij piosenkê 'Monkey Shines'."
+LangString DESC_s2_sub1_Section2 ${LANG_POLISH} "Œci¹gnij piosenkê 'I Crush Everything'."
+LangString DESC_s2_sub1_Section3 ${LANG_POLISH} "Œci¹gnij piosenkê 'Not About You'."
+LangString DESC_s2_sub1_Section4 ${LANG_POLISH} "Œci¹gnij piosenkê 'Mr. Fancy Pants'."
+LangString DESC_s2_sub1_Section5 ${LANG_POLISH} "Œci¹gnij piosenkê 'Big Bad World One'."
+LangString DESC_s2_sub1_Section6 ${LANG_POLISH} "Œci¹gnij piosenkê 'Flickr [incl. video]'."
+LangString DESC_s2_sub1_Section7 ${LANG_POLISH} "Œci¹gnij piosenkê 'My Beige Bear'."
+LangString DESC_s2_sub1_Section8 ${LANG_POLISH} "Œci¹gnij piosenkê 'The Future Soon'."
+LangString DESC_s2_sub1_Section9 ${LANG_POLISH} "Œci¹gnij piosenkê 'Ikea'."
+LangString DESC_s2_sub1_Section10 ${LANG_POLISH} "Œci¹gnij piosenkê 'Furry Old Lobster'."
+LangString DESC_s2_sub1_Section11 ${LANG_POLISH} "Œci¹gnij piosenkê 'Code Monkey [incl. video]'."
+LangString DESC_s2_sub1_Section12 ${LANG_POLISH} "Œci¹gnij piosenkê 'I´m Your Moon'."
+LangString DESC_s2_sub1_Section13 ${LANG_POLISH} "Œci¹gnij piosenkê 'First Of May'."
+LangString DESC_s2_sub1_Section14 ${LANG_POLISH} "Œci¹gnij piosenkê 'Dance, Soterios Johnson, Dance'."
+LangString DESC_s2_sub1_Section15 ${LANG_POLISH} "Œci¹gnij piosenkê 'A Talk With George'."
+LangString DESC_s2_sub1_Section16 ${LANG_POLISH} "Œci¹gnij piosenkê 'Creepy Doll [incl. video]'."
+LangString DESC_s2_sub1_Section17 ${LANG_POLISH} "Œci¹gnij piosenkê 'That Spells DNA'."
+LangString DESC_s2_sub1_Section18 ${LANG_POLISH} "Œci¹gnij piosenkê 'When You Go'."
+LangString DESC_s2_sub1_Section19 ${LANG_POLISH} "Œci¹gnij piosenkê 'Better'."
+LangString DESC_s2_sub1_Section20 ${LANG_POLISH} "Œci¹gnij piosenkê 'Shop Vac'."
+LangString DESC_s2_sub1_Section21 ${LANG_POLISH} "Œci¹gnij piosenkê 'I Feel Fantastic'."
+LangString DESC_s2_sub1_Section22 ${LANG_POLISH} "Œci¹gnij piosenkê 'Re: Your Brains'."
+LangString DESC_s2_sub1_Section23 ${LANG_POLISH} "Œci¹gnij piosenkê 'Skullcrusher Mountain'."
+LangString DESC_s2_sub1_Section24 ${LANG_POLISH} "Œci¹gnij piosenkê 'Chiron Beta Prime [incl. video]'."
+
+LangString DESC_s2_sub2_Section1 ${LANG_POLISH} "Œci¹gnij piosenkê '69'."
+LangString DESC_s2_sub2_Section2 ${LANG_POLISH} "Œci¹gnij piosenkê '69 (Karaoke)'."
+LangString DESC_s2_sub2_Section3 ${LANG_POLISH} "Œci¹gnij piosenkê 'Can't stop it'."
+LangString DESC_s2_sub2_Section4 ${LANG_POLISH} "Œci¹gnij piosenkê 'Can't stop it (Karaoke)'."
+LangString DESC_s2_sub2_Section5 ${LANG_POLISH} "Œci¹gnij piosenkê 'In My Hand'."
+LangString DESC_s2_sub2_Section6 ${LANG_POLISH} "Œci¹gnij piosenkê 'Man Song'."
+LangString DESC_s2_sub2_Section7 ${LANG_POLISH} "Œci¹gnij piosenkê 'Man Song (Karaoke)'."
+LangString DESC_s2_sub2_Section8 ${LANG_POLISH} "Œci¹gnij piosenkê 'Stay with me'."
+LangString DESC_s2_sub2_Section9 ${LANG_POLISH} "Œci¹gnij piosenkê 'Stay with me (Karaoke)'."
+
+LangString DESC_s2_sub3_Section1 ${LANG_POLISH} "Œci¹gnij piosenkê 'Lebendig und kräftig und schärfer'."
+LangString DESC_s2_sub3_Section2 ${LANG_POLISH} "Œci¹gnij piosenkê 'Mensch, wo bist du?'."
+LangString DESC_s2_sub3_Section3 ${LANG_POLISH} "Œci¹gnij piosenkê 'Mensch, wo bist du? (Karaoke)'."
+
+; Optional Themes
+; (not available) \ No newline at end of file
diff --git a/us_maker_edition/installer/settings/files_main_install.nsh b/us_maker_edition/installer/settings/files_main_install.nsh
index a79d4991..10afc6f6 100644
--- a/us_maker_edition/installer/settings/files_main_install.nsh
+++ b/us_maker_edition/installer/settings/files_main_install.nsh
@@ -33,19 +33,19 @@ CreateDirectory $INSTDIR\plugins
CreateDirectory $INSTDIR\covers
CreateDirectory $INSTDIR\songs
-${If} ${AtLeastWinVista}
+${If} $UseAppData == true
; Create folders in appdata for current user
SetShellVarContext current
- CreateDirectory $APPDATA\ultrastardx
- CreateDirectory $APPDATA\ultrastardx\screenshots
- CreateDirectory $APPDATA\ultrastardx\playlists
+ CreateDirectory $UserDataPath
+ CreateDirectory $UserDataPath\screenshots
+ CreateDirectory $UserDataPath\playlists
SetOutPath "$INSTDIR"
- CreateShortCut "screenshots.lnk" "$APPDATA\ultrastardx\screenshots"
- CreateShortCut "playlists.lnk" "$APPDATA\ultrastardx\playlists"
- CreateShortCut "config.ini.lnk" "$APPDATA\ultrastardx\config.ini"
+ CreateShortCut "screenshots.lnk" "$UserDataPath\screenshots"
+ CreateShortCut "playlists.lnk" "$UserDataPath\playlists"
+ CreateShortCut "config.ini.lnk" "$ConfigIniPath"
SetShellVarContext all
${EndIf}
diff --git a/us_maker_edition/installer/settings/settings-1031.ini b/us_maker_edition/installer/settings/settings-1031.ini
index 7f9573a1..9a6b4b71 100644
--- a/us_maker_edition/installer/settings/settings-1031.ini
+++ b/us_maker_edition/installer/settings/settings-1031.ini
@@ -53,7 +53,7 @@ Bottom=39
[Field 6]
Type=DropList
-ListItems=Catalan|Croatian|Dutch|English|Euskara|Finnish|French|German|Greek|Icelandic|Italian|Japanese|Luxembourgish|Portuguese|Spanish|Swedish
+ListItems=Catalan|Croatian|Czech|Danish|Dutch|English|Euskara|Finnish|French|German|Greek|Hungarian|Icelandic|Italian|Japanese|Luxembourgish|Norwegian|Polish|Portuguese|Serbian|Slovak|Slovenian|Spanish|Swedish
State=German
Left=62
Right=152
diff --git a/us_maker_edition/installer/settings/settings-1033.ini b/us_maker_edition/installer/settings/settings-1033.ini
index 5e6b6055..7176d229 100644
--- a/us_maker_edition/installer/settings/settings-1033.ini
+++ b/us_maker_edition/installer/settings/settings-1033.ini
@@ -8,7 +8,7 @@ Left=1
Top=1
Right=300
Bottom=140
-Text=UltraStar Deluxe Konfiguration (Optional)
+Text=UltraStar Deluxe Configuration (optional)
[Field 1]
Type=Label
@@ -53,8 +53,8 @@ Bottom=39
[Field 6]
Type=DropList
-ListItems=Catalan|Croatian|Dutch|English|Euskara|Finnish|French|German|Greek|Icelandic|Italian|Japanese|Luxembourgish|Portuguese|Spanish|Swedish
-State=German
+ListItems=Catalan|Croatian|Czech|Danish|Dutch|English|Euskara|Finnish|French|German|Greek|Hungarian|Icelandic|Italian|Japanese|Luxembourgish|Norwegian|Polish|Portuguese|Serbian|Slovak|Slovenian|Spanish|Swedish
+State=English
Left=62
Right=152
Top=45
diff --git a/us_maker_edition/installer/settings/settings-1038.ini b/us_maker_edition/installer/settings/settings-1038.ini
index 62994a1f..f2ef973a 100644
--- a/us_maker_edition/installer/settings/settings-1038.ini
+++ b/us_maker_edition/installer/settings/settings-1038.ini
@@ -8,7 +8,7 @@ Left=1
Top=1
Right=300
Bottom=140
-Text=UltraStar Deluxe Konfiguration (Optional)
+Text=UltraStar Deluxe Configuration (optional)
[Field 1]
Type=Label
@@ -53,8 +53,8 @@ Bottom=39
[Field 6]
Type=DropList
-ListItems=Catalan|Croatian|Dutch|English|Euskara|Finnish|French|German|Greek|Icelandic|Italian|Japanese|Luxembourgish|Portuguese|Spanish|Swedish
-State=German
+ListItems=Catalan|Croatian|Czech|Danish|Dutch|English|Euskara|Finnish|French|German|Greek|Hungarian|Icelandic|Italian|Japanese|Luxembourgish|Norwegian|Polish|Portuguese|Serbian|Slovak|Slovenian|Spanish|Swedish
+State=Hungarian
Left=62
Right=152
Top=45
diff --git a/us_maker_edition/installer/settings/settings-1045.ini b/us_maker_edition/installer/settings/settings-1045.ini
new file mode 100644
index 00000000..e59f0227
--- /dev/null
+++ b/us_maker_edition/installer/settings/settings-1045.ini
@@ -0,0 +1,161 @@
+[Settings]
+NumFields=19
+
+; Background Group of Settings Box
+[Field 17]
+Type=GroupBox
+Left=1
+Top=1
+Right=300
+Bottom=140
+Text=Konfiguracja UltraStar Deluxe (opcjonalnie)
+
+[Field 1]
+Type=Label
+Text="Tryb Pe³noekranowy:"
+Left=5
+Right=58
+Top=30
+Bottom=38
+
+[Field 2]
+Type=Label
+Text="Jêzyk:"
+Left=5
+Right=58
+Top=47
+Bottom=55
+
+[Field 3]
+Type=Label
+Text="RozdzielczoϾ:"
+Left=5
+Right=58
+Top=64
+Bottom=72
+
+[Field 4]
+Type=Label
+Text="Zak³adki:"
+Left=5
+Right=58
+Top=82
+Bottom=90
+
+[Field 5]
+Type=DropList
+ListItems=On|Off
+State=On
+Left=62
+Right=152
+Top=28
+Bottom=39
+
+[Field 6]
+Type=DropList
+ListItems=Catalan|Croatian|Czech|Danish|Dutch|English|Euskara|Finnish|French|German|Greek|Hungarian|Icelandic|Italian|Japanese|Luxembourgish|Norwegian|Polish|Portuguese|Serbian|Slovak|Slovenian|Spanish|Swedish
+State=Polish
+Left=62
+Right=152
+Top=45
+Bottom=56
+
+[Field 7]
+Type=DropList
+ListItems=320x200|640x480|800x600|1024x768|1280x1024|1440x900|1680x1050|1920x1200
+State=800x600
+Left=62
+Right=152
+Top=62
+Bottom=73
+
+[Field 8]
+Type=DropList
+ListItems=On|Off
+State=Off
+Left=62
+Right=152
+Top=81
+Bottom=91
+
+[Field 9]
+Type=Label
+Text=Czy uruchamiaæ grê w oknie czy na pe³nym ekranie?
+Left=157
+Right=300
+Top=30
+Bottom=38
+
+[Field 10]
+Type=Label
+Text=Wszystkie ustawienia mo¿na póŸniej zmieniæ w grze.
+Left=5
+Right=246
+Top=14
+Bottom=23
+
+[Field 11]
+Type=Label
+Text=Dostosuj jêzyk GUI.
+Left=158
+Right=300
+Top=46
+Bottom=55
+
+[Field 12]
+Type=Label
+Text=Wybierz rozdzieczoϾ ekrany/okna.
+Left=157
+Right=300
+Top=64
+Bottom=72
+
+[Field 13]
+Type=Label
+Text=Czy chcesz aby piosenki zosta³y pogrupowane na zak³adki ?
+Left=158
+Right=300
+Top=78
+Bottom=94
+
+[Field 14]
+Type=Label
+Left=5
+Top=100
+Right=58
+Bottom=109
+Text=Sortowanie:
+
+[Field 15]
+Type=DropList
+Left=62
+Top=100
+Right=152
+Bottom=111
+State=Artist
+ListItems=Edition|Genre|Language|Folder|Title|Artist
+
+[Field 16]
+Type=Label
+Left=157
+Top=101
+Right=300
+Bottom=110
+Text=Wybierz kryteria sortowania piosenek.
+
+[Field 18]
+Type=DirRequest
+Left=5
+Top=121
+Right=152
+Bottom=132
+Text=SongDir
+State=
+
+[Field 19]
+Type=Label
+Left=158
+Top=119
+Right=295
+Bottom=134
+Text=Wybierz katalog w którym znajduj¹ siê piosenki? \ No newline at end of file
diff --git a/us_maker_edition/installer/settings/variables.nsh b/us_maker_edition/installer/settings/variables.nsh
index 5d79e115..43d19a7f 100644
--- a/us_maker_edition/installer/settings/variables.nsh
+++ b/us_maker_edition/installer/settings/variables.nsh
@@ -4,7 +4,7 @@
; Product Information:
-!define version "1.1beta" ; Make sure version is also set in onInit
+!define version "1.1RC" ; Make sure version is also set in onInit
!define name "UltraStar Deluxe"
diff --git a/us_maker_edition/src/base/UConfig.pas b/us_maker_edition/src/base/UConfig.pas
index ef08827b..74415f4d 100644
--- a/us_maker_edition/src/base/UConfig.pas
+++ b/us_maker_edition/src/base/UConfig.pas
@@ -130,7 +130,7 @@ const
USDX_VERSION_MAJOR = 1;
USDX_VERSION_MINOR = 1;
USDX_VERSION_RELEASE = 0;
- USDX_VERSION_STATE = 'Beta';
+ USDX_VERSION_STATE = 'RC';
USDX_STRING = 'UltraStar Deluxe';
(*
diff --git a/us_maker_edition/src/base/UDraw.pas b/us_maker_edition/src/base/UDraw.pas
index bb9f28ca..77e0940d 100644
--- a/us_maker_edition/src/base/UDraw.pas
+++ b/us_maker_edition/src/base/UDraw.pas
@@ -1145,6 +1145,9 @@ begin
(LyricsState.TotalTime > 0) then
begin
LyricsProgress := CurLyricsTime / LyricsState.TotalTime;
+ // avoid that the bar "overflows" for inaccurate song lengths
+ if (LyricsProgress > 1.0) then
+ LyricsProgress := 1.0;
glTexCoord2f((width * LyricsProgress) / 8, 0);
glVertex2f(x + width * LyricsProgress, y);
diff --git a/us_maker_edition/src/base/UEditorLyrics.pas b/us_maker_edition/src/base/UEditorLyrics.pas
index 0eacd1f9..5030eff5 100644
--- a/us_maker_edition/src/base/UEditorLyrics.pas
+++ b/us_maker_edition/src/base/UEditorLyrics.pas
@@ -195,6 +195,7 @@ begin
Word[WordNum].FontStyle := FontStyleI;
SetFontStyle(FontStyleI);
SetFontSize(SizeR);
+ SetFontItalic(Italic);
Word[WordNum].Width := glTextWidth(Text);
Word[WordNum].Text := Text;
Word[WordNum].ColR := ColR;
diff --git a/us_maker_edition/src/base/UFiles.pas b/us_maker_edition/src/base/UFiles.pas
index 5a258e3e..1a7ca8f8 100644
--- a/us_maker_edition/src/base/UFiles.pas
+++ b/us_maker_edition/src/base/UFiles.pas
@@ -131,7 +131,9 @@ begin
if (Song.Encoding = encUTF8) then
SongFile.WriteString(UTF8_BOM);
- SongFile.WriteLine('#ENCODING:' + EncodingName(Song.Encoding));
+ // do not save "auto" encoding tag
+ if (Song.Encoding <> encAuto) then
+ SongFile.WriteLine('#ENCODING:' + EncodingName(Song.Encoding));
SongFile.WriteLine('#TITLE:' + EncodeToken(Song.Title));
SongFile.WriteLine('#ARTIST:' + EncodeToken(Song.Artist));
diff --git a/us_maker_edition/src/base/UIni.pas b/us_maker_edition/src/base/UIni.pas
index a4c85a3b..b198f22c 100644
--- a/us_maker_edition/src/base/UIni.pas
+++ b/us_maker_edition/src/base/UIni.pas
@@ -44,31 +44,34 @@ uses
UPath;
type
- // TInputDeviceConfig stores the configuration for an input device.
- // Configurations will be stored in the InputDeviceConfig array.
- // Note that not all devices listed in InputDeviceConfig are active devices.
- // Some might be unplugged and hence unavailable.
- // Available devices are held in TAudioInputProcessor.DeviceList. Each
- // TAudioInputDevice listed there has a CfgIndex field which is the index to
- // its configuration in the InputDeviceConfig array.
- // Name:
- // the name of the input device
- // Input:
- // the index of the input source to use for recording
- // ChannelToPlayerMap:
- // mapping of recording channels to players, e.g. ChannelToPlayerMap[0] = 2
- // maps the channel 0 (left) to player 2. A player index of 0 means that
- // the channel is not assigned to a player.
+ {**
+ * TInputDeviceConfig stores the configuration for an input device.
+ * Configurations will be stored in the InputDeviceConfig array.
+ * Note that not all devices listed in InputDeviceConfig are active devices.
+ * Some might be unplugged and hence unavailable.
+ * Available devices are held in TAudioInputProcessor.DeviceList. Each
+ * TAudioInputDevice listed there has a CfgIndex field which is the index to
+ * its configuration in the InputDeviceConfig array.
+ *}
PInputDeviceConfig = ^TInputDeviceConfig;
TInputDeviceConfig = record
- Name: string;
- Input: integer;
- Latency: integer; //**< latency in ms, or LATENCY_AUTODETECT for default
+ Name: string; //**< Name of the input device
+ Input: integer; //**< Index of the input source to use for recording
+ Latency: integer; //**< Latency in ms, or LATENCY_AUTODETECT for default
+
+ {**
+ * Mapping of recording channels to players, e.g. ChannelToPlayerMap[0] = 2
+ * maps the channel 0 (left) to player 2.
+ * A player index of 0 (CHANNEL_OFF) means that the channel is not assigned
+ * to any player (the channel is off).
+ *}
ChannelToPlayerMap: array of integer;
end;
+{* Constants for TInputDeviceConfig *}
const
- LATENCY_AUTODETECT = -1;
+ CHANNEL_OFF = 0; // for field ChannelToPlayerMap
+ LATENCY_AUTODETECT = -1; // for field Latency
type
@@ -87,6 +90,7 @@ type
procedure LoadInputDeviceCfg(IniFile: TMemIniFile);
procedure SaveInputDeviceCfg(IniFile: TIniFile);
procedure LoadThemes(IniFile: TCustomIniFile);
+
procedure LoadPaths(IniFile: TCustomIniFile);
procedure LoadScreenModes(IniFile: TCustomIniFile);
@@ -121,6 +125,8 @@ type
Spectrum: integer;
Spectrograph: integer;
MovieSize: integer;
+ VideoPreview: integer;
+ VideoEnabled: integer;
// Sound
MicBoost: integer;
@@ -164,6 +170,9 @@ type
Joypad: integer;
Mouse: integer;
+ // default encoding for texts (lyrics, song-name, ...)
+ DefaultEncoding: TEncoding;
+
procedure Load();
procedure Save();
procedure SaveNames;
@@ -214,6 +223,8 @@ const
ISpectrum: array[0..1] of UTF8String = ('Off', 'On');
ISpectrograph: array[0..1] of UTF8String = ('Off', 'On');
IMovieSize: array[0..2] of UTF8String = ('Half', 'Full [Vid]', 'Full [BG+Vid]');
+ IVideoPreview: array[0..1] of UTF8String = ('Off', 'On');
+ IVideoEnabled: array[0..1] of UTF8String = ('Off', 'On');
IClickAssist: array[0..1] of UTF8String = ('Off', 'On');
IBeatClick: array[0..1] of UTF8String = ('Off', 'On');
@@ -295,6 +306,8 @@ var
ISpectrumTranslated: array[0..1] of UTF8String = ('Off', 'On');
ISpectrographTranslated: array[0..1] of UTF8String = ('Off', 'On');
IMovieSizeTranslated: array[0..2] of UTF8String = ('Half', 'Full [Vid]', 'Full [BG+Vid]');
+ IVideoPreviewTranslated: array[0..1] of UTF8String = ('Off', 'On');
+ IVideoEnabledTranslated: array[0..1] of UTF8String = ('Off', 'On');
IClickAssistTranslated: array[0..1] of UTF8String = ('Off', 'On');
IBeatClickTranslated: array[0..1] of UTF8String = ('Off', 'On');
@@ -415,6 +428,12 @@ begin
IMovieSizeTranslated[1] := ULanguage.Language.Translate('OPTION_VALUE_FULL_VID');
IMovieSizeTranslated[2] := ULanguage.Language.Translate('OPTION_VALUE_FULL_VID_BG');
+ IVideoPreviewTranslated[0] := ULanguage.Language.Translate('OPTION_VALUE_OFF');
+ IVideoPreviewTranslated[1] := ULanguage.Language.Translate('OPTION_VALUE_ON');
+
+ IVideoEnabledTranslated[0] := ULanguage.Language.Translate('OPTION_VALUE_OFF');
+ IVideoEnabledTranslated[1] := ULanguage.Language.Translate('OPTION_VALUE_ON');
+
IClickAssistTranslated[0] := ULanguage.Language.Translate('OPTION_VALUE_OFF');
IClickAssistTranslated[1] := ULanguage.Language.Translate('OPTION_VALUE_ON');
@@ -658,7 +677,7 @@ begin
for ChannelIndex := 0 to High(DeviceCfg.ChannelToPlayerMap) do
begin
DeviceCfg.ChannelToPlayerMap[ChannelIndex] :=
- IniFile.ReadInteger('Record', Format('Channel%d[%d]', [ChannelIndex+1, DeviceIndex]), 0);
+ IniFile.ReadInteger('Record', Format('Channel%d[%d]', [ChannelIndex+1, DeviceIndex]), CHANNEL_OFF);
end;
end;
end;
@@ -930,6 +949,12 @@ begin
// MovieSize
MovieSize := GetArrayIndex(IMovieSize, IniFile.ReadString('Graphics', 'MovieSize', IMovieSize[2]));
+ // VideoPreview
+ VideoPreview := GetArrayIndex(IVideoPreview, IniFile.ReadString('Graphics', 'VideoPreview', IVideoPreview[1]));
+
+ // VideoEnabled
+ VideoEnabled := GetArrayIndex(IVideoEnabled, IniFile.ReadString('Graphics', 'VideoEnabled', IVideoEnabled[1]));
+
// ClickAssist
ClickAssist := GetArrayIndex(IClickAssist, IniFile.ReadString('Sound', 'ClickAssist', 'Off'));
@@ -960,6 +985,9 @@ begin
// NoteLines
NoteLines := GetArrayIndex(INoteLines, IniFile.ReadString('Lyrics', 'NoteLines', INoteLines[1]));
+ // DefaultEncoding
+ DefaultEncoding := ParseEncoding(IniFile.ReadString('Lyrics', 'Encoding', ''), encAuto);
+
LoadThemes(IniFile);
LoadInputDeviceCfg(IniFile);
@@ -1077,6 +1105,12 @@ begin
// Movie Size
IniFile.WriteString('Graphics', 'MovieSize', IMovieSize[MovieSize]);
+ // VideoPreview
+ IniFile.WriteString('Graphics', 'VideoPreview', IVideoPreview[VideoPreview]);
+
+ // VideoEnabled
+ IniFile.WriteString('Graphics', 'VideoEnabled', IVideoEnabled[VideoEnabled]);
+
// ClickAssist
IniFile.WriteString('Sound', 'ClickAssist', IClickAssist[ClickAssist]);
@@ -1110,6 +1144,9 @@ begin
// NoteLines
IniFile.WriteString('Lyrics', 'NoteLines', INoteLines[NoteLines]);
+ //Encoding default
+ IniFile.WriteString('Lyrics', 'Encoding', EncodingName(DefaultEncoding));
+
// Theme
IniFile.WriteString('Themes', 'Theme', ITheme[Theme]);
diff --git a/us_maker_edition/src/base/UMain.pas b/us_maker_edition/src/base/UMain.pas
index 0d479420..174ef162 100644
--- a/us_maker_edition/src/base/UMain.pas
+++ b/us_maker_edition/src/base/UMain.pas
@@ -39,7 +39,7 @@ uses
procedure Main;
procedure MainLoop;
-function CheckEvents: boolean;
+procedure CheckEvents;
type
TMainThreadExecProc = procedure(Data: Pointer);
@@ -98,6 +98,7 @@ uses
procedure Main;
var
WindowTitle: string;
+ BadPlayer: integer;
begin
{$IFNDEF Debug}
try
@@ -304,8 +305,14 @@ begin
SoundLib.StartBgMusic;
// check microphone settings, goto record options if they are corrupt
- if (not AudioInputProcessor.ValidateSettings) then
+ BadPlayer := AudioInputProcessor.ValidateSettings;
+ if (BadPlayer <> 0) then
+ begin
+ ScreenPopupError.ShowPopup(
+ Format(Language.Translate('ERROR_PLAYER_DEVICE_ASSIGNMENT'),
+ [BadPlayer]));
Display.CurrentScreen^.FadeTo( @ScreenOptionsRecord );
+ end;
//------------------------------
// Start Mainloop
@@ -347,13 +354,14 @@ var
Delay: integer;
TicksCurrent: cardinal;
TicksBeforeFrame: cardinal;
- Continue: boolean;
+ Done: boolean;
begin
SDL_EnableKeyRepeat(125, 125);
+ Done := false;
+
CountSkipTime(); // JB - for some reason this seems to be needed when we use the SDL Timer functions.
- while Continue do
- begin
+ repeat
TicksBeforeFrame := SDL_GetTicks;
// joypad
@@ -361,10 +369,10 @@ begin
Joy.Update;
// keyboard events
- Continue := CheckEvents;
+ CheckEvents;
// display
- Continue := Display.Draw;
+ Done := not Display.Draw;
SwapBuffers;
// FPS limiter
@@ -376,7 +384,7 @@ begin
CountSkipTime;
- end;
+ until Done;
end;
procedure DoQuit;
@@ -394,13 +402,14 @@ begin
end;
end;
-function CheckEvents: boolean;
+procedure CheckEvents;
var
Event: TSDL_event;
mouseDown: boolean;
mouseBtn: integer;
+ KeepGoing: boolean;
begin
- Result := true;
+ KeepGoing := true;
while (SDL_PollEvent(@Event) <> 0) do
begin
case Event.type_ of
@@ -445,17 +454,17 @@ begin
if not Assigned(Display.NextScreen) then
begin //drop input when changing screens
if (ScreenPopupError <> nil) and (ScreenPopupError.Visible) then
- Result := ScreenPopupError.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
+ KeepGoing := ScreenPopupError.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
else if (ScreenPopupInfo <> nil) and (ScreenPopupInfo.Visible) then
- Result := ScreenPopupInfo.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
+ KeepGoing := ScreenPopupInfo.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
else if (ScreenPopupCheck <> nil) and (ScreenPopupCheck.Visible) then
- Result := ScreenPopupCheck.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
+ KeepGoing := ScreenPopupCheck.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y)
else
begin
- Result := Display.CurrentScreen^.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y);
+ KeepGoing := Display.CurrentScreen^.ParseMouse(mouseBtn, mouseDown, Event.button.x, Event.button.y);
// if screen wants to exit
- if not Result then
+ if not KeepGoing then
DoQuit;
end;
end;
@@ -535,18 +544,18 @@ begin
// if there is a visible popup then let it handle input instead of underlying screen
// shoud be done in a way to be sure the topmost popup has preference (maybe error, then check)
else if (ScreenPopupError <> nil) and (ScreenPopupError.Visible) then
- Result := ScreenPopupError.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
+ KeepGoing := ScreenPopupError.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
else if (ScreenPopupInfo <> nil) and (ScreenPopupInfo.Visible) then
- Result := ScreenPopupInfo.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
+ KeepGoing := ScreenPopupInfo.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
else if (ScreenPopupCheck <> nil) and (ScreenPopupCheck.Visible) then
- Result := ScreenPopupCheck.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
+ KeepGoing := ScreenPopupCheck.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true)
else
begin
// check if screen wants to exit
- Result := Display.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true);
+ KeepGoing := Display.ParseInput(Event.key.keysym.sym, Event.key.keysym.unicode, true);
// if screen wants to exit
- if not Result then
+ if not KeepGoing then
DoQuit;
end;
diff --git a/us_maker_edition/src/base/UMusic.pas b/us_maker_edition/src/base/UMusic.pas
index 7f2b3e30..41d6e80c 100644
--- a/us_maker_edition/src/base/UMusic.pas
+++ b/us_maker_edition/src/base/UMusic.pas
@@ -43,6 +43,27 @@ uses
type
TNoteType = (ntFreestyle, ntNormal, ntGolden);
+ {**
+ * acoStretch: Stretch to screen width and height
+ * - ignores aspect
+ * + no borders
+ * + no image data loss
+ * acoCrop: Stretch to screen width or height, crop the other dimension
+ * + keeps aspect
+ * + no borders
+ * - frame borders are cropped (image data loss)
+ * acoLetterBox: Stretch to screen width, add bars at or crop top and bottom
+ * + keeps aspect
+ * - borders at top and bottom
+ * o top/bottom is cropped if width < height (unusual)
+ *}
+ TAspectCorrection = (acoStretch, acoCrop, acoLetterBox);
+
+ TRectCoords = record
+ Left, Right: double;
+ Upper, Lower: double;
+ end;
+
const
// ScoreFactor defines how a notehit of a specified notetype is
// measured in comparison to the other types
@@ -334,9 +355,49 @@ type
procedure SetPosition(Time: real);
function GetPosition: real;
- procedure GetFrame(Time: Extended);
- procedure DrawGL(Screen: integer);
+ procedure SetScreen(Screen: integer);
+ function GetScreen(): integer;
+
+ procedure SetScreenPosition(X, Y: double; Z: double = 0.0);
+ procedure GetScreenPosition(var X, Y, Z: double);
+
+ procedure SetWidth(Width: double);
+ function GetWidth(): double;
+
+ procedure SetHeight(Height: double);
+ function GetHeight(): double;
+
+ {**
+ * Sub-image of the video frame to draw.
+ * This can be used for zooming or similar purposes.
+ *}
+ procedure SetFrameRange(Range: TRectCoords);
+ function GetFrameRange(): TRectCoords;
+
+ function GetFrameAspect(): real;
+
+ procedure SetAspectCorrection(AspectCorrection: TAspectCorrection);
+ function GetAspectCorrection(): TAspectCorrection;
+
+
+ procedure SetAlpha(Alpha: double);
+ function GetAlpha(): double;
+
+ procedure SetReflectionSpacing(Spacing: double);
+ function GetReflectionSpacing(): double;
+ procedure GetFrame(Time: Extended);
+ procedure Draw();
+ procedure DrawReflection();
+
+
+ property Screen: integer read GetScreen;
+ property Width: double read GetWidth write SetWidth;
+ property Height: double read GetHeight write SetHeight;
+ property Alpha: double read GetAlpha write SetAlpha;
+ property ReflectionSpacing: double read GetReflectionSpacing write SetReflectionSpacing;
+ property FrameAspect: real read GetFrameAspect;
+ property AspectCorrection: TAspectCorrection read GetAspectCorrection write SetAspectCorrection;
property Loop: boolean read GetLoop write SetLoop;
property Position: real read GetPosition write SetPosition;
end;
@@ -414,7 +475,15 @@ type
(*
IVideoDecoder = Interface( IGenericDecoder )
['{2F184B2B-FE69-44D5-9031-0A2462391DCA}']
- function Open(const Filename: IPath): TVideoDecodeStream;
+ function Open(const Filename: IPath): TVideoDecodeStream;
+
+ procedure SetPosition(Time: real);
+ function GetPosition: real;
+
+ procedure UpdateTexture(Texture: glUint);
+
+ property Loop: boolean read GetLoop write SetLoop;
+ property Position: real read GetPosition write SetPosition;
end;
*)
diff --git a/us_maker_edition/src/base/UNote.pas b/us_maker_edition/src/base/UNote.pas
index 6eb99df9..d800d30e 100644
--- a/us_maker_edition/src/base/UNote.pas
+++ b/us_maker_edition/src/base/UNote.pas
@@ -88,12 +88,23 @@ type
Note: array of TPlayerNote;
end;
+{* Player and music info *}
var
-
- // player and music info
- Player: array of TPlayer;
+ {**
+ * Player info and state for each player.
+ * The amount of players is given by PlayersPlay.
+ *}
+ Player: array of TPlayer;
+
+ {**
+ * Number of players or teams playing.
+ * Possible values: 1 - 6
+ *}
PlayersPlay: integer;
+ {**
+ * Selected song for singing.
+ *}
CurrentSong: TSong;
const
@@ -340,8 +351,39 @@ begin
end;
procedure NewBeatDetect(Screen: TScreenSing);
+ var
+ SentenceEnd: integer;
+ I: cardinal;
begin
NewNote(Screen);
+
+ // check for sentence end
+ // we check all lines here because a new sentence may
+ // have been started even before the old one finishes
+ // due to corrupt lien breaks
+ // checking only current line works to, but may lead to
+ // weird ratings for the song files w/ the mentioned
+ // errors
+ // To-Do Philipp : check current and last line should
+ // do it for most corrupt txt and for lines in
+ // non-corrupt txts that start immediatly after the prev.
+ // line ends
+ if (assigned(Screen)) then
+ begin
+ for I := 0 to Lines[0].High do
+ begin
+ with Lines[0].Line[I] do
+ begin
+ if (HighNote > 0) then
+ begin
+ SentenceEnd := Note[HighNote].Start + Note[HighNote].Length;
+
+ if (LyricsState.OldBeatD < SentenceEnd) and (LyricsState.CurrentBeatD >= SentenceEnd) then
+ Screen.OnSentenceEnd(I);
+ end;
+ end;
+ end;
+ end;
end;
procedure NewNote(Screen: TScreenSing);
@@ -571,20 +613,6 @@ begin
end; // for PlayerIndex
//Log.LogStatus('EndBeat', 'NewBeat');
-
- // on sentence end -> for LineBonus and display of SingBar (rating pop-up)
- if (SentenceDetected >= Low(Lines[0].Line)) and
- (SentenceDetected <= High(Lines[0].Line)) then
- begin
- Line := @Lines[0].Line[SentenceDetected];
- CurrentLineFragment := @Line.Note[Line.HighNote];
- if ((CurrentLineFragment.Start + CurrentLineFragment.Length - 1) = LyricsState.CurrentBeatD) then
- begin
- if assigned(Screen) then
- Screen.OnSentenceEnd(SentenceDetected);
- end;
- end;
-
end;
end.
diff --git a/us_maker_edition/src/base/UPathUtils.pas b/us_maker_edition/src/base/UPathUtils.pas
index c2bcdd4b..2bfcde42 100644
--- a/us_maker_edition/src/base/UPathUtils.pas
+++ b/us_maker_edition/src/base/UPathUtils.pas
@@ -185,8 +185,13 @@ begin
// Add song paths
AddSongPath(Params.SongPath);
+{$IF Defined(DARWIN)}
+ AddSongPath(Platform.GetMusicPath);
+ AddSongPath(UserPath.Append('songs'));
+{$ELSE}
AddSongPath(SharedPath.Append('songs'));
AddSongPath(UserPath.Append('songs'));
+{$IFEND}
// Add category cover paths
AddCoverPath(SharedPath.Append('covers'));
diff --git a/us_maker_edition/src/base/UPlatform.pas b/us_maker_edition/src/base/UPlatform.pas
index 11c67fa7..6d884979 100644
--- a/us_maker_edition/src/base/UPlatform.pas
+++ b/us_maker_edition/src/base/UPlatform.pas
@@ -51,6 +51,7 @@ type
procedure Halt; virtual;
function GetLogPath: IPath; virtual; abstract;
+ function GetMusicPath: IPath; virtual; abstract;
function GetGameSharedPath: IPath; virtual; abstract;
function GetGameUserPath: IPath; virtual; abstract;
end;
diff --git a/us_maker_edition/src/base/UPlatformMacOSX.pas b/us_maker_edition/src/base/UPlatformMacOSX.pas
index d55e8bea..7115a6b0 100644
--- a/us_maker_edition/src/base/UPlatformMacOSX.pas
+++ b/us_maker_edition/src/base/UPlatformMacOSX.pas
@@ -108,7 +108,10 @@ type
*}
procedure CreateUserFolders();
- function GetHomeDir(): IPath;
+ {**
+ * GetHomeDir returns the path to $HOME.
+ *}
+ function GetHomeDir: IPath;
public
{**
@@ -121,13 +124,19 @@ type
{**
* GetLogPath returns the path for log messages. Currently it is set to
- * $HOME/Library/Application Support/UltraStarDeluxe/log.
+ * $HOME/Library/Logs/UltraStar Deluxe/.
*}
function GetLogPath: IPath; override;
{**
+ * GetMusicPath returns the path for music. Currently it is set to
+ * $HOME/Music/UltraStar Deluxe/.
+ *}
+ function GetMusicPath: IPath; override;
+
+ {**
* GetGameSharedPath returns the path for shared resources. Currently it
- * is set to /Library/Application Support/UltraStarDeluxe.
+ * is also set to $HOME/Library/Application Support/UltraStarDeluxe.
* However it is not used.
*}
function GetGameSharedPath: IPath; override;
@@ -135,7 +144,7 @@ type
{**
* GetGameUserPath returns the path for user resources. Currently it is
* set to $HOME/Library/Application Support/UltraStarDeluxe.
- * This is where a user can add songs, themes, ....
+ * This is where a user can add themes, ....
*}
function GetGameUserPath: IPath; override;
end;
@@ -251,21 +260,24 @@ begin
Result := GetExecutionDir().GetParent().GetParent();
end;
-function TPlatformMacOSX.GetApplicationSupportPath: IPath;
-const
- PathName: string = 'Library/Application Support/UltraStarDeluxe';
+function TPlatformMacOSX.GetHomeDir: IPath;
begin
- Result := GetHomeDir().Append(PathName, pdAppend);
+ Result := Path(GetEnvironmentVariable('HOME'));
end;
-function TPlatformMacOSX.GetHomeDir(): IPath;
+function TPlatformMacOSX.GetApplicationSupportPath: IPath;
begin
- Result := Path(GetEnvironmentVariable('HOME'));
+ Result := GetHomeDir.Append('Library/Application Support/UltraStarDeluxe', pdAppend);
end;
function TPlatformMacOSX.GetLogPath: IPath;
begin
- Result := GetApplicationSupportPath.Append('logs');
+ Result := GetHomeDir.Append('Library/Logs/UltraStar Deluxe', pdAppend);
+end;
+
+function TPlatformMacOSX.GetMusicPath: IPath;
+begin
+ Result := GetHomeDir.Append('Music/UltraStar Deluxe', pdAppend);
end;
function TPlatformMacOSX.GetGameSharedPath: IPath;
diff --git a/us_maker_edition/src/base/URecord.pas b/us_maker_edition/src/base/URecord.pas
index c183875c..5cddcc77 100644
--- a/us_maker_edition/src/base/URecord.pas
+++ b/us_maker_edition/src/base/URecord.pas
@@ -124,6 +124,8 @@ type
procedure SetVolume(Volume: single); virtual; abstract;
end;
+ TBooleanDynArray = array of boolean;
+
TAudioInputProcessor = class
public
Sound: array of TCaptureBuffer; // sound-buffers for every player
@@ -133,9 +135,36 @@ type
destructor Destroy; override;
procedure UpdateInputDeviceConfig;
- function ValidateSettings: boolean;
- // handle microphone input
+ {**
+ * Validates the mic settings.
+ * If a player was assigned to multiple mics a popup will be displayed
+ * with the ID of the player.
+ * The return value is the player number of the first player that is not
+ * configured correctly or 0 if all players are correct.
+ *}
+ function ValidateSettings: integer;
+
+ {**
+ * Checks if players 1 to PlayerCount are configured correctly.
+ * A player is configured if a device's channel is assigned to him.
+ * For each player (up to PlayerCount) the state will be in PlayerState.
+ * If a player's state is true the player is configured, otherwise not.
+ * The return value is the player number of the first player that is not
+ * configured correctly or 0 if all players are correct.
+ * The PlayerState array is zero based (index 0 for player 1).
+ *}
+ function CheckPlayersConfig(PlayerCount: cardinal;
+ var PlayerState: TBooleanDynArray): integer; overload;
+
+ {**
+ * Same as the array version but it does not output a state for each player.
+ *}
+ function CheckPlayersConfig(PlayerCount: cardinal): integer; overload;
+
+ {**
+ * Handle microphone input
+ *}
procedure HandleMicrophoneData(Buffer: PByteArray; Size: integer;
InputDevice: TAudioInputDevice);
end;
@@ -163,8 +192,6 @@ implementation
uses
ULog,
- UGraphic,
- ULanguage,
UNote;
var
@@ -555,10 +582,10 @@ begin
channelIndex := High(deviceCfg.ChannelToPlayerMap);
// add missing channels or remove non-existing ones
SetLength(deviceCfg.ChannelToPlayerMap, device.AudioFormat.Channels);
- // initialize added channels to 0
+ // assign added channels to no player
for i := channelIndex+1 to High(deviceCfg.ChannelToPlayerMap) do
begin
- deviceCfg.ChannelToPlayerMap[i] := 0;
+ deviceCfg.ChannelToPlayerMap[i] := CHANNEL_OFF;
end;
// associate ini-index with device
@@ -587,23 +614,23 @@ begin
for channelIndex := 0 to channelCount-1 do
begin
- // set default at first start of USDX (1st device, 1st channel -> player1)
- if ((channelIndex = 0) and (device.CfgIndex = 0)) then
- deviceCfg.ChannelToPlayerMap[0] := 1
- else
- deviceCfg.ChannelToPlayerMap[channelIndex] := 0;
+ // Do not set any default on first start of USDX.
+ // Otherwise most probably the wrong device (internal sound card)
+ // will be selected.
+ // It is better to force the user to configure the mics himself.
+ deviceCfg.ChannelToPlayerMap[channelIndex] := CHANNEL_OFF;
end;
end;
end;
end;
-function TAudioInputProcessor.ValidateSettings: boolean;
+function TAudioInputProcessor.ValidateSettings: integer;
const
MAX_PLAYER_COUNT = 6; // FIXME: there should be a global variable for this
var
I, J: integer;
PlayerID: integer;
- PlayerMap: array [0 .. MAX_PLAYER_COUNT] of boolean;
+ PlayerMap: array [0 .. MAX_PLAYER_COUNT - 1] of boolean;
InputDevice: TAudioInputDevice;
InputDeviceCfg: PInputDeviceConfig;
begin
@@ -621,24 +648,73 @@ begin
begin
// get player that was mapped to the current device channel
PlayerID := InputDeviceCfg.ChannelToPlayerMap[J];
- if (PlayerID <> 0) then
+ if (PlayerID <> CHANNEL_OFF) then
begin
// check if player is already assigned to another device/channel
- if (PlayerMap[PlayerID]) then
+ if (PlayerMap[PlayerID - 1]) then
begin
- ScreenPopupError.ShowPopup(
- Format(Language.Translate('ERROR_PLAYER_DEVICE_ASSIGNMENT'),
- [PlayerID]));
- Result := false;
+ Result := PlayerID;
Exit;
end;
// mark player as assigned to a device
- PlayerMap[PlayerID] := true;
+ PlayerMap[PlayerID - 1] := true;
end;
end;
end;
- Result := true;
+ Result := 0;
+end;
+
+function TAudioInputProcessor.CheckPlayersConfig(PlayerCount: cardinal;
+ var PlayerState: TBooleanDynArray): integer;
+var
+ DeviceIndex: integer;
+ ChannelIndex: integer;
+ Device: TAudioInputDevice;
+ DeviceCfg: PInputDeviceConfig;
+ PlayerIndex: integer;
+ I: integer;
+begin
+ SetLength(PlayerState, PlayerCount);
+ // set all entries to "not configured"
+ for I := 0 to High(PlayerState) do
+ begin
+ PlayerState[I] := false;
+ end;
+
+ // check each used device
+ for DeviceIndex := 0 to High(AudioInputProcessor.DeviceList) do
+ begin
+ Device := AudioInputProcessor.DeviceList[DeviceIndex];
+ if not assigned(Device) then
+ continue;
+ DeviceCfg := @Ini.InputDeviceConfig[Device.CfgIndex];
+
+ // check if device is used
+ for ChannelIndex := 0 to High(DeviceCfg.ChannelToPlayerMap) do
+ begin
+ PlayerIndex := DeviceCfg.ChannelToPlayerMap[ChannelIndex] - 1;
+ if (PlayerIndex >= 0) and (PlayerIndex < PlayerCount) then
+ PlayerState[PlayerIndex] := true;
+ end;
+ end;
+
+ Result := 0;
+ for I := 0 to High(PlayerState) do
+ begin
+ if (PlayerState[I] = false) then
+ begin
+ Result := I + 1;
+ Break;
+ end;
+ end;
+end;
+
+function TAudioInputProcessor.CheckPlayersConfig(PlayerCount: cardinal): integer;
+var
+ PlayerState: TBooleanDynArray;
+begin
+ Result := CheckPlayersConfig(PlayerCount, PlayerState);
end;
{*
@@ -737,7 +813,7 @@ begin
// check if device is used
for ChannelIndex := 0 to High(DeviceCfg.ChannelToPlayerMap) do
begin
- Player := DeviceCfg.ChannelToPlayerMap[ChannelIndex]-1;
+ Player := DeviceCfg.ChannelToPlayerMap[ChannelIndex] - 1;
if (Player < 0) or (Player >= PlayersPlay) then
begin
Device.LinkCaptureBuffer(ChannelIndex, nil);
diff --git a/us_maker_edition/src/base/USong.pas b/us_maker_edition/src/base/USong.pas
index a441fe40..e92c5b45 100644
--- a/us_maker_edition/src/base/USong.pas
+++ b/us_maker_edition/src/base/USong.pas
@@ -179,9 +179,6 @@ uses
UMusic, //needed for Lines
UNote; //needed for Player
-const
- DEFAULT_ENCODING = encAuto;
-
constructor TSong.Create();
begin
inherited;
@@ -510,22 +507,25 @@ begin
//Check for ZeroNote
if Param2 = 0 then
+ begin
Log.LogWarn(Format('"%s" in line %d: %s',
- [FileNamePath.ToNative, FileLineNo, 'found note with length zero -> note ignored']), 'TSong.LoadSong')
+ [FileNamePath.ToNative, FileLineNo,
+ 'found note with length zero -> converted to FreeStyle']),
+ 'TSong.LoadSong');
//Log.LogError('Found zero-length note at "'+Param0+' '+IntToStr(Param1)+' '+IntToStr(Param2)+' '+IntToStr(Param3)+ParamLyric+'" -> Note ignored!')
+ Param0 := 'F';
+ end;
+
+ // add notes
+ if not Both then
+ // P1
+ ParseNote(0, Param0, (Param1+Rel[0]) * Mult, Param2 * Mult, Param3, ParamLyric)
else
begin
- // add notes
- if not Both then
- // P1
- ParseNote(0, Param0, (Param1+Rel[0]) * Mult, Param2 * Mult, Param3, ParamLyric)
- else
- begin
- // P1 + P2
- ParseNote(0, Param0, (Param1+Rel[0]) * Mult, Param2 * Mult, Param3, ParamLyric);
- ParseNote(1, Param0, (Param1+Rel[1]) * Mult, Param2 * Mult, Param3, ParamLyric);
- end;
- end; //Zeronote check
+ // P1 + P2
+ ParseNote(0, Param0, (Param1+Rel[0]) * Mult, Param2 * Mult, Param3, ParamLyric);
+ ParseNote(1, Param0, (Param1+Rel[1]) * Mult, Param2 * Mult, Param3, ParamLyric);
+ end;
end // if
else if Param0 = '-' then
@@ -1087,7 +1087,7 @@ begin
// File encoding
else if (Identifier = 'ENCODING') then
begin
- self.Encoding := ParseEncoding(Value, DEFAULT_ENCODING);
+ self.Encoding := ParseEncoding(Value, Ini.DefaultEncoding);
end
// unsupported tag
@@ -1236,7 +1236,7 @@ begin
Year := 0;
// set to default encoding
- Encoding := DEFAULT_ENCODING;
+ Encoding := Ini.DefaultEncoding;
// clear custom header tags
SetLength(CustomTags, 0);
diff --git a/us_maker_edition/src/config-darwin.inc b/us_maker_edition/src/config-darwin.inc
index 83cadbae..4c128a05 100644
--- a/us_maker_edition/src/config-darwin.inc
+++ b/us_maker_edition/src/config-darwin.inc
@@ -50,4 +50,9 @@
PORTAUDIO_VERSION_RELEASE = 0;
{$IFEND}
+{$DEFINE HaveLibPcre}
+{$IF Defined(HaveLibPcre) and Defined(IncludeConstants)}
+ LIBPCRE_LIBDIR = '/sw/lib';
+{$IFEND}
+
{$UNDEF HavePortmixer}
diff --git a/us_maker_edition/src/config-win.inc b/us_maker_edition/src/config-win.inc
index 72e00aef..843fdb0e 100644
--- a/us_maker_edition/src/config-win.inc
+++ b/us_maker_edition/src/config-win.inc
@@ -8,26 +8,26 @@
{$IF Defined(HaveFFmpeg) and Defined(IncludeConstants)}
av__codec = 'avcodec-52';
LIBAVCODEC_VERSION_MAJOR = 52;
- LIBAVCODEC_VERSION_MINOR = 45;
- LIBAVCODEC_VERSION_RELEASE = 0;
+ LIBAVCODEC_VERSION_MINOR = 67;
+ LIBAVCODEC_VERSION_RELEASE = 2;
av__format = 'avformat-52';
LIBAVFORMAT_VERSION_MAJOR = 52;
- LIBAVFORMAT_VERSION_MINOR = 46;
+ LIBAVFORMAT_VERSION_MINOR = 62;
LIBAVFORMAT_VERSION_RELEASE = 0;
av__util = 'avutil-50';
LIBAVUTIL_VERSION_MAJOR = 50;
- LIBAVUTIL_VERSION_MINOR = 7;
- LIBAVUTIL_VERSION_RELEASE = 0;
+ LIBAVUTIL_VERSION_MINOR = 15;
+ LIBAVUTIL_VERSION_RELEASE = 2;
{$IFEND}
{$DEFINE HaveSWScale}
{$IF Defined(HaveSWScale) and Defined(IncludeConstants)}
sw__scale = 'swscale-0';
LIBSWSCALE_VERSION_MAJOR = 0;
- LIBSWSCALE_VERSION_MINOR = 7;
- LIBSWSCALE_VERSION_RELEASE = 2;
+ LIBSWSCALE_VERSION_MINOR = 10;
+ LIBSWSCALE_VERSION_RELEASE = 0;
{$IFEND}
{$DEFINE HaveProjectM}
diff --git a/us_maker_edition/src/config.inc.in b/us_maker_edition/src/config.inc.in
index b5e086f4..d57c7ab4 100644
--- a/us_maker_edition/src/config.inc.in
+++ b/us_maker_edition/src/config.inc.in
@@ -50,4 +50,9 @@
PORTAUDIO_VERSION_RELEASE = @portaudio_VERSION_RELEASE@;
{$IFEND}
+{$@DEFINE_HAVE_LIBPCRE@ HaveLibPcre}
+{$IF Defined(HaveLibPcre) and Defined(IncludeConstants)}
+ LIBPCRE_LIBDIR = '@libpcre_LIBDIR@';
+{$IFEND}
+
{$@DEFINE_HAVE_PORTMIXER@ HavePortmixer}
diff --git a/us_maker_edition/src/lib/ffmpeg/avcodec.pas b/us_maker_edition/src/lib/ffmpeg/avcodec.pas
index 066910a3..a441232d 100644
--- a/us_maker_edition/src/lib/ffmpeg/avcodec.pas
+++ b/us_maker_edition/src/lib/ffmpeg/avcodec.pas
@@ -14,20 +14,16 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libavcodec/avcodec.h
* Min. version: 51.16.0, revision 6577, Sat Oct 7 15:30:46 2006 UTC
- * Max. version: 52.67.0, revision 23057, Tue May 11 18:30 2010 CET
+ * Max. version: 52.72.0, revision 23338, Sun May 30 20:55 2010 CET
*
*)
@@ -86,7 +82,7 @@ const
*)
(* Max. supported version by this header *)
LIBAVCODEC_MAX_VERSION_MAJOR = 52;
- LIBAVCODEC_MAX_VERSION_MINOR = 67;
+ LIBAVCODEC_MAX_VERSION_MINOR = 72;
LIBAVCODEC_MAX_VERSION_RELEASE = 0;
LIBAVCODEC_MAX_VERSION = (LIBAVCODEC_MAX_VERSION_MAJOR * VERSION_MAJOR) +
(LIBAVCODEC_MAX_VERSION_MINOR * VERSION_MINOR) +
@@ -307,6 +303,9 @@ type
{$IF LIBAVCODEC_VERSION >= 52062000} // >= 52.62.0
CODEC_ID_YOP,
{$IFEND}
+{$IF LIBAVCODEC_VERSION >= 52067002} // >= 52.67.2
+ CODEC_ID_VP8,
+{$IFEND}
//* various PCM "codecs" */
CODEC_ID_PCM_S16LE= $10000,
@@ -850,6 +849,14 @@ const
CODEC_CAP_SUBFRAMES = $0100;
{$IFEND}
+ {$IF LIBAVCODEC_VERSION >= 52071000} // >= 52.71.0
+ (**
+ * Codec is experimental and is thus avoided in favor of non experimental
+ * encoders
+ *)
+ CODEC_CAP_EXPERIMENTAL = $0200;
+ {$IFEND}
+
//the following defines may change, don't expect compatibility if you use them
MB_TYPE_INTRA4x4 = $001;
MB_TYPE_INTRA16x16 = $002; //FIXME h264 specific
@@ -1256,6 +1263,16 @@ type
*)
log_level_offset_offset: cint;
{$IFEND}
+
+{$IF LIBAVUTIL_VERSION >= 50015003} // 50.15.3
+ (**
+ * Offset in the structure where a pointer to the parent context for loging is stored.
+ * for example a decoder that uses eval.c could pass its AVCodecContext to eval as such
+ * parent context. And a av_log() implementation could then display the parent context
+ * can be NULL of course
+ *)
+ parent_log_context_offset: cint;
+{$IFEND}
end;
{**
@@ -3012,7 +3029,11 @@ type
*)
crf_max: cfloat;
{$IFEND}
- end;
+
+ {$IF LIBAVCODEC_VERSION >= 52067002} // >= 52.67.2
+ log_level_offset: cint;
+ {$IFEND}
+ end; {TAVCodecContext}
(**
* AVCodec.
@@ -3852,6 +3873,10 @@ function avcodec_get_edge_width(): cuint;
* Modifies width and height values so that they will result in a memory
* buffer that is acceptable for the codec if you do not use any horizontal
* padding.
+ *
+ * May only be used if a codec with CODEC_CAP_DR1 has been opened.
+ * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
+ * according to avcodec_get_edge_width() before.
*)
procedure avcodec_align_dimensions(s: PAVCodecContext; width: PCint; height: PCint);
cdecl; external av__codec;
@@ -3861,6 +3886,10 @@ procedure avcodec_align_dimensions(s: PAVCodecContext; width: PCint; height: PCi
* Modifies width and height values so that they will result in a memory
* buffer that is acceptable for the codec if you also ensure that all
* line sizes are a multiple of the respective linesize_align[i].
+ *
+ * May only be used if a codec with CODEC_CAP_DR1 has been opened.
+ * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased
+ * according to avcodec_get_edge_width() before.
*)
procedure avcodec_align_dimensions2(s: PAVCodecContext; width: PCint; height: PCint;
linesize_align: PQuadIntArray);
@@ -4212,6 +4241,9 @@ function av_get_bits_per_sample_format(sample_fmt: TSampleFormat): cint;
const
AV_PARSER_PTS_NB = 4;
PARSER_FLAG_COMPLETE_FRAMES = $0001;
+{$IF LIBAVCODEC_VERSION >= 52070000} // 52.70.0
+ PARSER_FLAG_ONCE = $0002;
+{$IFEND}
type
{* frame parsing *}
@@ -4694,20 +4726,19 @@ const
{$ENDIF}
(**
- * We need the sign of of the error, because some platforms have
+ * We need the sign of the error, because some platforms have
* E* and errno already negated. The previous version failed
- * with Delphi, because it needs EINVAL defined.
+ * with Delphi, because it needed EINVAL defined.
* Warning: This code is platform dependent and assumes constants
* to be 32 bit.
* This version does the following steps:
* 1) shr 30: shifts the sign bit to bit position 2
* 2) and $00000002: sets all other bits to zero
* positive EINVAL gives 0, negative gives 2
- * 3) not: inverts all bits. This gives -1 and -3
- * 4) + 2: positive EINVAL gives 1, negative -1
+ * 3) - 1: positive EINVAL gives -1, negative 1
*)
const
- AVERROR_SIGN = not((EINVAL shr 30) and $00000002) + 2;
+ AVERROR_SIGN = (EINVAL shr 30) and $00000002 - 1;
(*
#if EINVAL > 0
diff --git a/us_maker_edition/src/lib/ffmpeg/avformat.pas b/us_maker_edition/src/lib/ffmpeg/avformat.pas
index a217263d..34142125 100644
--- a/us_maker_edition/src/lib/ffmpeg/avformat.pas
+++ b/us_maker_edition/src/lib/ffmpeg/avformat.pas
@@ -14,20 +14,16 @@
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libavformat/avformat.h
* Min. version: 50.5.0 , revision 6577, Sat Oct 7 15:30:46 2006 UTC
- * Max. version: 52.62.0, revision 23102, Thu May 13 1:15:00 2010 CET
+ * Max. version: 52.67.0, revision 23357, Sun May 30 21:30:00 2010 CET
*)
unit avformat;
@@ -85,7 +81,7 @@ const
*)
(* Max. supported version by this header *)
LIBAVFORMAT_MAX_VERSION_MAJOR = 52;
- LIBAVFORMAT_MAX_VERSION_MINOR = 62;
+ LIBAVFORMAT_MAX_VERSION_MINOR = 67;
LIBAVFORMAT_MAX_VERSION_RELEASE = 0;
LIBAVFORMAT_MAX_VERSION = (LIBAVFORMAT_MAX_VERSION_MAJOR * VERSION_MAJOR) +
(LIBAVFORMAT_MAX_VERSION_MINOR * VERSION_MINOR) +
@@ -405,6 +401,9 @@ const
AVFMT_FLAG_NOFILLIN = $0010; ///< Do not infer any values from other values, just return what is stored in the container
AVFMT_FLAG_NOPARSE = $0020; ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled
{$IFEND}
+{$IF LIBAVFORMAT_VERSION >= 52063000} // >= 52.63.0
+ AVFMT_FLAG_RTP_HINT = $0040; ///< Add RTP hinting to the output file
+{$IFEND}
// used by AVStream
MAX_REORDER_DELAY = 16;
@@ -671,6 +670,9 @@ type
AVSTREAM_PARSE_FULL, (**< full parsing and repack *)
AVSTREAM_PARSE_HEADERS, (**< Only parse headers, do not repack. *)
AVSTREAM_PARSE_TIMESTAMPS (**< full parsing and interpolation of timestamps for frames not starting on a packet boundary *)
+ {$IF LIBAVFORMAT_VERSION >= 52066000} // 52.66.0
+ , AVSTREAM_PARSE_FULL_ONCE (**< full parsing and repack of the first frame only, only implemented for H.264 currently *)
+ {$IFEND}
);
TAVIndexEntry = record
diff --git a/us_maker_edition/src/lib/ffmpeg/avio.pas b/us_maker_edition/src/lib/ffmpeg/avio.pas
index 4863ee39..0ebca5fa 100644
--- a/us_maker_edition/src/lib/ffmpeg/avio.pas
+++ b/us_maker_edition/src/lib/ffmpeg/avio.pas
@@ -15,24 +15,20 @@
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libavformat/avio.h
* unbuffered I/O operations
* @warning This file has to be considered an internal but installed
* header, so it should not be directly included in your projects.
*
* update to
- * Max. avformat version: 52.62.0, revision 23004, Tue May 11 19:29:00 2010 CET
+ * Max. avformat version: 52.67.0, revision 23357, Sun May 30 21:30:00 2010 CET
*)
unit avio;
diff --git a/us_maker_edition/src/lib/ffmpeg/avutil.pas b/us_maker_edition/src/lib/ffmpeg/avutil.pas
index 959e8fda..5387a0f1 100644
--- a/us_maker_edition/src/lib/ffmpeg/avutil.pas
+++ b/us_maker_edition/src/lib/ffmpeg/avutil.pas
@@ -14,22 +14,18 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversions of
*
* libavutil/avutil.h:
* Min. version: 49.0.1, revision 6577, Sat Oct 7 15:30:46 2006 UTC
- * Max. version: 50.15.2, revision 23059, Tue May 11 22:05:00 2010 CET
+ * Max. version: 50.16.0, revision 23255, Sun May 30 22:05:00 2010 CET
*
* libavutil/mem.h:
* revision 16590, Tue Jan 13 23:44:16 2009 UTC
@@ -96,7 +92,7 @@ const
*)
(* Max. supported version by this header *)
LIBAVUTIL_MAX_VERSION_MAJOR = 50;
- LIBAVUTIL_MAX_VERSION_MINOR = 15;
+ LIBAVUTIL_MAX_VERSION_MINOR = 16;
LIBAVUTIL_MAX_VERSION_RELEASE = 0;
LIBAVUTIL_MAX_VERSION = (LIBAVUTIL_MAX_VERSION_MAJOR * VERSION_MAJOR) +
(LIBAVUTIL_MAX_VERSION_MINOR * VERSION_MINOR) +
@@ -124,7 +120,7 @@ const
* Returns the LIBAVUTIL_VERSION_INT constant.
*)
function avutil_version(): cuint;
- cdecl; external av__format;
+ cdecl; external av__util;
{$IFEND}
{$IF LIBAVUTIL_VERSION >= 50004000} // >= 50.4.0
@@ -132,13 +128,13 @@ function avutil_version(): cuint;
* Returns the libavutil build-time configuration.
*)
function avutil_configuration(): PAnsiChar;
- cdecl; external av__format;
+ cdecl; external av__util;
(**
* Returns the libavutil license.
*)
function avutil_license(): PAnsiChar;
- cdecl; external av__format;
+ cdecl; external av__util;
{$IFEND}
{
@@ -158,98 +154,9 @@ type
);
}
-(* libavutil/error.h *)
+{$INCLUDE error.pas}
-{$IF LIBAVUTIL_VERSION >= 50012000} // >= 50.12.0
-
-{* error handling *}
-
-const
-{$IFDEF UNIX}
- ENOENT = ESysENOENT;
- EIO = ESysEIO;
- ENOMEM = ESysENOMEM;
- EINVAL = ESysEINVAL;
- EDOM = ESysEDOM;
- ENOSYS = ESysENOSYS;
- EILSEQ = ESysEILSEQ;
- EPIPE = ESysEPIPE;
-{$ELSE}
- ENOENT = 2;
- EIO = 5;
- ENOMEM = 12;
- EINVAL = 22;
- EPIPE = 32; // just an assumption. needs to be checked.
- EDOM = 33;
- {$IFDEF MSWINDOWS}
- // Note: we assume that ffmpeg was compiled with MinGW.
- // This must be changed if DLLs were compiled with cygwin.
- ENOSYS = 40; // MSVC/MINGW: 40, CYGWIN: 88, LINUX/FPC: 38
- EILSEQ = 42; // MSVC/MINGW: 42, CYGWIN: 138, LINUX/FPC: 84
- {$ENDIF}
-{$ENDIF}
-
-(**
- * We need the sign of of the error, because some platforms have
- * E* and errno already negated. The previous version failed
- * with Delphi, because it needs EINVAL defined.
- * Warning: This code is platform dependent and assumes constants
- * to be 32 bit.
- * This version does the following steps:
- * 1) shr 30: shifts the sign bit to bit position 2
- * 2) and $00000002: sets all other bits to zero
- * positive EINVAL gives 0, negative gives 2
- * 3) not: inverts all bits. This gives -1 and -3
- * 4) + 2: positive EINVAL gives 1, negative -1
- *)
-const
- AVERROR_SIGN = not((EINVAL shr 30) and $00000002) + 2;
-
-(*
-#if EINVAL > 0
-#define AVERROR(e) (-(e)) {**< Returns a negative error code from a POSIX error code, to return from library functions. *}
-#define AVUNERROR(e) (-(e)) {**< Returns a POSIX error code from a library function error return value. *}
-#else
-{* Some platforms have E* and errno already negated. *}
-#define AVERROR(e) (e)
-#define AVUNERROR(e) (e)
-#endif
-*)
-
-const
- AVERROR_UNKNOWN = AVERROR_SIGN * EINVAL; (**< unknown error *)
- AVERROR_IO = AVERROR_SIGN * EIO; (**< I/O error *)
- AVERROR_NUMEXPECTED = AVERROR_SIGN * EDOM; (**< Number syntax expected in filename. *)
- AVERROR_INVALIDDATA = AVERROR_SIGN * EINVAL; (**< invalid data found *)
- AVERROR_NOMEM = AVERROR_SIGN * ENOMEM; (**< not enough memory *)
- AVERROR_NOFMT = AVERROR_SIGN * EILSEQ; (**< unknown format *)
- AVERROR_NOTSUPP = AVERROR_SIGN * ENOSYS; (**< Operation not supported. *)
- AVERROR_NOENT = AVERROR_SIGN * ENOENT; (**< No such file or directory. *)
-{$IF LIBAVCODEC_VERSION >= 52017000} // 52.17.0
- AVERROR_EOF = AVERROR_SIGN * EPIPE; (**< End of file. *)
-{$IFEND}
- // Note: function calls as constant-initializers are invalid
- //AVERROR_PATCHWELCOME = -MKTAG('P','A','W','E'); {**< Not yet implemented in FFmpeg. Patches welcome. *}
- AVERROR_PATCHWELCOME = -(ord('P') or (ord('A') shl 8) or (ord('W') shl 16) or (ord('E') shl 24));
-{$IFEND}
-
-{$IF LIBAVUTIL_VERSION >= 50013000} // >= 50.13.0
-(*
- * Puts a description of the AVERROR code errnum in errbuf.
- * In case of failure the global variable errno is set to indicate the
- * error. Even in case of failure av_strerror() will print a generic
- * error message indicating the errnum provided to errbuf.
- *
- * @param errbuf_size the size in bytes of errbuf
- * @return 0 on success, a negative value if a description for errnum
- * cannot be found
- *)
-
-function av_strerror(errnum: cint; errbuf: Pchar; errbuf_size: cint): cint;
- cdecl; external av__util;
-{$IFEND}
-
-(* libavutil/pixfmt.h *)
+(* libavutil/pixfmt.h up to revision 23144, May 16 2010 *)
type
(**
@@ -298,8 +205,8 @@ type
PIX_FMT_RGB555, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), in CPU endianness, most significant bit to 0
{$IFEND}
PIX_FMT_GRAY8, ///< Y , 8bpp
- PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black
- PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white
+ PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb
+ PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb
PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette
PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG)
PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG)
@@ -316,12 +223,12 @@ type
PIX_FMT_BGR555, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), in CPU endianness, most significant bit to 1
{$IFEND}
PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
- PIX_FMT_BGR4, ///< packed RGB 1:2:1, 4bpp, (msb)1B 2G 1R(lsb)
+ PIX_FMT_BGR4, ///< packed RGB 1:2:1, bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
- PIX_FMT_RGB4, ///< packed RGB 1:2:1, 4bpp, (msb)1R 2G 1B(lsb)
+ PIX_FMT_RGB4, ///< packed RGB 1:2:1, bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
- PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 for UV
+ PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
PIX_FMT_NV21, ///< as above, but U and V bytes are swapped
{$IF LIBAVUTIL_VERSION <= 50001000} // 50.01.0
PIX_FMT_RGB32_1, ///< packed RGB 8:8:8, 32bpp, (msb)8R 8G 8B 8A(lsb), in CPU endianness
@@ -343,8 +250,8 @@ type
PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
{$IF LIBAVUTIL_VERSION >= 49015000} // 49.15.0
- PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, big-endian
- PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, little-endian
+ PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian
+ PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian
{$IFEND}
{$IF LIBAVUTIL_VERSION >= 50001000} // 50.01.0
PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
@@ -417,9 +324,10 @@ const
PIX_FMT_YUV422 = PIX_FMT_YUYV422;
{$IFEND}
-(* libavutil/common.h *) // until now MKTAG is all from common.h KMS 9/6/2009
+(* libavutil/common.h *) // until now MKTAG and MKBETAG is all from common.h KMS 19/5/2010
function MKTAG(a, b, c, d: AnsiChar): integer;
+function MKBETAG(a, b, c, d: AnsiChar): integer;
(* libavutil/mem.h *)
@@ -574,6 +482,11 @@ void av_log_set_callback(void (*)(void*, int, const char*, va_list));
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
**}
+{$IF LIBAVUTIL_VERSION >= 50015003} // 50.15.3
+function av_default_item_name (ctx: pointer): Pchar;
+ cdecl; external av__util;
+{$IFEND}
+
implementation
(* libavutil/common.h *)
@@ -583,4 +496,9 @@ begin
Result := (ord(a) or (ord(b) shl 8) or (ord(c) shl 16) or (ord(d) shl 24));
end;
+function MKBETAG(a, b, c, d: AnsiChar): integer;
+begin
+ Result := (ord(d) or (ord(c) shl 8) or (ord(b) shl 16) or (ord(a) shl 24));
+end;
+
end.
diff --git a/us_maker_edition/src/lib/ffmpeg/error.pas b/us_maker_edition/src/lib/ffmpeg/error.pas
new file mode 100644
index 00000000..c142f6e1
--- /dev/null
+++ b/us_maker_edition/src/lib/ffmpeg/error.pas
@@ -0,0 +1,113 @@
+(*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * This is a part of the Pascal port of ffmpeg.
+ * - Changes and updates by the UltraStar Deluxe Team
+ *
+ * Conversion of libavutil/error.h
+ * Max. avutil version: 50.16.0, revision 23255, Sun May 30 22:05:00 2010 CET
+ *
+ *)
+
+{$IF LIBAVUTIL_VERSION >= 50012000} // >= 50.12.0
+
+{* error handling *}
+
+const
+{$IFDEF UNIX}
+ ENOENT = ESysENOENT;
+ EIO = ESysEIO;
+ ENOMEM = ESysENOMEM;
+ EINVAL = ESysEINVAL;
+ EDOM = ESysEDOM;
+ ENOSYS = ESysENOSYS;
+ EILSEQ = ESysEILSEQ;
+ EPIPE = ESysEPIPE;
+{$ELSE}
+ ENOENT = 2;
+ EIO = 5;
+ ENOMEM = 12;
+ EINVAL = 22;
+ EPIPE = 32; // just an assumption. needs to be checked.
+ EDOM = 33;
+ {$IFDEF MSWINDOWS}
+ // Note: we assume that ffmpeg was compiled with MinGW.
+ // This must be changed if DLLs were compiled with cygwin.
+ ENOSYS = 40; // MSVC/MINGW: 40, CYGWIN: 88, LINUX/FPC: 38
+ EILSEQ = 42; // MSVC/MINGW: 42, CYGWIN: 138, LINUX/FPC: 84
+ {$ENDIF}
+{$ENDIF}
+
+(**
+ * We need the sign of the error, because some platforms have
+ * E* and errno already negated. The previous version failed
+ * with Delphi, because it needed EINVAL defined.
+ * Warning: This code is platform dependent and assumes constants
+ * to be 32 bit.
+ * This version does the following steps:
+ * 1) shr 30: shifts the sign bit to bit position 2
+ * 2) and $00000002: sets all other bits to zero
+ * positive EINVAL gives 0, negative gives 2
+ * 3) not: inverts all bits. This gives -1 and -3
+ * 3) - 1: positive EINVAL gives -1, negative 1
+ *)
+const
+ AVERROR_SIGN = (EINVAL shr 30) and $00000002 - 1;
+
+(*
+#if EINVAL > 0
+#define AVERROR(e) (-(e)) {**< Returns a negative error code from a POSIX error code, to return from library functions. *}
+#define AVUNERROR(e) (-(e)) {**< Returns a POSIX error code from a library function error return value. *}
+#else
+{* Some platforms have E* and errno already negated. *}
+#define AVERROR(e) (e)
+#define AVUNERROR(e) (e)
+#endif
+*)
+
+const
+ AVERROR_UNKNOWN = AVERROR_SIGN * EINVAL; (**< unknown error *)
+ AVERROR_IO = AVERROR_SIGN * EIO; (**< I/O error *)
+ AVERROR_NUMEXPECTED = AVERROR_SIGN * EDOM; (**< Number syntax expected in filename. *)
+ AVERROR_INVALIDDATA = AVERROR_SIGN * EINVAL; (**< invalid data found *)
+ AVERROR_NOMEM = AVERROR_SIGN * ENOMEM; (**< not enough memory *)
+ AVERROR_NOFMT = AVERROR_SIGN * EILSEQ; (**< unknown format *)
+ AVERROR_NOTSUPP = AVERROR_SIGN * ENOSYS; (**< Operation not supported. *)
+ AVERROR_NOENT = AVERROR_SIGN * ENOENT; (**< No such file or directory. *)
+{$IF LIBAVCODEC_VERSION >= 52017000} // 52.17.0
+ AVERROR_EOF = AVERROR_SIGN * EPIPE; (**< End of file. *)
+{$IFEND}
+ // Note: function calls as constant-initializers are invalid
+ //AVERROR_PATCHWELCOME = -MKTAG('P','A','W','E'); {**< Not yet implemented in FFmpeg. Patches welcome. *}
+ AVERROR_PATCHWELCOME = -(ord('P') or (ord('A') shl 8) or (ord('W') shl 16) or (ord('E') shl 24));
+{$IFEND}
+
+{$IF LIBAVUTIL_VERSION >= 50013000} // >= 50.13.0
+(*
+ * Puts a description of the AVERROR code errnum in errbuf.
+ * In case of failure the global variable errno is set to indicate the
+ * error. Even in case of failure av_strerror() will print a generic
+ * error message indicating the errnum provided to errbuf.
+ *
+ * @param errbuf_size the size in bytes of errbuf
+ * @return 0 on success, a negative value if a description for errnum
+ * cannot be found
+ *)
+
+function av_strerror(errnum: cint; errbuf: Pchar; errbuf_size: cint): cint;
+ cdecl; external av__util;
+{$IFEND}
diff --git a/us_maker_edition/src/lib/ffmpeg/mathematics.pas b/us_maker_edition/src/lib/ffmpeg/mathematics.pas
index 3a1f6a2c..a2a59107 100644
--- a/us_maker_edition/src/lib/ffmpeg/mathematics.pas
+++ b/us_maker_edition/src/lib/ffmpeg/mathematics.pas
@@ -14,19 +14,15 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libavutil/mathematics.h
- * avutil max. version 50.15.2, revision 23059, Tue May 11 22:10:00 2010 CET
+ * avutil max. version 50.16.0, revision 23255, Sun May 30 22:05:00 2010 CET
*
*)
diff --git a/us_maker_edition/src/lib/ffmpeg/opt.pas b/us_maker_edition/src/lib/ffmpeg/opt.pas
index c755ed35..0e73726f 100644
--- a/us_maker_edition/src/lib/ffmpeg/opt.pas
+++ b/us_maker_edition/src/lib/ffmpeg/opt.pas
@@ -15,9 +15,7 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
@@ -25,7 +23,7 @@
* - Changes and updates by the UltraStar Deluxe Team
*
* Conversion of libavcodec/opt.h
- * Max. avcodec version: 52.67.0, revision 23057, Tue May 11 18:17 2010 CET
+ * Max. avcodec version: 52.72.0, revision 23338, Sun May 30 20:55 2010 CET
*
*)
diff --git a/us_maker_edition/src/lib/ffmpeg/rational.pas b/us_maker_edition/src/lib/ffmpeg/rational.pas
index 6ca9c0d1..e96fccd6 100644
--- a/us_maker_edition/src/lib/ffmpeg/rational.pas
+++ b/us_maker_edition/src/lib/ffmpeg/rational.pas
@@ -15,19 +15,15 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* This is a part of Pascal porting of ffmpeg.
* - Originally by Victor Zinetz for Delphi and Free Pascal on Windows.
* - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT
* in the source codes.
* - Changes and updates by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libavutil/rational.h
- * avutil max. version 50.15.2, revision 23059, Tue May 11 22:10:00 2010 CET
+ * avutil max. version 50.16.0, revision 23255, Sun May 30 22:05:00 2010 CET
*
*)
diff --git a/us_maker_edition/src/lib/ffmpeg/swscale.pas b/us_maker_edition/src/lib/ffmpeg/swscale.pas
index 4f923f04..f7c11d0d 100644
--- a/us_maker_edition/src/lib/ffmpeg/swscale.pas
+++ b/us_maker_edition/src/lib/ffmpeg/swscale.pas
@@ -14,16 +14,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *)
-
-(*
+ *
* FFmpeg Pascal port
* - Ported by the UltraStar Deluxe Team
- *)
-
-(*
+ *
* Conversion of libswscale/swscale.h
- * Max. version: 0.10.0, revision 31050, Tue May 11 19:40:00 2010 CET
+ * Max. version: 0.10.0, revision 31279, Tue May 30 20:25:00 2010 CET
*)
unit swscale;
diff --git a/us_maker_edition/src/lib/pcre/pcre.pas b/us_maker_edition/src/lib/pcre/pcre.pas
index 50e3371a..ab04a9d0 100644
--- a/us_maker_edition/src/lib/pcre/pcre.pas
+++ b/us_maker_edition/src/lib/pcre/pcre.pas
@@ -503,6 +503,9 @@ implementation
uses
SysUtils,
+ {$IFDEF DARWIN}
+ UConfig,
+ {$ENDIF DARWIN}
{$IFDEF MSWINDOWS}
Windows;
{$ENDIF MSWINDOWS}
@@ -536,7 +539,11 @@ const
libpcremodulename = 'libpcre.so.0';
{$ENDIF LINUX}
{$IFDEF DARWIN}
- libpcremodulename = 'libpcre.dylib';
+ libpcremodulename = 'libpcre.dylib'; // this is a symlink for example to libpcre.0.0.1.dylib
+ // the system resolves the symlink
+ libpcremodulenamefromfink = LIBPCRE_LIBDIR + '/' + libpcremodulename;
+ // the install command in the Makefile resolves the symlink, when installing libpcre.dylib in the app bundle
+ libpcremodulenamefromexecutable = '@executable_path/' + libpcremodulename;
{$ENDIF DARWIN}
PCRECompileExportName = 'pcre_compile';
PCRECompile2ExportName = 'pcre_compile2';
@@ -780,6 +787,14 @@ begin
{$IFDEF UNIX}
PCRELib := dlopen(PAnsiChar(libpcremodulename), RTLD_NOW);
{$ENDIF UNIX}
+
+ {$IFDEF DARWIN} // if libpcre.dylib is not found, first try from the executable path and finally from the fink path
+ if PCRELib = INVALID_MODULEHANDLE_VALUE then
+ PCRELib := dlopen(PAnsiChar(libpcremodulenamefromexecutable), RTLD_NOW);
+ if PCRELib = INVALID_MODULEHANDLE_VALUE then
+ PCRELib := dlopen(PAnsiChar(libpcremodulenamefromfink), RTLD_NOW);
+ {$ENDIF DARWIN}
+
Result := PCRELib <> INVALID_MODULEHANDLE_VALUE;
if Result then
begin
diff --git a/us_maker_edition/src/media/UAudioDecoder_FFmpeg.pas b/us_maker_edition/src/media/UAudioDecoder_FFmpeg.pas
index 7ca98885..c64d79c2 100644
--- a/us_maker_edition/src/media/UAudioDecoder_FFmpeg.pas
+++ b/us_maker_edition/src/media/UAudioDecoder_FFmpeg.pas
@@ -86,60 +86,60 @@ const
type
TFFmpegDecodeStream = class(TAudioDecodeStream)
private
- StateLock: PSDL_Mutex;
+ fStateLock: PSDL_Mutex;
- EOFState: boolean; // end-of-stream flag (locked by StateLock)
- ErrorState: boolean; // error flag (locked by StateLock)
+ fEOFState: boolean; // end-of-stream flag (locked by StateLock)
+ fErrorState: boolean; // error flag (locked by StateLock)
- QuitRequest: boolean; // (locked by StateLock)
- ParserIdleCond: PSDL_Cond;
+ fQuitRequest: boolean; // (locked by StateLock)
+ fParserIdleCond: PSDL_Cond;
// parser pause/resume data
- ParserLocked: boolean;
- ParserPauseRequestCount: integer;
- ParserUnlockedCond: PSDL_Cond;
- ParserResumeCond: PSDL_Cond;
-
- SeekRequest: boolean; // (locked by StateLock)
- SeekFlags: integer; // (locked by StateLock)
- SeekPos: double; // stream position to seek for (in secs) (locked by StateLock)
- SeekFlush: boolean; // true if the buffers should be flushed after seeking (locked by StateLock)
+ fParserLocked: boolean;
+ fParserPauseRequestCount: integer;
+ fParserUnlockedCond: PSDL_Cond;
+ fParserResumeCond: PSDL_Cond;
+
+ fSeekRequest: boolean; // (locked by StateLock)
+ fSeekFlags: integer; // (locked by StateLock)
+ fSeekPos: double; // stream position to seek for (in secs) (locked by StateLock)
+ fSeekFlush: boolean; // true if the buffers should be flushed after seeking (locked by StateLock)
SeekFinishedCond: PSDL_Cond;
- Loop: boolean; // (locked by StateLock)
+ fLoop: boolean; // (locked by StateLock)
- ParseThread: PSDL_Thread;
- PacketQueue: TPacketQueue;
+ fParseThread: PSDL_Thread;
+ fPacketQueue: TPacketQueue;
- FormatInfo: TAudioFormatInfo;
+ fFormatInfo: TAudioFormatInfo;
// FFmpeg specific data
- FormatCtx: PAVFormatContext;
- CodecCtx: PAVCodecContext;
- Codec: PAVCodec;
+ fFormatCtx: PAVFormatContext;
+ fCodecCtx: PAVCodecContext;
+ fCodec: PAVCodec;
- AudioStreamIndex: integer;
- AudioStream: PAVStream;
- AudioStreamPos: double; // stream position in seconds (locked by DecoderLock)
+ fAudioStreamIndex: integer;
+ fAudioStream: PAVStream;
+ fAudioStreamPos: double; // stream position in seconds (locked by DecoderLock)
// decoder pause/resume data
- DecoderLocked: boolean;
- DecoderPauseRequestCount: integer;
- DecoderUnlockedCond: PSDL_Cond;
- DecoderResumeCond: PSDL_Cond;
+ fDecoderLocked: boolean;
+ fDecoderPauseRequestCount: integer;
+ fDecoderUnlockedCond: PSDL_Cond;
+ fDecoderResumeCond: PSDL_Cond;
// state-vars for DecodeFrame (locked by DecoderLock)
- AudioPaket: TAVPacket;
- AudioPaketData: PByteArray;
- AudioPaketSize: integer;
- AudioPaketSilence: integer; // number of bytes of silence to return
+ fAudioPaket: TAVPacket;
+ fAudioPaketData: PByteArray;
+ fAudioPaketSize: integer;
+ fAudioPaketSilence: integer; // number of bytes of silence to return
// state-vars for AudioCallback (locked by DecoderLock)
- AudioBufferPos: integer;
- AudioBufferSize: integer;
- AudioBuffer: PByteArray;
+ fAudioBufferPos: integer;
+ fAudioBufferSize: integer;
+ fAudioBuffer: PByteArray;
- Filename: IPath;
+ fFilename: IPath;
procedure SetPositionIntern(Time: real; Flush: boolean; Blocking: boolean);
procedure SetEOF(State: boolean); {$IFDEF HasInline}inline;{$ENDIF}
@@ -199,13 +199,13 @@ constructor TFFmpegDecodeStream.Create();
begin
inherited Create();
- StateLock := SDL_CreateMutex();
- ParserUnlockedCond := SDL_CreateCond();
- ParserResumeCond := SDL_CreateCond();
- ParserIdleCond := SDL_CreateCond();
+ fStateLock := SDL_CreateMutex();
+ fParserUnlockedCond := SDL_CreateCond();
+ fParserResumeCond := SDL_CreateCond();
+ fParserIdleCond := SDL_CreateCond();
SeekFinishedCond := SDL_CreateCond();
- DecoderUnlockedCond := SDL_CreateCond();
- DecoderResumeCond := SDL_CreateCond();
+ fDecoderUnlockedCond := SDL_CreateCond();
+ fDecoderResumeCond := SDL_CreateCond();
// according to the documentation of avcodec_decode_audio(2), sample-data
// should be aligned on a 16 byte boundary. Otherwise internal calls
@@ -222,33 +222,33 @@ begin
// AudioBuffer was not aligned to a 16 byte boundary. The {$ALIGN x} directive
// was not applicable as Delphi in contrast to FPC provides at most 8 byte
// alignment ({$ALIGN 16} is not supported) by this directive.
- AudioBuffer := GetAlignedMem(AUDIO_BUFFER_SIZE, 16);
+ fAudioBuffer := GetAlignedMem(AUDIO_BUFFER_SIZE, 16);
Reset();
end;
procedure TFFmpegDecodeStream.Reset();
begin
- ParseThread := nil;
+ fParseThread := nil;
- EOFState := false;
- ErrorState := false;
- Loop := false;
- QuitRequest := false;
+ fEOFState := false;
+ fErrorState := false;
+ fLoop := false;
+ fQuitRequest := false;
- AudioPaketData := nil;
- AudioPaketSize := 0;
- AudioPaketSilence := 0;
+ fAudioPaketData := nil;
+ fAudioPaketSize := 0;
+ fAudioPaketSilence := 0;
- AudioBufferPos := 0;
- AudioBufferSize := 0;
+ fAudioBufferPos := 0;
+ fAudioBufferSize := 0;
- ParserLocked := false;
- ParserPauseRequestCount := 0;
- DecoderLocked := false;
- DecoderPauseRequestCount := 0;
+ fParserLocked := false;
+ fParserPauseRequestCount := 0;
+ fDecoderLocked := false;
+ fDecoderPauseRequestCount := 0;
- FillChar(AudioPaket, SizeOf(TAVPacket), 0);
+ FillChar(fAudioPaket, SizeOf(TAVPacket), 0);
end;
{*
@@ -258,15 +258,15 @@ destructor TFFmpegDecodeStream.Destroy();
begin
Close();
- SDL_DestroyMutex(StateLock);
- SDL_DestroyCond(ParserUnlockedCond);
- SDL_DestroyCond(ParserResumeCond);
- SDL_DestroyCond(ParserIdleCond);
+ SDL_DestroyMutex(fStateLock);
+ SDL_DestroyCond(fParserUnlockedCond);
+ SDL_DestroyCond(fParserResumeCond);
+ SDL_DestroyCond(fParserIdleCond);
SDL_DestroyCond(SeekFinishedCond);
- SDL_DestroyCond(DecoderUnlockedCond);
- SDL_DestroyCond(DecoderResumeCond);
+ SDL_DestroyCond(fDecoderUnlockedCond);
+ SDL_DestroyCond(fDecoderResumeCond);
- FreeAlignedMem(AudioBuffer);
+ FreeAlignedMem(fAudioBuffer);
inherited;
end;
@@ -287,20 +287,20 @@ begin
Exit;
end;
- Self.Filename := Filename;
+ Self.fFilename := Filename;
// use custom 'ufile' protocol for UTF-8 support
- if (av_open_input_file(FormatCtx, PAnsiChar('ufile:'+FileName.ToUTF8), nil, 0, nil) <> 0) then
+ if (av_open_input_file(fFormatCtx, PAnsiChar('ufile:'+FileName.ToUTF8), nil, 0, nil) <> 0) then
begin
Log.LogError('av_open_input_file failed: "' + Filename.ToNative + '"', 'UAudio_FFmpeg');
Exit;
end;
// generate PTS values if they do not exist
- FormatCtx^.flags := FormatCtx^.flags or AVFMT_FLAG_GENPTS;
+ fFormatCtx^.flags := fFormatCtx^.flags or AVFMT_FLAG_GENPTS;
// retrieve stream information
- if (av_find_stream_info(FormatCtx) < 0) then
+ if (av_find_stream_info(fFormatCtx) < 0) then
begin
Log.LogError('av_find_stream_info failed: "' + Filename.ToNative + '"', 'UAudio_FFmpeg');
Close();
@@ -308,14 +308,14 @@ begin
end;
// FIXME: hack used by ffplay. Maybe should not use url_feof() to test for the end
- FormatCtx^.pb.eof_reached := 0;
+ fFormatCtx^.pb.eof_reached := 0;
{$IFDEF DebugFFmpegDecode}
- dump_format(FormatCtx, 0, PAnsiChar(Filename.ToNative), 0);
+ dump_format(fFormatCtx, 0, PAnsiChar(Filename.ToNative), 0);
{$ENDIF}
- AudioStreamIndex := FFmpegCore.FindAudioStreamIndex(FormatCtx);
- if (AudioStreamIndex < 0) then
+ fAudioStreamIndex := FFmpegCore.FindAudioStreamIndex(fFormatCtx);
+ if (fAudioStreamIndex < 0) then
begin
Log.LogError('FindAudioStreamIndex: No Audio-stream found "' + Filename.ToNative + '"', 'UAudio_FFmpeg');
Close();
@@ -324,9 +324,9 @@ begin
//Log.LogStatus('AudioStreamIndex is: '+ inttostr(ffmpegStreamID), 'UAudio_FFmpeg');
- AudioStream := FormatCtx.streams[AudioStreamIndex];
- AudioStreamPos := 0;
- CodecCtx := AudioStream^.codec;
+ fAudioStream := fFormatCtx.streams[fAudioStreamIndex];
+ fAudioStreamPos := 0;
+ fCodecCtx := fAudioStream^.codec;
// TODO: should we use this or not? Should we allow 5.1 channel audio?
(*
@@ -338,21 +338,21 @@ begin
{$IFEND}
*)
- Codec := avcodec_find_decoder(CodecCtx^.codec_id);
- if (Codec = nil) then
+ fCodec := avcodec_find_decoder(fCodecCtx^.codec_id);
+ if (fCodec = nil) then
begin
Log.LogError('Unsupported codec!', 'UAudio_FFmpeg');
- CodecCtx := nil;
+ fCodecCtx := nil;
Close();
Exit;
end;
// set debug options
- CodecCtx^.debug_mv := 0;
- CodecCtx^.debug := 0;
+ fCodecCtx^.debug_mv := 0;
+ fCodecCtx^.debug := 0;
// detect bug-workarounds automatically
- CodecCtx^.workaround_bugs := FF_BUG_AUTODETECT;
+ fCodecCtx^.workaround_bugs := FF_BUG_AUTODETECT;
// error resilience strategy (careful/compliant/agressive/very_aggressive)
//CodecCtx^.error_resilience := FF_ER_CAREFUL; //FF_ER_COMPLIANT;
// allow non spec compliant speedup tricks.
@@ -362,7 +362,7 @@ begin
// fail if called concurrently by different threads.
FFmpegCore.LockAVCodec();
try
- AVResult := avcodec_open(CodecCtx, Codec);
+ AVResult := avcodec_open(fCodecCtx, fCodec);
finally
FFmpegCore.UnlockAVCodec();
end;
@@ -375,23 +375,23 @@ begin
// now initialize the audio-format
- if (not FFmpegCore.ConvertFFmpegToAudioFormat(CodecCtx^.sample_fmt, SampleFormat)) then
+ if (not FFmpegCore.ConvertFFmpegToAudioFormat(fCodecCtx^.sample_fmt, SampleFormat)) then
begin
// try standard format
SampleFormat := asfS16;
end;
- if CodecCtx^.channels > 255 then
+ if fCodecCtx^.channels > 255 then
Log.LogStatus('Error: CodecCtx^.channels > 255', 'TFFmpegDecodeStream.Open');
- FormatInfo := TAudioFormatInfo.Create(
- byte(CodecCtx^.channels),
- CodecCtx^.sample_rate,
+ fFormatInfo := TAudioFormatInfo.Create(
+ byte(fCodecCtx^.channels),
+ fCodecCtx^.sample_rate,
SampleFormat
);
- PacketQueue := TPacketQueue.Create();
+ fPacketQueue := TPacketQueue.Create();
// finally start the decode thread
- ParseThread := SDL_CreateThread(@ParseThreadMain, Self);
+ fParseThread := SDL_CreateThread(@ParseThreadMain, Self);
Result := true;
end;
@@ -403,47 +403,47 @@ begin
// wake threads waiting for packet-queue data
// Note: normally, there are no waiting threads. If there were waiting
// ones, they would block the audio-callback thread.
- if (assigned(PacketQueue)) then
- PacketQueue.Abort();
+ if (assigned(fPacketQueue)) then
+ fPacketQueue.Abort();
// send quit request (to parse-thread etc)
- SDL_mutexP(StateLock);
- QuitRequest := true;
- SDL_CondBroadcast(ParserIdleCond);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fQuitRequest := true;
+ SDL_CondBroadcast(fParserIdleCond);
+ SDL_mutexV(fStateLock);
// abort parse-thread
- if (ParseThread <> nil) then
+ if (fParseThread <> nil) then
begin
// and wait until it terminates
- SDL_WaitThread(ParseThread, ThreadResult);
- ParseThread := nil;
+ SDL_WaitThread(fParseThread, ThreadResult);
+ fParseThread := nil;
end;
// Close the codec
- if (CodecCtx <> nil) then
+ if (fCodecCtx <> nil) then
begin
// avcodec_close() is not thread-safe
FFmpegCore.LockAVCodec();
try
- avcodec_close(CodecCtx);
+ avcodec_close(fCodecCtx);
finally
FFmpegCore.UnlockAVCodec();
end;
- CodecCtx := nil;
+ fCodecCtx := nil;
end;
// Close the video file
- if (FormatCtx <> nil) then
+ if (fFormatCtx <> nil) then
begin
- av_close_input_file(FormatCtx);
- FormatCtx := nil;
+ av_close_input_file(fFormatCtx);
+ fFormatCtx := nil;
end;
PerformOnClose();
- FreeAndNil(PacketQueue);
- FreeAndNil(FormatInfo);
+ FreeAndNil(fPacketQueue);
+ FreeAndNil(fFormatInfo);
end;
function TFFmpegDecodeStream.GetLength(): real;
@@ -451,54 +451,54 @@ begin
// do not forget to consider the start_time value here
// there is a type size mismatch warnign because start_time and duration are cint64.
// So, in principle there could be an overflow when doing the sum.
- Result := (FormatCtx^.start_time + FormatCtx^.duration) / AV_TIME_BASE;
+ Result := (fFormatCtx^.start_time + fFormatCtx^.duration) / AV_TIME_BASE;
end;
function TFFmpegDecodeStream.GetAudioFormatInfo(): TAudioFormatInfo;
begin
- Result := FormatInfo;
+ Result := fFormatInfo;
end;
function TFFmpegDecodeStream.IsEOF(): boolean;
begin
- SDL_mutexP(StateLock);
- Result := EOFState;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Result := fEOFState;
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.SetEOF(State: boolean);
begin
- SDL_mutexP(StateLock);
- EOFState := State;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fEOFState := State;
+ SDL_mutexV(fStateLock);
end;
function TFFmpegDecodeStream.IsError(): boolean;
begin
- SDL_mutexP(StateLock);
- Result := ErrorState;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Result := fErrorState;
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.SetError(State: boolean);
begin
- SDL_mutexP(StateLock);
- ErrorState := State;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fErrorState := State;
+ SDL_mutexV(fStateLock);
end;
function TFFmpegDecodeStream.IsSeeking(): boolean;
begin
- SDL_mutexP(StateLock);
- Result := SeekRequest;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Result := fSeekRequest;
+ SDL_mutexV(fStateLock);
end;
function TFFmpegDecodeStream.IsQuit(): boolean;
begin
- SDL_mutexP(StateLock);
- Result := QuitRequest;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Result := fQuitRequest;
+ SDL_mutexV(fStateLock);
end;
function TFFmpegDecodeStream.GetPosition(): real;
@@ -509,11 +509,11 @@ begin
// ReadData() does not return all of the buffer retrieved by DecodeFrame().
// Determine the size of the unused part of the decode-buffer.
- BufferSizeSec := (AudioBufferSize - AudioBufferPos) /
- FormatInfo.BytesPerSec;
+ BufferSizeSec := (fAudioBufferSize - fAudioBufferPos) /
+ fFormatInfo.BytesPerSec;
// subtract the size of unused buffer-data from the audio clock.
- Result := AudioStreamPos - BufferSizeSec;
+ Result := fAudioStreamPos - BufferSizeSec;
ResumeDecoder();
end;
@@ -525,16 +525,16 @@ end;
function TFFmpegDecodeStream.GetLoop(): boolean;
begin
- SDL_mutexP(StateLock);
- Result := Loop;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Result := fLoop;
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.SetLoop(Enabled: boolean);
begin
- SDL_mutexP(StateLock);
- Loop := Enabled;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fLoop := Enabled;
+ SDL_mutexV(fStateLock);
end;
@@ -544,25 +544,25 @@ end;
procedure TFFmpegDecodeStream.PauseParser();
begin
- if (SDL_ThreadID() = ParseThread.threadid) then
+ if (SDL_ThreadID() = fParseThread.threadid) then
Exit;
- SDL_mutexP(StateLock);
- Inc(ParserPauseRequestCount);
- while (ParserLocked) do
- SDL_CondWait(ParserUnlockedCond, StateLock);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Inc(fParserPauseRequestCount);
+ while (fParserLocked) do
+ SDL_CondWait(fParserUnlockedCond, fStateLock);
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.ResumeParser();
begin
- if (SDL_ThreadID() = ParseThread.threadid) then
+ if (SDL_ThreadID() = fParseThread.threadid) then
Exit;
- SDL_mutexP(StateLock);
- Dec(ParserPauseRequestCount);
- SDL_CondSignal(ParserResumeCond);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Dec(fParserPauseRequestCount);
+ SDL_CondSignal(fParserResumeCond);
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.SetPositionIntern(Time: real; Flush: boolean; Blocking: boolean);
@@ -575,36 +575,36 @@ begin
// - Last lock the state lock because we are manipulating some shared state-vars.
PauseParser();
PauseDecoder();
- SDL_mutexP(StateLock);
+ SDL_mutexP(fStateLock);
try
- EOFState := false;
- ErrorState := false;
+ fEOFState := false;
+ fErrorState := false;
// do not seek if we are already at the correct position.
// This is important especially for seeking to position 0 if we already are
// at the beginning. Although seeking with AVSEEK_FLAG_BACKWARD for pos 0 works,
// it is still a bit choppy (although much better than w/o AVSEEK_FLAG_BACKWARD).
- if (Time = AudioStreamPos) then
+ if (Time = fAudioStreamPos) then
Exit;
// configure seek parameters
- SeekPos := Time;
- SeekFlush := Flush;
- SeekFlags := AVSEEK_FLAG_ANY;
- SeekRequest := true;
+ fSeekPos := Time;
+ fSeekFlush := Flush;
+ fSeekFlags := AVSEEK_FLAG_ANY;
+ fSeekRequest := true;
// Note: the BACKWARD-flag seeks to the first position <= the position
// searched for. Otherwise e.g. position 0 might not be seeked correct.
// For some reason ffmpeg sometimes doesn't use position 0 but the key-frame
// following. In streams with few key-frames (like many flv-files) the next
// key-frame after 0 might be 5secs ahead.
- if (Time <= AudioStreamPos) then
- SeekFlags := SeekFlags or AVSEEK_FLAG_BACKWARD;
+ if (Time <= fAudioStreamPos) then
+ fSeekFlags := fSeekFlags or AVSEEK_FLAG_BACKWARD;
// send a reuse signal in case the parser was stopped (e.g. because of an EOF)
- SDL_CondSignal(ParserIdleCond);
+ SDL_CondSignal(fParserIdleCond);
finally
- SDL_mutexV(StateLock);
+ SDL_mutexV(fStateLock);
ResumeDecoder();
ResumeParser();
end;
@@ -612,10 +612,10 @@ begin
// in blocking mode, wait until seeking is done
if (Blocking) then
begin
- SDL_mutexP(StateLock);
- while (SeekRequest) do
- SDL_CondWait(SeekFinishedCond, StateLock);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ while (fSeekRequest) do
+ SDL_CondWait(SeekFinishedCond, fStateLock);
+ SDL_mutexV(fStateLock);
end;
end;
@@ -635,10 +635,10 @@ begin
while (ParseLoop()) do
begin
// wait for reuse or destruction of stream
- SDL_mutexP(StateLock);
- while (not (SeekRequest or QuitRequest)) do
- SDL_CondWait(ParserIdleCond, StateLock);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ while (not (fSeekRequest or fQuitRequest)) do
+ SDL_CondWait(fParserIdleCond, fStateLock);
+ SDL_mutexV(fStateLock);
end;
end;
@@ -669,19 +669,19 @@ var
// instead and give priority to the threads requesting the parser to pause.
procedure LockParser();
begin
- SDL_mutexP(StateLock);
- while (ParserPauseRequestCount > 0) do
- SDL_CondWait(ParserResumeCond, StateLock);
- ParserLocked := true;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ while (fParserPauseRequestCount > 0) do
+ SDL_CondWait(fParserResumeCond, fStateLock);
+ fParserLocked := true;
+ SDL_mutexV(fStateLock);
end;
procedure UnlockParser();
begin
- SDL_mutexP(StateLock);
- ParserLocked := false;
- SDL_CondBroadcast(ParserUnlockedCond);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fParserLocked := false;
+ SDL_CondBroadcast(fParserUnlockedCond);
+ SDL_mutexV(fStateLock);
end;
begin
@@ -699,92 +699,92 @@ begin
end;
// handle seek-request (Note: no need to lock SeekRequest here)
- if (SeekRequest) then
+ if (fSeekRequest) then
begin
// first try: seek on the audio stream
- SeekTarget := Round(SeekPos / av_q2d(AudioStream^.time_base));
+ SeekTarget := Round(fSeekPos / av_q2d(fAudioStream^.time_base));
StartSilence := 0;
- if (SeekTarget < AudioStream^.start_time) then
- StartSilence := (AudioStream^.start_time - SeekTarget) * av_q2d(AudioStream^.time_base);
- ErrorCode := av_seek_frame(FormatCtx, AudioStreamIndex, SeekTarget, SeekFlags);
+ if (SeekTarget < fAudioStream^.start_time) then
+ StartSilence := (fAudioStream^.start_time - SeekTarget) * av_q2d(fAudioStream^.time_base);
+ ErrorCode := av_seek_frame(fFormatCtx, fAudioStreamIndex, SeekTarget, fSeekFlags);
if (ErrorCode < 0) then
begin
// second try: seek on the default stream (necessary for flv-videos and some ogg-files)
- SeekTarget := Round(SeekPos * AV_TIME_BASE);
+ SeekTarget := Round(fSeekPos * AV_TIME_BASE);
StartSilence := 0;
- if (SeekTarget < FormatCtx^.start_time) then
- StartSilence := (FormatCtx^.start_time - SeekTarget) / AV_TIME_BASE;
- ErrorCode := av_seek_frame(FormatCtx, -1, SeekTarget, SeekFlags);
+ if (SeekTarget < fFormatCtx^.start_time) then
+ StartSilence := (fFormatCtx^.start_time - SeekTarget) / AV_TIME_BASE;
+ ErrorCode := av_seek_frame(fFormatCtx, -1, SeekTarget, fSeekFlags);
end;
// pause decoder and lock state (keep the lock-order to avoid deadlocks).
// Note that the decoder does not block in the packet-queue in seeking state,
// so locking the decoder here does not cause a dead-lock.
PauseDecoder();
- SDL_mutexP(StateLock);
+ SDL_mutexP(fStateLock);
try
if (ErrorCode < 0) then
begin
// seeking failed
- ErrorState := true;
- Log.LogStatus('Seek Error in "'+FormatCtx^.filename+'"', 'UAudioDecoder_FFmpeg');
+ fErrorState := true;
+ Log.LogError('Seek Error in "'+fFormatCtx^.filename+'"', 'UAudioDecoder_FFmpeg');
end
else
begin
- if (SeekFlush) then
+ if (fSeekFlush) then
begin
// flush queue (we will send a Flush-Packet when seeking is finished)
- PacketQueue.Flush();
+ fPacketQueue.Flush();
// flush the decode buffers
- AudioBufferSize := 0;
- AudioBufferPos := 0;
- AudioPaketSize := 0;
- AudioPaketSilence := 0;
+ fAudioBufferSize := 0;
+ fAudioBufferPos := 0;
+ fAudioPaketSize := 0;
+ fAudioPaketSilence := 0;
FlushCodecBuffers();
// Set preliminary stream position. The position will be set to
// the correct value as soon as the first packet is decoded.
- AudioStreamPos := SeekPos;
+ fAudioStreamPos := fSeekPos;
end
else
begin
// request avcodec buffer flush
- PacketQueue.PutStatus(PKT_STATUS_FLAG_FLUSH, nil);
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_FLUSH, nil);
end;
// fill the gap between position 0 and start_time with silence
// but not if we are in loop mode
- if ((StartSilence > 0) and (not Loop)) then
+ if ((StartSilence > 0) and (not fLoop)) then
begin
GetMem(StartSilencePtr, SizeOf(StartSilence));
StartSilencePtr^ := StartSilence;
- PacketQueue.PutStatus(PKT_STATUS_FLAG_EMPTY, StartSilencePtr);
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_EMPTY, StartSilencePtr);
end;
end;
- SeekRequest := false;
+ fSeekRequest := false;
SDL_CondBroadcast(SeekFinishedCond);
finally
- SDL_mutexV(StateLock);
+ SDL_mutexV(fStateLock);
ResumeDecoder();
end;
end;
- if (PacketQueue.GetSize() > MAX_AUDIOQ_SIZE) then
+ if (fPacketQueue.GetSize() > MAX_AUDIOQ_SIZE) then
begin
SDL_Delay(10);
Continue;
end;
- if (av_read_frame(FormatCtx, Packet) < 0) then
+ if (av_read_frame(fFormatCtx, Packet) < 0) then
begin
// failed to read a frame, check reason
{$IF (LIBAVFORMAT_VERSION_MAJOR >= 52)}
- ByteIOCtx := FormatCtx^.pb;
+ ByteIOCtx := fFormatCtx^.pb;
{$ELSE}
- ByteIOCtx := @FormatCtx^.pb;
+ ByteIOCtx := @fFormatCtx^.pb;
{$IFEND}
// check for end-of-file (eof is not an error)
@@ -799,7 +799,7 @@ begin
else
begin
// signal end-of-file
- PacketQueue.PutStatus(PKT_STATUS_FLAG_EOF, nil);
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_EOF, nil);
Exit;
end;
end;
@@ -808,17 +808,26 @@ begin
if (url_ferror(ByteIOCtx) <> 0) then
begin
// an error occured -> abort and wait for repositioning or termination
- PacketQueue.PutStatus(PKT_STATUS_FLAG_ERROR, nil);
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_ERROR, nil);
Exit;
end;
- // no error -> wait for user input
- SDL_Delay(100);
- Continue;
+ // url_feof() does not detect an EOF for some files
+ // so we have to do it this way.
+ if ((fFormatCtx^.file_size <> 0) and
+ (ByteIOCtx^.pos >= fFormatCtx^.file_size)) then
+ begin
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_EOF, nil);
+ Exit;
+ end;
+
+ // unknown error occured, exit
+ fPacketQueue.PutStatus(PKT_STATUS_FLAG_ERROR, nil);
+ Exit;
end;
- if (Packet.stream_index = AudioStreamIndex) then
- PacketQueue.Put(@Packet)
+ if (Packet.stream_index = fAudioStreamIndex) then
+ fPacketQueue.Put(@Packet)
else
av_free_packet(@Packet);
@@ -835,28 +844,28 @@ end;
procedure TFFmpegDecodeStream.PauseDecoder();
begin
- SDL_mutexP(StateLock);
- Inc(DecoderPauseRequestCount);
- while (DecoderLocked) do
- SDL_CondWait(DecoderUnlockedCond, StateLock);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Inc(fDecoderPauseRequestCount);
+ while (fDecoderLocked) do
+ SDL_CondWait(fDecoderUnlockedCond, fStateLock);
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.ResumeDecoder();
begin
- SDL_mutexP(StateLock);
- Dec(DecoderPauseRequestCount);
- SDL_CondSignal(DecoderResumeCond);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ Dec(fDecoderPauseRequestCount);
+ SDL_CondSignal(fDecoderResumeCond);
+ SDL_mutexV(fStateLock);
end;
procedure TFFmpegDecodeStream.FlushCodecBuffers();
begin
// if no flush operation is specified, avcodec_flush_buffers will not do anything.
- if (@CodecCtx.codec.flush <> nil) then
+ if (@fCodecCtx.codec.flush <> nil) then
begin
// flush buffers used by avcodec_decode_audio, etc.
- avcodec_flush_buffers(CodecCtx);
+ avcodec_flush_buffers(fCodecCtx);
end
else
begin
@@ -865,8 +874,8 @@ begin
// We will just reopen the codec.
FFmpegCore.LockAVCodec();
try
- avcodec_close(CodecCtx);
- avcodec_open(CodecCtx, Codec);
+ avcodec_close(fCodecCtx);
+ avcodec_open(fCodecCtx, fCodec);
finally
FFmpegCore.UnlockAVCodec();
end;
@@ -892,27 +901,27 @@ begin
begin
// for titles with start_time > 0 we have to generate silence
// until we reach the pts of the first data packet.
- if (AudioPaketSilence > 0) then
+ if (fAudioPaketSilence > 0) then
begin
- DataSize := Min(AudioPaketSilence, BufferSize);
+ DataSize := Min(fAudioPaketSilence, BufferSize);
FillChar(Buffer[0], DataSize, 0);
- Dec(AudioPaketSilence, DataSize);
- AudioStreamPos := AudioStreamPos + DataSize / FormatInfo.BytesPerSec;
+ Dec(fAudioPaketSilence, DataSize);
+ fAudioStreamPos := fAudioStreamPos + DataSize / fFormatInfo.BytesPerSec;
Result := DataSize;
Exit;
end;
// read packet data
- while (AudioPaketSize > 0) do
+ while (fAudioPaketSize > 0) do
begin
DataSize := BufferSize;
{$IF LIBAVCODEC_VERSION >= 51030000} // 51.30.0
- PaketDecodedSize := avcodec_decode_audio2(CodecCtx, PSmallint(Buffer),
- DataSize, AudioPaketData, AudioPaketSize);
+ PaketDecodedSize := avcodec_decode_audio2(fCodecCtx, PSmallint(Buffer),
+ DataSize, fAudioPaketData, fAudioPaketSize);
{$ELSE}
- PaketDecodedSize := avcodec_decode_audio(CodecCtx, PSmallint(Buffer),
- DataSize, AudioPaketData, AudioPaketSize);
+ PaketDecodedSize := avcodec_decode_audio(fCodecCtx, PSmallint(Buffer),
+ DataSize, fAudioPaketData, fAudioPaketSize);
{$IFEND}
if(PaketDecodedSize < 0) then
@@ -921,19 +930,19 @@ begin
{$IFDEF DebugFFmpegDecode}
DebugWriteln('Skip audio frame');
{$ENDIF}
- AudioPaketSize := 0;
+ fAudioPaketSize := 0;
Break;
end;
- Inc(AudioPaketData, PaketDecodedSize);
- Dec(AudioPaketSize, PaketDecodedSize);
+ Inc(fAudioPaketData, PaketDecodedSize);
+ Dec(fAudioPaketSize, PaketDecodedSize);
// check if avcodec_decode_audio returned data, otherwise fetch more frames
if (DataSize <= 0) then
Continue;
// update stream position by the amount of fetched data
- AudioStreamPos := AudioStreamPos + DataSize / FormatInfo.BytesPerSec;
+ fAudioStreamPos := fAudioStreamPos + DataSize / fFormatInfo.BytesPerSec;
// we have data, return it and come back for more later
Result := DataSize;
@@ -941,8 +950,8 @@ begin
end;
// free old packet data
- if (AudioPaket.data <> nil) then
- av_free_packet(@AudioPaket);
+ if (fAudioPaket.data <> nil) then
+ av_free_packet(@fAudioPaket);
// do not block queue on seeking (to avoid deadlocks on the DecoderLock)
if (IsSeeking()) then
@@ -952,17 +961,17 @@ begin
// request a new packet and block if none available.
// If this fails, the queue was aborted.
- if (PacketQueue.Get(AudioPaket, BlockQueue) <= 0) then
+ if (fPacketQueue.Get(fAudioPaket, BlockQueue) <= 0) then
Exit;
// handle Status-packet
- if (PAnsiChar(AudioPaket.data) = STATUS_PACKET) then
+ if (PAnsiChar(fAudioPaket.data) = STATUS_PACKET) then
begin
- AudioPaket.data := nil;
- AudioPaketData := nil;
- AudioPaketSize := 0;
+ fAudioPaket.data := nil;
+ fAudioPaketData := nil;
+ fAudioPaketSize := 0;
- case (AudioPaket.flags) of
+ case (fAudioPaket.flags) of
PKT_STATUS_FLAG_FLUSH:
begin
// just used if SetPositionIntern was called without the flush flag.
@@ -984,9 +993,9 @@ begin
end;
PKT_STATUS_FLAG_EMPTY:
begin
- SilenceDuration := PDouble(PacketQueue.GetStatusInfo(AudioPaket))^;
- AudioPaketSilence := Round(SilenceDuration * FormatInfo.SampleRate) * FormatInfo.FrameSize;
- PacketQueue.FreeStatusInfo(AudioPaket);
+ SilenceDuration := PDouble(fPacketQueue.GetStatusInfo(fAudioPaket))^;
+ fAudioPaketSilence := Round(SilenceDuration * fFormatInfo.SampleRate) * fFormatInfo.FrameSize;
+ fPacketQueue.FreeStatusInfo(fAudioPaket);
end
else
begin
@@ -997,20 +1006,20 @@ begin
Continue;
end;
- AudioPaketData := AudioPaket.data;
- AudioPaketSize := AudioPaket.size;
+ fAudioPaketData := fAudioPaket.data;
+ fAudioPaketSize := fAudioPaket.size;
// if available, update the stream position to the presentation time of this package
- if(AudioPaket.pts <> AV_NOPTS_VALUE) then
+ if(fAudioPaket.pts <> AV_NOPTS_VALUE) then
begin
{$IFDEF DebugFFmpegDecode}
- TmpPos := AudioStreamPos;
+ TmpPos := fAudioStreamPos;
{$ENDIF}
- AudioStreamPos := av_q2d(AudioStream^.time_base) * AudioPaket.pts;
+ fAudioStreamPos := av_q2d(fAudioStream^.time_base) * fAudioPaket.pts;
{$IFDEF DebugFFmpegDecode}
- DebugWriteln('Timestamp: ' + floattostrf(AudioStreamPos, ffFixed, 15, 3) + ' ' +
+ DebugWriteln('Timestamp: ' + floattostrf(fAudioStreamPos, ffFixed, 15, 3) + ' ' +
'(Calc: ' + floattostrf(TmpPos, ffFixed, 15, 3) + '), ' +
- 'Diff: ' + floattostrf(AudioStreamPos-TmpPos, ffFixed, 15, 3));
+ 'Diff: ' + floattostrf(fAudioStreamPos-TmpPos, ffFixed, 15, 3));
{$ENDIF}
end;
end;
@@ -1025,19 +1034,19 @@ var
// prioritize pause requests
procedure LockDecoder();
begin
- SDL_mutexP(StateLock);
- while (DecoderPauseRequestCount > 0) do
- SDL_CondWait(DecoderResumeCond, StateLock);
- DecoderLocked := true;
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ while (fDecoderPauseRequestCount > 0) do
+ SDL_CondWait(fDecoderResumeCond, fStateLock);
+ fDecoderLocked := true;
+ SDL_mutexV(fStateLock);
end;
procedure UnlockDecoder();
begin
- SDL_mutexP(StateLock);
- DecoderLocked := false;
- SDL_CondBroadcast(DecoderUnlockedCond);
- SDL_mutexV(StateLock);
+ SDL_mutexP(fStateLock);
+ fDecoderLocked := false;
+ SDL_CondBroadcast(fDecoderUnlockedCond);
+ SDL_mutexV(fStateLock);
end;
begin
@@ -1056,15 +1065,15 @@ begin
while (BufferPos < BufferSize) do
begin
// check if we need more data
- if (AudioBufferPos >= AudioBufferSize) then
+ if (fAudioBufferPos >= fAudioBufferSize) then
begin
- AudioBufferPos := 0;
+ fAudioBufferPos := 0;
// we have already sent all our data; get more
- AudioBufferSize := DecodeFrame(AudioBuffer, AUDIO_BUFFER_SIZE);
+ fAudioBufferSize := DecodeFrame(fAudioBuffer, AUDIO_BUFFER_SIZE);
// check for errors or EOF
- if(AudioBufferSize < 0) then
+ if(fAudioBufferSize < 0) then
begin
Result := BufferPos;
Exit;
@@ -1072,16 +1081,16 @@ begin
end;
// calc number of new bytes in the decode-buffer
- CopyByteCount := AudioBufferSize - AudioBufferPos;
+ CopyByteCount := fAudioBufferSize - fAudioBufferPos;
// resize copy-count if more bytes available than needed (remaining bytes are used the next time)
RemainByteCount := BufferSize - BufferPos;
if (CopyByteCount > RemainByteCount) then
CopyByteCount := RemainByteCount;
- Move(AudioBuffer[AudioBufferPos], Buffer[BufferPos], CopyByteCount);
+ Move(fAudioBuffer[fAudioBufferPos], Buffer[BufferPos], CopyByteCount);
Inc(BufferPos, CopyByteCount);
- Inc(AudioBufferPos, CopyByteCount);
+ Inc(fAudioBufferPos, CopyByteCount);
end;
finally
UnlockDecoder();
diff --git a/us_maker_edition/src/media/UAudioInput_Bass.pas b/us_maker_edition/src/media/UAudioInput_Bass.pas
index b8f914c5..0e79b343 100644
--- a/us_maker_edition/src/media/UAudioInput_Bass.pas
+++ b/us_maker_edition/src/media/UAudioInput_Bass.pas
@@ -471,9 +471,12 @@ begin
Flags := BASS_RecordGetInput(SourceIndex, PSingle(nil)^);
if (Flags <> -1) then
begin
- // is the current source a mic-source?
- if ((Flags and BASS_INPUT_TYPE_MIC) <> 0) then
+ // chech if current source is a mic (and none was set before)
+ if ((Flags and BASS_INPUT_TYPE_MIC) <> 0) and
+ (BassDevice.MicSource = -1) then
+ begin
BassDevice.MicSource := SourceIndex;
+ end;
end;
Inc(SourceIndex);
diff --git a/us_maker_edition/src/media/UMediaCore_FFmpeg.pas b/us_maker_edition/src/media/UMediaCore_FFmpeg.pas
index 2d572ff2..eb136995 100644
--- a/us_maker_edition/src/media/UMediaCore_FFmpeg.pas
+++ b/us_maker_edition/src/media/UMediaCore_FFmpeg.pas
@@ -41,6 +41,7 @@ uses
avformat,
avutil,
avio,
+ swscale,
UMusic,
ULog,
UPath;
@@ -121,9 +122,83 @@ const
var
Instance: TMediaCore_FFmpeg;
+function AV_VERSION_INT(a, b, c: cardinal): cuint;
+begin
+ Result := (a shl 16) or (b shl 8) or c;
+end;
+
+procedure CheckVersions();
+var
+ libVersion: cuint;
+ headerVersion: cuint;
+
+ function hexVerToStr(Version: cuint): string;
+ var
+ Major, Minor, Release: cardinal;
+ begin
+ Major := (Version shr 16) and $FF;;
+ Minor := (Version shr 8) and $FF;
+ Release := Version and $FF;
+ Result := Format('%d.%d.%d', [Major, Minor, Release]);
+ end;
+
+begin
+ libVersion := avcodec_version();
+ headerVersion := AV_VERSION_INT(
+ LIBAVCODEC_VERSION_MAJOR,
+ LIBAVCODEC_VERSION_MINOR,
+ LIBAVCODEC_VERSION_RELEASE);
+ if (libVersion <> headerVersion) then
+ begin
+ Log.LogError(Format('%s header (%s) and DLL (%s) versions do not match.',
+ ['libavcodec', hexVerToStr(headerVersion), hexVerToStr(libVersion)]));
+ end;
+
+ {$IF LIBAVFORMAT_VERSION >= 52020000} // 52.20.0
+ libVersion := avformat_version();
+ headerVersion := AV_VERSION_INT(
+ LIBAVFORMAT_VERSION_MAJOR,
+ LIBAVFORMAT_VERSION_MINOR,
+ LIBAVFORMAT_VERSION_RELEASE);
+ if (libVersion <> headerVersion) then
+ begin
+ Log.LogError(Format('%s header (%s) and DLL (%s) versions do not match.',
+ ['libavformat', hexVerToStr(headerVersion), hexVerToStr(libVersion)]));
+ end;
+ {$IFEND}
+
+ {$IF LIBAVUTIL_VERSION >= 49008000} // 49.8.0
+ libVersion := avutil_version();
+ headerVersion := AV_VERSION_INT(
+ LIBAVUTIL_VERSION_MAJOR,
+ LIBAVUTIL_VERSION_MINOR,
+ LIBAVUTIL_VERSION_RELEASE);
+ if (libVersion <> headerVersion) then
+ begin
+ Log.LogError(Format('%s header (%s) and DLL (%s) versions do not match.',
+ ['libavutil', hexVerToStr(headerVersion), hexVerToStr(libVersion)]));
+ end;
+ {$IFEND}
+
+ {$IF LIBSWSCALE_VERSION >= 000006001} // 0.6.1
+ libVersion := swscale_version();
+ headerVersion := AV_VERSION_INT(
+ LIBSWSCALE_VERSION_MAJOR,
+ LIBSWSCALE_VERSION_MINOR,
+ LIBSWSCALE_VERSION_RELEASE);
+ if (libVersion <> headerVersion) then
+ begin
+ Log.LogError(Format('%s header (%s) and DLL (%s) versions do not match.',
+ ['libswscale', hexVerToStr(headerVersion), hexVerToStr(libVersion)]));
+ end;
+ {$IFEND}
+end;
+
constructor TMediaCore_FFmpeg.Create();
begin
inherited;
+
+ CheckVersions();
av_register_protocol(@UTF8FileProtocol);
AVCodecLock := SDL_CreateMutex();
end;
diff --git a/us_maker_edition/src/media/UMedia_dummy.pas b/us_maker_edition/src/media/UMedia_dummy.pas
index 8ebfd3a9..46cbe6b8 100644
--- a/us_maker_edition/src/media/UMedia_dummy.pas
+++ b/us_maker_edition/src/media/UMedia_dummy.pas
@@ -112,9 +112,43 @@ type
procedure SetPosition(Time: real);
function GetPosition: real;
- procedure GetFrame(Time: Extended);
- procedure DrawGL(Screen: integer);
+ procedure SetScreen(Screen: integer);
+ function GetScreen(): integer;
+
+ procedure SetScreenPosition(X, Y, Z: double);
+ procedure GetScreenPosition(var X, Y, Z: double);
+
+ procedure SetWidth(Width: double);
+ function GetWidth(): double;
+
+ procedure SetHeight(Height: double);
+ function GetHeight(): double;
+
+ procedure SetFrameRange(Range: TRectCoords);
+ function GetFrameRange(): TRectCoords;
+
+ function GetFrameAspect(): real;
+
+ procedure SetAspectCorrection(AspectCorrection: TAspectCorrection);
+ function GetAspectCorrection(): TAspectCorrection;
+
+ procedure SetAlpha(Alpha: double);
+ function GetAlpha(): double;
+
+ procedure SetReflectionSpacing(Spacing: double);
+ function GetReflectionSpacing(): double;
+ procedure GetFrame(Time: Extended);
+ procedure Draw();
+ procedure DrawReflection();
+
+ property Screen: integer read GetScreen;
+ property Width: double read GetWidth write SetWidth;
+ property Height: double read GetHeight write SetWidth;
+ property Alpha: double read GetAlpha write SetAlpha;
+ property ReflectionSpacing: double read GetReflectionSpacing write SetReflectionSpacing;
+ property FrameAspect: real read GetFrameAspect;
+ property AspectCorrection: TAspectCorrection read GetAspectCorrection;
property Loop: boolean read GetLoop write SetLoop;
property Position: real read GetPosition write SetPosition;
end;
@@ -329,11 +363,97 @@ begin
Result := 0;
end;
+procedure TVideo_Dummy.SetScreen(Screen: integer);
+begin
+end;
+
+function TVideo_Dummy.GetScreen(): integer;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_Dummy.SetScreenPosition(X, Y, Z: double);
+begin
+end;
+
+procedure TVideo_Dummy.GetScreenPosition(var X, Y, Z: double);
+begin
+ X := 0;
+ Y := 0;
+ Z := 0;
+end;
+
+procedure TVideo_Dummy.SetWidth(Width: double);
+begin
+end;
+
+function TVideo_Dummy.GetWidth(): double;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_Dummy.SetHeight(Height: double);
+begin
+end;
+
+function TVideo_Dummy.GetHeight(): double;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_Dummy.SetFrameRange(Range: TRectCoords);
+begin
+end;
+
+function TVideo_Dummy.GetFrameRange(): TRectCoords;
+begin
+ Result.Left := 0;
+ Result.Right := 0;
+ Result.Upper := 0;
+ Result.Lower := 0;
+end;
+
+function TVideo_Dummy.GetFrameAspect(): real;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_Dummy.SetAspectCorrection(AspectCorrection: TAspectCorrection);
+begin
+end;
+
+function TVideo_Dummy.GetAspectCorrection(): TAspectCorrection;
+begin
+ Result := acoStretch;
+end;
+
+procedure TVideo_Dummy.SetAlpha(Alpha: double);
+begin
+end;
+
+function TVideo_Dummy.GetAlpha(): double;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_Dummy.SetReflectionSpacing(Spacing: double);
+begin
+end;
+
+function TVideo_Dummy.GetReflectionSpacing(): double;
+begin
+ Result := 0;
+end;
+
procedure TVideo_Dummy.GetFrame(Time: Extended);
begin
end;
-procedure TVideo_Dummy.DrawGL(Screen: integer);
+procedure TVideo_Dummy.Draw();
+begin
+end;
+
+procedure TVideo_Dummy.DrawReflection();
begin
end;
diff --git a/us_maker_edition/src/media/UVideo.pas b/us_maker_edition/src/media/UVideo.pas
index c7d59fc8..add7bdc8 100644
--- a/us_maker_edition/src/media/UVideo.pas
+++ b/us_maker_edition/src/media/UVideo.pas
@@ -48,24 +48,6 @@ interface
{$DEFINE PIXEL_FMT_BGR}
{$ENDIF}
-type
- {**
- * vacStretch: Stretch to screen width and height
- * - ignores aspect
- * + no borders
- * + no image data loss
- * vacCrop: Stretch to screen width or height, crop the other dimension
- * + keeps aspect
- * + no borders
- * - frame borders are cropped (image data loss)
- * vacLetterBox: Stretch to screen width, add bars at or crop top and bottom
- * + keeps aspect
- * - borders at top and bottom
- * o top/bottom is cropped if width < height (unusual)
- *}
- TAspectCorrection = (acoStretch, acoCrop, acoLetterBox);
-
-
implementation
uses
@@ -112,12 +94,9 @@ const
PIXEL_FMT_SIZE = 3;
{$ENDIF}
-type
- TRectCoords = record
- Left, Right: double;
- Upper, Lower: double;
- end;
+ ReflectionH = 0.5; //reflection height (50%)
+type
IVideo_FFmpeg = interface (IVideo)
['{E640E130-C8C0-4399-AF02-67A3569313AB}']
function Open(const FileName: IPath): boolean;
@@ -149,11 +128,25 @@ type
fSwScaleContext: PSwsContext;
{$ENDIF}
+ fScreen: integer; //actual screen to draw on
+
+ fPosX: double;
+ fPosY: double;
+ fPosZ: double;
+ fWidth: double;
+ fHeight: double;
+
+ fFrameRange: TRectCoords;
+
+ fAlpha: double;
+ fReflectionSpacing: double;
+
+
fAspect: real; //**< width/height ratio
fAspectCorrection: TAspectCorrection;
- fTimeBase: extended; //**< FFmpeg time base per time unit
- fFrameTime: extended; //**< video time position (absolute)
+ fFrameDuration: extended; //**< duration of a video frame in seconds (= 1/fps)
+ fFrameTime: extended; //**< video time position (absolute)
fLoopTime: extended; //**< start time of the current loop
fPboEnabled: boolean;
@@ -163,6 +156,8 @@ type
procedure SynchronizeTime(Frame: PAVFrame; var pts: double);
procedure GetVideoRect(var ScreenRect, TexRect: TRectCoords);
+ procedure DrawBorders(ScreenRect: TRectCoords);
+ procedure DrawBordersReflected(ScreenRect: TRectCoords; AlphaUpper, AlphaLower: double);
procedure ShowDebugInfo();
@@ -183,8 +178,39 @@ type
procedure SetPosition(Time: real);
function GetPosition: real;
- procedure GetFrame(Time: Extended);
- procedure DrawGL(Screen: integer);
+ procedure SetScreen(Screen: integer);
+ function GetScreen(): integer;
+
+ procedure SetScreenPosition(X, Y, Z: double);
+ procedure GetScreenPosition(var X, Y, Z: double);
+
+ procedure SetWidth(Width: double);
+ function GetWidth(): double;
+
+ procedure SetHeight(Height: double);
+ function GetHeight(): double;
+
+ {**
+ * Sub-image of the video frame to draw.
+ * This can be used for zooming or similar purposes.
+ *}
+ procedure SetFrameRange(Range: TRectCoords);
+ function GetFrameRange(): TRectCoords;
+
+ function GetFrameAspect(): real;
+
+ procedure SetAspectCorrection(AspectCorrection: TAspectCorrection);
+ function GetAspectCorrection(): TAspectCorrection;
+
+ procedure SetAlpha(Alpha: double);
+ function GetAlpha(): double;
+
+ procedure SetReflectionSpacing(Spacing: double);
+ function GetReflectionSpacing(): double;
+
+ procedure GetFrame(Time: Extended);
+ procedure Draw();
+ procedure DrawReflection();
end;
TVideoPlayback_FFmpeg = class( TInterfacedObject, IVideoPlayback )
@@ -406,19 +432,18 @@ begin
fAspect := fAspect * fCodecContext^.width /
fCodecContext^.height;
- fTimeBase := 1/av_q2d(fStream^.r_frame_rate);
+ fFrameDuration := 1/av_q2d(fStream^.r_frame_rate);
- // hack to get reasonable timebase (for divx and others)
- if (fTimeBase < 0.02) then // 0.02 <-> 50 fps
+ // hack to get reasonable framerate (for divx and others)
+ if (fFrameDuration < 0.02) then // 0.02 <-> 50 fps
begin
- fTimeBase := av_q2d(fStream^.r_frame_rate);
- while (fTimeBase > 50) do
- fTimeBase := fTimeBase/10;
- fTimeBase := 1/fTimeBase;
+ fFrameDuration := av_q2d(fStream^.r_frame_rate);
+ while (fFrameDuration > 50) do
+ fFrameDuration := fFrameDuration/10;
+ fFrameDuration := 1/fFrameDuration;
end;
- Log.LogInfo('VideoTimeBase: ' + floattostr(fTimeBase), 'TVideoPlayback_ffmpeg.Open');
- Log.LogInfo('Framerate: '+inttostr(floor(1/fTimeBase))+'fps', 'TVideoPlayback_ffmpeg.Open');
+ Log.LogInfo('Framerate: '+inttostr(floor(1/fFrameDuration))+'fps', 'TVideoPlayback_ffmpeg.Open');
{$IFDEF UseSWScale}
// if available get a SWScale-context -> faster than the deprecated img_convert().
@@ -484,7 +509,7 @@ begin
fOpened := False;
fPaused := False;
- fTimeBase := 0;
+ fFrameDuration := 0;
fFrameTime := 0;
fStream := nil;
fStreamIndex := -1;
@@ -498,6 +523,22 @@ begin
fPboId := 0;
fAspectCorrection := acoCrop;
+
+ fScreen := 1;
+
+ fPosX := 0;
+ fPosY := 0;
+ fPosZ := 0;
+ fWidth := RenderW;
+ fHeight := RenderH;
+
+ fFrameRange.Left := 0;
+ fFrameRange.Right := 1;
+ fFrameRange.Upper := 0;
+ fFrameRange.Lower := 1;
+
+ fAlpha := 1;
+ fReflectionSpacing := 0;
end;
procedure TVideo_FFmpeg.Close;
@@ -686,12 +727,6 @@ begin
Exit;
{*
- * TODO:
- * Check if it is correct to assume that fTimeBase is the time of one frame?
- * The tutorial and FFPlay do not make this assumption.
- *}
-
- {*
* Synchronization - begin
*}
@@ -710,12 +745,12 @@ begin
{$IFDEF DebugDisplay}
DebugWriteln('Time: '+inttostr(floor(Time*1000)) + sLineBreak +
'VideoTime: '+inttostr(floor(fFrameTime*1000)) + sLineBreak +
- 'TimeBase: '+inttostr(floor(fTimeBase*1000)) + sLineBreak +
+ 'TimeBase: '+inttostr(floor(fFrameDuration*1000)) + sLineBreak +
'TimeDiff: '+inttostr(floor(TimeDifference*1000)));
{$endif}
// check if time has reached the next frame
- if (TimeDiff < fTimeBase) then
+ if (TimeDiff < fFrameDuration) then
begin
{$ifdef DebugFrames}
// frame delay debug display
@@ -726,7 +761,7 @@ begin
DebugWriteln('not getting new frame' + sLineBreak +
'Time: '+inttostr(floor(Time*1000)) + sLineBreak +
'VideoTime: '+inttostr(floor(fFrameTime*1000)) + sLineBreak +
- 'TimeBase: '+inttostr(floor(fTimeBase*1000)) + sLineBreak +
+ 'TimeBase: '+inttostr(floor(fFrameDuration*1000)) + sLineBreak +
'TimeDiff: '+inttostr(floor(TimeDifference*1000)));
{$endif}
@@ -745,9 +780,9 @@ begin
// check if we have to skip frames
// Either if we are one frame behind or if the skip threshold has been reached.
- // Do not skip if the difference is less than fTimeBase as there is no next frame.
- // Note: We assume that fTimeBase is the length of one frame.
- if (TimeDiff >= Max(fTimeBase, SKIP_FRAME_DIFF)) then
+ // Do not skip if the difference is less than fFrameDuration as there is no next frame.
+ // Note: We assume that fFrameDuration is the length of one frame.
+ if (TimeDiff >= Max(fFrameDuration, SKIP_FRAME_DIFF)) then
begin
{$IFDEF DebugFrames}
//frame drop debug display
@@ -755,13 +790,13 @@ begin
{$ENDIF}
{$IFDEF DebugDisplay}
DebugWriteln('skipping frames' + sLineBreak +
- 'TimeBase: '+inttostr(floor(fTimeBase*1000)) + sLineBreak +
+ 'TimeBase: '+inttostr(floor(fFrameDuration*1000)) + sLineBreak +
'TimeDiff: '+inttostr(floor(TimeDifference*1000)));
{$endif}
// update video-time
- DropFrameCount := Trunc(TimeDiff / fTimeBase);
- fFrameTime := fFrameTime + DropFrameCount*fTimeBase;
+ DropFrameCount := Trunc(TimeDiff / fFrameDuration);
+ fFrameTime := fFrameTime + DropFrameCount*fFrameDuration;
// skip frames
for i := 1 to DropFrameCount do
@@ -889,72 +924,142 @@ procedure TVideo_FFmpeg.GetVideoRect(var ScreenRect, TexRect: TRectCoords);
var
ScreenAspect: double; // aspect of screen resolution
ScaledVideoWidth, ScaledVideoHeight: double;
+
begin
// Three aspects to take into account:
// 1. Screen/display resolution (e.g. 1920x1080 -> 16:9)
- // 2. Render aspect (fixed to 800x600 -> 4:3)
+ // 2. Render aspect (fWidth x fHeight -> variable)
// 3. Movie aspect (video frame aspect stored in fAspect)
- ScreenAspect := ScreenW / ScreenH;
+ ScreenAspect := fWidth*((ScreenW/Screens)/RenderW)/(fHeight*(ScreenH/RenderH));
case fAspectCorrection of
acoStretch: begin
- ScaledVideoWidth := RenderW;
- ScaledVideoHeight := RenderH;
+ ScaledVideoWidth := fWidth;
+ ScaledVideoHeight := fHeight;
end;
+
acoCrop: begin
if (ScreenAspect >= fAspect) then
begin
- ScaledVideoWidth := RenderW;
- ScaledVideoHeight := RenderH * ScreenAspect/fAspect;
- end
- else
+ ScaledVideoWidth := fWidth;
+ ScaledVideoHeight := fHeight * ScreenAspect/fAspect;
+ end else
begin
- ScaledVideoHeight := RenderH;
- ScaledVideoWidth := RenderW * fAspect/ScreenAspect;
+ ScaledVideoHeight := fHeight;
+ ScaledVideoWidth := fWidth * fAspect/ScreenAspect;
end;
end;
+
acoLetterBox: begin
- ScaledVideoWidth := RenderW;
- ScaledVideoHeight := RenderH * ScreenAspect/fAspect;
- end
- else
+ if (ScreenAspect <= fAspect) then
+ begin
+ ScaledVideoWidth := fWidth;
+ ScaledVideoHeight := fHeight * ScreenAspect/fAspect;
+ end else
+ begin
+ ScaledVideoHeight := fHeight;
+ ScaledVideoWidth := fWidth * fAspect/ScreenAspect;
+ end;
+ end else
raise Exception.Create('Unhandled aspect correction!');
end;
- // center video
- ScreenRect.Left := (RenderW - ScaledVideoWidth) / 2;
+ //center video
+ ScreenRect.Left := (fWidth - ScaledVideoWidth) / 2 + fPosX;
ScreenRect.Right := ScreenRect.Left + ScaledVideoWidth;
- ScreenRect.Upper := (RenderH - ScaledVideoHeight) / 2;
+ ScreenRect.Upper := (fHeight - ScaledVideoHeight) / 2 + fPosY;
ScreenRect.Lower := ScreenRect.Upper + ScaledVideoHeight;
// texture contains right/lower (power-of-2) padding.
// Determine the texture coords of the video frame.
- TexRect.Left := 0;
- TexRect.Right := fCodecContext^.width / fTexWidth;
- TexRect.Upper := 0;
- TexRect.Lower := fCodecContext^.height / fTexHeight;
+ TexRect.Left := (fCodecContext^.width / fTexWidth) * fFrameRange.Left;
+ TexRect.Right := (fCodecContext^.width / fTexWidth) * fFrameRange.Right;
+ TexRect.Upper := (fCodecContext^.height / fTexHeight) * fFrameRange.Upper;
+ TexRect.Lower := (fCodecContext^.height / fTexHeight) * fFrameRange.Lower;
end;
-procedure TVideo_FFmpeg.DrawGL(Screen: integer);
-var
- ScreenRect: TRectCoords;
- TexRect: TRectCoords;
+procedure TVideo_FFmpeg.DrawBorders(ScreenRect: TRectCoords);
+ procedure DrawRect(left, right, upper, lower: double);
+ begin
+ glColor4f(0, 0, 0, fAlpha);
+ glBegin(GL_QUADS);
+ glVertex3f(left, upper, fPosZ);
+ glVertex3f(right, upper, fPosZ);
+ glVertex3f(right, lower, fPosZ);
+ glVertex3f(left, lower, fPosZ);
+ glEnd;
+ end;
begin
- // have a nice black background to draw on
- // (even if there were errors opening the vid)
- // TODO: Philipp: IMO TVideoPlayback should not clear the screen at
- // all, because clearing is already done by the background class
- // at this moment.
- if (Screen = 1) then
+ //upper border
+ if(ScreenRect.Upper > fPosY) then
+ DrawRect(fPosX, fPosX+fWidth, fPosY, ScreenRect.Upper);
+
+ //lower border
+ if(ScreenRect.Lower < fPosY+fHeight) then
+ DrawRect(fPosX, fPosX+fWidth, ScreenRect.Lower, fPosY+fHeight);
+
+ //left border
+ if(ScreenRect.Left > fPosX) then
+ DrawRect(fPosX, ScreenRect.Left, fPosY, fPosY+fHeight);
+
+ //right border
+ if(ScreenRect.Right < fPosX+fWidth) then
+ DrawRect(ScreenRect.Right, fPosX+fWidth, fPosY, fPosY+fHeight);
+end;
+
+procedure TVideo_FFmpeg.DrawBordersReflected(ScreenRect: TRectCoords; AlphaUpper, AlphaLower: double);
+var
+ rPosUpper, rPosLower: double;
+
+ procedure DrawRect(left, right, upper, lower: double);
+ var
+ AlphaTop: double;
+ AlphaBottom: double;
+
begin
- // It is important that we just clear once before we start
- // drawing the first screen otherwise the first screen
- // would be cleared by the drawgl called when the second
- // screen is drawn
- glClearColor(0, 0, 0, 0);
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
+ AlphaTop := AlphaUpper+(AlphaLower-AlphaUpper)*(upper-rPosUpper)/(fHeight*ReflectionH);
+ AlphaBottom := AlphaLower+(AlphaUpper-AlphaLower)*(rPosLower-lower)/(fHeight*ReflectionH);
+
+ glBegin(GL_QUADS);
+ glColor4f(0, 0, 0, AlphaTop);
+ glVertex3f(left, upper, fPosZ);
+ glVertex3f(right, upper, fPosZ);
+
+ glColor4f(0, 0, 0, AlphaBottom);
+ glVertex3f(right, lower, fPosZ);
+ glVertex3f(left, lower, fPosZ);
+ glEnd;
end;
+begin
+ rPosUpper := fPosY+fHeight+fReflectionSpacing;
+ rPosLower := rPosUpper+fHeight*ReflectionH;
+
+ //upper border
+ if(ScreenRect.Upper > rPosUpper) then
+ DrawRect(fPosX, fPosX+fWidth, rPosUpper, ScreenRect.Upper);
+ //lower border
+ if(ScreenRect.Lower < rPosLower) then
+ DrawRect(fPosX, fPosX+fWidth, ScreenRect.Lower, rPosLower);
+
+ //left border
+ if(ScreenRect.Left > fPosX) then
+ DrawRect(fPosX, ScreenRect.Left, rPosUpper, rPosLower);
+
+ //right border
+ if(ScreenRect.Right < fPosX+fWidth) then
+ DrawRect(ScreenRect.Right, fPosX+fWidth, rPosUpper, rPosLower);
+end;
+
+
+procedure TVideo_FFmpeg.Draw();
+var
+ ScreenRect: TRectCoords;
+ TexRect: TRectCoords;
+ HeightFactor: double;
+ WidthFactor: double;
+
+begin
// exit if there's nothing to draw
if (not fOpened) then
Exit;
@@ -966,31 +1071,53 @@ begin
// get texture and screen positions
GetVideoRect(ScreenRect, TexRect);
- // we could use blending for brightness control, but do we need this?
- glDisable(GL_BLEND);
+ WidthFactor := (ScreenW/Screens) / RenderW;
+ HeightFactor := ScreenH / RenderH;
+
+ glScissor(
+ round(fPosX*WidthFactor + (ScreenW/Screens)*(fScreen-1)),
+ round((RenderH-fPosY-fHeight)*HeightFactor),
+ round(fWidth*WidthFactor),
+ round(fHeight*HeightFactor)
+ );
+
+ glEnable(GL_SCISSOR_TEST);
+ glEnable(GL_BLEND);
+ glDepthRange(0, 10);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, fFrameTex);
- glColor3f(1, 1, 1);
+ glColor4f(1, 1, 1, fAlpha);
glBegin(GL_QUADS);
// upper-left coord
glTexCoord2f(TexRect.Left, TexRect.Upper);
- glVertex2f(ScreenRect.Left, ScreenRect.Upper);
+ glVertex3f(ScreenRect.Left, ScreenRect.Upper, fPosZ);
// lower-left coord
glTexCoord2f(TexRect.Left, TexRect.Lower);
- glVertex2f(ScreenRect.Left, ScreenRect.Lower);
+ glVertex3f(ScreenRect.Left, ScreenRect.Lower, fPosZ);
// lower-right coord
glTexCoord2f(TexRect.Right, TexRect.Lower);
- glVertex2f(ScreenRect.Right, ScreenRect.Lower);
+ glVertex3f(ScreenRect.Right, ScreenRect.Lower, fPosZ);
// upper-right coord
glTexCoord2f(TexRect.Right, TexRect.Upper);
- glVertex2f(ScreenRect.Right, ScreenRect.Upper);
+ glVertex3f(ScreenRect.Right, ScreenRect.Upper, fPosZ);
glEnd;
+
glDisable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, 0);
+
+ //draw black borders
+ DrawBorders(ScreenRect);
+
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_BLEND);
+ glDisable(GL_SCISSOR_TEST);
{$IFDEF VideoBenchmark}
Log.BenchmarkEnd(15);
- Log.LogBenchmark('DrawGL', 15);
+ Log.LogBenchmark('Draw', 15);
{$ENDIF}
{$IF Defined(Info) or Defined(DebugFrames)}
@@ -998,10 +1125,98 @@ begin
{$IFEND}
end;
+procedure TVideo_FFmpeg.DrawReflection();
+var
+ ScreenRect: TRectCoords;
+ TexRect: TRectCoords;
+ HeightFactor: double;
+ WidthFactor: double;
+
+ AlphaTop: double;
+ AlphaBottom: double;
+
+ AlphaUpper: double;
+ AlphaLower: double;
+
+begin
+ // exit if there's nothing to draw
+ if (not fOpened) then
+ Exit;
+
+ // get texture and screen positions
+ GetVideoRect(ScreenRect, TexRect);
+
+ WidthFactor := (ScreenW/Screens) / RenderW;
+ HeightFactor := ScreenH / RenderH;
+
+ glScissor(
+ round(fPosX*WidthFactor + (ScreenW/Screens)*(fScreen-1)),
+ round((RenderH-fPosY-fHeight-fReflectionSpacing-fHeight*ReflectionH)*HeightFactor),
+ round(fWidth*WidthFactor),
+ round(fHeight*HeightFactor*ReflectionH)
+ );
+
+ glEnable(GL_SCISSOR_TEST);
+ glEnable(GL_BLEND);
+ glDepthRange(0, 10);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_DEPTH_TEST);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, fFrameTex);
+
+ //calculate new ScreenRect coordinates for Reflection
+ ScreenRect.Lower := fPosY + fHeight + fReflectionSpacing
+ + (ScreenRect.Upper-fPosY) + (ScreenRect.Lower-ScreenRect.Upper)*ReflectionH;
+ ScreenRect.Upper := fPosY + fHeight + fReflectionSpacing
+ + (ScreenRect.Upper-fPosY);
+
+ AlphaUpper := fAlpha-0.3;
+ AlphaLower := 0;
+
+ AlphaTop := AlphaUpper-(AlphaLower-AlphaUpper)*
+ (ScreenRect.Upper-fPosY-fHeight-fReflectionSpacing)/fHeight;
+ AlphaBottom := AlphaLower+(AlphaUpper-AlphaLower)*
+ (fPosY+fHeight+fReflectionSpacing+fHeight*ReflectionH-ScreenRect.Lower)/fHeight;
+
+ glBegin(GL_QUADS);
+ //Top Left
+ glColor4f(1, 1, 1, AlphaTop);
+ glTexCoord2f(TexRect.Left, TexRect.Lower);
+ glVertex3f(ScreenRect.Left, ScreenRect.Upper, fPosZ);
+
+ //Bottom Left
+ glColor4f(1, 1, 1, AlphaBottom);
+ glTexCoord2f(TexRect.Left, (TexRect.Lower-TexRect.Upper)*(1-ReflectionH));
+ glVertex3f(ScreenRect.Left, ScreenRect.Lower, fPosZ);
+
+ //Bottom Right
+ glColor4f(1, 1, 1, AlphaBottom);
+ glTexCoord2f(TexRect.Right, (TexRect.Lower-TexRect.Upper)*(1-ReflectionH));
+ glVertex3f(ScreenRect.Right, ScreenRect.Lower, fPosZ);
+
+ //Top Right
+ glColor4f(1, 1, 1, AlphaTop);
+ glTexCoord2f(TexRect.Right, TexRect.Lower);
+ glVertex3f(ScreenRect.Right, ScreenRect.Upper, fPosZ);
+ glEnd;
+
+ glDisable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, 0);
+
+ //draw black borders
+ DrawBordersReflected(ScreenRect, AlphaUpper, AlphaLower);
+
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_BLEND);
+ glDisable(GL_SCISSOR_TEST);
+end;
+
procedure TVideo_FFmpeg.ShowDebugInfo();
begin
{$IFDEF Info}
- if (fFrameTime+fTimeBase < 0) then
+ if (fFrameTime+fFrameDuration < 0) then
begin
glColor4f(0.7, 1, 0.3, 1);
SetFontStyle (1);
@@ -1093,7 +1308,10 @@ begin
fEOF := false;
fFrameTexValid := false;
- if (av_seek_frame(fFormatContext, fStreamIndex, Floor(Time/fTimeBase), SeekFlags) < 0) then
+ if (av_seek_frame(fFormatContext,
+ fStreamIndex,
+ Round(Time / av_q2d(fStream^.time_base)),
+ SeekFlags) < 0) then
begin
Log.LogError('av_seek_frame() failed', 'TVideoPlayback_ffmpeg.SetPosition');
Exit;
@@ -1107,6 +1325,111 @@ begin
Result := fFrameTime;
end;
+procedure TVideo_FFmpeg.SetScreen(Screen: integer);
+begin
+ fScreen := Screen;
+end;
+
+function TVideo_FFmpeg.GetScreen(): integer;
+begin
+ Result := fScreen;
+end;
+
+
+procedure TVideo_FFmpeg.SetScreenPosition(X, Y, Z: double);
+begin
+ fPosX := X;
+ fPosY := Y;
+ fPosZ := Z;
+end;
+
+procedure TVideo_FFmpeg.GetScreenPosition(var X, Y, Z: double);
+begin
+ X := fPosX;
+ Y := fPosY;
+ Z := fPosZ;
+end;
+
+
+procedure TVideo_FFmpeg.SetWidth(Width: double);
+begin
+ fWidth := Width;
+end;
+
+function TVideo_FFmpeg.GetWidth(): double;
+begin
+ Result := fWidth;
+end;
+
+
+procedure TVideo_FFmpeg.SetHeight(Height: double);
+begin
+ fHeight := Height;
+end;
+
+function TVideo_FFmpeg.GetHeight(): double;
+begin
+ Result := fHeight;
+end;
+
+
+procedure TVideo_FFmpeg.SetFrameRange(Range: TRectCoords);
+begin
+ fFrameRange := Range;
+end;
+
+function TVideo_FFmpeg.GetFrameRange(): TRectCoords;
+begin
+ Result := fFrameRange;
+end;
+
+
+function TVideo_FFmpeg.GetFrameAspect(): real;
+begin
+ Result := fAspect;
+end;
+
+
+procedure TVideo_FFmpeg.SetAspectCorrection(AspectCorrection: TAspectCorrection);
+begin
+ fAspectCorrection := AspectCorrection;
+end;
+
+function TVideo_FFmpeg.GetAspectCorrection(): TAspectCorrection;
+begin
+ Result := fAspectCorrection;
+end;
+
+
+
+procedure TVideo_FFmpeg.SetAlpha(Alpha: double);
+begin
+ fAlpha := Alpha;
+
+ if (fAlpha>1) then
+ fAlpha := 1;
+
+ if (fAlpha<0) then
+ fAlpha := 0;
+end;
+
+function TVideo_FFmpeg.GetAlpha(): double;
+begin
+ Result := fAlpha;
+end;
+
+
+procedure TVideo_FFmpeg.SetReflectionSpacing(Spacing: double);
+begin
+ fReflectionSpacing := Spacing;
+end;
+
+function TVideo_FFmpeg.GetReflectionSpacing(): double;
+begin
+ Result := fReflectionSpacing;
+end;
+
+
initialization
MediaManager.Add(TVideoPlayback_FFmpeg.Create);
diff --git a/us_maker_edition/src/media/UVisualizer.pas b/us_maker_edition/src/media/UVisualizer.pas
index 4f553521..1cdc3500 100644
--- a/us_maker_edition/src/media/UVisualizer.pas
+++ b/us_maker_edition/src/media/UVisualizer.pas
@@ -110,6 +110,8 @@ type
fState: TProjectMState;
+ fScreen: integer;
+
fVisualTex: GLuint;
fPCMData: TPCMData;
fRndPCMcount: integer;
@@ -144,8 +146,35 @@ type
procedure SetLoop(Enable: boolean);
function GetLoop(): boolean;
+ procedure SetScreen(Screen: integer);
+ function GetScreen(): integer;
+
+ procedure SetScreenPosition(X, Y, Z: double);
+ procedure GetScreenPosition(var X, Y, Z: double);
+
+ procedure SetWidth(Width: double);
+ function GetWidth(): double;
+
+ procedure SetHeight(Height: double);
+ function GetHeight(): double;
+
+ procedure SetFrameRange(Range: TRectCoords);
+ function GetFrameRange(): TRectCoords;
+
+ function GetFrameAspect(): real;
+
+ procedure SetAspectCorrection(AspectCorrection: TAspectCorrection);
+ function GetAspectCorrection(): TAspectCorrection;
+
+ procedure SetAlpha(Alpha: double);
+ function GetAlpha(): double;
+
+ procedure SetReflectionSpacing(Spacing: double);
+ function GetReflectionSpacing(): double;
+
procedure GetFrame(Time: Extended);
- procedure DrawGL(Screen: integer);
+ procedure Draw();
+ procedure DrawReflection();
end;
TVideoPlayback_ProjectM = class( TInterfacedObject, IVideoVisualization )
@@ -262,6 +291,88 @@ begin
Result := true;
end;
+procedure TVideo_ProjectM.SetScreen(Screen: integer);
+begin
+end;
+
+function TVideo_ProjectM.GetScreen(): integer;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_ProjectM.SetScreenPosition(X, Y, Z: double);
+begin
+end;
+
+procedure TVideo_ProjectM.GetScreenPosition(var X, Y, Z: double);
+begin
+ X := 0;
+ Y := 0;
+ Z := 0;
+end;
+
+procedure TVideo_ProjectM.SetWidth(Width: double);
+begin
+end;
+
+function TVideo_ProjectM.GetWidth(): double;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_ProjectM.SetHeight(Height: double);
+begin
+end;
+
+function TVideo_ProjectM.GetHeight(): double;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_ProjectM.SetFrameRange(Range: TRectCoords);
+begin
+end;
+
+function TVideo_ProjectM.GetFrameRange(): TRectCoords;
+begin
+ Result.Left := 0;
+ Result.Right := 0;
+ Result.Upper := 0;
+ Result.Lower := 0;
+end;
+
+function TVideo_ProjectM.GetFrameAspect(): real;
+begin
+ Result := 0;
+end;
+
+procedure TVideo_ProjectM.SetAspectCorrection(AspectCorrection: TAspectCorrection);
+begin
+end;
+
+function TVideo_ProjectM.GetAspectCorrection(): TAspectCorrection;
+begin
+ Result := acoStretch;
+end;
+
+procedure TVideo_ProjectM.SetAlpha(Alpha: double);
+begin
+end;
+
+function TVideo_ProjectM.GetAlpha(): double;
+begin
+ Result := 1;
+end;
+
+procedure TVideo_ProjectM.SetReflectionSpacing(Spacing: double);
+begin
+end;
+
+function TVideo_ProjectM.GetReflectionSpacing(): double;
+begin
+ Result := 0;
+end;
+
{**
* Returns the stack depth of the given OpenGL matrix mode stack.
*}
@@ -485,11 +596,11 @@ end;
* Draws the current frame to screen.
* TODO: this is not used yet. Data is directly drawn on GetFrame().
*}
-procedure TVideo_ProjectM.DrawGL(Screen: integer);
+procedure TVideo_ProjectM.Draw();
begin
{$IFDEF UseTexture}
// have a nice black background to draw on
- if (Screen = 1) then
+ if (fScreen = 1) then
begin
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
@@ -521,10 +632,10 @@ begin
// draw projectM frame
// Screen is 1 to 2. So current screen is from (Screen - 1) to (Screen)
glBegin(GL_QUADS);
- glTexCoord2f(0, 0); glVertex2f((Screen - 1), 0);
- glTexCoord2f(1, 0); glVertex2f(Screen, 0);
- glTexCoord2f(1, 1); glVertex2f(Screen, 1);
- glTexCoord2f(0, 1); glVertex2f((Screen - 1), 1);
+ glTexCoord2f(0, 0); glVertex2f((fScreen - 1), 0);
+ glTexCoord2f(1, 0); glVertex2f(fScreen, 0);
+ glTexCoord2f(1, 1); glVertex2f(fScreen, 1);
+ glTexCoord2f(0, 1); glVertex2f((fScreen - 1), 1);
glEnd();
glDisable(GL_TEXTURE_2D);
@@ -538,6 +649,10 @@ begin
{$ENDIF}
end;
+procedure TVideo_ProjectM.DrawReflection();
+begin
+end;
+
{**
* Produces random "sound"-data in case no audio-data is available.
* Otherwise the visualization will look rather boring.
diff --git a/us_maker_edition/src/menu/UDisplay.pas b/us_maker_edition/src/menu/UDisplay.pas
index e3ec272a..6ec8e2ed 100644
--- a/us_maker_edition/src/menu/UDisplay.pas
+++ b/us_maker_edition/src/menu/UDisplay.pas
@@ -51,12 +51,12 @@ type
ePreDraw: THookableEvent;
eDraw: THookableEvent;
- //fade-to-black-hack
+ // fade-to-black
BlackScreen: boolean;
FadeEnabled: boolean; // true if fading is enabled
FadeFailed: boolean; // true if fading is possible (enough memory, etc.)
- FadeTime: cardinal; // time when fading starts, 0 means that the fade texture must be initialized
+ FadeStartTime: cardinal; // time when fading starts, 0 means that the fade texture must be initialized
DoneOnShow: boolean; // true if passed onShow after fading
FadeTex: array[0..1] of GLuint;
@@ -87,7 +87,7 @@ type
NextScreen: PMenu;
CurrentScreen: PMenu;
- //popup data
+ // popup data
NextScreenWithCheck: Pmenu;
CheckOK: boolean;
@@ -130,12 +130,12 @@ var
const
{ constants for screen transition
time in milliseconds }
- Transition_Fade_Time = 400;
+ FADE_DURATION = 400;
{ constants for software cursor effects
time in milliseconds }
- Cursor_FadeIn_Time = 500; // seconds the fade in effect lasts
- Cursor_FadeOut_Time = 2000; // seconds the fade out effect lasts
- Cursor_AutoHide_Time = 5000; // seconds until auto fade out starts if there is no mouse movement
+ CURSOR_FADE_IN_TIME = 500; // seconds the fade in effect lasts
+ CURSOR_FADE_OUT_TIME = 2000; // seconds the fade out effect lasts
+ CURSOR_AUTOHIDE_TIME = 5000; // seconds until auto fade out starts if there is no mouse movement
implementation
@@ -160,14 +160,14 @@ begin
ePreDraw := THookableEvent.Create('Display.PreDraw');
eDraw := THookableEvent.Create('Display.Draw');
- //popup hack
+ // init popup
CheckOK := false;
NextScreen := nil;
NextScreenWithCheck := nil;
BlackScreen := false;
- // fade mod
- FadeTime := 0;
+ // init fade
+ FadeStartTime := 0;
FadeEnabled := (Ini.ScreenFade = 1);
FadeFailed := false;
DoneOnShow := false;
@@ -175,7 +175,7 @@ begin
glGenTextures(2, PGLuint(@FadeTex));
InitFadeTextures();
- //Set LastError for OSD to No Error
+ // set LastError for OSD to No Error
OSD_LastError := 'No Errors';
// software cursor default values
@@ -222,11 +222,6 @@ var
begin
Result := true;
- //We don't need this here anymore,
- //Because the background care about cleaning the buffers
- //glClearColor(1, 1, 1 , 0);
- //glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
-
for S := 1 to Screens do
begin
ScreenAct := S;
@@ -238,8 +233,7 @@ begin
glViewPort((S-1) * ScreenW div Screens, 0, ScreenW div Screens, ScreenH);
- // popup hack
- // check was successful... move on
+ // popup check was successful... move on
if CheckOK then
begin
if assigned(NextScreenWithCheck) then
@@ -260,7 +254,7 @@ begin
ePreDraw.CallHookChain(false);
CurrentScreen.Draw;
- //popup mod
+ // popup
if (ScreenPopupError <> nil) and ScreenPopupError.Visible then
ScreenPopupError.Draw
else if (ScreenPopupInfo <> nil) and ScreenPopupInfo.Visible then
@@ -268,11 +262,11 @@ begin
else if (ScreenPopupCheck <> nil) and ScreenPopupCheck.Visible then
ScreenPopupCheck.Draw;
- // fade mod
- FadeTime := 0;
+ // fade
+ FadeStartTime := 0;
if ((Ini.ScreenFade = 1) and (not FadeFailed)) then
FadeEnabled := true
- else if (Ini.ScreenFade = 0) then
+ else
FadeEnabled := false;
eDraw.CallHookChain(false);
@@ -287,8 +281,8 @@ begin
if (FadeEnabled and not FadeFailed) then
begin
- //Create Fading texture if we're just starting
- if FadeTime = 0 then
+ // create fading texture if we're just starting
+ if FadeStartTime = 0 then
begin
// draw screen that will be faded
ePreDraw.CallHookChain(false);
@@ -319,7 +313,6 @@ begin
Log.LogError('Fading disabled: ' + gluErrorString(glError), 'TDisplay.Draw');
end;
- // blackscreen-hack
if not BlackScreen and (S = 1) and not DoneOnShow then
begin
NextScreen.OnShow;
@@ -329,18 +322,9 @@ begin
// set fade time once on second screen (or first if screens = 1)
if (Screens = 1) or (S = 2) then
- FadeTime := SDL_GetTicks;
+ FadeStartTime := SDL_GetTicks;
end; // end texture creation in first fading step
- {//do some time-based fading
- currentTime := SDL_GetTicks();
- if (currentTime > LastFadeTime+30) and (S = 1) then
- begin
- FadeState := FadeState + 5;
- LastFadeTime := currentTime;
- end; }
-
- // blackscreen-hack
if not BlackScreen then
begin
ePreDraw.CallHookChain(false);
@@ -349,15 +333,16 @@ begin
end
else if ScreenAct = 1 then
begin
+ // draw black screen
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
end;
// and draw old screen over it... slowly fading out
- if (FadeTime = 0) then
+ if (FadeStartTime = 0) then
FadeStateSquare := 0 // for first screen if screens = 2
else
- FadeStateSquare := sqr((SDL_GetTicks - FadeTime) / Transition_Fade_Time);
+ FadeStateSquare := sqr((SDL_GetTicks - FadeStartTime) / FADE_DURATION);
if (FadeStateSquare < 1) then
begin
@@ -392,17 +377,19 @@ begin
//glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
end;
end
-
- // blackscreen hack
+
+ // there is no need to init next screen if it is a black screen
else if not BlackScreen then
begin
NextScreen.OnShow;
end;
- if ((FadeTime + Transition_Fade_Time < SDL_GetTicks) or (not FadeEnabled) or FadeFailed) and ((Screens = 1) or (S = 2)) then
+ if ((FadeStartTime + FADE_DURATION < SDL_GetTicks) or
+ (not FadeEnabled) or FadeFailed) and
+ ((Screens = 1) or (S = 2)) then
begin
// fade out complete...
- FadeTime := 0;
+ FadeStartTime := 0;
DoneOnShow := false;
CurrentScreen.onHide;
CurrentScreen.ShowFinish := false;
@@ -421,7 +408,7 @@ begin
end;
end; // if
-// Draw OSD only on first Screen if Debug Mode is enabled
+ // Draw OSD only on first Screen if Debug Mode is enabled
if ((Ini.Debug = 1) or (Params.Debug)) and (S = 1) then
DrawDebugInformation;
@@ -485,7 +472,7 @@ begin
if (not Cursor_Visible) and (Cursor_LastMove <> 0) then
begin
if Cursor_Fade then // we use a trick here to consider progress of fade out
- Cursor_LastMove := Ticks - round(Cursor_FadeIn_Time * (1 - (Ticks - Cursor_LastMove)/Cursor_FadeOut_Time))
+ Cursor_LastMove := Ticks - round(CURSOR_FADE_IN_TIME * (1 - (Ticks - Cursor_LastMove)/CURSOR_FADE_OUT_TIME))
else
Cursor_LastMove := Ticks;
@@ -533,7 +520,7 @@ begin
begin // draw software cursor
Ticks := SDL_GetTicks;
- if (Cursor_Visible) and (Cursor_LastMove + Cursor_AutoHide_Time <= Ticks) then
+ if (Cursor_Visible) and (Cursor_LastMove + CURSOR_AUTOHIDE_TIME <= Ticks) then
begin // start fade out after 5 secs w/o activity
Cursor_Visible := false;
Cursor_LastMove := Ticks;
@@ -545,17 +532,17 @@ begin
begin
if Cursor_Visible then
begin // fade in
- if (Cursor_LastMove + Cursor_FadeIn_Time <= Ticks) then
+ if (Cursor_LastMove + CURSOR_FADE_IN_TIME <= Ticks) then
Cursor_Fade := false
else
- Alpha := sin((Ticks - Cursor_LastMove) * 0.5 * pi / Cursor_FadeIn_Time) * 0.7;
+ Alpha := sin((Ticks - Cursor_LastMove) * 0.5 * pi / CURSOR_FADE_IN_TIME) * 0.7;
end
else
begin //fade out
- if (Cursor_LastMove + Cursor_FadeOut_Time <= Ticks) then
+ if (Cursor_LastMove + CURSOR_FADE_OUT_TIME <= Ticks) then
Cursor_Fade := false
else
- Alpha := cos((Ticks - Cursor_LastMove) * 0.5 * pi / Cursor_FadeOut_Time) * 0.7;
+ Alpha := cos((Ticks - Cursor_LastMove) * 0.5 * pi / CURSOR_FADE_OUT_TIME) * 0.7;
end;
end;
diff --git a/us_maker_edition/src/menu/UMenuBackgroundVideo.pas b/us_maker_edition/src/menu/UMenuBackgroundVideo.pas
index bfaee702..9a33e721 100644
--- a/us_maker_edition/src/menu/UMenuBackgroundVideo.pas
+++ b/us_maker_edition/src/menu/UMenuBackgroundVideo.pas
@@ -151,14 +151,14 @@ begin
glClear(GL_DEPTH_BUFFER_BIT);
// video failure -> draw blank background
if (fBgVideo = nil) then
- glClear(GL_COLOR_BUFFER_BIT);
+ glClear(GL_COLOR_BUFFER_BIT);
end;
if (fBgVideo <> nil) then
begin
fBgVideo.GetFrame(VideoBGTimer.GetTime());
- // FIXME: why do we draw on screen 2? Seems to be wrong.
- fBgVideo.DrawGL(2);
+ fBgVideo.SetScreen(ScreenAct);
+ fBgVideo.Draw();
end;
end;
diff --git a/us_maker_edition/src/screens/UScreenEditSub.pas b/us_maker_edition/src/screens/UScreenEditSub.pas
index 400053c0..51e1df42 100644
--- a/us_maker_edition/src/screens/UScreenEditSub.pas
+++ b/us_maker_edition/src/screens/UScreenEditSub.pas
@@ -52,6 +52,7 @@ uses
gl,
{$IFDEF UseMIDIPort}
MidiOut,
+ MidiCons,
{$ENDIF}
UThemes,
UPath;
@@ -485,7 +486,11 @@ begin
Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntNormal
else
Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntFreestyle;
- GoldenRec.KillAll;
+ GoldenRec.KillAll;
+
+ // update lyrics
+ Lyric.AddLine(Lines[0].Current);
+ Lyric.Selected := CurrentNote;
Exit;
end;
SDLK_Z:
@@ -667,18 +672,35 @@ begin
SDLK_SPACE:
begin
- // Play Sentence
- PlaySentenceMidi := false; // stop midi
- PlaySentence := true;
- Click := false;
- AudioPlayback.Stop;
- AudioPlayback.Position := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start);
- PlayStopTime := (GetTimeFromBeat(
- Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start +
- Lines[0].Line[Lines[0].Current].Note[CurrentNote].Length));
- AudioPlayback.SetVolume(SelectsS[VolumeAudioSlideId].SelectedOption / 100);
- AudioPlayback.Play;
- LastClick := -100;
+ if (SDL_ModState = 0) or (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) then
+ begin
+ // Play Sentence
+ PlaySentenceMidi := false; // stop midi
+ PlaySentence := true;
+ Click := false;
+ AudioPlayback.Stop;
+ AudioPlayback.Position := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start);
+ PlayStopTime := (GetTimeFromBeat(
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start +
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Length));
+ AudioPlayback.SetVolume(SelectsS[VolumeAudioSlideId].SelectedOption / 100);
+ AudioPlayback.Play;
+ LastClick := -100;
+ end;
+
+ if (SDL_ModState = KMOD_LSHIFT) or (SDL_ModState = KMOD_LSHIFT or KMOD_LCTRL) then
+ begin
+ // Play Midi
+ PlaySentenceMidi := true;
+
+ MidiTime := USTime.GetTime;
+ MidiStart := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start);
+ MidiStop := GetTimeFromBeat(
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start +
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Length);
+
+ LastClick := -100;
+ end;
end;
SDLK_RETURN:
@@ -718,7 +740,7 @@ begin
begin
if SDL_ModState = KMOD_LCTRL then
begin
- // moves text to right in current sentence
+ // deletes current note
CopyToUndo;
DeleteNote;
GoldenRec.KillAll;
@@ -878,7 +900,7 @@ begin
begin
{$IFDEF UseMIDIPort}
MidiOut.PutShort($B1, $7, floor(1.27*SelectsS[VolumeMidiSlideId].SelectedOption));
- MidiOut.PutShort($81, Lines[0].Line[Lines[0].Current].Note[MidiLastNote].Tone + 60, 127);
+ MidiOut.PutShort(MIDI_NOTEOFF or 1, Lines[0].Line[Lines[0].Current].Note[MidiLastNote].Tone + 60, 127);
PlaySentenceMidi := false;
{$ENDIF}
@@ -915,7 +937,7 @@ begin
AudioPlayback.Stop;
PlaySentence := false;
{$IFDEF UseMIDIPort}
- MidiOut.PutShort($B1, $7, floor(1.27*SelectsS[VolumeMidiSlideId].SelectedOption));
+ MidiOut.PutShort(MIDI_NOTEOFF or 1, $7, floor(1.27*SelectsS[VolumeMidiSlideId].SelectedOption));
MidiOut.PutShort($81, Lines[0].Line[Lines[0].Current].Note[MidiLastNote].Tone + 60, 127);
PlaySentenceMidi := false;
{$endif}
@@ -1445,13 +1467,21 @@ begin
Note[N] := Note[N-1];
end;
- // me slightly modify new note
- Note[CurrentNote].Length := 1;
- Inc(Note[CurrentNote+1].Start);
- Dec(Note[CurrentNote+1].Length);
- Note[CurrentNote+1].Text := '- ';
+ // Note[Cur] and Note[Cur + 1] is identical at this point
+ // modify first note
+ Note[CurrentNote].Length := Note[CurrentNote+1].Length div 2 + Note[CurrentNote+1].Length mod 2;
+
+ // 2nd note
+ Note[CurrentNote+1].Start := Note[CurrentNote].Start + Note[CurrentNote].Length;
+ Note[CurrentNote+1].Length := Note[CurrentNote + 1].Length div 2;
+
+ Note[CurrentNote+1].Text := '~';
Note[CurrentNote+1].Color := 1;
end;
+
+ // update lyric display
+ Lyric.AddLine(Lines[0].Current);
+ Lyric.Selected := CurrentNote;
end;
procedure TScreenEditSub.DeleteNote;
@@ -1462,9 +1492,8 @@ begin
C := Lines[0].Current;
//Do Not delete Last Note
- if (Lines[0].High > 0) or (Lines[0].Line[C].HighNote > 0) then
+ if (Lines[0].Line[C].HighNote > 0) then
begin
-
// we copy all notes from the next to the selected one
for N := CurrentNote+1 to Lines[0].Line[C].HighNote do
begin
@@ -1472,37 +1501,47 @@ begin
end;
Dec(Lines[0].Line[C].HighNote);
- if (Lines[0].Line[C].HighNote >= 0) then
- begin
- SetLength(Lines[0].Line[C].Note, Lines[0].Line[C].HighNote + 1);
- // me slightly modify new note
- if CurrentNote > Lines[0].Line[C].HighNote then
- Dec(CurrentNote);
-
- Lines[0].Line[C].Note[CurrentNote].Color := 2;
- end
- //Last Note of current Sentence Deleted - > Delete Sentence
- else
+ SetLength(Lines[0].Line[C].Note, Lines[0].Line[C].HighNote + 1);
+
+ // last note was deleted
+ if (CurrentNote > Lines[0].Line[C].HighNote) then
begin
- //Move all Sentences after the current to the Left
- for N := C+1 to Lines[0].High do
- Lines[0].Line[N-1] := Lines[0].Line[N];
-
- //Delete Last Sentence
- SetLength(Lines[0].Line, Lines[0].High);
- Lines[0].High := High(Lines[0].Line);
- Lines[0].Number := Length(Lines[0].Line);
-
- CurrentNote := 0;
- if (C > 0) then
- Lines[0].Current := C - 1
- else
- Lines[0].Current := 0;
-
- Lines[0].Line[Lines[0].Current].Note[CurrentNote].Color := 2;
+ // select new last note
+ CurrentNote := Lines[0].Line[C].HighNote;
+
+ // correct Line ending
+ with Lines[0].Line[C] do
+ End_ := Note[HighNote].Start + Note[HighNote].Length;
end;
+
+ Lines[0].Line[C].Note[CurrentNote].Color := 2;
+ end
+ // Last Note of current Sentence Deleted - > Delete Sentence
+ // if there are more than two left
+ else if (Lines[0].High > 1) then
+ begin
+ //Move all Sentences after the current to the Left
+ for N := C+1 to Lines[0].High do
+ Lines[0].Line[N-1] := Lines[0].Line[N];
+
+ //Delete Last Sentence
+ SetLength(Lines[0].Line, Lines[0].High);
+ Lines[0].High := High(Lines[0].Line);
+ Lines[0].Number := Length(Lines[0].Line);
+
+ CurrentNote := 0;
+ if (C > 0) then
+ Lines[0].Current := C - 1
+ else
+ Lines[0].Current := 0;
+
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Color := 2;
end;
+
+ // update lyric display
+ Lyric.AddLine(Lines[0].Current);
+ Lyric.Selected := CurrentNote;
end;
procedure TScreenEditSub.TransposeNote(Transpose: integer);
@@ -1896,6 +1935,7 @@ end;
procedure TScreenEditSub.DrawInfoBar(x, y, w, h: integer);
var
start, end_: integer;
+ SongStart, SongEnd: integer;
ww: integer;
pos: real;
@@ -1910,9 +1950,9 @@ begin
if(numLines=0) then
Exit;
- start := Lines[0].Line[0].Start;
- end_ := Lines[0].Line[numLines-1].End_;
- ww := end_ - start;
+ SongStart := Lines[0].Line[0].Note[0].Start;
+ SongEnd := Lines[0].Line[numLines-1].End_;
+ ww := SongEnd - SongStart;
glColor4f(0, 0, 0, 1);
glDisable(GL_BLEND);
@@ -1945,7 +1985,7 @@ begin
end_ := Lines[0].Line[line].Note[Lines[0].Line[line].HighNote].Start+
Lines[0].Line[line].Note[Lines[0].Line[line].HighNote].Length;
- pos := start/ww*w;
+ pos := (start - SongStart)/ww*w;
br := (end_-start)/ww*w;
glbegin(gl_quads);
@@ -1954,26 +1994,19 @@ begin
glVertex2f(x+pos+br, y+h);
glVertex2f(x+pos+br, y);
glEnd;
- {
- numNotes := Length(Lines[0].Line[line].Nuta);
-
- for note := 0 to numNotes - 1 do
- begin
-
- end; }
end;
if(PlaySentence or PlaySentenceMidi) then
begin
glColor4f(0, 0, 0, 0.5);
pos := 0;
- br := AktBeat/ww*w;
+ br := (AktBeat - SongStart)/ww*w;
if (br>w) then
br := w;
end else
begin
glColor4f(1, 0, 0, 1);
- pos := Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start/ww*w;
+ pos := (Lines[0].Line[Lines[0].Current].Note[CurrentNote].Start - SongStart)/ww*w;
br := Lines[0].Line[Lines[0].Current].Note[CurrentNote].Length/ww*w;
if (br<1) then
br := 1;
@@ -2316,7 +2349,7 @@ begin
end;
-// Interaction := 0;
+ //Interaction := 0;
TextEditMode := false;
TitleEditMode := false;
ArtistEditMode := false;
@@ -2344,7 +2377,7 @@ begin
if (MidiPos > MidiStop) then
begin
MidiOut.PutShort($B1, $7, floor(1.27*SelectsS[VolumeMidiSlideId].SelectedOption));
- MidiOut.PutShort($81, Lines[0].Line[Lines[0].Current].Note[MidiLastNote].Tone + 60, 127);
+ MidiOut.PutShort(MIDI_NOTEOFF or 1, Lines[0].Line[Lines[0].Current].Note[MidiLastNote].Tone + 60, 127);
PlaySentenceMidi := false;
end;
{$ENDIF}
@@ -2363,7 +2396,7 @@ begin
{$IFDEF UseMIDIPort}
MidiOut.PutShort($B1, $7, floor(1.27*SelectsS[VolumeMidiSlideId].SelectedOption));
if i > 0 then
- MidiOut.PutShort($81, Lines[0].Line[Lines[0].Current].Note[i-1].Tone + 60, 127);
+ MidiOut.PutShort(MIDI_NOTEOFF or 1, Lines[0].Line[Lines[0].Current].Note[i-1].Tone + 60, 127);
MidiOut.PutShort($91, Lines[0].Line[Lines[0].Current].Note[i].Tone + 60, 127);
MidiLastNote := i;
{$ENDIF}
@@ -2421,7 +2454,7 @@ begin
// click
if (Click) and (PlaySentence) then
begin
-// AktBeat := Floor(CurrentSong.BPM[0].BPM * (Music.Position - CurrentSong.GAP / 1000) / 60);
+ //AktBeat := Floor(CurrentSong.BPM[0].BPM * (Music.Position - CurrentSong.GAP / 1000) / 60);
AktBeat := Floor(GetMidBeat(AudioPlayback.Position - CurrentSong.GAP / 1000));
Text[TextDebug].Text := IntToStr(AktBeat);
if AktBeat <> LastClick then
diff --git a/us_maker_edition/src/screens/UScreenOptionsRecord.pas b/us_maker_edition/src/screens/UScreenOptionsRecord.pas
index 0f9cd49a..dc4a355f 100644
--- a/us_maker_edition/src/screens/UScreenOptionsRecord.pas
+++ b/us_maker_edition/src/screens/UScreenOptionsRecord.pas
@@ -88,6 +88,7 @@ type
procedure StartPreview;
procedure StopPreview;
procedure UpdateInputDevice;
+ function ValidateSettings: boolean;
procedure ChangeVolume(VolumeChange: single);
procedure DrawVolume(x, y, Width, Height: single);
procedure DrawVUMeter(const State: TDrawState; x, y, Width, Height: single);
@@ -120,6 +121,7 @@ uses
TextGL,
UGraphic,
UDraw,
+ ULanguage,
UMain,
UMenuSelectSlide,
UMenuText,
@@ -168,7 +170,7 @@ begin
SDLK_BACKSPACE:
begin
// TODO: Show Save/Abort screen
- if (AudioInputProcessor.ValidateSettings()) then
+ if (ValidateSettings()) then
begin
Ini.Save;
AudioPlayback.PlaySound(SoundLib.Back);
@@ -179,7 +181,7 @@ begin
begin
if (SelInteraction = ExitButtonIID) then
begin
- if (AudioInputProcessor.ValidateSettings()) then
+ if (ValidateSettings()) then
begin
Ini.Save;
AudioPlayback.PlaySound(SoundLib.Back);
@@ -213,6 +215,24 @@ begin
end;
end;
+function TScreenOptionsRecord.ValidateSettings: boolean;
+var
+ BadPlayer: integer;
+begin
+ BadPlayer := AudioInputProcessor.ValidateSettings();
+ if (BadPlayer <> 0) then
+ begin
+ ScreenPopupError.ShowPopup(
+ Format(Language.Translate('ERROR_PLAYER_DEVICE_ASSIGNMENT'),
+ [BadPlayer]));
+ Result := false;
+ end
+ else
+ begin
+ Result := true;
+ end;
+end;
+
constructor TScreenOptionsRecord.Create;
var
DeviceIndex: integer;
@@ -321,12 +341,6 @@ begin
end;
// add Exit-button
- //ButtonTheme := Theme.OptionsRecord.ButtonExit;
- // adjust button position
- //if (WidgetYPos <> 0) then
- // ButtonTheme.Y := WidgetYPos;
- //AddButton(ButtonTheme);
- // <mog> I uncommented the stuff above, because it's not skinable :X
AddButton(Theme.OptionsRecord.ButtonExit);
if (Length(Button[0].Text) = 0) then
AddButtonText(20, 5, Theme.Options.Description[7]);
@@ -783,7 +797,7 @@ begin
for ChannelIndex := 0 to High(Device.CaptureChannel) do
begin
// load player color mapped to current input channel
- if (DeviceCfg.ChannelToPlayerMap[ChannelIndex] > 0) then
+ if (DeviceCfg.ChannelToPlayerMap[ChannelIndex] <> CHANNEL_OFF) then
begin
// set mapped channel to corresponding player-color
LoadColor(State.R, State.G, State.B, 'P'+ IntToStr(DeviceCfg.ChannelToPlayerMap[ChannelIndex]) + 'Dark');
diff --git a/us_maker_edition/src/screens/UScreenOptionsThemes.pas b/us_maker_edition/src/screens/UScreenOptionsThemes.pas
index 94475cc7..29d8a9dc 100644
--- a/us_maker_edition/src/screens/UScreenOptionsThemes.pas
+++ b/us_maker_edition/src/screens/UScreenOptionsThemes.pas
@@ -92,6 +92,10 @@ begin
UGraphic.LoadScreens();
AudioPlayback.PlaySound(SoundLib.Back);
+
+ // select theme button in new created options screen
+ ScreenOptions.Interaction := 4;
+
FadeTo(@ScreenOptions);
end;
SDLK_RETURN:
@@ -106,6 +110,10 @@ begin
UGraphic.LoadScreens();
AudioPlayback.PlaySound(SoundLib.Back);
+
+ // select theme button in new created options screen
+ ScreenOptions.Interaction := 4;
+
FadeTo(@ScreenOptions);
end;
end;
diff --git a/us_maker_edition/src/screens/UScreenSing.pas b/us_maker_edition/src/screens/UScreenSing.pas
index 233f1e38..3e0d8078 100644
--- a/us_maker_edition/src/screens/UScreenSing.pas
+++ b/us_maker_edition/src/screens/UScreenSing.pas
@@ -62,6 +62,12 @@ type
function GetClock(): real; override;
end;
+ TTimebarMode = (
+ tbmCurrent, // current song position
+ tbmRemaining, // remaining time
+ tbmTotal // total time
+ );
+
type
TScreenSing = class(TMenu)
private
@@ -70,6 +76,7 @@ type
fVideoClip: IVideo;
fLyricsSync: TLyricsSyncSource;
fMusicSync: TMusicSyncSource;
+ fTimebarMode: TTimebarMode;
protected
eSongLoaded: THookableEvent; //< event is called after lyrics of a song are loaded on OnShow
Paused: boolean; //pause Mod
@@ -178,7 +185,9 @@ begin
Result := false;
Exit;
end;
- Ord('V'): // show visualization
+
+ // show visualization
+ Ord('V'):
begin
fShowVisualization := not fShowVisualization;
@@ -193,11 +202,23 @@ begin
end;
Exit;
end;
+
+ // pause
Ord('P'):
begin
Pause;
Exit;
end;
+
+ // toggle time display
+ Ord('T'):
+ begin
+ if (fTimebarMode = High(TTimebarMode)) then
+ fTimebarMode := Low(TTimebarMode)
+ else
+ Inc(fTimebarMode);
+ Exit;
+ end;
end;
// check special keys
@@ -349,6 +370,7 @@ var
Color: TRGB;
VideoFile, BgFile: IPath;
success: boolean;
+ BadPlayer: integer;
begin
inherited;
@@ -450,6 +472,8 @@ begin
Statics[StaticP3R].Visible := V3R;
Text[TextP3R].Visible := V3R;
+ fTimebarMode := tbmCurrent;
+
// FIXME: sets path and filename to ''
ResetSingTemp;
@@ -498,7 +522,7 @@ begin
*}
fShowVisualization := false;
VideoFile := CurrentSong.Path.Append(CurrentSong.Video);
- if (CurrentSong.Video.IsSet) and VideoFile.IsFile then
+ if (Ini.VideoEnabled = 1) and CurrentSong.Video.IsSet() and VideoFile.IsFile then
begin
fVideoClip := VideoPlayback.Open(VideoFile);
fCurrentVideo := fVideoClip;
@@ -562,6 +586,14 @@ begin
LyricsState.TotalTime := AudioPlayback.Length;
LyricsState.UpdateBeats();
+ BadPlayer := AudioInputProcessor.CheckPlayersConfig(PlayersPlay);
+ if (BadPlayer <> 0) then
+ begin
+ ScreenPopupError.ShowPopup(
+ Format(Language.Translate('ERROR_PLAYER_NO_DEVICE_ASSIGNMENT'),
+ [BadPlayer]));
+ end;
+
// prepare and start voice-capture
AudioInput.CaptureStart;
@@ -725,8 +757,10 @@ end;
function TScreenSing.Draw: boolean;
var
- Min: integer;
- Sec: integer;
+ DisplayTime: real;
+ DisplayPrefix: string;
+ DisplayMin: integer;
+ DisplaySec: integer;
T: integer;
CurLyricsTime: real;
VideoFrameTime: Extended;
@@ -769,53 +803,31 @@ begin
end; // case
end; // if
- ////
- // dual screen, part 1
- ////////////////////////
-
- // Note: ScreenX is the offset of the current screen in dual-screen mode so we
- // will move the statics and texts to the correct screen here.
- // FIXME: clean up this weird stuff. Commenting this stuff out, nothing
- // was missing on screen w/ 6 players - so do we even need this stuff?
- {Statics[StaticP1].Texture.X := Statics[StaticP1].Texture.X + 10 * ScreenX;
-
- Text[TextP1].X := Text[TextP1].X + 10 * ScreenX; }
-
- {Statics[StaticP1ScoreBG].Texture.X := Statics[StaticP1ScoreBG].Texture.X + 10*ScreenX;
- Text[TextP1Score].X := Text[TextP1Score].X + 10*ScreenX;}
-
- {Statics[StaticP2R].Texture.X := Statics[StaticP2R].Texture.X + 10 * ScreenX;
-
- Text[TextP2R].X := Text[TextP2R].X + 10 * ScreenX; }
-
- {Statics[StaticP2RScoreBG].Texture.X := Statics[StaticP2RScoreBG].Texture.X + 10*ScreenX;
- Text[TextP2RScore].X := Text[TextP2RScore].X + 10*ScreenX;}
-
- // end of weird stuff
- {
- Statics[1].Texture.X := Statics[1].Texture.X + 10 * ScreenX; }
-
- { for T := 0 to 1 do
- Text[T].X := Text[T].X + 10 * ScreenX; }
-
// retrieve current lyrics time, we have to store the value to avoid
// that min- and sec-values do not match
CurLyricsTime := LyricsState.GetCurrentTime();
- Min := Round(CurLyricsTime) div 60;
- Sec := Round(CurLyricsTime) mod 60;
+
+ // retrieve time for timebar text
+ case (fTimebarMode) of
+ tbmRemaining: begin
+ DisplayTime := LyricsState.TotalTime - CurLyricsTime;
+ DisplayPrefix := '-';
+ end;
+ tbmTotal: begin
+ DisplayTime := LyricsState.TotalTime;
+ DisplayPrefix := '#';
+ end;
+ else begin
+ DisplayTime := CurLyricsTime;
+ DisplayPrefix := '';
+ end;
+ end;
+ DisplayMin := Round(DisplayTime) div 60;
+ DisplaySec := Round(DisplayTime) mod 60;
// update static menu with time ...
- Text[TextTimeText].Text := '';
- if Min < 10 then
- Text[TextTimeText].Text := '0';
- Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Min) + ':';
- if Sec < 10 then
- Text[TextTimeText].Text := Text[TextTimeText].Text + '0';
- Text[TextTimeText].Text := Text[TextTimeText].Text + IntToStr(Sec);
-
- // draw static menu (BG)
- // Note: there is no menu and the animated background brakes the video playback
- //DrawBG;
+ Text[TextTimeText].Text := Format('%s%.2d:%.2d',
+ [DisplayPrefix, DisplayMin, DisplaySec]);
//the song was sung to the end?
Line := Lyrics.GetUpperLine();
@@ -847,7 +859,8 @@ begin
fCurrentVideo.GetFrame(VideoFrameTime);
end;
- fCurrentVideo.DrawGL(ScreenAct);
+ fCurrentVideo.SetScreen(ScreenAct);
+ fCurrentVideo.Draw;
end;
// draw static menu (FG)
@@ -857,8 +870,10 @@ begin
//Log.LogError('Check for music finish: ' + BoolToStr(Music.Finished) + ' ' + FloatToStr(LyricsState.CurrentTime*1000) + ' ' + IntToStr(CurrentSong.Finish));
if ShowFinish then
begin
- if (not AudioPlayback.Finished) and ((CurrentSong.Finish = 0) or
- (LyricsState.GetCurrentTime() * 1000 <= CurrentSong.Finish)) and (not Settings.Finish) then
+ if (not AudioPlayback.Finished) and
+ ((CurrentSong.Finish = 0) or
+ (LyricsState.GetCurrentTime() * 1000 <= CurrentSong.Finish)) and
+ (not Settings.Finish) then
begin
// analyze song if not paused
if (not Paused) then
@@ -886,27 +901,6 @@ begin
// draw scores
Scores.Draw;
- ////
- // dual screen, part 2
- ////////////////////////
-
- // Note: ScreenX is the offset of the current screen in dual-screen mode so we
- // will move the statics and texts to the correct screen here.
- // FIXME: clean up this weird stuff
-
- {Statics[StaticP1].Texture.X := Statics[StaticP1].Texture.X - 10 * ScreenX;
- Text[TextP1].X := Text[TextP1].X - 10 * ScreenX;
-
- Statics[StaticP2R].Texture.X := Statics[StaticP2R].Texture.X - 10 * ScreenX;
- Text[TextP2R].X := Text[TextP2R].X - 10 * ScreenX;
-
- // end of weird
-
- Statics[1].Texture.X := Statics[1].Texture.X - 10 * ScreenX;
-
- for T := 0 to 1 do
- Text[T].X := Text[T].X - 10 * ScreenX; }
-
// draw pausepopup
// FIXME: this is a workaround that the static is drawn over the lyrics, lines, scores and effects
// maybe someone could find a better solution
diff --git a/us_maker_edition/src/screens/UScreenSong.pas b/us_maker_edition/src/screens/UScreenSong.pas
index 6b83d522..6fe8d204 100644
--- a/us_maker_edition/src/screens/UScreenSong.pas
+++ b/us_maker_edition/src/screens/UScreenSong.pas
@@ -62,8 +62,12 @@ type
isScrolling: boolean; // true if song flow is about to move
+ fCurrentVideo: IVideo;
+
procedure StartMusicPreview();
procedure StopMusicPreview();
+ procedure StartVideoPreview();
+ procedure StopVideoPreview();
public
TextArtist: integer;
TextTitle: integer;
@@ -128,6 +132,7 @@ type
function Draw: boolean; override;
procedure GenerateThumbnails();
procedure OnShow; override;
+ procedure OnShowFinish; override;
procedure OnHide; override;
procedure SelectNext;
procedure SelectPrev;
@@ -886,6 +891,8 @@ begin
PreviewOpened := -1;
isScrolling := false;
+
+ fCurrentVideo := nil;
end;
procedure TScreenSong.GenerateThumbnails();
@@ -960,6 +967,7 @@ begin
if (Ini.PreviewVolume <> 0) then
begin
StartMusicPreview;
+ StartVideoPreview;
end;
// fade in detailed cover
@@ -973,6 +981,7 @@ begin
UnLoadDetailedCover;
StopMusicPreview();
+ StopVideoPreview();
PreviewOpened := -1;
end;
@@ -1506,6 +1515,9 @@ begin
AudioPlayback.Stop;
PreviewOpened := -1;
+ // reset video playback engine
+ fCurrentVideo := nil;
+
if Ini.Players <= 3 then PlayersPlay := Ini.Players + 1;
if Ini.Players = 4 then PlayersPlay := 6;
@@ -1544,11 +1556,17 @@ begin
end;
end;
- isScrolling := true;
+ isScrolling := false;
SetJoker;
SetStatics;
end;
+procedure TScreenSong.OnShowFinish;
+begin
+ isScrolling := true;
+ CoverTime := 10;
+end;
+
procedure TScreenSong.OnHide;
begin
// turn music volume to 100%
@@ -1556,6 +1574,7 @@ begin
// stop preview
StopMusicPreview();
+ StopVideoPreview();
end;
procedure TScreenSong.DrawExtensions;
@@ -1573,9 +1592,10 @@ end;
function TScreenSong.Draw: boolean;
var
- dx: real;
- dt: real;
- I: integer;
+ dx: real;
+ dt: real;
+ I: integer;
+ VideoAlpha: real;
begin
if isScrolling then
begin
@@ -1611,7 +1631,7 @@ begin
//Log.LogBenchmark('SetScroll4', 5);
//Fading Functions, Only if Covertime is under 5 Seconds
- if (CoverTime < 5) then
+ if (CoverTime < 9) then
begin
// cover fade
if (CoverTime < 1) and (CoverTime + TimeSkip >= 1) then
@@ -1641,10 +1661,43 @@ begin
//Draw BG
DrawBG;
+ VideoAlpha := Button[interaction].Texture.Alpha*(CoverTime-1);
//Instead of Draw FG Procedure:
//We draw Buttons for our own
for I := 0 to Length(Button) - 1 do
- Button[I].Draw;
+ begin
+ if (I<>Interaction) or not Assigned(fCurrentVideo) or (VideoAlpha<1) or AudioPlayback.Finished then
+ Button[I].Draw;
+ end;
+
+ if AudioPlayback.Finished then
+ StopVideoPreview;
+
+ if Assigned(fCurrentVideo) then
+ begin
+ // Just call this once
+ // when Screens = 2
+ if (ScreenAct = 1) then
+ fCurrentVideo.GetFrame(CatSongs.Song[Interaction].VideoGAP + AudioPlayback.Position);
+
+ fCurrentVideo.SetScreen(ScreenAct);
+ fCurrentVideo.Alpha := VideoAlpha;
+
+ //set up window
+ with Button[interaction] do
+ begin
+ fCurrentVideo.SetScreenPosition(X, Y, Z);
+ fCurrentVideo.Width := W;
+ fCurrentVideo.Height := H;
+ fCurrentVideo.ReflectionSpacing := Reflectionspacing;
+ end;
+ fCurrentVideo.AspectCorrection := acoCrop;
+
+ fCurrentVideo.Draw;
+
+ if Button[interaction].Reflection then
+ fCurrentVideo.DrawReflection;
+ end;
// Statics
for I := 0 to Length(Statics) - 1 do
@@ -1738,12 +1791,13 @@ end;
procedure TScreenSong.StartMusicPreview();
var
Song: TSong;
+ PreviewPos: real;
begin
AudioPlayback.Close();
if CatSongs.VisibleSongs = 0 then
Exit;
-
+
Song := CatSongs.Song[Interaction];
if not assigned(Song) then
Exit;
@@ -1755,8 +1809,13 @@ begin
if AudioPlayback.Open(Song.Path.Append(Song.Mp3)) then
begin
PreviewOpened := Interaction;
-
- AudioPlayback.Position := AudioPlayback.Length / 4;
+
+ PreviewPos := AudioPlayback.Length / 4;
+ // fix for invalid music file lengths
+ if (PreviewPos > 60.0) then
+ PreviewPos := 60.0;
+ AudioPlayback.Position := PreviewPos;
+
// set preview volume
if (Ini.PreviewFading = 0) then
begin
@@ -1779,12 +1838,66 @@ begin
AudioPlayback.Stop;
end;
+procedure TScreenSong.StartVideoPreview();
+var
+ VideoFile: IPath;
+ Song: TSong;
+
+begin
+ if (Ini.VideoPreview=0) then
+ Exit;
+
+ if Assigned(fCurrentVideo) then
+ begin
+ fCurrentVideo.Stop();
+ fCurrentVideo := nil;
+ end;
+
+ //if no audio open => exit
+ if (PreviewOpened = -1) then
+ Exit;
+
+ if CatSongs.VisibleSongs = 0 then
+ Exit;
+
+ Song := CatSongs.Song[Interaction];
+ if not assigned(Song) then
+ Exit;
+
+ //fix: if main cat than there is nothing to play
+ if Song.main then
+ Exit;
+
+ VideoFile := Song.Path.Append(Song.Video);
+ if (Song.Video.IsSet) and VideoFile.IsFile then
+ begin
+ fCurrentVideo := VideoPlayback.Open(VideoFile);
+ if (fCurrentVideo <> nil) then
+ begin
+ fCurrentVideo.Position := Song.VideoGAP + AudioPlayback.Position;
+ fCurrentVideo.Play;
+ end;
+ end;
+end;
+
+procedure TScreenSong.StopVideoPreview();
+begin
+ // Stop video preview of previous song
+ if Assigned(fCurrentVideo) then
+ begin
+ fCurrentVideo.Stop();
+ fCurrentVideo := nil;
+ end;
+end;
+
// Changes previewed song
procedure TScreenSong.ChangeMusic;
begin
StopMusicPreview();
+ StopVideoPreview();
PreviewOpened := -1;
StartMusicPreview();
+ StartVideoPreview();
end;
procedure TScreenSong.SkipTo(Target: cardinal);