This commit is contained in:
Alexandr
2018-03-26 15:25:02 +02:00
parent f85d3616c7
commit aaf9a59303
196 changed files with 3046 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
calen.json

527
css/normalize.css vendored Executable file
View File

@ -0,0 +1,527 @@
/*! normalize.css v1.1.0 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/**
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
*/
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
* Known issue: no IE 6 support.
*/
[hidden] {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/**
* 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
* `em` units.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-size: 100%; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
-ms-text-size-adjust: 100%; /* 2 */
}
/**
* Address `font-family` inconsistency between `textarea` and other form
* elements.
*/
html,
button,
input,
select,
textarea {
font-family: sans-serif;
}
/**
* Address margins handled incorrectly in IE 6/7.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/**
* Address `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/**
* Address font sizes and margins set differently in IE 6/7.
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
* and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
h2 {
font-size: 1.5em;
margin: 0.83em 0;
}
h3 {
font-size: 1.17em;
margin: 1em 0;
}
h4 {
font-size: 1em;
margin: 1.33em 0;
}
h5 {
font-size: 0.83em;
margin: 1.67em 0;
}
h6 {
font-size: 0.67em;
margin: 2.33em 0;
}
/**
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
blockquote {
margin: 1em 40px;
}
/**
* Address styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address differences between Firefox and other browsers.
* Known issue: no IE 6/7 normalization.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Address styling not present in IE 6/7/8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address margins set differently in IE 6/7.
*/
p,
pre {
margin: 1em 0;
}
/**
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
_font-family: 'courier new', monospace;
font-size: 1em;
}
/**
* Improve readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
/**
* Address CSS quotes not supported in IE 6/7.
*/
q {
quotes: none;
}
/**
* Address `quotes` property not supported in Safari 4.
*/
q:before,
q:after {
content: '';
content: none;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Lists
========================================================================== */
/**
* Address margins set differently in IE 6/7.
*/
dl,
menu,
ol,
ul {
margin: 1em 0;
}
dd {
margin: 0 0 0 40px;
}
/**
* Address paddings set differently in IE 6/7.
*/
menu,
ol,
ul {
padding: 0 0 0 40px;
}
/**
* Correct list images handled incorrectly in IE 7.
*/
nav ul,
nav ol {
list-style: none;
list-style-image: none;
}
/* ==========================================================================
Embedded content
========================================================================== */
/**
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
* 2. Improve image quality when scaled in IE 7.
*/
img {
border: 0; /* 1 */
-ms-interpolation-mode: bicubic; /* 2 */
}
/**
* Correct overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/**
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/**
* Correct margin displayed oddly in IE 6/7.
*/
form {
margin: 0;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct color not being inherited in IE 6/7/8/9.
* 2. Correct text not wrapping in Firefox 3.
* 3. Correct alignment displayed oddly in IE 6/7.
*/
legend {
border: 0; /* 1 */
padding: 0;
white-space: normal; /* 2 */
*margin-left: -7px; /* 3 */
}
/**
* 1. Correct font size not being inherited in all browsers.
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
* and Chrome.
* 3. Improve appearance and consistency in all browsers.
*/
button,
input,
select,
textarea {
font-size: 100%; /* 1 */
margin: 0; /* 2 */
vertical-align: baseline; /* 3 */
*vertical-align: middle; /* 3 */
}
/**
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
* Known issue: inner spacing remains in IE 6.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
*overflow: visible; /* 4 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* 1. Address box sizing set to content-box in IE 8/9.
* 2. Remove excess padding in IE 8/9.
* 3. Remove excess padding in IE 7.
* Known issue: excess padding remains in IE 6.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
*height: 13px; /* 3 */
*width: 13px; /* 3 */
}
/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Remove inner padding and border in Firefox 3+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
* 2. Improve readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}

2
css/normalize.min.css vendored Executable file
View File

@ -0,0 +1,2 @@
/*! normalize.css v1.1.0 | MIT License | git.io/normalize */
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}

213
css/screen.css Executable file
View File

@ -0,0 +1,213 @@
@font-face {
font-family: amiga;
src: url("../fonts/amiga4ever_pro2.ttf");
font-weight: 400;
}
html, body {
width: 100%;
height: 100%;
}
.fileContainer {
overflow: hidden;
position: relative;
}
.fileContainer [type=file] {
cursor: inherit;
display: block;
font-size: 999px;
filter: alpha(opacity=0);
min-height: 100%;
min-width: 100%;
opacity: 0;
position: absolute;
right: 0;
text-align: right;
top: 0;
}
/* Example stylistic flourishes */
.fileContainer {
background: red;
border-radius: .5em;
float: left;
padding: .5em;
}
.fileContainer [type=file] {
cursor: pointer;
}
body {
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ff5c00), color-stop(100%, #ff5a00));
background: -webkit-linear-gradient(#ff5c00, #ff5a00);
background: -moz-linear-gradient(#ff5c00, #ff5a00);
background: -o-linear-gradient(#ff5c00, #ff5a00);
background: linear-gradient(#ff5c00, #ff5a00);
}
.bg {
width: 100%;
width: calc(100% - 4rem);
height: 100%;
height: calc(100% - 4rem);
position: absolute;
top: 2rem;
left: 2rem;
z-index: -90;
}
.bg.bg1 {
background-repeat: no-repeat;
background-size: contain;
background-position: center;
}
.banner {
font-family: amiga, sans-serif;
}
.banner + .banner {
margin-top: 2.4rem;
}
#headline, #demosong, #metadata, #controls, #choosefile {
text-align: center;
}
#info {
max-width: calc(100% - 2.6rem);
padding: 1.25rem 1.3rem;
background: rgba(20, 20, 20, 0.86);
color: #f9f9f9;
}
#list {
overflow-x: hidden;
}
#headline {
max-width: calc(100% - 2rem);
padding: 1.2rem 1rem;
background: white;
color: #232323;
}
#headline h1 {
margin: 0;
}
@media only screen and (max-width: 45rem) {
#headline h1 {
font-size: 3rem;
}
}
@media only screen and (min-width: 45rem) {
#headline h1 {
font-size: 4.5rem;
}
}
#demosong {
margin-top: 3rem;
}
#demosong a {
color: #232323;
font-size: 0.7rem;
}
#metadata {
display: block;
}
#choosefile input {
padding: 0.5rem;
background: #f7f7f7;
border-radius: 0.35rem;
border: 1px solid rgba(215, 99, 34, 0.78);
}
#choosefile, #controls {
margin-top: 1.9rem;
}
#demos {
text-align: center;
}
#demos > div {
display: inline-block;
margin: 0 auto;
text-align: left;
border: 1px solid rgba(215, 99, 34, 0.78);
padding: 1rem;
background: white;
width: 95vw;
}
#demos > div h2 {
margin: 0 0 0.5rem 0;
font-size: 1.3rem;
}
#demos > div .song {
display: block;
text-decoration: none;
color: #4c4cbd;
cursor: pointer;
}
#demos > div .song + .song {
margin-top: 0.65rem;
}
#demos > div .song .size {
vertical-align: super;
font-size: 0.6rem;
margin-left: 0.3rem;
}
#demos > div .song .size:before {
content: "(";
}
#demos > div .song .size:after {
content: ")";
}
.control {
width: 5rem;
height: 5rem;
border-radius: 2.5rem;
background-color: #505050;
display: inline-block;
box-shadow: 0px 9px 0px #323232, 0px 9px 25px rgba(0, 0, 0, 0.7);
transition: all 0.1s ease;
cursor: pointer;
}
.control:active, .control.pressed {
box-shadow: 0px 3px 0px #323232, 0px 3px 6px rgba(0, 0, 0, 0.7);
}
.control#play {
background-image: url("../img/play.svg");
background-size: 75%;
background-position: 16px 9px;
background-repeat: no-repeat;
}
.control#next {
background-image: url("../img/next.png");
background-size: 75%;
background-position: 16px 9px;
background-repeat: no-repeat;
}
.control#pause {
background-image: url("../img/pause.svg");
background-size: 75%;
background-position: center;
background-repeat: no-repeat;
}
.control#loop {
display: none;
}
.control#loop + label {
background-image: url("../img/loop.svg");
background-size: 75%;
background-position: center;
background-repeat: no-repeat;
}
.control#loop:checked + label {
box-shadow: 0px 3px 0px #323232, 0px 3px 6px rgba(0, 0, 0, 0.7);
}
li {
height:2em;
}

