Skip to content

Instantly share code, notes, and snippets.

@wareya
wareya / ultima_1_ega_png.rs
Created January 9, 2023 04:10
ultima 1 ega row-planar encoder and decoder in rust
use image;
fn ega_to_image(bytes : &Vec<u8>) -> image::RgbaImage
{
let tile_size = [16, 16];
let bits_per_value = 1;
let channel_count = 4;
let palette = [
@wareya
wareya / mesh.rs
Last active November 28, 2022 07:26
use glm::*;
use std::collections::HashMap;
/*
class TileType:
var coord_top : Vector2 = Vector2(1, 4)
var coord_side : Vector2 = Vector2(1, 4)
var coord_bottom : Vector2 = Vector2(1, 4)
@wareya
wareya / BadAAColorsVersion.omwfx
Last active August 2, 2022 20:25
BadAA, an edge-detection- and edge-following-based post-processing AA shader for OpenMW
uniform_float uRange {
default = 5;
min = 1;
max = 16.0;
step = 1;
description = "How many pixels the algorithm follows to try to detect an edge.";
display_name = "Range";
}
uniform_float uThreshold {
@wareya
wareya / resample.rs
Created February 15, 2022 06:04
public domain pull-based linear/hermite/sinc signal resampling code in rust
// A public domain rust implementation of three common signal resampling algorithms.
/*
Released under the following license (CC0).
Creative Commons Legal Code
CC0 1.0 Universal
Statement of Purpose
@wareya
wareya / main.rs
Last active June 30, 2021 06:28
hsv saturation-value 2d histographer
/*
[dependencies]
image = "0.23.14"
palette = "0.5.0"
*/
use std::env::args as args;
use image::io::Reader as ImageReader;
use image::{DynamicImage, Rgba, Rgb, GenericImageView, Pixel};
use palette::{LinSrgba, Hsv};
@wareya
wareya / texthook.js
Last active July 18, 2020 11:16
subtitle text grabbing script for mpv
"use strict";
function on_new_sub(name, text)
{
if(text == null || text == "")
return;
var newtext = "";
for(var i = 0; i < text.length; i += 1)
{
var c = text[i];
textractor 4.12.3 with translation plugins removed and pointless plugins disabled:
https://mega.nz/file/IQVk2CyK#SGnxbyF3aNUh22XyLoIUZaR7aMZDKdpWIgZLh0MlIZM
You need both the x86 and x64 subfolders. The x86 version is for 32-bit games, the x64 version is for 64-bit games.
If it throws a VCRUNTIME dll error on launch, you need to install these vcredists: https://github.com/Artikash/Textractor/releases/download/v4.12.3/vcredist-x86.exe https://github.com/Artikash/Textractor/releases/download/v4.12.3/vcredist-x64.exe
has textractor updated since 4.12.3? check for yourself:
https://github.com/Artikash/Textractor/releases
if it has updated since 4.12.3, download the latest version, and DISABLE EVERY EXTENSION (with the "delete" key)
////before
pub (crate) fn sim_BINOP(&mut self) -> StepResult
{
if self.stack_len() < 2
{
return Err(Some(format!("internal error: BINOP instruction requires 2 values on the stack but found {}", self.stack_len())));
}
let immediate = self.pull_single_from_code()?;
@wareya
wareya / ism2.cpp
Created December 13, 2018 15:54
Very primitive ism2 -> wavefront obj converter. Only works with a limited subset of ism2 files, e.g. fairy fencer f advent dark force's maps.
// Very primitive ISM2 -> .obj converter.
// Only works well enough to dump FFF:ADF's map files with enough information to log where hidden treasures are located.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <vector>
#include <unordered_map>
@wareya
wareya / regression.rs
Last active September 24, 2018 03:28
unoptimized multiple regression in rust
use std::vec::Vec;
use std::fs::File;
use std::io::Read;
use std::result::Result;
fn get_data() -> Result<Vec<Vec<f64>>, std::io::Error>
{
let mut file = File::open("info.txt")?;
let mut text = String::new();
file.read_to_string(&mut text)?;