Initial commit

This commit is contained in:
Quad 2025-04-18 20:11:05 +02:00
commit 9c34316b58
48 changed files with 462 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
public/

5
archetypes/default.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View File

@ -0,0 +1,76 @@
+++
title = 'Installing Pokemon Infinite Fusion on Linux'
date = 2025-04-16
draft = false
+++
Please check the date of this post before following, if you're reading it years into the future, it may no longer be accurate.
I would also like to mention that this is just how I've been installing/updating the game for the past 1.5 years or so. This method is not neccessarily officially supported by the Pokemon Infinite Fusion team.
## TL:DR
* Make a folder somewhere
* Run `git clone -b releases https://github.com/infinitefusion/infinitefusion-e18.git .` in it
* Launch `Game.exe` using Proton or Wine
If you're not an experienced Linux user familiar with tools like git, read on.
## Why this guide is needed
Playing Pokemon Infinite Fusion (Henceforth "PIF" or "Infinite Fusion") on Linux is actually pretty easy. Although you won't find any official information telling you just how easy it is. Rather confusingly for many users, PIF does not have an official website. The game follows the awful trend of sticking most of its info and updates into a Discord channel. However you can still find plenty of information on the game's [subreddit](https://www.reddit.com/r/PokemonInfiniteFusion/ "Link to Pokemon Infinite Fusion's official subreddit") or [wiki](https://infinitefusion.fandom.com/wiki/).
PIF does have official guides for installing on Linux (and instructions specific to the Steam Deck), but they're frankly... awful. While I don't want to discredit any work the great PIF community does, their Linux instructions were seemingly not written by someone who understands Linux well. It takes the "Windows-method" of downloading an extracting zip files, this zip contains a launcher which is mostly just a a front-end for a bundled git.exe file. It's a Windows install guide bodged onto Linux.
This guide exists mostly for my own use (because every time I want to install the game I forget where their git repo is) and I thought I might as well make a (somewhat) proper guide out of it. Because personally I find it much easier to update the game when it's installed using git, and others may agree.
Downloading spritepacks for offline use is NOT covered here, but should be fairly simple, download the new packs and copy them into the folder they belong in. Official guides should work for that.
## Installing on Linux
### Installing tools
You're going to need two things:
* `git` a tool used to manage code
* Steam (To run game using proton)
As of writing this, Valve's Steam Deck has git available by default, and obviously has Steam. So Steam Deck users can skip to installing the game.
Install these tools for your distro. For Debian/Ubuntu/LinuxMint this would be done by running "sudo apt install git wine" in a terminal, or by finding git and wine in your operating system's "app store". Ensure you're not installing the tools using something called "flatpak". Running PIF with flatpak-versions of the tools should work just as well, but is outside the scope of this guide.
### Installing the game
When you've got the tools installed, simply make a folder you wish to install Infinite Fusion into. Something like `/home/username/Games/Infinite Fusion` will do just fine. You then need to open this folder in a terminal. On most Linux systems (Including Steam Deck), this can be done by simply right-clicking and selecting "Open Terminal Here" or similar:
![screenshot](screenshot-open-terminal.png "Screenshot showing how to open a terminal from a folder")
We're now going to use git to download the game's files directly from its git repository. Once you have the terminal window open, ensure you're in the correct folder (The folder name will be displayed somewhere in the prompt. If it doesn't show your installation folder's name or shows `~` you are in the wrong folder, navigate to your folder and "Open Terminal Here" again) run `git clone -b releases https://github.com/infinitefusion/infinitefusion-e18.git .` inside the terminal (note the space and period at the end, those must be included). This will start the download process. As Infinite Fusion is a pretty large project with many files (even without the custom sprites) this download may take quite a while.
![screenshot](screenshot-git.png "Screenshot showing terminal output")
The command will dump you back to a prompt when done. The last line it output should say `Updating files` and end with `done.`. As long as this is the case, all game files should have been downloaded successfully.
### Launching the game
This part is fairly simple. Simply open Steam, and click "Add non-steam Game" and then hit "Browse...". Steam will ask you for a file, select `Game.exe` in the folder where you installed Infinite Fusion.
![screenshot](screenshot-non-steam.png "Screenshot showing how to add a non-steam Game")
The game should then be added to Steam as simply "Game.exe". Find this "Game.exe" entry and right click it to open its properties. Here you can fill in a name. If your folder name contains spaces, you should also ensure that "Target" and "Start in" are wrapped in double quotes:
![screenshot](screenshot-steam-prop.png "Screenshot showing steam game properties")
Last but not least, click on the "Compatibility" tab, and select a proton version to run the game with. I recommend using the latest numbered version, but feel free to try others if the game won't launch or crashes.
![screenshot](screenshot-proton.png "Screenshot showing compatibility options in Steam")
That's it, you can now launch the game via Steam and it should start without issue, assuming everything was done correctly.
You can also add game art from SteamGridDB, but I won't be covering that here, a quick google search should give you plenty of guides.
### Updating the game
Installing new updates is fairly simple. You just need to open a terminal in the game's folder (same folder where Game.exe is located) and run the following command: `git pull`. This will pull down the newest updates from the "releases" branch of the git repository.
Voila, just launch the game after doing a `git pull` and you should be on the newest version.

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

7
content/_index.md Normal file
View File

@ -0,0 +1,7 @@
+++
title = 'Home'
date = 2025-04-18
draft = false
+++
Ramblings and notes from some internet nerd. Probably little useful here.

5
hugo.toml Normal file
View File

@ -0,0 +1,5 @@
baseURL = 'https://blog.quad.moe/'
languageCode = 'en-us'
title = "Quad's ramblings"
theme = 'quadrant'

21
themes/quadrant/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) [year] [fullname]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,7 @@
# Theme Name
## Features
## Installation
## Configuration

