diff --git a/FOT-ChiaroStd-B.otf b/FOT-ChiaroStd-B.otf new file mode 100644 index 0000000..b2a4ae6 Binary files /dev/null and b/FOT-ChiaroStd-B.otf differ diff --git a/audio.js b/audio.js new file mode 100644 index 0000000..debd61c --- /dev/null +++ b/audio.js @@ -0,0 +1,19 @@ +var audio = new Audio('file_select.mp3'); +audio.addEventListener('ended', function() { + this.currentTime = 0; + this.play(); +}, false); +audio.pause(); + +function toggleMute() +{ + if (!audio.paused) + audio.pause(); + else + { + audio.currentTime = 0; + audio.play(); + } + var html = '' + (audio.paused? "Off" : "On") + ""; + document.getElementById("toggle_audio_mute").innerHTML = "Audio: " + html; +} \ No newline at end of file diff --git a/bg.js b/bg.js new file mode 100644 index 0000000..bd0deee --- /dev/null +++ b/bg.js @@ -0,0 +1,27 @@ + +var imgSrc = "img/vrbox_cur.png"; + +// background scroll animation +var bgImg = new Image(); +bgImg.onload = function() +{ + var factor = (window.innerHeight/this.height); + var style = document.createElement('style'); + style.type = 'text/css'; + style.innerHTML = '@keyframes bg_anim {\ + from {background-position-x:0%;} \ + to {background-position-x:-' + (this.width*(factor)) + '%;} \ + }'; + document.getElementsByTagName('head')[0].appendChild(style); + + var bodyStyle = document.getElementsByTagName("body")[0].style; + bodyStyle.animationDuration = (1000*(factor)) + "s" + bodyStyle.backgroundImage = "url(" + imgSrc + ")"; + bodyStyle.backgroundRepeat = "repeat-x"; + bodyStyle.backgroundAttachment = "fixed"; + bodyStyle.backgroundSize = "cover"; + bodyStyle.animationName = "bg_anim"; + bodyStyle.animationIterationCount = "infinite"; + bodyStyle.animationTimingFunction = "linear"; +} +bgImg.src = imgSrc; \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..486b1cc Binary files /dev/null and b/favicon.ico differ diff --git a/img/vrbox_cur.png b/img/vrbox_cur.png new file mode 100644 index 0000000..1be96ae Binary files /dev/null and b/img/vrbox_cur.png differ diff --git a/index.html b/index.html index e4a0a87..93673d7 100644 --- a/index.html +++ b/index.html @@ -3,36 +3,84 @@ - + + + Z64 - -
+ +
-
-

Zelda 64 Reverse Engineering

-

Join the discussion!

-

Discord: discord.zelda64.dev

+ +


+

Zelda 64 Reverse Engineering

+


+ +
+ +
+
+
File 1
+
Join the discussion! +
+
+
+
+
+
+
+
+ Discord +
+
+


+
+
+
File 2
+
Development +
+
+
+
+
+
+
+ +
+


+ -

Development

-

Github: github.com/zeldaret

-

Project Progress: progress.html

-

OOT Trello: trello.com/b/qUqnUkWY/ocarina-of-time-decompilation

-

MM Trello: https://trello.com/b/ruxw9n6m/majoras-mask-decompilation

- -

Resources

-

Hex to float converter

-

Gfx Decompilation Guide

-

OoT Debug Source Code Structure