82
css/seekbar.css Executable file
View File

@ -0,0 +1,82 @@
input[type=range].slider {
-webkit-appearance: none;
width: 100%;
margin: 0.7px 0;
}
input[type=range].slider:focus {
outline: none;
}
input[type=range].slider::-webkit-slider-runnable-track {
width: 100%;
height: 25.6px;
cursor: pointer;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
background: #484d4d;
border-radius: 0px;
border: 0px solid #010101;
}
input[type=range].slider::-webkit-slider-thumb {
box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
border: 0px solid #ff1e00;
height: 27px;
width: 18px;
border-radius: 0px;
background: #ffae00;
cursor: pointer;
-webkit-appearance: none;
margin-top: -0.7px;
}
input[type=range].slider:focus::-webkit-slider-runnable-track {
}
input[type=range].slider::-moz-range-track {
width: 100%;
height: 25.6px;
cursor: pointer;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
background: #484d4d;
border-radius: 0px;
border: 0px solid #010101;
}
input[type=range].slider::-moz-range-thumb {
box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
border: 0px solid #ff1e00;
height: 27px;
width: 18px;
border-radius: 0px;
background: #ffae00;
cursor: pointer;
}
input[type=range].slider::-ms-track {
width: 100%;
height: 25.6px;
cursor: pointer;
background: transparent;
border-color: transparent;
color: transparent;
}
input[type=range].slider::-ms-fill-lower {
border: 0px solid #010101;
border-radius: 0px;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
}
input[type=range].slider::-ms-fill-upper {
background: #484d4d;
border: 0px solid #010101;
border-radius: 0px;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
}
input[type=range].slider::-ms-thumb {
box-shadow: 0px 0px 1px #670000, 0px 0px 0px #810000;
border: 0px solid #ff1e00;
height: 27px;
width: 18px;
border-radius: 0px;
background: #ffae00;
cursor: pointer;
height: 25.6px;
}
input[type=range].slider:focus::-ms-fill-lower {
background: #484d4d;
}
input[type=range].slider:focus::-ms-fill-upper {
}

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
fonts/amiga4ever_pro2.ttf Executable file

Binary file not shown.

56
handle_file_upload.php Executable file
View File

@ -0,0 +1,56 @@
<?php
$inp = file_get_contents('mods.json');
$tempArray = json_decode($inp);
$time = time();
//print_r($tempArray);
//$id = uniqid();
$fileName = $_FILES['files']['name'];
$fileType = $_FILES['files']['type'];
$fileContent = file_get_contents($_FILES['files']['tmp_name']);
$dataUrl = 'data:' . $fileType . ';base64,' . base64_encode($fileContent);
$json = json_encode(array(
'name' => $fileName,
'type' => $fileType,
'dataUrl' => $dataUrl
));
$target = 'mods/'.$_FILES['files']['name'];
if (strpos($fileType, 'application') !== false) {
echo '{"type":"message","content":"go_to_the_hooy"}';
} else {
$md5 = md5_file($_FILES['files']['tmp_name']);
$item = null;
foreach($tempArray as $struct) {
if ($md5 == $struct->md5) {
$item = $struct;
break;
}
}
if ($item == null){
move_uploaded_file( $_FILES['files']['tmp_name'], $target);
$id = $tempArray[count($tempArray)-1]->id + 1;
$upl_file->filename = $_FILES['files']['name'];
$upl_file->md5 = $md5;
$upl_file->id = $id;
$upl_file->time = $time;
//echo $json.'<br>';
if ($upl_file->filename != null){
array_push($tempArray, $upl_file);
$jsonData = json_encode($tempArray, JSON_PRETTY_PRINT);
file_put_contents('mods.json', $jsonData);
}
}else{
echo "Warning. File has uploaded already.";
}
}
//$jsonData = json_encode($tempArray);
//file_put_contents('results.json', $jsonData);
//print_r($tempArray);
?>

9
img/headphones.svg Executable file
View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<path fill="white" d="M15.281,66.527c-3.912-14.854-4.723-30.193,4.221-43.656C25.92,13.211,37.953,8.5,50.002,8.5 c12.957,0,23.095,4.306,29.938,13.516c9.817,13.212,8.66,29.667,4.718,44.511c-1.049,3.947,5.48,5.623,6.532,1.679 c4.446-16.748,5.107-35.397-5.4-50.375C78.008,6.744,64.612,0.327,50.527,0.011c-14.232-0.32-27.35,6.45-35.649,16.987 C3.384,31.587,4.354,51.523,8.751,68.206C9.79,72.154,16.323,70.479,15.281,66.527L15.281,66.527z"/>
<polygon fill="white" points="73.271,93.17 79.555,94.307 84.588,70.202 78.301,69.063 "/>
<path fill="white" d="M60.373,94.832c-0.48,2.3,1.84,4.65,5.178,5.258l0,0c3.338,0.604,6.435-0.77,6.916-3.07l6.876-32.961 c0.484-2.301-1.838-4.656-5.174-5.262l0,0c-3.338-0.604-6.437,0.771-6.912,3.071L60.373,94.832z"/>
<path fill="white" d="M82.131,89.794c-0.188,0.901,0.304,1.743,1.097,1.886l1.481,0.27c0.792,0.145,1.588-0.467,1.775-1.363l4.413-21.138 c0.187-0.899-0.305-1.739-1.098-1.886l-1.479-0.271c-0.795-0.144-1.592,0.472-1.779,1.366L82.131,89.794z"/>
<polygon fill="white" points="26.713,93.168 20.429,94.307 15.397,70.202 21.683,69.063 "/>
<path fill="white" d="M39.608,94.83c0.481,2.302-1.837,4.65-5.174,5.26l0,0c-3.338,0.604-6.438-0.77-6.917-3.07l-6.879-32.961 c-0.479-2.301,1.837-4.656,5.175-5.262l0,0c3.34-0.604,6.437,0.771,6.917,3.071L39.608,94.83z"/>
<path fill="white" d="M17.853,89.794c0.185,0.899-0.306,1.743-1.099,1.883l-1.479,0.271c-0.793,0.145-1.59-0.467-1.777-1.361L9.085,69.445 c-0.188-0.896,0.306-1.738,1.1-1.885l1.478-0.269c0.796-0.146,1.591,0.467,1.777,1.364L17.853,89.794z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

13
img/loop.svg Executable file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- License Agreement at http://iconmonstr.com/license/ -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill="white" id="repeat-3-icon" d="M322.697,248.393v-44.592H142.5c-28.948,0-52.5,23.551-52.5,52.5c0,10.296,2.991,19.901,8.133,28.016
l-34.131,20.927C55.132,291.046,50,274.274,50,256.301c0-51.086,41.413-92.5,92.5-92.5h180.197v-45.387l105.996,64.989
L322.697,248.393z M447.727,206.924l-34.137,20.93c5.312,8.204,8.41,17.968,8.41,28.447c0,28.949-23.552,52.5-52.5,52.5H189.303
v-45.193L83.307,328.597l105.996,64.989v-44.785H369.5c51.087,0,92.5-41.414,92.5-92.5C462,238.144,456.765,221.212,447.727,206.924
z"/>
</svg>

After

Width:  |  Height:  |  Size: 960 B

BIN
img/next.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

9
img/pause.svg Executable file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- License Agreement at http://iconmonstr.com/license/ -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill="white" id="pause-icon" d="M217.679,462h-120V50h120V462z M414.321,50h-120v412h120V50z"/>
</svg>

After

Width:  |  Height:  |  Size: 541 B

9
img/play.svg Executable file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- License Agreement at http://iconmonstr.com/license/ -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill="white" id="play-icon" d="M88.008,462V50l335.984,206.002L88.008,462z"/>
</svg>

After

Width:  |  Height:  |  Size: 524 B

BIN
img/save1.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

77
index.html Executable file
View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html class="no-js">
<head>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-4886067178571203",
enable_page_level_ads: true
});
</script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/screen.css">
<link rel="stylesheet" href="css/seekbar.css">
<script type="text/javascript" src="js/libopenmpt.js"></script>
<script type="text/javascript" src="js/chiptune2.js"></script>
<script type="text/javascript" src="js/logic.js"></script>
</head>
<body id="bgAudio">
<div class="bg bg1"></div>
<div id="content">
<div id="info" class="banner">
<p>Drop any module file (.mod, .xm, .it, etc.) on this page and hit play! </p>
</div>
<div id="headline" class="banner"><h1>hexound</h1></div>
<div id="metadata" class="banner">
<span id="title"></span>
<span id="artist"></span>
<p>Filename - <span id="filename"></span></p>
</div>
<div id="controls" class="banner">
<a onclick="pauseButton()" id="play" class="control"></a>
<a onclick="start_play()" id="next" class="control"></a>
</div>
<div style="margin:10px" class="banner">
<span class="banner" id="output">00</span>
<input id="rangeinput" class="slider banner" type="range" min="0" max="100" style="width:98%" step="0.01">
<span class="banner" id="duration">00</span>
<div style="clear:both"></div>
</div>
<div id="demos" class="banner">
<div id="list" style="overflow-y:scroll; height:400px;">
<h2># playlist</h2>
| <label>Shuffle <input type="radio" name="playmode" value="shuffle"/></label> |
<label>Loop <input type="radio" name="playmode" value="loop"/></label> |
<label>Direct order <input type="radio" name="playmode" value="direct_order" checked/></label> |
<p>
<input type="text" id="input" style="width:100%"/>
</p>
</div>
</div>
</div>
ver. <span id="version">0.0</span>
</body>
<script>
var interval;
$("#rangeinput").mousedown(function(event){
interval = setInterval(function(){
$("#output").html($("#rangeinput").val());
player.seek($("#rangeinput").val());
console.log("running");
},150);
});
$("#rangeinput").mouseup(function(event){
clearInterval(interval);
});
</script>
</html>

218
js/chiptune2.js Executable file
View File

@ -0,0 +1,218 @@
// audio context
ChiptuneAudioContext = AudioContext || webkitAudioContext;
// config
function ChiptuneJsConfig(repeatCount, context) {
this.repeatCount = repeatCount;
this.context = context;
}
// player
function ChiptuneJsPlayer(config) {
this.config = config;
this.context = config.context || new ChiptuneAudioContext;
this.currentPlayingNode = null;
this.handlers = [];
}
// event handlers section
ChiptuneJsPlayer.prototype.fireEvent = function (eventName, response) {
var handlers = this.handlers;
if (handlers.length) {
handlers.forEach(function (handler) {
if (handler.eventName === eventName) {
handler.handler(response);
}
})
}
}
ChiptuneJsPlayer.prototype.addHandler = function (eventName, handler) {
this.handlers.push({eventName: eventName, handler: handler});
}
ChiptuneJsPlayer.prototype.onEnded = function (handler) {
this.addHandler('onEnded', handler);
}
ChiptuneJsPlayer.prototype.onError = function (handler) {
this.addHandler('onError', handler);
}
// metadata
ChiptuneJsPlayer.prototype.duration = function() {
return Module._openmpt_module_get_duration_seconds(this.currentPlayingNode.modulePtr);
}
ChiptuneJsPlayer.prototype.metadata = function() {
var data = {};
var keys = Module.Pointer_stringify(Module._openmpt_module_get_metadata_keys(this.currentPlayingNode.modulePtr)).split(';');
var keyNameBuffer = 0;
for (var i = 0; i < keys.length; i++) {
keyNameBuffer = Module._malloc(keys[i].length + 1);
Module.writeStringToMemory(keys[i], keyNameBuffer);
data[keys[i]] = Module.Pointer_stringify(Module._openmpt_module_get_metadata(player.currentPlayingNode.modulePtr, keyNameBuffer));
Module._free(keyNameBuffer);
}
return data;
}
ChiptuneJsPlayer.prototype.seek = function(position) {
Module._openmpt_module_set_position_seconds(this.currentPlayingNode.modulePtr, position);
}
ChiptuneJsPlayer.prototype.getPosition = function() {
return Module._openmpt_module_get_position_seconds(this.currentPlayingNode.modulePtr);
}
// playing, etc
ChiptuneJsPlayer.prototype.load = function(input, callback) {
var player = this;
if (input instanceof File) {
var reader = new FileReader();
reader.onload = function() {
return callback(reader.result); // no error
}.bind(this);
reader.readAsArrayBuffer(input);
} else {
var xhr = new XMLHttpRequest();
xhr.open('GET', input, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
if (xhr.status === 200) {
return callback(xhr.response); // no error
} else {
player.fireEvent('onError', {type: 'onxhr'});
}
}.bind(this);
xhr.onerror = function() {
player.fireEvent('onError', {type: 'onxhr'});
};
xhr.onabort = function() {
player.fireEvent('onError', {type: 'onxhr'});
};
xhr.send();
}
}
ChiptuneJsPlayer.prototype.play = function(buffer) {
this.stop();
var processNode = this.createLibopenmptNode(buffer, this.config);
if (processNode == null) {
return;
}
// set config options on module
Module._openmpt_module_set_repeat_count(processNode.modulePtr, this.config.repeatCount);
this.currentPlayingNode = processNode;
processNode.connect(this.context.destination);
}
ChiptuneJsPlayer.prototype.stop = function() {
if (this.currentPlayingNode != null) {
this.currentPlayingNode.disconnect();
this.currentPlayingNode.cleanup();
this.currentPlayingNode = null;
}
}
ChiptuneJsPlayer.prototype.togglePause = function() {
if (this.currentPlayingNode != null) {
this.currentPlayingNode.togglePause();
}
}
ChiptuneJsPlayer.prototype.createLibopenmptNode = function(buffer, config) {
// TODO error checking in this whole function
var maxFramesPerChunk = 4096;
var processNode = this.context.createScriptProcessor(0, 0, 2);
processNode.config = config;
processNode.player = this;
var byteArray = new Int8Array(buffer);
var ptrToFile = Module._malloc(byteArray.byteLength);
Module.HEAPU8.set(byteArray, ptrToFile);
processNode.modulePtr = Module._openmpt_module_create_from_memory(ptrToFile, byteArray.byteLength, 0, 0, 0);
processNode.paused = false;
processNode.leftBufferPtr = Module._malloc(4 * maxFramesPerChunk);
processNode.rightBufferPtr = Module._malloc(4 * maxFramesPerChunk);
processNode.cleanup = function() {
if (this.modulePtr != 0) {
Module._openmpt_module_destroy(this.modulePtr);
this.modulePtr = 0;
}
if (this.leftBufferPtr != 0) {
Module._free(this.leftBufferPtr);
this.leftBufferPtr = 0;
}
if (this.rightBufferPtr != 0) {
Module._free(this.rightBufferPtr);
this.rightBufferPtr = 0;
}
}
processNode.stop = function() {
this.disconnect();
this.cleanup();
}
processNode.pause = function() {
this.paused = true;
}
processNode.unpause = function() {
this.paused = false;
}
processNode.togglePause = function() {
this.paused = !this.paused;
}
processNode.onaudioprocess = function(e) {
var outputL = e.outputBuffer.getChannelData(0);
var outputR = e.outputBuffer.getChannelData(1);
var framesToRender = outputL.length;
if (this.ModulePtr == 0) {
for (var i = 0; i < framesToRender; ++i) {
outputL[i] = 0;
outputR[i] = 0;
}
this.disconnect();
this.cleanup();
return;
}
if (this.paused) {
for (var i = 0; i < framesToRender; ++i) {
outputL[i] = 0;
outputR[i] = 0;
}
return;
}
var framesRendered = 0;
var ended = false;
var error = false;
while (framesToRender > 0) {
var framesPerChunk = Math.min(framesToRender, maxFramesPerChunk);
var actualFramesPerChunk = Module._openmpt_module_read_float_stereo(this.modulePtr, this.context.sampleRate, framesPerChunk, this.leftBufferPtr, this.rightBufferPtr);
if (actualFramesPerChunk == 0) {
ended = true;
// modulePtr will be 0 on openmpt: error: openmpt_module_read_float_stereo: ERROR: module * not valid or other openmpt error
error = !this.modulePtr;
}
var rawAudioLeft = Module.HEAPF32.subarray(this.leftBufferPtr / 4, this.leftBufferPtr / 4 + actualFramesPerChunk);
var rawAudioRight = Module.HEAPF32.subarray(this.rightBufferPtr / 4, this.rightBufferPtr / 4 + actualFramesPerChunk);
for (var i = 0; i < actualFramesPerChunk; ++i) {
outputL[framesRendered + i] = rawAudioLeft[i];
outputR[framesRendered + i] = rawAudioRight[i];
}
for (var i = actualFramesPerChunk; i < framesPerChunk; ++i) {
outputL[framesRendered + i] = 0;
outputR[framesRendered + i] = 0;
}
framesToRender -= framesPerChunk;
framesRendered += framesPerChunk;
}
if (ended) {
this.disconnect();
this.cleanup();
error ? processNode.player.fireEvent('onError', {type: 'openmpt'}) : processNode.player.fireEvent('onEnded');
}
}
return processNode;
}

35
js/libopenmpt.js Normal file

File diff suppressed because one or more lines are too long

251
js/logic.js Executable file
View File

