Add programming-resources; swi->generic Nintendo;

Remove custom html from markdown, clean-up UI (again)

Signed-off-by: Paul W. <lambdapaul@protonmail.com>
This commit is contained in:
2024-02-13 18:01:07 -05:00
parent 366f09864f
commit fece0bc86c
28 changed files with 392 additions and 304 deletions

View File

@@ -1,17 +0,0 @@
# Nintendo Switch
<a href='https://www.nintendo.com/switch' class='link button extern blue'>Official Website</a>
<a href='https://developer.nintendo.com/' class='link button extern blue'>Developer Portal</a>
## Third-party Software
- [Atmosphère](https://github.com/Atmosphere-NX/Atmosphere)
- custom firmware
## Third-party Resources
- [DekuDeals](https://www.dekudeals.com/)
- price tracker for games with support for all major US retailers
## High-level Emulators
- [yuzu](https://yuzu-emu.org/)
- [Ryujinx](https://ryujinx.org/)

28
notes/nintendo.md Normal file
View File

@@ -0,0 +1,28 @@
# Nintendo Consoles
## Nintendo Switch
- [Official Website](https://www.nintendo.com/switch)
- [Developer Portal](https://developer.nintendo.com/)
### Third-party Software
- [Atmosphère (Custom Firmware)](https://github.com/Atmosphere-NX/Atmosphere)
### Third-party Resources
- [DekuDeals](https://www.dekudeals.com/)
- price tracker for games with support for all major US retailers
### High-level Emulators
- [yuzu](https://yuzu-emu.org/)
- [Ryujinx](https://ryujinx.org/)
## Wii U
- [Wii U Brew Wiki](https://wiiubrew.org/wiki/Main_Page)
- [Cemu emulator](https://cemu.info/)
- GitHub: [cemu-project / Cemu](https://github.com/cemu-project/Cemu)
## Nintendo 3DS
- [Citra emulator](https://citra-emu.org/)
- [Custom Firmware Guide (3ds.hacks.guide)](https://3ds.hacks.guide/)

View File

@@ -0,0 +1,48 @@
# Programming Resources
A handy list of blog posts, articles, videos, and books that I would probably
refer to someone or within something.
- Untangling Lifetimes: The Arena Allocator
Making performant dynamic manual memory management in C feel almost like
garbage collection.
https://www.rfleury.com/p/untangling-lifetimes-the-arena-allocator
- Ryan Fleury's UI Series
Semi-paywalled
https://www.rfleury.com/p/ui-series-table-of-contents
- Immediate-Mode Graphical User Interfaces (2005)
https://caseymuratori.com/blog_0001
https://www.youtube.com/watch?v=Z1qyvQsjK5Y
- What Color is Your Function?
https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
- Real-time audio programming 101: time waits for nothing
http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing
- Triangulation
https://www.humus.name/index.php?ID=228
- Quantifying the Performance of Garbage Collection vs. Explicit Memory
Management
https://people.cs.umass.edu/~emery/pubs/gcvsmalloc.pdf
- Typing is Hard
https://3fx.ch/typing-is-hard.html
- The Aggregate Magic Algorithms
http://aggregate.org/MAGIC/

View File

@@ -1,15 +1,21 @@
# Steam Deck
<a href='https://www.steamdeck.com/' class='link button extern blue'>Official Website</a>
- [Official Website](https://www.steamdeck.com/)
## Third-party Software
* [Decky Plugin Loader](https://decky.xyz/)
* Installer: [decky\_installer.desktop](https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/decky_installer.desktop)
- [Decky Plugin Loader](https://decky.xyz/)
- Source: [GitHub / SteamDeckHomebrew](https://github.com/SteamDeckHomebrew)
- Installer:
[decky_installer.desktop](https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/decky_installer.desktop)
## Access Console-like Youtube in Gaming Mode
## Console-like Youtube in Gaming Mode
* Using Chromium's undocumented command-line options, the user agent can be changed to PlayStation's, Xbox's or Tizen's (Samsung's TV OS) and the application can be launched in full screen by using the `--kiosk` flag. The following XDG Desktop Configuration, for example, can be used and added as a non-Steam game while in Desktop mode for access in gaming mode
- Using Chromium's undocumented command-line options, the user agent can be
changed to PlayStation's, Xbox's or Tizen's (Samsung's TV OS) and the
application can be launched in full screen by using the `--kiosk` flag. The
following XDG Desktop Configuration, for example, can be used and added as a
non-Steam game while in Desktop mode for access in gaming mode
```cfg
#!/usr/bin/env xdg-open
@@ -21,34 +27,45 @@ GenericName=Online Video Platform
Comment=An online video-sharing, social media platform
Exec=/usr/bin/flatpak run --branch=master --arch=x86_64 --file-forwarding org.chromium.Chrome @@ %F @@ --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02' --kiosk 'https://www.youtube.com/tv'
Terminal=false
MimeType=text/plain;
# $XDG_PATH contains the paths used to fetch icons, extensions for supported formats are optional
Icon=com.youtube.tv
MimeType=text/plain; # $XDG_PATH contains the paths used to fetch icons, extensions for supported formats are optional Icon=com.youtube.tv
```
* Firefox can also be used however the supported command-line options are limited
* The URL is https://www.youtube.com/tv
* Without the user agent change, the above URL is inaccessible
* Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads unlike on the desktop site
* Choosing the Xbox user agent is recommended as button prompts match the Steam Deck's `ABXY` button layout
* The Electron framework can be used to build a wrapper for the URL. This is the preferable method as it supports exiting from within the application, while browsers only support manual termination from the Steam menu. E.g. (assuming you can build native linux binaries on a device)
```javascript
const { app, BrowserWindow } = require('electron');
app.whenReady()
.then(() => {
const win = new BrowserWindow({
backgroundColor: '#2e2c29',
kiosk: true
});
win.maximize();
win.loadURL('https://youtube.com/tv');
const wc = win.webContents;
wc.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02'
})
.catch(()=>{}); // swallow errs
```
- Firefox can also be used however the supported command-line options are
limited
- The URL for the TV user interface is https://www.youtube.com/tv
- Without the user agent change, the above URL is inaccessible and will redirect
you to the desktop version of the website
- Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads
even if they work with the desktop version
- Choosing an Xbox user agent is recommended as button prompts match the Steam
Deck's `ABXY` button layout
- The Electron framework can be used to build a wrapper for the URL
- This is the preferable method as it supports exiting from within the
application, while browsers only support manual termination from the Steam
menu.
- Sample code for the electron app (assuming you can build linux binaries
for the target platform):
```javascript
// sample code to get started
const { app, BrowserWindow } = require('electron');
app
.whenReady()
.then(() => {
const win = new BrowserWindow({
backgroundColor: '#2e2c29',
kiosk: true,
});
win.maximize();
win.loadURL('https://youtube.com/tv');
win.webContents.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) '
+ 'AppleWebKit/537.36 (KHTML, like Gecko) '
+ 'Chrome/48.0.2564.82 Safari/537.36 Edge/20.02';
})
.catch(() => { });
```
## Miscellaneous
* When using a dock or a hub to connect to an external display, ensure the display supports the refresh rate set on the device as some TVs and other displays only support refresh rates that are multiples of 30Hz
- When using a dock or a hub to connect to an external display, ensure the
display supports the refresh rate set on the device; some TVs and some
monitors only support refresh rates that are multiples of 30Hz

View File

@@ -1,27 +1,33 @@
# Steam Client
<a href='https://store.steampowered.com' class='link button extern blue'>Steam Store</a>
<a href='https://developer.valvesoftware.com/wiki/SteamCMD' class='link button extern blue'>SteamCMD</a>
- [Steam Store](https://store.steampowered.com)
- [SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD)
## Accessing the Console
- Use the following URIs on a browser or a file manager to open GUI client with the console:
- `steam://nav/console`
- `steam://open/console`
- will not work if the Steam client is running in the background
- Use the following URIs on a browser or a file manager to open GUI client with
the console:
- `steam://nav/console`
- `steam://open/console`
- will not work if the Steam client is running in the background
- The `-console` flag can be used with the client executable
- Alternatively, SteamCMD, a command-line only version of the Steam client, can be used
- [Windows Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip)
- [Linux Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz)
- [macOS Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz)
- Alternatively, SteamCMD, a command-line only version of the Steam client, can
be used
- [Windows
Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip)
- [Linux
Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz)
- [macOS
Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz)
## Downloading Older Depots
Download a single depot (used to download older versions of applications/games):
```
download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<depot flags filter>]
```
[SteamDB](https://steamdb.info/) can be used to find the required argument values.
`download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>][<depot flags filter>]`
[SteamDB](https://steamdb.info/) can be used to find the required argument
values.
## Resources
@@ -32,18 +38,19 @@ download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<de
## Third-party Resources
- [SteamDB](https://steamdb.info/)
- tracks depot changes, price history, everything steam
- tracks depot changes, price history, everything steam
- [SteamGifts](https://steamgifts.com/)
- giveaway Steam keys or take part in giveaways
- giveaway Steam keys or take part in giveaways
- [SteamTradeMatcher](https://steamtradematcher.com/)
- one-to-one trading of items on Steam
- one-to-one trading of items on Steam
- [ArchiSteamFarm](https://asf.justarchi.net)
- useful bot written in C# to farm trading cards for owned games that can be sold
- useful bot written in C# to farm trading cards for owned games that can be
sold
- [IsThereAnyDeal](https://isthereanydeal.com)
- tracks game deals for steam, steam key stores and other platforms
- somewhat broken although it is being migrated and modernized, see [New ITAD](https://new.isthereanydeal.com)
- tracks game deals for steam, steam key stores and other platforms
- somewhat broken although it is being migrated and modernized, see [New
ITAD](https://new.isthereanydeal.com)
- [gg.deals](https://gg.deals)
- newer than and similar to IsThereAnyDeal with modern UI
- newer than and similar to IsThereAnyDeal with modern UI
- [SteamGridDB](https://steamgriddb.com/)
- custom video game assets for games available and not available on steam
- custom video game assets for games available and not available on steam