- CloudModding Wiki - +
- \ No newline at end of file + diff --git a/main.css b/main.css new file mode 100644 index 0000000..af630cf --- /dev/null +++ b/main.css @@ -0,0 +1,175 @@ +:root { + --scaling-factor: 1; +} + +/* +@media only screen and (min-width: 2560px) +{ + :root { + --scaling-factor: 2; + } +} + +@media only screen and (min-width: 3840px) +{ + :root { + --scaling-factor: 3; + } +} +*/ + +:root { + --zelda-border-light: #4f77cd; + --zelda-border-dark: #1c2a49; + --zelda-bg: #2f487c; + --zelda-button-width: calc(145px*var(--scaling-factor)); + --zelda-button-font-size: calc(22px*var(--scaling-factor)); + --zelda-content-font-size: calc(18px*var(--scaling-factor)); +} + + +@font-face { + font-family: "Chiaro"; + src: url("FOT-ChiaroStd-B.otf"); +} + +h1 { + color:white; + text-shadow: 0px 0px 0.1em; +} + +/* updated in bg.js */ +body{ + line-height: 0.5; +} + +html { + min-height: 100%; +} + +a { + color: yellow; +} +a:hover +{ + color: red; +} + +.zelda-box { + padding: calc(14px*var(--scaling-factor)); + background: var(--zelda-bg); + border-style: solid; + border-color: var(--zelda-border-light) var(--zelda-border-dark) var(--zelda-border-dark) var(--zelda-border-light); + border-width: calc(6px*var(--scaling-factor)); + border-radius: calc(4px*var(--scaling-factor)); + /* + text-shadow: 0px 0px 4px; + */ +} + +.zelda-button { + color: white; + cursor: pointer; + font-size: var(--zelda-button-font-size); + padding-top: calc(10px*var(--scaling-factor)); + width: var(--zelda-button-width); +} + + +.zelda-file-box { + position: relative; + font-family: Chiaro; + color: white; +} + +.zelda-file-box-slot { + color: black; + width: var(--zelda-button-width); + float: left; + text-align: center; + text-shadow: 0px 0px calc(4px*var(--scaling-factor));; + cursor: default; +} + +.zelda-file-box-filename { + font-kerning: none; + font-size: var(--zelda-button-font-size); + width: auto; + height: calc(47px*var(--scaling-factor)); + border-bottom-style: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + margin-left: var(--zelda-button-width); +} + +.zelda-file-box-hack_left { + padding: 0; + width: var(--zelda-button-width); + height: 0px; + border-right-style: none; + border-bottom-style: none; + border-top-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + float: left; +} +.zelda-file-box-hack_right { + padding: 0; + width: auto; + height: calc(6px*var(--scaling-factor)); + border-top-style: none; + border-bottom-style: none; + border-radius: 0; + margin-left: var(--zelda-button-width); + position: relative; +} + +.zelda-file-box-main { + line-height: calc(5px*var(--scaling-factor)); + width: 100%; + border-top-style: none; + border-top-left-radius: 0; + font-size: var(--zelda-content-font-size); +} + +.progress-value { + text-align: right; + color: #ffc107; +} + + +.content-container { + width: 100%; + margin: calc(30px*var(--scaling-factor)) auto; + /* + border: calc(1px*var(--scaling-factor)) solid red; + */ +} + +@media only screen and (min-width: 700px) { + .content-container { + width: 80%; + margin: 0 auto; + /* + border: calc(1px*var(--scaling-factor)) solid blue; + */ + } +} +@media only screen and (min-width: 1000px) { + .content-container { + width: 60%; + margin: 0 auto; + /* + border: calc(1px*var(--scaling-factor)) solid red; + */ + } +} +@media only screen and (min-width: 1400px) { + .content-container { + width: 40%; + margin: 0 auto; + /* + border: calc(1px*var(--scaling-factor)) solid blue; + */ + } +} \ No newline at end of file diff --git a/progress.html b/progress.html index 75dcbb0..e586957 100644 --- a/progress.html +++ b/progress.html @@ -3,24 +3,69 @@ - + + + Z64 - -
+ +
-
-

Current Progress

-

Last Change:

-
-

Total:

-

Boot:

-

Code:

-

Overlays:

+ +


+

Ocarina of Time Decompilation Status

+


+ +
+ +
+
+
File 1
+
Oot Mq Debug +
+
+
+
+
+
+
+
+
+

Last Change:

+

Error

+
+
+
+

Total:

+

Error

+

+ +
+

Boot:

+

Error

+
+ +
+

Code:

+

Error

+
+ +
+

Overlays:

+

Error

+
+
+
+ +



+ +
diff --git a/progress.js b/progress.js index 8f9a797..c44fc31 100644 --- a/progress.js +++ b/progress.js @@ -14,21 +14,19 @@ function getJSON(file, callback) { function setText(classname, value) { - var elem = document.getElementsByClassName(classname); - if (elem.length == 1) - { - console.log(value); - elem[0].innerText = value; - } + var elem = document.getElementById(classname); + console.log(value); + elem.innerText = value; } window.onload = function() { + //var text = '{"reports": {"1590587451.6147666": {"total_percent": 19.058612988321162, "boot_percent": 100.0, "code_percent": 50.909445807705794, "overlay_percent": 6.997155049786628}}}'; getJSON(url, function(text) { var progress = JSON.parse(text); var timestamp = Object.keys(progress.reports)[0]; var date = new Date(timestamp.split(".")[0] *1000); - setText("last_change", date); + setText("last_change", date.toLocaleDateString() + " " + date.toLocaleTimeString()); var keys = Object.keys(progress.reports[timestamp]); keys.forEach(e => {