@ -0,0 +1,251 @@
var player;
var interval;
var playlist = [];
var fileaccess = document.querySelector('*');
var current_mod;
var mode = "direct_order";
var VERSION = 0.07
function init() {
if (player == undefined) {
player = new ChiptuneJsPlayer(new ChiptuneJsConfig(0));
setInterval(progress, 200);
}
else {
player.stop();
playPauseButton();
}
}
function getRandomInt(max) {
min = 0;
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
function start_play(id, action) {
document.getElementById("mod_"+current_mod).style.color = "#4c4cbd";
if (action == "user") {
var result = $.grep(playlist, function(e){ return e.id == id; });
console.log(result[0].name);
console.log("Currently playing: "+current_mod)
document.getElementById("mod_"+current_mod).style.color = "#4c4cbd";
id = result[0].id;
name = result[0].name;
console.log('PLaying ' + name + ". Initiated by User.");
loadURL('/mods/' + name);
document.getElementById('filename').innerHTML = name
window.location.hash = '#' + (id);
document.getElementById("mod_" + id).style.color = "#b30059";
current_mod = id;
} else {
if (check_mode() == "shuffle") {
var next = getRandomInt(playlist.length);
console.log('PLaying ' + playlist[next].name + ". Initiated by System. Shuffle");
loadURL('/mods/' + playlist[next].name);
document.getElementById('filename').innerHTML = playlist[next].name
window.location.hash = '#' + playlist[next].id
document.getElementById("mod_" + playlist[next].id).style.color = "#b30059";
current_mod = next;
} else if (check_mode() == "direct_order") {
var next = playlist.findIndex(x => x.id == current_mod) + 1;
id = playlist[next].id;
name = playlist[next].name;
console.log('PLaying ' + name + ". Initiated by System. Direct order.");
loadURL('/mods/' + name);
document.getElementById('filename').innerHTML = name
window.location.hash = '#' + id
document.getElementById("mod_" + id).style.color = "#b30059";
current_mod = id;
} else if (check_mode() == "loop") {
var next = playlist.findIndex(x => x.id == current_mod);
id = playlist[next].id;
name = playlist[next].name;
console.log('PLaying ' + name + ". Initiated by System. Loop.");
loadURL('/mods/' + name);
document.getElementById('filename').innerHTML = name
window.location.hash = '#' + id
document.getElementById("mod_" + id).style.color = "#b30059";
current_mod = id;
}
}
}
function setMetadata(filename) {
var metadata = player.metadata();
if (metadata['title'] != '') {
document.getElementById('title').innerHTML = metadata['title'];
}
else {
document.getElementById('title').innerHTML = filename;
}
if (metadata['artist'] != '') {
document.getElementById('artist').innerHTML = '<br />' + metadata['artist'];
}
else {
document.getElementById('artist').innerHTML = '';
}
}
function toInt(n) {
return Math.round(Number(n));
};
function progress() {
document.getElementById('rangeinput').value = player.getPosition();
$("#output").html(toInt(player.getPosition()));
if (toInt(player.getPosition()) == toInt(player.duration()))
start_play(0, "system")
}
function loadURL(path) {
clearInterval(interval);
init();
player.load(path, function (buffer) {
player.play(buffer);
setMetadata(path);
$("#rangeinput").attr('max', player.duration());
$("#rangeinput").attr('value', 0);
$("#duration").html(toInt(player.duration()));
pausePauseButton();
});
}
function pauseButton() {
player.togglePause();
switchPauseButton();
}
function switchPauseButton() {
var button = document.getElementById('pause')
if (button) {
button.id = "play_tmp";
}
button = document.getElementById('play')
if (button) {
button.id = "pause";
}
button = document.getElementById('play_tmp')
if (button) {
button.id = "play";
}
}
function playPauseButton() {
var button = document.getElementById('pause');
if (button) {
button.id = "play";
}
}
function pausePauseButton() {
var button = document.getElementById('play')
if (button) {
button.id = "pause";
}
}
fileaccess.ondrop = function (e) {
e.preventDefault();
var file = e.dataTransfer.files[0];
var fd = new FormData();
fd.append("files", file);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'handle_file_upload.php', true);
xhr.upload.onprogress = function (e) {
if (e.lengthComputable) {
var percentComplete = (e.loaded / e.total) * 100;
console.log(percentComplete + '% uploaded');
}
};
xhr.onload = function () {
if (this.status == 200) {
var resp = JSON.parse(this.response);
console.log('Server got:', resp);
};
};
xhr.send(fd);
init();
player.load(file, function (buffer) {
player.play(buffer);
setMetadata(file.name);
pausePauseButton();
});
get_files();
}
fileaccess.ondragenter = function (e) { e.preventDefault(); }
fileaccess.ondragover = function (e) { e.preventDefault(); };
function get_files() {
$.getJSON('library.php', function (data) {
$('#list').append('<ul style="list-style-type: none;margin: 0;padding: 0;">')
$.each(data, function (key, val) {
//if(val.time == undefined){val.time = 1493299893}
var tmp = {
'name' : val.filename,
'id' : val.id
//'uploaded': val.time
};
$('#list').append('<li style="list-style-type: none;" class="thumb selectable arrow light" ><span class="song name" onclick="start_play('+val.id+',\'user\')"><a href="mods/' + val.filename + '"><img style="height:1em;" src="/img/save1.png"></a> <span id="mod_' + val.id + '" class="name_song">' + val.filename + '</span></span></li>');
console.log(key, val.id);
tmp
playlist.push(tmp);
});
console.log('Summary:', playlist.length, 'tracks.')
current_mod = playlist.length - 1;
$('#list').append('</ul>')
var mod_number = parseInt(window.location.hash.substr(1));
if (window.location.hash.substr(1) != "") {
start_play(mod_number,"user")
console.log("Playing from url mod # " + window.location.hash.substr(1));
}
});
$(window).on('hashchange', function() {
var mod_number = parseInt(window.location.hash.substr(1));
if (window.location.hash.substr(1) != "") {
start_play(mod_number,"user")
console.log("Playing from url mod # " + window.location.hash.substr(1));
}
});
}
get_files();
window.onload = function up() {
var input = document.getElementById('input');
document.getElementById('version').innerHTML =VERSION;
input.onkeyup = function () {
var filter = input.value.toUpperCase();
var lis = document.getElementsByTagName('li');
for (var i = 0; i < lis.length; i++) {
var name = lis[i].getElementsByClassName('name_song')[0].innerHTML;
//if (name.toUpperCase().indexOf(filter) == 0)
if (name.toUpperCase().includes(filter) == true) {
lis[i].style.display = 'list-item'
}
else
lis[i].style.display = 'none';
}
};
}
function check_mode()
{
var inp = document.getElementsByName('playmode');
for (var i = 0; i < inp.length; i++) {
if (inp[i].type == "radio" && inp[i].checked) {
return inp[i].value;
}
}
}

BIN
libopenmpt.js.mem Normal file

Binary file not shown.

5
library.php Executable file
View File

@ -0,0 +1,5 @@
<?php
$inp = file_get_contents('mods.json');
$library = json_decode($inp);
echo json_encode($library);
?>

790
mods.json Normal file
View File

@ -0,0 +1,790 @@
[
{
"md5": "34c2f5f654270e2f5a70d6e5c72a5861",
"filename": "daddy_freddy-under_the_bridge.mod",
"id": 2
},
{
"md5": "c4744d262f21231968b72e5e59c64989",
"id": 3,
"filename": "AGGRESSiON - Anti-Trojan Elite 3.4.3crk.mod"
},
{
"filename": "AERiS - Hod Dog King +7trn_02.mod",
"id": 4,
"md5": "08f21ad17f132c666835c73baba7d906"
},
{
"md5": "91118bb9e2bfcd0f24923495098973d2",
"filename": "4mat-menu3.mod",
"id": 5
},
{
"md5": "5e5c0af1c302d1b4a3216039fc24b115",
"id": 6,
"filename": "MYTH - Star Trek Voyager - Elite Force installer.XM"
},
{
"md5": "093c1a085bf9eb7c316c5b85025777f3",
"filename": "MYTH - Age Of Empires 2. Conquerorsinstaller.XM",
"id": 7
},
{
"md5": "b368c12784a41617895f1df9ef03602d",
"id": 8,
"filename": "Mp2k - Speeder XP 1.xcrk.mod"
},
{
"md5": "c00b2a95f6e75f88dd0cd92e7caead3d",
"id": 9,
"filename": "Lucid - Compare It! 3.81.1660kg.XM"
},
{
"md5": "0f2a289f47333ff61d13156b85644a43",
"filename": "vim-nuff_naff_ness.mod",
"id": 10
},
{
"filename": "technix-android.mod",
"id": 11,
"md5": "262de0c4bf31e18d823fbce9da1f1494"
},
{
"md5": "57e0e75881814972f59bcbcc5b77ecd8",
"filename": "AAOCG - mIRC 6.xkg.xm",
"id": 12
},
{
"filename": "ACME - Acronis TrueImage 10kg.mod",
"id": 13,
"md5": "350717915ad3e74ebfc6885e80001f93"
},
{
"id": 14,
"filename": "ADMINCRACK - Image Resize Guide 1.4 crk.it",
"md5": "757519ed54131077d2c7ba8d6bee97c1"
},
{
"filename": "AGAiN - AutoShutdownkg.xm",
"id": 15,
"md5": "f077d40adf510bcc32e98a5da67e1856"
},
{
"md5": "0d8bbb9c784a5a1f56d7ad5f25c56304",
"filename": "AGAiN - EIQ FirewallAnalyzer 3.2.10kg.xm",
"id": 16
},
{
"filename": "AGAiN - Novelty Pro 8.24 kg.xm",
"id": 17,
"md5": "dff17b7c1d9d88ee83352d0e8ab0d313"
},
{
"md5": "783bf8ee97a1591e6da19a8a41f43c08",
"filename": "BAKA! - DigiTV-HD 3.7.10 crk.xm",
"id": 18
},
{
"id": 19,
"filename": "banana_skin.mod",
"md5": "f9d82a6fa78c5414ffe79ea5d801b0ba"
},
{
"md5": "9ba16f9f58bdafc22d4dbcd236aa1bf3",
"id": 20,
"filename": "BetaMaster - Easy CD-DA Extractor 8.2.1crk.xm"
},
{
"filename": "Black Magic - Alien Shooter 1.2 +1trn.xm",
"id": 21,
"md5": "7304ab95990a00e05db0d02db7f1f03d"
},
{
"md5": "5e0b3daa184cdfb15e5dc2a746de4230",
"filename": "BRD - No.1 Video Converterkg.xm",
"id": 22
},
{
"md5": "4e7887bcd4495e8ad2147a17057fb94e",
"filename": "BRD - Teleport Prokg.xm",
"id": 23
},
{
"md5": "1d8def01b93ea0bd97ad8af40425df42",
"id": 24,
"filename": "Canterwood - Hex Workshop v4.22kg.xm"
},
{
"filename": "chipsounds.mod",
"id": 25,
"md5": "85428bb7ac13730d2576f0904eb7d019"
},
{
"md5": "d3e2910ade401a9a607570eee77e20ae",
"filename": "CiM - Nero 6kg.xm",
"id": 26
},
{
"md5": "e3967a2d4ffe25e4e6c17f6616adf7d6",
"id": 27,
"filename": "civilian.xm"
},
{
"md5": "1c17ef518924e9df6af67d3673452a63",
"id": 28,
"filename": "CORE - Power ISO 3.1kg.xm"
},
{
"md5": "20260901aedf916a922a739bb082673c",
"filename": "cydonian sky.xm",
"id": 29
},
{
"md5": "edcde32277e426ec6920575360d92840",
"filename": "db_vod4k.xm",
"id": 30
},
{
"md5": "e41394a3efbf0f6368a84e7d4074c725",
"filename": "DiGERATi - CHM To PDF Converter Professional 3.4crk.XM",
"id": 31
},
{
"id": 32,
"filename": "DiGERATi - FontLab Studio 5.0crk.XM",
"md5": "43981fda7802564a2dce4f7e3ba4fd6b"
},
{
"filename": "doors_light_my_fire.xm",
"id": 33,
"md5": "f798ab94a67c386af12733096c38206b"
},
{
"md5": "17f1e6d22dbb8ff23f622022af5cbfab",
"filename": "dtn-super_mario_brothers.xm",
"id": 34
},
{
"md5": "82593ac53dec8396b748d21f5d3fc4dc",
"filename": "ECLIPSE - Recover My Files 3.94kg.xm",
"id": 35
},
{
"md5": "eed4e6ae80a01b7c78ca10088f4f02c5",
"id": 36,
"filename": "fuck_sopa.xm"
},
{
"id": 37,
"filename": "fuck_techno2.mod",
"md5": "28e6e43e1154ffafec19768a06bd46c9"
},
{
"id": 38,
"filename": "gandbox-mimi_mati_show.mod",
"md5": "3f49172fc36ed1225c12b21d00a8e5e1"
},
{
"md5": "1a2d9883717f27efbfea196dbeb5aa2f",
"id": 39,
"filename": "imploder.xm"
},
{
"md5": "2857fbace6b8f4773fb98f119ef0b5be",
"filename": "instant_remedy-giana_sisters.xm",
"id": 40
},
{
"id": 41,
"filename": "jozz-cognition.mod",
"md5": "9e6249bae45c2679f2c4e91a2e879ade"
},
{
"filename": "kabcorp_-_cracktro_vs_game.mod",
"id": 42,
"md5": "cecfbd229da317120e1891cc03d888e7"
},
{
"filename": "Kindly - Another World 1.1cinstaller.mod",
"id": 43,
"md5": "73b2e755d0bcff40fbb6bb728f92601c"
},
{
"id": 44,
"filename": "Kindly - HyperSnap 6.40.06crk.S3M",
"md5": "cdfe714f37b2354216b945a354318a80"
},
{
"id": 45,
"filename": "mcmp-happy_new_year93.mod",
"md5": "2d2822cdd56d3c791b1d8b5aff5b0384"
},
{
"id": 46,
"filename": "mktheme.it",
"md5": "61b1bd9b662b85eb988716837c0ea675"
},
{
"id": 47,
"filename": "Monday.mod",
"md5": "ec7b7e2756b698cfed265d59c5f6d526"
},
{
"id": 48,
"filename": "mysteristerium.mod",
"md5": "42bd323219feee18d24fbd807cc1d8f3"
},
{
"filename": "popcorns.mod",
"id": 49,
"md5": "429e39302641b5681c6afcb4d8bf73a5"
},
{
"md5": "ceae1bc5b9a6fdc52497eee53eb1c025",
"id": 50,
"filename": "psycho_force.xm"
},
{
"md5": "28b3016c2ea7b306cd25a8ff2a369e86",
"filename": "Razor1911 - Crysiskg.xm",
"id": 51
},
{
"md5": "47ab4ab78f11abd14712a3306edf8a3f",
"id": 52,
"filename": "RELOADED - Resident Evil 6 installer.xm"
},
{
"md5": "7a6fe486c260ccd93704b303f2d219e5",
"filename": "rfchip001.xm",
"id": 53
},
{
"md5": "e95976a08b6ffd09cbca52d52f0b38b1",
"id": 54,
"filename": "riders_on_the_storm.mod"
},
{
"filename": "SnD - Internet Download Manager 6.xx kg.xm",
"id": 55,
"md5": "b28edfbfea13631e5dc697d912aa4a83"
},
{
"md5": "63f3abd118a87ef6db6bdffb4b627046",
"filename": "SoS - Crackme25.xm",
"id": 56
},
{
"md5": "4c0ac335c82f59e72fb6aca1f2433e2c",
"id": 57,
"filename": "sound-of-da-lunatic.mod"
},
{
"md5": "a8f1570e9304f16597fd860a04a08e4b",
"id": 58,
"filename": "spoon-arkanoid.mod"
},
{
"md5": "9c0c477aeec397c14a07cae68a6fa209",
"filename": "StardustMemories.mod",
"id": 59
},
{
"filename": "tdk-russian_theme.mod",
"id": 60,
"md5": "b257cb601eeea4e67bf90fe60d4fb611"
},
{
"md5": "a82972add4a7917f77687e3115ceca56",
"filename": "team_destruction.xm",
"id": 61
},
{
"md5": "c03287aabaaaeac781c4946badaee564",
"id": 62,
"filename": "tinybrai.mod"
},
{
"md5": "2d1eb17e622ffc3608c1c53a496b1bbd",
"filename": "UnderPl - FlashGet 1.71kg.xm",
"id": 63
},
{
"filename": "_) - WinRAR and RAR unblacklister.xm",
"id": 64,
"md5": "b2dcf05d1f0fdda0370d2d620cca9a6d"
},
{
"md5": "99afd2250d8269c735e40f36be24ffc2",
"id": 65,
"filename": "wltrs_-_sunset.xm"
},
{
"filename": "FFF - EA Games Multikg.xm",
"id": 66,
"time": 1493299894,
"md5": "a7a6c5f93034b71b0c6d8d5a83c90da1"
},
{
"md5": "01e93348dfe58327a84dec3bf432da59",
"id": 67,
"filename": "F4CG - Moleskinsoft Clone Removercrk.xm",
"time": 1493301160
},
{
"md5": "cb2a73af74a63fe05887abed34a73466",
"time": 1493415017,
"id": 68,
"filename": "emax-its_grim_up_north.mod"
},
{
"md5": "8fbe59de618c0c247ea7bc48ef58c872",
"id": 69,
"filename": "floppi-valon_lapsi.xm",
"time": 1493974897
},
{
"id": 73,
"filename": "shout-fresh_juice2.mod",
"time": 1494529235,
"md5": "ab475a04377775d00b7e7d01d83ef13c"
},
{
"filename": "kollaps-coming_soon.mod",
"id": 74,
"time": 1495043261,
"md5": "44785ca97e6fc246ab2867f1f3b5b49e"
},
{
"md5": "abc983a21ae038398b4e60ef6a9edde0",
"time": 1495195119,
"filename": "pricky-hopper_dopper_popper.xm",
"id": 75
},
{
"md5": "57916e7c7f13365ebddb45a5c228be40",
"id": 76,
"filename": "minimum_velocity.s3m",
"time": 1496708803
},
{
"filename": "the_song.mod",
"id": 77,
"time": 1496709826,
"md5": "20bbc8e035928a4896f29588daf11fe1"
},
{
"time": 1496709838,
"filename": "razor_1911.mod",
"id": 78,
"md5": "ba6b5d633d1e6fec84819a24b0e5e25a"
},
{
"md5": "f347a8257b97a8d3c09ded3524d652ed",
"time": 1496780994,
"filename": "revenge.it",
"id": 79
},
{
"md5": "d9f4a42b6a1e220665e1907967449079",
"time": 1496781493,
"id": 80,
"filename": "radix-weather_girl.xm"
},
{
"id": 81,
"filename": "BReWErS - Timeshift 1.2 +6trn.xm",
"time": 1497050367,
"md5": "461c7639f1903ecbd0dd1613f2788d2c"
},
{
"filename": "BReWErS - Mass Effect 2 +15trn.xm",
"id": 82,
"time": 1497050371,
"md5": "286c3cdfcb3328b89c4137e54e487aa1"
},
{
"md5": "ef55a65773c1f4a053e5ab2758dbbd40",
"time": 1497050373,
"id": 83,
"filename": "BReWErS - Star Wars Force Unleashed Ultimate Sith Edition 1.1 +4trn.xm"
},
{
"md5": "00ad171aa8f89c6fab88ed62b25cdb83",
"time": 1497051131,
"filename": "BReWErS - Mirrors Edge 1.01 +7trn.xm",
"id": 84
},
{
"time": 1497052044,
"id": 85,
"filename": "BReWErS - X Blade +7trn.xm",
"md5": "6bb9c2f043f164a9b62b0c420fd28d68"
},
{
"md5": "99ada7b5a2efd94ecbcb4ee75e3f3641",
"id": 86,
"filename": "Orion-Nero6.3.1.6.xm",
"time": 1497052105
},
{
"time": 1497052213,
"filename": "Again - Link Stash 1.6.8.0kg.XM",
"id": 87,
"md5": "2a59014789ded1bc0f137b5bb180641e"
},
{
"time": 1497052308,
"filename": "AGAiN - FlashGetkgl_converted.xm",
"id": 88,
"md5": "be4a24b398c91852d0208fc5c107a8c0"
},
{
"id": 89,
"filename": "AGAiN - Stream SubText 2.1.14 DC 121003 kg.mod",
"time": 1497052310,
"md5": "d7e6956de806f74b43090e73c23d8f31"
},
{
"md5": "705ff5427f931071feb84616b69b2452",
"time": 1497052568,
"filename": "AGAiN - Swift 3Dkg.xm",
"id": 90
},
{
"md5": "212964b45d696e71ec452ed10036c67f",
"filename": "AiR - Nomad Factory All Products kg.it",
"id": 91,
"time": 1497052907
},
{
"filename": "TSRh - FlashGet1.65kg.xm",
"id": 92,
"time": 1497052978,
"md5": "9e01f1250ec175743bd00e8823ee4295"
},
{
"time": 1499670676,
"filename": "sf2megam.xm",
"id": 93,
"md5": "3ada68fd1a7bb8524bc0487302861631"
},
{
"id": 94,
"filename": "loxley-das_model.mod",
"time": 1500154189,
"md5": "9ca89fbb023fece3d746437c30af55d5"
},
{
"time": 1500287899,
"id": 95,
"filename": "lesnik-rob_mat_reyn_pink.xm",
"md5": "f9635d78466456d3b4796970e92d81c8"
},
{
"id": 96,
"filename": "maktone-the_crazy_dentist.mod",
"time": 1500325565,
"md5": "15bf49e3749473b20aa383fffd71d40e"
},
{
"md5": "68f8d4b824ff660d799b06e38e9293b8",
"time": 1500487726,
"id": 97,
"filename": "radix_xyce_-_rainbow_dash_.xm"
},
{
"md5": "48e1381bdf5aa9344bc56e1d00e8bbdc",
"time": 1500607726,
"id": 98,
"filename": "floppi_dreamchip_megamix2.xm"
},
{
"filename": "95-GABBA-MEGAMIX.MOD",
"md5": "a9cb37ec290e62575ee646dbd0f52dd0",
"id": 99,
"time": 1501138138
},
{
"filename": "algar-five.xm",
"md5": "d73fd7d61f389218b316a3136eec10b2",
"id": 100,
"time": 1501385077
},
{
"filename": "CORE - BoostSpeed3.0.2.451Keygen.xm",
"md5": "f4d0b1f6d0f6406dfbe65a137b2c1627",
"id": 101,
"time": 1501484486
},
{
"filename": "Deviance - Yeti Sports Arctic Adventurestrn.xm",
"md5": "438b4c46ac27979a5050e7fcb1745d12",
"id": 102,
"time": 1501510869
},
{
"filename": "maktone-class10.mod",
"md5": "53949e6a0c2dd47262f53200fd0a5465",
"id": 103,
"time": 1502214804
},
{
"filename": "maktone-2000ad_cracktro2.mod",
"md5": "d976d97769484c8bd746f888cc6e6f33",
"id": 104,
"time": 1502216328
},
{
"filename": "maktone-castlevania1.mod",
"md5": "73e3867a267a7edda6e9408280a06f78",
"id": 105,
"time": 1502216328
},
{
"filename": "maktone-class3.mod",
"md5": "89ea3039b1808298bf0a8dfe2ffe14c0",
"id": 106,
"time": 1502216329
},
{
"filename": "maktone-class5.mod",
"md5": "805224e3e09871652da22ed995fd2636",
"id": 107,
"time": 1502216329
},
{
"filename": "maktone-class6.mod",
"md5": "c4540d316b5d85d99575d7e8e147ef74",
"id": 108,
"time": 1502216329
},
{
"filename": "maktone-class9.mod",
"md5": "e09ed85e3d7ce90f0498d546ee17febc",
"id": 109,
"time": 1502216329
},
{
"filename": "maktone-class_cracktro15.mod",
"md5": "b812d1ae5ebc9e6a43028f2df5b70439",
"id": 110,
"time": 1502216329
},
{
"filename": "maktone-class_installer2.mod",
"md5": "715162a6a811761247ec3e0f2f978c37",
"id": 111,
"time": 1502216329
},
{
"filename": "maktone-false_alarm.mod",
"md5": "b357ef811e148b99b56a1bc3c6adced6",
"id": 112,
"time": 1502216330
},
{
"filename": "maktone-freedom.mod",
"md5": "6780799e65056d04314b39923fa7874f",
"id": 113,
"time": 1502216330
},
{
"filename": "maktone-invite_intro2001.mod",
"md5": "2f879958129ba77705d1b4543a9dc142",
"id": 114,
"time": 1502216330
},
{
"filename": "maktone-meskalin.mod",
"md5": "454a9bfa1cf62e223974d47ed1677fb3",
"id": 115,
"time": 1502216330
},
{
"filename": "maktone-paint_it_black.mod",
"md5": "22c52117dceff39d8ae53fa5b1e6cf69",
"id": 116,
"time": 1502216330
},
{
"filename": "maktone-razor1911_chipdisk1.mod",
"md5": "c9d11b96b6ce52ab9b18be34282c10ea",
"id": 117,
"time": 1502216330
},
{
"filename": "maktone-razor1911_chipdisk2.mod",
"md5": "7e93d8724fe8ac0c40c2d0db4160b64c",
"id": 118,
"time": 1502216330
},
{
"filename": "maktone-revenging_cops.mod",
"md5": "d291b5766a64b96e7ebd97fc678e34bc",
"id": 119,
"time": 1502216330
},
{
"filename": "maktone-sae3.mod",
"md5": "1d80e40b8da7b42c0811089c1fa1bdbe",
"id": 120,
"time": 1502216330
},
{
"filename": "maktone-sae4.mod",
"md5": "7bc7b5f8cb95205c6d20a93e351f7f22",
"id": 121,
"time": 1502216330
},
{
"filename": "maktone-super_mario_world.mod",
"md5": "22f89872e8dcb55b84d0af9797c77d61",
"id": 122,
"time": 1502216331
},
{
"filename": "maktone-white_widow.mod",
"md5": "c1aac174e91c4c4ef731cb6548ec4ff8",
"id": 123,
"time": 1502216331
},
{
"filename": "maktone-xps_introtune3.mod",
"md5": "487c7e958795112bf3121f58552faa5f",
"id": 124,
"time": 1502216331
},
{
"filename": "rez-little_wings.mod",
"md5": "e4115fb58683c87d033a0a5fb3bb9138",
"id": 125,
"time": 1503930930
},
{
"filename": "tRUE - Watermark Master 1.2.13crk.mod",
"md5": "d31fc4780cbc42e050f3331d8322b612",
"id": 126,
"time": 1503930935
},
{
"filename": "CROME - Nova superb.xm",
"md5": "a0b450aaa78abab2bd8ae9037f126487",
"id": 127,
"time": 1503930941
},
{
"filename": "dubmood-ninja_starts_school.xm",
"md5": "b0d27276c24e75828cc84b2059e18182",
"id": 128,
"time": 1503939165
},
{
"filename": "dubmood&nadom-prask.xm",
"md5": "b5f34b4158af8e8dd69b73be5408b226",
"id": 129,
"time": 1504008134
},
{
"filename": "burning_binary.it",
"md5": "eccb87bc977dbb36dba7ac7625413876",
"id": 130,
"time": 1504189088
},
{
"filename": "dubmood&zabutom-oh_2149_sexy_thing.xm",
"md5": "3d856fcf1c8791a01df0675f31435318",
"id": 131,
"time": 1504523316
},
{
"filename": "powerplant.mod",
"md5": "7249adb5def58a107ac9f12b674bd5cd",
"id": 132,
"time": 1504551882
},
{
"filename": "softworld.mod",
"md5": "a1ad01a92f6a05f4542ed2de0c2fdc47",
"id": 133,
"time": 1504552154
},
{
"filename": "sourcream_chips.xm",
"md5": "fb1ee2c4970d6606eef4ca1665919bd9",
"id": 134,
"time": 1504552641
},
{
"filename": "_high_tension_.mod",
"md5": "1ecbc6db2d86ea5880b1608353e129c8",
"id": 135,
"time": 1504553132
},
{
"filename": "jelly&dalezy&skeema-cocain-theme.xm",
"md5": "9140c7c94e1c24258318d2a88b530e69",
"id": 136,
"time": 1505392907
},
{
"filename": "chromag-aetsch!.mod",
"md5": "1ff1e63d1abc0cd200efba301755c675",
"id": 137,
"time": 1506024945
},
{
"filename": "estrayk-bwalls.mod",
"md5": "9fcb61e84eb694b160fd980f4bbe2aa4",
"id": 138,
"time": 1506371196
},
{
"filename": "dubmood-rez_1911_cracktro_6.xm",
"md5": "2004c50cf8025492ee2ea9d646618348",
"id": 139,
"time": 1506415533
},
{
"filename": "lhs_rld10.xm",
"md5": "8044f35901666d8ca4c887f4f67ba0d8",
"id": 140,
"time": 1506923851
},
{
"filename": "pink-the_last_remix.mod",
"md5": "77e876f309bc11e531cbc4ee6d875983",
"id": 141,
"time": 1508907875
},
{
"filename": "wire-last_ninja_remix.xm",
"md5": "223cd5cfcf1c41fd43edb4f5f8a99c17",
"id": 142,
"time": 1509188775
},
{
"filename": "bit-neological.mod",
"md5": "22fc4f89e0e31456c928347a18b2c27e",
"id": 143,
"time": 1510332676
},
{
"filename": "nugget-kinesisk_polka.mod",
"md5": "092116048288198eb52bd5b29261cd8d",
"id": 144,
"time": 1510814626
},
{
"filename": "jellydog-chippie2.xm",
"md5": "c9331a0846a7820e551239c3718eccc4",
"id": 145,
"time": 1512541903
},
{
"filename": "diesel-fucked.mod",
"md5": "88213bb750fe4a32eebc2ae7e419ba77",
"id": 146,
"time": 1521741316
}
]

