diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/achernar.php | 132 | ||||
-rw-r--r-- | include/agbsum.php | 21 | ||||
-rw-r--r-- | include/ax.php | 11 | ||||
-rw-r--r-- | include/backspace.php | 3 | ||||
-rw-r--r-- | include/benoit.php | 41 | ||||
-rw-r--r-- | include/bowshock.php | 3 | ||||
-rw-r--r-- | include/bzipper.php | 27 | ||||
-rw-r--r-- | include/deltaWorld.php | 3 | ||||
-rw-r--r-- | include/dux.php | 11 | ||||
-rw-r--r-- | include/eas.php | 13 | ||||
-rw-r--r-- | include/footer.shtml | 17 | ||||
-rw-r--r-- | include/header.shtml | 60 | ||||
-rw-r--r-- | include/luma.php | 11 | ||||
-rw-r--r-- | include/pollex.php | 15 | ||||
-rw-r--r-- | include/prelude.php | 60 | ||||
-rw-r--r-- | include/u8c.php | 25 |
16 files changed, 376 insertions, 77 deletions
diff --git a/include/achernar.php b/include/achernar.php new file mode 100644 index 0000000..3fbde25 --- /dev/null +++ b/include/achernar.php @@ -0,0 +1,132 @@ +<?php addHeading("The future is now", "about"); ?> + +<section> + <p><em>Achernar</em> is a European indie development studio based in the Capital Region of Denmark. 🇩🇰</p> + <br> + <p>We aim to develop high-quality video games and software alike, and we believe that all technologies should be for humanity as a whole. We therefore publish all relevant source code for our products.</p> + <br> + <p class="note">See footer for contact information.</p> +</section> + +<?php addHeading("Projects", "projects"); ?> + +<section class="fullWidth"> + <p>The following is a list of our current and maintained projects.</p> + <br> + <p class="note">Scroll <a href="#anchor.vision">down</a> for more information about us.</p> + <br> + <div id="overview"> + <?php + function addCard($page, $title) { + [$backgroundColour, $textColour] = pageColours($page); + $backgroundImage = pageBackgroundImage($page); + $glyphAddr = pageGlyph($page); + + if (is_null($backgroundImage)) { + $backgroundImage = "none"; + } else { + $backgroundImage = "url('" . $backgroundImage . "')"; + } + + $cardStyle = "--backgroundColour: $backgroundColour; --textColour: $textColour; background-image: $backgroundImage"; + + echo <<<HTML + <a href="?p=$page" style="$cardStyle" title="$title"> + <img alt="$page" src="$glyphAddr"> + </a> + HTML; + } + + addCard("agbsum", "agbsum"); + //addCard("ax", "AX"); + //addCard("backspace", "Backspace"); + addCard("benoit", "Benoit"); + addCard("bowshock", "Bowshock"); + addCard("bzipper", "Bzipper"); + //addCard("deltaWorld", "Delta·World"); + addCard("dux", "Dux"); + addCard("eas", "eAS"); + addCard("luma", "Luma"); + addCard("pollex", "Pollex"); + addCard("u8c", "u8c"); + ?> + </div> +</section> + +<?php addHeading("Vision", "vision"); ?> + +<section> + <p>The goal of Achernar is to promote modern and robust software for everyone. In other words, our vision is to develop a human and clean industry and community for technology.</p> + <br> + <p>We believe in a society free of patents, and as such we release our scientific software in open-source form. For our games, we try to keep the base engine as open as possible whilst still keeping in mind that they yield our main income.</p> +</section> + +<?php addHeading("Roadmap", "roadmap"); ?> + +<section> + <p>Currently, our roadmap is as follows:</p> + <br> + <ul> + <li> + <p>Complete the webservice before <strong>autumn, 2024</strong></p> + </li> + <li> + <p>Release our first game by <strong>2024</strong>, as well as company merchandise in some form</p> + </li> + <li> + <p>Release early-access for Bowshock (on Steam) by <strong>2025</strong></p> + </li> + <li> + <p>Restructure to a normal sole proprietorship</p> + </li> + </ul> + <br> + <p>This roadmap is, however, also subject to change, altough we do strive to live up to it.</p> +</section> + +<?php addHeading("Team", "team"); ?> + +<section> + <p>As Achernar is currently registered as a PMV (lesser sole proprietorship), Gabriel Bjørnager Jensen is currently our only member.</p> +</section> + +<?php addHeading("Inception", "inception"); ?> + +<section> + <p><em>Achernar</em> was incorporated on the first july of 2024 by current sole proprietor Gabriel Bjørnager Jensen.</p> + <br> + <p>Our first domain – <code>achernar.dk</code> – was already registered in the winter of 2021, at that time being used for hosting on-line source code repositories. This was, however, quickly outsourced to <code><a href="https://mandelbrot.dk">mandelbrot.dk</a></code> after I had managed to secure that domain.</p> + <br> + <p><code>achernar.dk</code> was then, in the mean time, used for hosting a few look-up references. This mostly served as my own notes for school – mainly mathematics, physics, and chemistry – but quickly grew unorganised and unmaintained, although I did have plans to expand the encyclopedia.</p> + <br> + <p>The idea of a company had started in the spring of 2020. At that time it would've been named after the binary system Sheliak (Bayer: <code>β Lyræ</code>). But it was this idea that evolved into “Achernar.”</p> + <br> + <p>Shortly after being incorporated, we registered the domain <code>achernar.io</code>. At that time, we also set up mail services using our domain.</p> +</section> + +<?php addHeading("Credits", "credits"); ?> + +<section class="fullWidth"> + <p>Thanks to <strong>Nicolas Gallagher</strong> for the <a href="https://necolas.github.io/normalize.css/"><code>normalize.css</code></a> stylesheet. Additionally thanks to the following creators for the fonts which we use on our website:</p> + <br> + <ul> + <li> + <p>Carrois Apostrophe: <a href="https://fonts.google.com/specimen/Fira+Mono/"><span style="font-family: Fira Mono;">Fira Mono</span></a></p> + </li> + <li> + <p>Roman Shamin & the “people” at Evil Martians 👽: <a href="https://fonts.google.com/specimen/Martian+Mono/"><span style="font-family: Martian Mono;">Martian Mono</span></a></p> + </li> + <li> + <p>Sorkin Type: <a href="https://fonts.google.com/specimen/Merriweather/"><span style="font-family: Merriweather;">Merriweather</span></a></p> + </li> + <li> + <p>Julieta Ulanovsky, Sol Matas, Juan Pablo del Peral, and Jacques Le Bailly: <a href="https://fonts.google.com/specimen/Montserrat/"><span style="font-family: Montserrat;">Montserrat</span></a></p> + </li> + <li> + <p>Claus Eggers Sørensen: <a href="https://fonts.google.com/specimen/Playfair+Display/"><span style="font-family: Playfair Display;">Playfair Display</span></a></p> + </li> + <li> + <p>Matt McInerney, Pablo Impallari, and Rodrigo Fuenzalida: <a href="https://fonts.google.com/specimen/Raleway/"><span style="font-family: Raleway;">Raleway</span></a></p> + </li> + </ul> +</section> diff --git a/include/agbsum.php b/include/agbsum.php new file mode 100644 index 0000000..afe3ebe --- /dev/null +++ b/include/agbsum.php @@ -0,0 +1,21 @@ +<?php addHeading("agbsum", "about"); ?> + +<section> + <p><em>agbsum</em> is a command line utility for patching AGB images.</p> +</section> + +<?php addHeading("Specs", "specs"); ?> + +<section> + <p>All AGB images have a header at offsets <code>0x00-0xE3</code> (inclusive), of which (29) bytes in <code>0xA0-0xBD</code> denote metadata.</p> + <br> + <p>The first byte after this sequence holds a checksum of the metadata, which if invalid, the device bootloader will usually reject the entire image.</p> +</section> + +<?php addHeading("Compatibility", "compatibility"); ?> + +<section> + <p><em>agbsum</em> is written in <strong>C99</strong> and uses makefiles as its build system. It has been tested to compile under Clang, GCC, and the <a href="https://bellard.org/tcc/">Tiny C Compiler</a> (altough the latter may have problems with the standard library). Both GNU Make (<code>gmake</code>) and BSD Make (<code>bmake</code>).</p> + <br> + <p>In theory, all “UNIX-like” systems (including older ones) should be supported. Please open a bug report if you experience otherwise.</p> +</section> diff --git a/include/ax.php b/include/ax.php new file mode 100644 index 0000000..bc7cdc4 --- /dev/null +++ b/include/ax.php @@ -0,0 +1,11 @@ +<?php addHeading("Advanced X", "about"); ?> + +<section> + <p><em>Advanced X</em> (or just <em>AX</em>) is a C library for developing apps for the <em>AGB</em> line of hardware.</p> +</section> + +<?php addHeading("Status", "status"); ?> + +<section> + <p>The development of <em>AX</em> is currently on hold to prioritise <a href="?p=luma"><em>Luma</em></a> and <a href="?p=eas"><em>eAS</em></a>.</p> +</section> diff --git a/include/backspace.php b/include/backspace.php new file mode 100644 index 0000000..b51e0f7 --- /dev/null +++ b/include/backspace.php @@ -0,0 +1,3 @@ +<section class="fullWidth"> + <p class="note">coming soon</p> +</section> diff --git a/include/benoit.php b/include/benoit.php new file mode 100644 index 0000000..9334ae8 --- /dev/null +++ b/include/benoit.php @@ -0,0 +1,41 @@ +<?php addHeading("Benoit", "about"); ?> + +<section> + <p><em>Benoit</em> is a Rust-written programme for visualising complex functions, e.g. <a href="https://en.wikipedia.org/wiki/Mandelbrot_set/"><em>the Mandelbrot Set</em></a> and similar fractals.</p> + <br> + <?php addImage("benoit_screenshot0", "A render of a single Minibrot on a green background. The render is coloures so that it resembles lightning coming from the Minibrot.") ?> + <br> + <p>The project consists of the core <a href="https://crates.io/crates/benoit/"><code>benoit</code></a> crate, from which the front-ends <code>benoit-cli</code> and (in the future) <code>benoit-gui</code> derive.</p> +</section> + +<?php addHeading("benoit-cli", "benoitCli"); ?> + +<section> + <p>The <code>benoit-cli</code> executable can render and animate using <a href="https://en.wikipedia.org/wiki/TOML/">TOML</a> files right from the commandline.</p> + <br> + <?php addImage("benoit_screenshot1", "A Julia Set centred on a point inside the Mandelbrot Set. The resulting image resembles creeping, black vines with rainbows around.") ?> + <br> + <p>The main use of <code>benoit-cli</code> is to render still images or animations of fractals, e.g. zoom-ins. An example configuration could look like the following:</p> + <br> + <p class="codeblock"># benoit.toml<br><br>[render]<br>count = 24<br>width = 1024<br>height = 1024<br><br>fractal = "mandelbrot"<br>inverse = false<br>julia = false<br><br>[render.start]<br>frame = 0<br><br>max_iter_count = 0x100<br><br>centre = "0.0+1.0i"<br>seed = "0.0+0.0i"<br>zoom = "1.0"<br><br>colour_range = 64.0<br><br>[render.stop]<br>frame = 23<br><br>max_iter_count = 0x100<br><br>centre = "0.0+1.0i"<br>seed = "0.0+0.0i"<br>zoom = "1.0"<br><br>colour_range = 64.0<br><br>[final]<br>palette = "fire"<br><br>[output]<br>directory = "render/"</p> + <br> + <p>Just provide the path to the desired configuration:</p> + <br> + <p class="codeblock">benoit-cli "benoit.toml"</p> +</section> + +<?php addHeading("benoit-gui", "benoitGui"); ?> + +<section> + <p>The <code>benoit-gui</code> executable, on the other hand, allows viewing fractals in realtime. Do note, however, that this front-end is currently unimplemented.</p> + <br> + <?php addImage("benoit_screenshot2", "An render of an inverse Julia Set of the Mandelbrot. It appears on a grey gradiant background with a warm-coloured pattern resembling smaller minibrots.") ?> + <br> + <p>Until this front-end is implemented, please use version <a href="https://mandelbrot.dk/benoit/tag/?h=2.7.1"><code>2.7.1</code></a> of Benoit instead.</p> +</section> + +<?php addHeading("Docs", "docs"); ?> + +<section> + <p>Documentation is written in source. Documentation for the main library is hosted on <a href="https://docs.rs/benoit/latest/benoit/"><code>docs.rs</code></a>.</p> +</section> diff --git a/include/bowshock.php b/include/bowshock.php new file mode 100644 index 0000000..0d2b9bb --- /dev/null +++ b/include/bowshock.php @@ -0,0 +1,3 @@ +<section class="fullWidth"> + <p class="note">Coming soon.</p> +</section> diff --git a/include/bzipper.php b/include/bzipper.php new file mode 100644 index 0000000..8b6b677 --- /dev/null +++ b/include/bzipper.php @@ -0,0 +1,27 @@ +<?php addHeading("bzipper", "about"); ?> + +<section> + <p><em>bzipper</em> is a Rust crate for serialisation and deserialisation of binary streams.</p> + <br> + <p>See more at <code><a href="https://crates.io/crates/bzipper/">crates.io</a></code>.</p> +</section> + +<?php addHeading("rationale", "rationale"); ?> + +<section> + <p>Contrary to <a href="https://crates.io/crates/serde/">Serde</a>/<a href="https://crates.io/crates/bincode/">Bincode</a>, the goal of this crate is to serialise data with a known size limit. Therefore, this crate may be more suited for networking or other cases where a fixed-sized buffer is needed.</p> +</section> + +<?php addHeading("data model", "dataModel"); ?> + +<section> + <p>Most primitive types serialise losslessly, with the exception being <code>usize</code> and <code>isize</code>. These serialise as <code>u16</code> and <code>u32</code>, respectively, for portability reasons.</p> + <br> + <p>Unsized types, such as <code>str</code> and slices, are not supported. Instead, array should be used. For strings, the <code>FixedString</code> type is also provided.</p> +</section> + +<?php addHeading("docs", "docs"); ?> + +<section> + <p>Documentation is written in-source. See <a href="https://docs.rs/pollex/latest/pollex/"><code>docs.rs</code></a> for a rendered instance.</p> +</section> diff --git a/include/deltaWorld.php b/include/deltaWorld.php new file mode 100644 index 0000000..0d2b9bb --- /dev/null +++ b/include/deltaWorld.php @@ -0,0 +1,3 @@ +<section class="fullWidth"> + <p class="note">Coming soon.</p> +</section> diff --git a/include/dux.php b/include/dux.php new file mode 100644 index 0000000..409ae2a --- /dev/null +++ b/include/dux.php @@ -0,0 +1,11 @@ +<?php addHeading("Dux", "about"); ?> + +<section> + <p><em>Dux</em> is a cross-platform widgeting library for developing GUI applications.</p> +</section> + +<?php addHeading("Status", "status"); ?> + +<section> + <p>Dux is currently on standby and therefore unmaintained.</p> +</section> diff --git a/include/eas.php b/include/eas.php new file mode 100644 index 0000000..ef51325 --- /dev/null +++ b/include/eas.php @@ -0,0 +1,13 @@ +<?php addHeading("The Embedded Assembler", "about"); ?> + +<section> + <p>The <em>Embedded Assembler</em> (or simply <em>eAS</em>; as in <i>ease</i>) is an assembler for cross-compiling to Arm ISAs.</p> + <br> + <p>The assembler is intended as a drop-in replacement for the official <em>armasm</em> assembler by Arm Limited. It therefore imitates the same syntax.</p> +</section> + +<?php addHeading("Status", "status"); ?> + +<section> + <p>Like <a href="?p=luma"><em>Luma</em></a>, the development of <em>eAS</em> is currently on hold in favour of the <a href="?p=pollex"><em>Pollex</em></a> library, which will be used as a backend.</p> +</section>
\ No newline at end of file diff --git a/include/footer.shtml b/include/footer.shtml deleted file mode 100644 index d79024c..0000000 --- a/include/footer.shtml +++ /dev/null @@ -1,17 +0,0 @@ -<footer id="footer"> - <h1>achernar</h1> - - <p id="cvrNumber" title="Danish VAT number.">vat: DK44936429</p> - <br> - <p>Communications can be done in English and Danish.</p> - <br> - <p>This webservice may be cloned from <a href="https://mandelbrot.dk/achernar/" rel="noopener noreferrer" target="_blank"><code>mandelbrot.dk</code></a>.</p> - <br> - <div class="center" id="emailAddress" title="Obfuscated email address."></div> - - <div id="socials"> - <a class="instagram" href="https://www.instagram.com/primuseridani/" title="Instagram: primuseridani"></a> - <a class="linktree" href="https://linktr.ee/alphaeridani/" title="Linktree: @alphaeridani"></a> - <a class="threads" href="https://www.threads.net/@primuseridani/" title="Threads: @primuseridani"></a> - </div> -</footer> diff --git a/include/header.shtml b/include/header.shtml deleted file mode 100644 index d6fb1e6..0000000 --- a/include/header.shtml +++ /dev/null @@ -1,60 +0,0 @@ -<header id="header"> - <div id="navBar"> - <section> - <a id="home" href="/html/achernar.html" title="Home"></a> - </section> - - <section> - <a href="/html/benoit.html">BENOIT</a> - <a href="/html/bowshock.html">BOWSHOCK</a> - <a href="/html/deltaWorld.html">DELTA·WORLD</a> - <a href="/html/eas.html">eAS</a> - </section> - - <section> - <a id="hamburger" onclick="Ach.toggleSideMenu();" title="Side menu"></a> - </section> - </div> - - <div id="sideMenu"> - <section class="links"> - <section> - <p>ACHERNAR</p> - - <a href="/html/achernar.html#about">ABOUT</a> - <a href="/html/achernar.html#vision">VISION</a> - <a href="/html/achernar.html#roadmap">ROADMAP</a> - <a href="/html/achernar.html#team">TEAM</a> - <a href="https://mandelbrot.dk" rel="noopener noreferrer" target="_blank">SOURCES</a> - </section> - - <section> - <p>GAMES</p> - - <a href="/html/bowshock.html">BOWSHOCK</a> - <a href="/html/deltaWorld.html">DELTA·WORLD</a> - </section> - - <section> - <p>PROJECTS</p> - - <a href="/html/agbsum.html">AGBSUM</a> - <a href="/html/ax.html">AX</a> - <a href="/html/backspace.html">BACKSPACE</a> - <a href="/html/benoit.html">BENOIT</a> - <a href="/html/bzipper.html">BZIPPER</a> - <a href="/html/dux.html">DUX</a> - <a href="/html/eas.html">eAS</a> - <a href="/html/luma.html">LUMA</a> - <a href="/html/pollex.html">POLLEX</a> - <a href="/html/u8c.html">U8C</a> - </section> - </section> - - <section> - <a id="themeToggler" onclick="Ach.toggleTheme();">TOGGLE THEME</a> - </section> - </div> - - <div id="glyph"></div> -</header> diff --git a/include/luma.php b/include/luma.php new file mode 100644 index 0000000..a8192ea --- /dev/null +++ b/include/luma.php @@ -0,0 +1,11 @@ +<?php addHeading("Luma", "about"); ?> + +<section> + <p><em>Luma</em> is an emulator for the <em>AGB</em> line of game consoles by Nintendo Co.</p> +</section> + +<?php addHeading("Status", "status"); ?> + +<section> + <p>The development of <em>Luma</em> is currently on hold in favour of <a href="?p=pollex"><em>Pollex</em></a>, which is to be used as a backend.</p> +</section> diff --git a/include/pollex.php b/include/pollex.php new file mode 100644 index 0000000..d4b9e69 --- /dev/null +++ b/include/pollex.php @@ -0,0 +1,15 @@ +<?php addHeading("Pollex", "about"); ?> + +<section> + <p><em>Pollex</em> is a Rust crate for manipulating Arm ISA instructions. Its goal is to be used as a backend for Arm emulators, assemblers etc.</p> + <br> + <p>Currently, only the legacy 32-bit architectures are supported (if barely), but complete support is planned in the future.</p> + <br> + <p>See more at <a href="https://crates.io/crates/pollex/"><code>crates.io</code></a>.</p> +</section> + +<?php addHeading("Docs", "docs"); ?> + +<section> + <p>As per usual, documentation for <em>Pollex</em> can be found on <a href="https://docs.rs/pollex/latest/pollex/"><code>docs.rs</code></a>.</p> +</section> diff --git a/include/prelude.php b/include/prelude.php new file mode 100644 index 0000000..e782a48 --- /dev/null +++ b/include/prelude.php @@ -0,0 +1,60 @@ +<?php + function readConfig($key) { + if (isset($_GET[$key])) { + return htmlspecialchars($_GET[$key], ENT_SUBSTITUTE, "UTF-8"); + } else { + return null; + } + } + + function pageColours($page) { + return match ($page) { + "achernar" => ["#007B34", "#FFFFFF"], + "agbsum" => ["#422984", "#FFFFFF"], + "ax" => ["#422984", "#FFFFFF"], + "backspace" => ["#000000", "#FFFFFF"], + "benoit" => ["#BA0035", "#FFFFFF"], + "bowshock" => ["#B61833", "#FFEEE0"], + "bzipper" => ["#FFFFFF", "#B4202D"], + "deltaWorld" => ["#000000", "#FFFFFF"], + "dux" => ["#131313", "#06FBB2"], + "eas" => ["#01CD93", "#00291B"], + "luma" => ["#6051B2", "#FFFFFF"], + "pollex" => ["#4D4084", "#FFFFFF"], + "u8c" => ["#444747", "#A9E13D"], + default => die(), + }; + } + + function pageBackgroundImage($page) { + return match ($page) { + "benoit" => "/svg/benoitBackground.svg", + "dux" => "/image/duxBackground.webp", + default => null, + }; + } + + function pageGlyph($page) { + return "/svg/glyph/" . $page . ".svg"; + } + + function addHeading($title, $anchor) { + $anchor = "anchor." . $anchor; + + echo "<h1 id=\"$anchor\"><a class=\"anchor\" href=\"#$anchor\" title=\"Anchor\"></a> $title</h1>"; + } + + function addImage($image, $alt) { + $sourceAddr = "/image/source/" . $image . ".webp"; + $thumbnailAddr = "/image/thumbnail/" . $image . ".avif"; + + echo <<<HTML + <div class="image"> + <img class="blur" src="$thumbnailAddr"> + <a href="$sourceAddr" rel="noopener noreferrer" target="_blank" title="Click to view image source."> + <img alt="$alt" src="$thumbnailAddr"> + </a> + </div> + HTML; + } +?> diff --git a/include/u8c.php b/include/u8c.php new file mode 100644 index 0000000..c0ded80 --- /dev/null +++ b/include/u8c.php @@ -0,0 +1,25 @@ +<?php addHeading("u8c", "about"); ?> + +<section> + <p><em>u8c</em> is a library for handling Unicode sequences in C.</p> +</section> + +<?php addHeading("Features", "features"); ?> + +<section> + <p><em>u8c</em> supports the following facilities:</p> + <br> + <ul> + <li> + <p>Encoding and decoding <em>UTF-8</em></p> + </li> + <li> + <p>Encoding and decoding <em>UTF-16</em></p> + </li> + <li> + <p>Manipulation of <em>UTF-32</em> strings.</p> + </li> + </ul> + <br> + <p>Note that <em>UTF-32</em> is used as an intermediate format between conversions.</p> +</section> |