Skip to content

Instantly share code, notes, and snippets.

@arpruss
arpruss / fill-works.X68
Created January 12, 2026 03:27
fill-works.X68
*-----------------------------------------------------------
* Title :
* Written by :
* Date :
* Description:
*-----------------------------------------------------------
ORG $984500
START: ; first instruction of program
move.l #$201000,A3
Possible memory map:
https://gitlab.com/mamedev/mame/-/blob/mame0226/src/mame/drivers/hp16500.cpp
code starts at 002C in the pvtest file, which is loaded at 0x984500.
Strings are null terminated.
Screen size: 576x368; each logical line is 592 pixels long (16 invisible)
992fe2+2: SetCoordinates: push y, x
0098a500 48 78 00 pea (0xb4 ).w
@arpruss
arpruss / capture-hp165x.sh
Created January 9, 2026 03:36
capture-hp165x.sh
./gw read --format ibm.scan --tracks=c=0-79:h=0-1 $1.hfe::bitrate=500
@arpruss
arpruss / hp165x.xml
Created January 9, 2026 02:00
hp165x.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- HxC Floppy Emulator Disk Layout -->
<disk_layout>
<disk_layout_name>HP165X</disk_layout_name>
<disk_layout_description>HP165X Logic Analyzer</disk_layout_description>
<prefered_file_extension>lif</prefered_file_extension>
<interface_mode>GENERIC_SHUGART_DD_FLOPPYMODE</interface_mode>
<file_size>819200</file_size>
<layout>
<number_of_track>80</number_of_track>
@arpruss
arpruss / lifutils.py
Last active January 10, 2026 13:31
lifutils.py
import sys
import struct
BLOCK_SIZE = 256
DIR_ENTRY_SIZE = 32
RESERVED_TRACKS = 1
CHUNKING = True
CHUNK_FILLER = b'\xFF\xFF' + (BLOCK_SIZE-2)*b'\x00'
if len(sys.argv) < 3:
@arpruss
arpruss / lif2xml.py
Created January 8, 2026 22:26
lif2xml.py
import sys
inName = sys.argv[1]
if inName.lower().endswith(".lif"):
outName = inName[:-3]+"xml"
else:
outName = inName+".xml"
inName = inName+".lif"
print("Converting",inName,"to",outName)
@arpruss
arpruss / saitekmouse.py
Created January 1, 2026 18:37
saitekmouse.py
#
# For Saitek X45 and Windows
#
# uses the mini joystick on the throttle as a mouse if the mode switch is on mode 3
#
import sys
import os
import time
import win32gui, win32con, win32api, win32file, win32event, win32gui_struct, winnt
@arpruss
arpruss / sociality2.py
Created October 21, 2025 16:07
sociality2.py
import random
import statistics
N = 2000
runs = 20
def simulate():
sociality = [random.uniform(0,1) for i in range(N)]
matrix = [[0 for i in range(N)] for i in range(N)]
for i in range(N):
@arpruss
arpruss / cozmo-366-greenflag-turbo.patch
Last active July 12, 2025 20:47
Long-click green flag in Cozmo Code Lab to do turbo mode and no block highlighting
diff -raubB com.digitaldreamlabs.cozmo2-orig/files/cozmo/Scratch/js/common.js com.digitaldreamlabs.cozmo2/files/cozmo/Scratch/js/common.js
--- com.digitaldreamlabs.cozmo2-orig/files/cozmo/Scratch/js/common.js 2025-07-12 12:41:59.997230300 -0500
+++ com.digitaldreamlabs.cozmo2/files/cozmo/Scratch/js/common.js 2025-07-12 15:39:45.336174300 -0500
@@ -390,13 +390,14 @@
e.preventDefault();
});
- greenFlag.addEventListener('click', function () {
+ var greenflag_press = function(turbo) {
Scratch.workspace.playAudio('click');
@arpruss
arpruss / phantasy_star_iv_kill_music.py
Last active December 9, 2024 15:07
remove music from Phantasy Star 4
songs=[
['delete/01 Tonoe de Pon.ps4',0xd1d8e,0x5f8],
['delete/02 Inn.ps4',0xd2386,0x10e],
['delete/03 Motavia Village.ps4',0xd2494,0x4ba],
['delete/04 Motavia Town.ps4',0xd294e,0x452],
['delete/05 Organic Beat.ps4',0xd2da0,0x440],
['delete/06 Dezolis Town 1.ps4',0xd31e0,0x388],
['delete/07 Now on Sale.ps4',0xd3568,0x33a],
['delete/08 Behind the Circuit.ps4',0xd38a2,0x4f0],
['delete/09 Machine Center.ps4',0xd3d92,0x30a],