BIN
mods/4mat-menu3.mod Normal file

Binary file not shown.

BIN
mods/95-GABBA-MEGAMIX.MOD Normal file

Binary file not shown.

BIN
mods/AAOCG - mIRC 6.xkg.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/AGAiN - Swift 3Dkg.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/CROME - Nova superb.xm Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/CiM - Nero 6kg.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/Monday.mod Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/Orion-Nero6.3.1.6.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/SoS - Crackme25.xm Normal file

Binary file not shown.

BIN
mods/StardustMemories.mod Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/_high_tension_.mod Normal file

Binary file not shown.

BIN
mods/algar-five.xm Normal file

Binary file not shown.

BIN
mods/ambpower.mod Normal file

Binary file not shown.

BIN
mods/banana_skin.mod Normal file

Binary file not shown.

BIN
mods/bit-neological.mod Normal file

Binary file not shown.

BIN
mods/burning_binary.it Normal file

Binary file not shown.

BIN
mods/chipsounds.mod Normal file

Binary file not shown.

BIN
mods/chromag-aetsch!.mod Normal file

Binary file not shown.

BIN
mods/civilian.xm Normal file

Binary file not shown.

BIN
mods/cydonian sky.xm Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/db_-_huggle_beat.mptm Executable file

Binary file not shown.

BIN
mods/db_vod4k.xm Normal file

Binary file not shown.

BIN
mods/diesel-fucked.mod Normal file

Binary file not shown.

BIN
mods/doors_light_my_fire.xm Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/dubmood&nadom-prask.xm Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/estrayk-bwalls.mod Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/floppi-valon_lapsi.xm Normal file

Binary file not shown.

Binary file not shown.

BIN
mods/fuck_sopa.xm Normal file

Binary file not shown.

BIN
mods/fuck_techno2.mod Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More