View File

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View File

@ -0,0 +1,11 @@
:root {
--main-bg-color: #2d2d2d;
--main-fg-color: #fff;
--high-fg-color: #FB2;
--low-fg-color: #F72;
--code-bg: #272822;
--code-border: #666;
}

View File

@ -0,0 +1,40 @@
@font-face {
font-family: "MC360";
src:
url('/fonts/MC360.ttf') format('truetype')
}
/*!
* Hack typeface https://github.com/source-foundry/Hack
* License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
*/
/* FONT PATHS
* -------------------------- */
@font-face {
font-family: 'Hack';
src: url('fonts/hack/hack-regular.woff2') format('woff2'), url('fonts/hack/hack-regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Hack';
src: url('fonts/hack/hack-bold.woff2') format('woff2'), url('fonts/hack/hack-bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Hack';
src: url('fonts/hack/hack-italic.woff2') format('woff2'), url('fonts/hack/hack-italic.woff') format('woff');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Hack';
src: url('fonts/hack/hack-bolditalic.woff2') format('woff2'), url('fonts/hack/hack-bolditalic.woff') format('woff');
font-weight: 700;
font-style: italic;
}

View File

@ -0,0 +1,111 @@
/* margin boilerplate */
:root {
--regular-margin: 15px;
}
html, body, p, h1, h2, h3, h4, h5, h6 {
margin: 0;
padding: 0;
}
main h1:first-child {
margin-bottom: 0;
}
h1 {
margin: var(--regular-margin) 0px 10px 0px;
}
h2, h3 {
margin-top: var(--regular-margin);
}
main p {
padding: 8px 0 4px 0;
}
header {
margin-bottom: var(--regular-margin);
}
footer {
margin-top: var(--regular-margin)
}
html {
color: #FFF;
font-family: "MC360", sans-serif;
background-color: #2d2d2d;
font-size: 14pt;
}
body {
display: block;
max-width: 960px;
margin: 0 auto;
padding: 10px 10px;
}
a {
color: #00e;
text-decoration: none;
}
a {
color: var(--high-fg-color);
}
a:hover {
color: var(--low-fg-color);
}
code {
font-family: "Hack", monospace;
font-size: 70%;
background-color: var(--code-bg);
border: solid 1px var(--code-border);
padding: 0px 4px;
border-radius: 3px;
vertical-align: middle;
}
pre {
font-family: "Hack", monospace;
font-size: 11pt;
border: solid 1px var(--code-border);
border-radius: 3px;
padding: 5px 5px;
}
/* undo code styling inside pre blocks, too lazy to figure out proper method */
pre code {
padding: 0;
border: 0;
}
hr {
background: linear-gradient(to right, var(--high-fg-color), var(--low-fg-color));
height: 3px;
border: 0;
}
header hr, footer hr {
height: 4px;
}
main img {
max-width: 960px;
box-sizing: border-box;
border-radius: 5px;
box-shadow: 2px 2px 10px #000;
}
time, small {
font-size: 75%;
}
footer small a {
padding-right: 12px;
}

View File

@ -0,0 +1 @@
console.log('This site was generated by Hugo and this JavaScript snippet exists only to trigger people who hate javascript :^).');

View File

@ -0,0 +1,7 @@
+++
title = 'Home'
date = 2023-01-01T08:00:00-07:00
draft = false
+++
Blank default home page. Please replace.

10
themes/quadrant/hugo.toml Normal file
View File

@ -0,0 +1,10 @@
baseURL = 'https://example.org/'
languageCode = 'en-US'
title = 'My New Hugo Site'
disableKinds = ["taxonomy"]
[module]
[module.hugoVersion]
extended = false
min = "0.116.0"

View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="{{ or site.Language.LanguageCode }}" dir="{{ or site.Language.LanguageDirection `ltr` }}">
<head>
{{ partial "head.html" . }}
</head>
<body>
<header>
{{ partial "header.html" . }}
<hr />
</header>
<main>
{{ block "main" . }}{{ end }}
</main>
<footer>
<hr />
{{ partial "footer.html" . }}
</footer>
</body>
</html>

View File

@ -0,0 +1,10 @@
{{ define "main" }}
{{ .Content }}
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
{{ $dateHuman := .Date | time.Format ":date_long" }}
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time><br />
{{ .Summary | strings.Truncate 200 }}
{{ end }}
{{ end }}

View File

@ -0,0 +1,8 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ .Summary }}
{{ end }}
{{ end }}

View File

@ -0,0 +1,10 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
{{ $dateHuman := .Date | time.Format ":date_long" }}
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time>
{{ .Content }}
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
{{ end }}

View File

@ -0,0 +1,6 @@
<small>
<a href="/index.xml">RSS Feed</a>
<a href="https://akko.quad.moe/users/quad">Fediverse</a>
</small>
<p><small>This blog has only been designed and tested in Firefox. Sorry users of Chromium-based browsers</small></p>

View File

@ -0,0 +1,8 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
{{ partialCached "head/css.html" . }}
{{ partialCached "head/js.html" . }}
{{ with .OutputFormats.Get "rss" }}
{{ printf `<link rel=%q type=%q href=%q title=%q>` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
{{ end }}

View File

@ -0,0 +1,27 @@
{{- with resources.Get "css/color.css" }}
{{- if eq hugo.Environment "development" }}
<link rel="stylesheet" href="{{ .RelPermalink }}">
{{- else }}
{{- with . | minify | fingerprint }}
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{- end }}
{{- end }}
{{- end }}
{{- with resources.Get "css/fonts.css" }}
{{- if eq hugo.Environment "development" }}
<link rel="stylesheet" href="{{ .RelPermalink }}">
{{- else }}
{{- with . | minify | fingerprint }}
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{- end }}
{{- end }}
{{- end }}
{{- with resources.Get "css/main.css" }}
{{- if eq hugo.Environment "development" }}
<link rel="stylesheet" href="{{ .RelPermalink }}">
{{- else }}
{{- with . | minify | fingerprint }}
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,12 @@
{{- with resources.Get "js/main.js" }}
{{- if eq hugo.Environment "development" }}
{{- with . | js.Build }}
<script src="{{ .RelPermalink }}"></script>
{{- end }}
{{- else }}
{{- $opts := dict "minify" true }}
{{- with . | js.Build $opts | fingerprint }}
<script src="{{ .RelPermalink }}" integrity="{{- .Data.Integrity }}" crossorigin="anonymous"></script>
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1 @@
<h1 id="site-title"><a href="/">{{ site.Title }}</a></h1>

View File

@ -0,0 +1,23 @@
{{- /*
For a given taxonomy, renders a list of terms assigned to the page.
@context {page} page The current page.
@context {string} taxonomy The taxonomy.
@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
*/}}
{{- $page := .page }}
{{- $taxonomy := .taxonomy }}
{{- with $page.GetTerms $taxonomy }}
{{- $label := (index . 0).Parent.LinkTitle }}
<div>
<div>{{ $label }}:</div>
<ul>
{{- range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{- end }}
</ul>
</div>
{{- end }}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

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.

View File

@ -0,0 +1,31 @@
name = 'Theme name'
license = 'MIT'
licenselink = 'https://github.com/owner/repo/LICENSE'
description = 'Theme description'
# The home page of the theme, where the source can be found
homepage = 'https://github.com/owner/repo'
# If you have a running demo of the theme
demosite = 'https://owner.github.io/repo'
# Taxonomy terms
tags = ['blog', 'company']
features = ['some', 'awesome', 'features']
# If the theme has multiple authors
authors = [
{name = 'Name of author', homepage = 'Website of author'},
{name = 'Name of author', homepage = 'Website of author'}
]
# If the theme has a single author
[author]
name = 'Your name'
homepage = 'Your website'
# If porting an existing theme
[original]
author = 'Name of original author'
homepage = 'Website of original author'
repo = 'https://github.com/owner/repo'