This commit is contained in:
Michael Zhang 2023-05-19 17:55:53 -05:00
parent 5a9bf4922b
commit e28c9dc331
7 changed files with 7860 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,306 @@
osu file format v14
[General]
AudioFilename: audio.mp3
AudioLeadIn: 0
PreviewTime: 18808
Countdown: 0
SampleSet: Soft
StackLeniency: 0
Mode: 0
LetterboxInBreaks: 0
WidescreenStoryboard: 1
[Editor]
DistanceSpacing: 1.7
BeatDivisor: 4
GridSize: 4
TimelineZoom: 1.7
[Metadata]
Title:Spelunker
TitleUnicode:Spelunker
Artist:Unknown Artist
ArtistUnicode:Unknown Artist
Creator:IOException
Version:top-rhythm'
Source:しょぼんのアクション
Tags:スペランカー しょぼんのアクション sybon Syobon no Akushon Action Cat Neko Gato mario from hell Super Mario Bros world parody ちくChiku Spelunk 元祖みんなでスペランカー Tim Timothy G. Martin stage theme 01 atari NES nintendo entertainment system video game instrumental scognito deadcode ceo_of_osu ceo of osu press
BeatmapID:0
BeatmapSetID:1145452
[Difficulty]
HPDrainRate:3
CircleSize:0
OverallDifficulty:8.5
ApproachRate:0
SliderMultiplier:3.6
SliderTickRate:1
[Events]
//Background and Video events
0,0,"WP.PNG",0,0
//Break Periods
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Fail)
//Storyboard Layer 2 (Pass)
//Storyboard Layer 3 (Foreground)
//Storyboard Layer 4 (Overlay)
//Storyboard Sound Samples
[TimingPoints]
133,397.350993377483,4,2,0,70,1,0
133,-10,4,2,0,70,0,0
5894,-10,4,2,0,80,0,0
6291,-10,4,2,0,85,0,0
6589,-10,4,2,0,75,0,0
12947,-10,4,2,0,65,0,0
17616,-10,4,2,0,70,0,0
19205,-10,4,2,0,90,0,1
25464,-10,4,2,0,90,0,0
25563,-10,4,2,0,90,0,1
32020,-10,4,2,0,85,0,0
35099,-10,4,2,0,93,0,0
36689,-10,4,2,0,100,0,0
[Colours]
Combo1 : 0,128,255
Combo2 : 251,217,153
Combo3 : 131,180,252
Combo4 : 247,157,157
Combo5 : 159,253,157
Combo6 : 224,177,252
Combo7 : 128,255,128
Combo8 : 255,128,128
[HitObjects]
256,193,133,5,4,1:0:0:0:
255,193,431,1,0,1:0:0:0:
254,192,530,1,8,2:0:0:0:
254,191,729,1,2,2:0:0:0:
254,190,927,1,0,1:0:0:0:
256,190,1126,1,2,2:0:0:0:
257,190,1325,1,8,2:0:0:0:
256,193,1523,1,2,0:0:0:0:
257,192,1623,1,2,0:0:0:0:
255,193,1722,5,0,1:0:0:0:
254,192,2020,1,0,1:0:0:0:
254,191,2119,1,8,2:0:0:0:
254,190,2317,1,2,2:0:0:0:
257,190,2715,1,0,1:0:0:0:
257,192,2815,1,0,1:0:0:0:
256,193,2914,1,8,1:0:0:0:
255,193,3311,5,4,1:2:0:0:
254,192,3609,1,0,1:0:0:0:
254,191,3709,1,8,2:0:0:0:
254,190,3907,1,2,2:0:0:0:
256,190,4106,1,0,1:0:0:0:
257,190,4305,1,2,2:0:0:0:
257,192,4503,1,8,2:0:0:0:
255,193,4702,1,2,2:0:0:0:
256,193,4801,1,2,0:0:0:0:
254,192,4901,5,0,1:0:0:0:
254,191,5199,1,0,1:0:0:0:
254,190,5298,1,8,2:0:0:0:
256,190,5497,1,2,1:2:0:0:
257,190,5795,1,0,1:2:0:0:
257,192,5894,1,0,1:2:0:0:
256,193,6093,1,8,1:0:0:0:
255,193,6291,1,10,2:0:0:0:
254,192,6391,1,10,2:0:0:0:
254,191,6490,5,4,1:0:0:0:
254,190,6788,1,0,1:0:0:0:
256,190,6887,1,8,2:0:0:0:
257,190,7086,1,2,2:0:0:0:
257,192,7285,1,0,1:0:0:0:
256,193,7384,1,2,2:0:0:0:
256,193,7483,1,2,2:0:0:0:
255,193,7682,1,8,2:0:0:0:
255,193,7881,1,2,2:0:0:0:
254,192,8080,5,0,1:0:0:0:
254,191,8179,1,0,1:0:0:0:
254,190,8278,1,0,1:0:0:0:
254,190,8378,1,0,1:0:0:0:
256,190,8477,1,8,2:0:0:0:
257,190,8676,1,2,2:0:0:0:
257,192,8874,1,0,1:0:0:0:
256,193,9073,1,8,1:2:0:0:
255,193,9172,1,0,1:0:0:0:
254,192,9272,1,8,1:0:0:0:
254,192,9470,1,8,1:0:0:0:
254,191,9669,5,4,1:2:0:0:
254,190,9967,1,0,1:0:0:0:
256,190,10066,1,8,2:0:0:0:
257,190,10265,1,2,2:0:0:0:
257,192,10464,1,0,1:0:0:0:
256,193,10662,1,2,2:0:0:0:
255,193,10861,1,8,2:0:0:0:
254,192,11060,1,2,2:0:0:0:
254,192,11159,1,2,2:0:0:0:
254,191,11258,5,0,1:0:0:0:
256,190,11556,1,0,1:0:0:0:
257,190,11656,1,8,2:0:0:0:
257,192,11854,1,2,2:0:0:0:
257,192,11954,1,2,2:0:0:0:
256,193,12053,1,0,1:0:0:0:
255,193,12152,1,0,1:0:0:0:
254,192,12252,1,0,1:0:0:0:
254,190,12450,1,8,1:0:0:0:
256,190,12649,1,10,2:0:0:0:
257,190,12748,1,10,2:0:0:0:
257,192,12848,5,6,3:2:0:0:
256,193,13146,1,0,3:0:0:0:
255,193,13444,1,0,3:0:0:0:
254,192,13841,1,0,3:0:0:0:
254,191,14040,1,2,3:2:0:0:
254,190,14238,1,2,3:2:0:0:
256,190,14437,5,2,3:2:0:0:
257,190,14735,1,2,3:2:0:0:
257,192,15033,1,2,3:2:0:0:
254,192,15331,1,0,3:0:0:0:
256,193,15431,1,0,3:0:0:0:
255,193,15629,1,0,3:0:0:0:
254,192,15729,1,0,3:0:0:0:
254,192,15828,1,0,3:0:0:0:
254,191,16027,5,6,3:2:0:0:
254,190,16325,1,0,3:0:0:0:
256,190,16623,1,0,3:0:0:0:
256,190,16722,1,0,3:0:0:0:
257,190,16822,1,2,3:2:0:0:
257,192,17020,1,2,3:2:0:0:
256,193,17219,1,2,3:2:0:0:
255,193,17417,1,2,3:2:0:0:
254,192,17616,5,8,2:0:0:0:
254,191,17815,1,8,2:0:0:0:
254,190,18013,1,8,2:0:0:0:
256,190,18212,1,8,2:0:0:0:
257,190,18411,5,8,1:2:0:0:
257,192,18510,1,0,1:0:0:0:
256,193,18709,1,0,1:0:0:0:
255,193,18808,1,8,1:0:0:0:
254,192,18907,1,8,1:0:0:0:
254,191,19007,1,8,1:0:0:0:
254,190,19106,1,8,1:0:0:0:
256,190,19205,5,4,1:0:0:0:
257,190,19404,1,2,0:2:0:0:
257,192,19503,1,0,1:0:0:0:
256,193,19603,1,8,2:0:0:0:
255,193,19801,1,2,2:0:0:0:
254,190,19901,1,2,0:0:0:0:
254,192,20000,1,0,1:0:0:0:
254,190,20099,1,2,0:0:0:0:
254,191,20199,1,2,2:0:0:0:
256,190,20397,1,8,2:0:0:0:
257,190,20596,1,2,2:0:0:0:
254,190,20695,1,2,0:0:0:0:
257,192,20795,5,0,1:0:0:0:
255,193,21093,1,0,1:0:0:0:
254,192,21192,1,8,2:0:0:0:
254,191,21391,1,2,2:0:0:0:
256,190,21689,1,0,1:0:0:0:
256,190,21788,1,0,1:0:0:0:
256,190,21887,1,0,1:0:0:0:
257,190,21987,1,8,1:0:0:0:
257,192,22384,5,4,1:0:0:0:
256,193,22583,1,2,0:2:0:0:
255,193,22682,1,0,1:0:0:0:
254,192,22782,1,8,2:0:0:0:
254,191,22980,1,2,2:0:0:0:
257,190,23080,1,2,0:0:0:0:
254,190,23179,1,0,1:0:0:0:
257,190,23278,1,2,0:0:0:0:
256,190,23378,1,2,2:0:0:0:
256,190,23477,1,2,2:0:0:0:
257,192,23576,1,8,2:0:0:0:
256,193,23775,1,2,2:0:0:0:
256,193,23874,1,2,2:0:0:0:
255,193,23974,5,0,1:0:0:0:
254,191,24272,1,0,1:0:0:0:
254,190,24371,1,8,2:0:0:0:
254,190,24470,1,2,2:0:0:0:
256,190,24570,1,2,2:0:0:0:
257,192,24868,1,0,1:0:0:0:
256,193,24967,1,0,1:0:0:0:
255,193,25166,1,8,1:2:0:0:
254,192,25265,1,0,1:0:0:0:
254,191,25365,1,10,2:0:0:0:
254,190,25464,1,10,2:0:0:0:
256,190,25563,5,4,1:0:0:0:
257,192,25861,1,0,1:0:0:0:
256,193,25960,1,8,2:0:0:0:
255,193,26159,1,2,2:0:0:0:
254,192,26358,1,0,1:0:0:0:
254,191,26457,1,2,2:0:0:0:
254,191,26556,1,2,2:0:0:0:
254,191,26656,1,2,2:0:0:0:
254,190,26755,1,8,2:0:0:0:
254,191,26954,1,2,2:0:0:0:
256,190,27152,5,0,1:0:0:0:
257,190,27252,1,0,1:0:0:0:
257,192,27351,1,0,1:0:0:0:
256,193,27550,1,8,2:0:0:0:
255,193,27748,1,2,2:0:0:0:
254,192,27947,1,0,1:0:0:0:
254,191,28145,1,8,1:2:0:0:
254,191,28245,1,8,1:2:0:0:
254,190,28344,1,8,1:0:0:0:
256,190,28742,5,4,1:0:0:0:
257,190,28941,1,2,0:2:0:0:
257,192,29040,1,0,1:0:0:0:
256,193,29139,1,8,2:0:0:0:
255,193,29338,1,2,2:0:0:0:
254,192,29536,1,0,1:0:0:0:
254,191,29735,1,2,2:0:0:0:
254,190,29834,1,2,0:0:0:0:
256,190,29934,1,8,2:0:0:0:
257,190,30132,1,2,2:0:0:0:
257,192,30331,5,0,1:0:0:0:
256,193,30629,1,0,1:0:0:0:
255,193,30729,1,8,2:0:0:0:
256,193,30828,1,2,0:0:0:0:
254,192,30927,1,2,2:0:0:0:
254,190,31225,1,0,1:0:0:0:
256,190,31325,1,8,1:2:0:0:
257,190,31424,1,0,1:0:0:0:
257,192,31523,1,8,1:0:0:0:
256,193,31722,1,10,2:0:0:0:
256,193,31821,1,10,2:0:0:0:
255,193,31921,5,0,1:0:0:0:
254,192,32119,1,8,2:0:0:0:
254,191,32318,1,8,2:0:0:0:
254,190,32517,1,8,2:0:0:0:
256,190,32616,1,8,2:0:0:0:
257,190,32815,1,8,2:0:0:0:
257,192,32914,1,8,2:0:0:0:
256,193,33113,1,8,2:0:0:0:
255,193,33212,1,8,2:0:0:0:
254,192,33510,5,0,1:0:0:0:
254,191,33708,1,8,2:0:0:0:
254,190,33907,1,8,2:0:0:0:
256,190,34106,1,8,2:0:0:0:
257,190,34205,1,8,2:0:0:0:
257,192,34404,1,8,2:0:0:0:
256,193,34503,1,8,1:2:0:0:
256,193,34603,1,8,2:0:0:0:
255,193,34702,1,8,2:0:0:0:
254,192,34801,1,8,2:0:0:0:
254,190,35099,5,0,1:0:0:0:
256,190,35298,1,8,2:0:0:0:
257,190,35397,1,8,2:0:0:0:
257,192,35497,1,8,2:0:0:0:
256,193,35695,1,8,2:0:0:0:
255,193,35894,1,0,1:0:0:0:
254,192,36093,1,8,2:0:0:0:
254,191,36192,1,8,2:0:0:0:
254,190,36291,1,8,2:0:0:0:
256,190,36490,1,8,2:0:0:0:
257,190,36689,5,8,1:2:0:0:
257,192,36887,5,8,2:0:0:0:
256,193,37086,5,8,1:2:0:0:
255,193,37285,5,8,2:0:0:0:
254,192,37483,5,8,1:2:0:0:
254,192,37583,1,8,1:2:0:0:
254,192,37782,1,0,1:2:0:0:
254,192,37881,1,8,1:2:0:0:
254,192,37980,1,8,1:2:0:0:

View File

@ -0,0 +1,96 @@
from PIL import Image, ImageDraw, ImageFont
from pathlib import Path
out_dir = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker"
def empty(path):
im = Image.new("RGBA", (1, 1))
im.save(path)
hitcircle = Image.new("RGBA", (128, 128))
draw = ImageDraw.Draw(hitcircle)
draw.ellipse((5, 5, 118 + 5, 118 + 5), fill="white")
hitcircleoverlay = Image.new("RGBA", (128, 128))
draw = ImageDraw.Draw(hitcircleoverlay)
draw.ellipse((5, 5, 118 + 5, 118 + 5), outline="white", width=8)
approachcircle = Image.new("RGBA", (126, 126))
draw2 = ImageDraw.Draw(approachcircle)
size = 4
draw2.ellipse((size, size, 118 + size, 118 + size), outline="white", width=6)
scorebarbg = Image.new("RGBA", (400, 40))
draw4 = ImageDraw.Draw(scorebarbg)
draw4.rectangle((0, 10, 400, 40), fill="yellow")
scorebarcolor = Image.new("RGBA", (390, 40))
draw5 = ImageDraw.Draw(scorebarcolor)
draw5.rectangle((0, 4, 400, 20), fill="orange")
def get_text_dimensions(text_string, font):
# https://stackoverflow.com/a/46220683/9263761
ascent, descent = font.getmetrics()
text_width = font.getmask(text_string).getbbox()[2]
text_height = font.getmask(text_string).getbbox()[3] + descent
return (text_width, text_height)
def thefont(size=None):
if size is None:
size = 48
return ImageFont.FreeTypeFont(r"C:\WINDOWS\FONTS\SIMFANG.TTF", size)
def gentext(text, path, font=None, size=None, **kwargs):
if font is None:
font = thefont(size=size)
width, height = get_text_dimensions(text, font)
height += 2
im = Image.new("RGBA", (width, height))
draw3 = ImageDraw.Draw(im)
draw3.fontmode = "1"
draw3.text((0, 0), text, font=font, **kwargs)
im.save(path)
def gen2text(text, path, font=None, size=None, **kwargs):
if size is None:
size = 48
p = Path(path)
gentext(text, p, font=font, **kwargs)
pname = p.name.rstrip(".png")
p2 = p.with_name(pname + "@2x.png")
gentext(text, p2, font=font, size=size * 2, **kwargs)
# Scorebar set
scorebarbg.save(f"{out_dir}/scorebar-bg.png")
scorebarcolor.save(f"{out_dir}/scorebar-colour.png")
# Hitcircle set
hitcircle.save(f"{out_dir}/hitcircle.png")
hitcircleoverlay.save(f"{out_dir}/hitcircleoverlay.png")
hitcircleoverlay.save(f"{out_dir}/sliderstartcircleoverlay.png")
empty(f"{out_dir}/sliderendcircleoverlay.png")
approachcircle.save(f"{out_dir}/approachcircle.png")
hitcircle.save(f"{out_dir}/sliderstartcircle.png")
# Hitcircle number set
for i in range(10):
gentext(str(i), f"{out_dir}/default-{i}.png", fill="white")
# Hitburst set
gen2text("Zzz", f"{out_dir}/hit0.png")
# gen2text("無謀な……", f"{out_dir}/hit100k.png")
# gen2text("え?俺勝っちゃったの?", f"{out_dir}/hit300g.png")
# gen2text("ヤッフー!!", f"{out_dir}/hit300k.png")

View File

@ -0,0 +1,47 @@
in_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [top-rhythm'].osu"
out_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [Prece Enter Key].osu"
positions = [
(317, 289),
(225, 305),
(151, 253),
(135, 161),
(186, 87),
(278, 69),
(352, 121),
(369, 214),
]
with open(in_file_path, "rb") as f:
data = f.readlines()
with open(out_file_path, "wb") as f:
section = b""
c = 0
for line in data:
if line.startswith(b"Version"):
line = line.replace(b"top-rhythm'", b"Prece Enter Key")
line = line.strip()
if not line: continue
if line.startswith(b"[") and line.endswith(b"]"):
section = line.lstrip(b"[").rstrip(b"]")
print(section, line)
if section != b"HitObjects":
f.write(line + b"\n")
continue
parts = line.split(b",")
if len(parts) > 2:
x, y = positions[c]
parts[0] = str(x).encode("utf-8")
print(parts)
parts[1] = str(y).encode("utf-8")
c = (c + 1) % len(positions)
line = b",".join(parts)
f.write(line + b"\n")