Skip to content

Instantly share code, notes, and snippets.

View foone's full-sized avatar

Foone Turing foone

View GitHub Profile
@foone
foone / mulathe-lat-format.txt
Created March 30, 2025 21:45
Documentation of the LAT files generated by the µLathe software
offset 0x0: Signature: "\xE6LATHE\0" (7 bytes)
offset 0xC: render mode (U16)
values: wireframe,hidden,constant,gouraud
offset 0x0E: number of sides (U16). It's based on the values in the drop down:
values: 3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,60,72,90,120
offset 0x10: rotation (U16)
offset 0x12: scale % (U16)
offset 0x14: distance (U16):
values: Nearest, Very Near, Nearer, Near, Medium, Far, Farther, Very Far, Farthest
offset 0x16: light brightness (U16
@foone
foone / bb_chunks.txt
Created February 8, 2025 08:44
a list of all chunks from the 1992 DOS game Bible Builder
C:\DOSBox-X\drive_c\bb\py>python bbdat.py ..\DAT1 --list
+------------+------+------------+----------+
|filename |offset|uncompressed|compressed|
+------------+------+------------+----------+
|SCRIPTN.003 | 1514| 2763| 1697|
|SCRIPTT.003 | 3211| 2862| 1755|
|SCRIPTR.003 | 4966| 2832| 1722|
|SCRIPTK.003 | 6688| 2953| 1761|
|SCRIPTN.002 | 8449| 2750| 1666|
CITY at (170,35): Athens
CITY at (185,40): Baghdad
CITY at (143,54): Bamako
CITY at (231,54): Bangkok
CITY at (168,26): Budapest
CITY at (99,86): Buenos Aires
CITY at (175,41): Cairo
CITY at (215,56): Colombo
CITY at (174,33): Istanbul
CITY at (220,39): Kathmandu
@foone
foone / puzzles.txt
Last active January 10, 2025 04:40
Grump Wheel V1.2 puzzles
10 Minute Power Hour:A BUCKET FULL OF GET FIT QUICK SCHEMES
10 Minute Power Hour:ALRIGHT YOU SCANDELOUS HOOKER
10 Minute Power Hour:ARIN SCREAMING MORE
10 Minute Power Hour:DID I DO THAT
10 Minute Power Hour:DON'T EAT THE FLUID
10 Minute Power Hour:DON'T TILT THIS PINBALL MACHINE
10 Minute Power Hour:I'M THE WORKOUT BOY
10 Minute Power Hour:MYTHICAL CREATURE BUKKAKE
10 Minute Power Hour:ONCE UPON A TIME I WAS BORN
10 Minute Power Hour:ONE HUNDRED PERCENT NUT PINCHER
@foone
foone / demisexual.flag
Last active February 8, 2024 02:38
pre-release VGAPride DSL files
$names=["demisexual"]
$description="The Demisexual pride flag"
// Unknown creator. Maybe research further?
$textcolor=$black
// The trick here is that we define the top&bottom colors twice, so this ends up looking like we have variable heights
$center_stripe = RGB(110, 0,112)
$bottom = RGB(210,210,210)
vertical{
import struct, os, sys,array, glob, itertools, argparse
from PIL import Image
A8SIGNATURE =0xA0A1A2A3
COMPRESS_NONE = 0
COMPRESS_RLE = 1
COMPRESSION_FORMATS=(COMPRESS_NONE, COMPRESS_RLE)
ESCAPE_CODE = 0
import struct,sys,os
name=sys.argv[1]
class AllBitsTester(object):
def __init__(self):
self.allbits =0
def test(self, x):
self.allbits|=x
def completed(self):
return self.allbits == 1023
def message(self):
@foone
foone / censorlist.json
Last active December 3, 2023 12:54
Censor list for the TV Guardian 1.05 version
{
"wordlist": {
"A": {
"trailers": [0],
"flags": ["NEGATIVE MATCH"],
"replacement_offset": 1,
"replacement_word": "TAIL"
},
"A CONDOM": {
"trailers": [0],
import os,glob,sys
images=glob.glob(sys.argv[1])
images.sort()
if (len(images)&1) == 1:
print("Odd number of items! Can't split")
sys.exit(1)
midpoint = len(images)//2
first_half = images[:midpoint]
last_half = images[midpoint:][::-1]
@foone
foone / listarc.py
Created June 26, 2022 18:42
Display indexes of archive files for Lucky's Casino Adventure
import struct,glob
def readFilename(f):
data=''
while '.' not in data:
data=data+f.read(1)
data=data+f.read(3)
return data
for path in glob.glob('GL00_*.*'):
print path
with open(path,'rb') as f: