No description
  • C 98.6%
  • Shell 1.2%
  • M4 0.1%
Find a file
2026-09-11 00:14:38 +02:00
.github/workflows added heliotrope + libjpeg-turbo 2026-04-30 15:42:23 -05:00
assets nahhh get outtt windows 2026-04-17 00:21:47 -05:00
editor erm misc optimizations + combo colour fixes + timeline shenanigans (timeline is very buggy tho) 2026-08-19 21:58:46 +02:00
helpers erm misc optimizations + combo colour fixes + timeline shenanigans (timeline is very buggy tho) 2026-08-19 21:58:46 +02:00
.gitignore fixed up deps script + added kiais/breaks 2026-04-24 12:19:20 -05:00
chrysalis artix is arch too,,, 2026-09-11 00:14:38 +02:00
configure.ac added heliotrope + libjpeg-turbo 2026-04-30 15:42:23 -05:00
controls.c cleaned up the scrolling function i think 2026-08-17 01:39:36 +02:00
controls.h DELETED gtk WTFFF 2026-03-24 17:11:09 -05:00
editor.h fixed up deps script + added kiais/breaks 2026-04-24 12:19:20 -05:00
LICENSE complete audio engine rewrite >.< 2026-02-15 15:01:56 -06:00
main.c initialize sdl :p 2026-08-12 17:41:23 +02:00
main.h DELETED PANGO FRICK U 2026-04-03 00:55:43 -05:00
Makefile.am timeline changes ^_^ made editor its own folder 2026-08-12 16:23:39 +03:00
menu.c timeline changes ^_^ made editor its own folder 2026-08-12 16:23:39 +03:00
menu.h timeline changes ^_^ made editor its own folder 2026-08-12 16:23:39 +03:00
README.md added heliotrope + libjpeg-turbo 2026-04-30 15:42:23 -05:00
TODO.md timeline changes ^_^ made editor its own folder 2026-08-12 16:23:39 +03:00
yuiedit.rc map parse refactor + added stacks (fucking huge) 2026-04-18 22:26:14 -05:00

yuiedit!

incredibly portable & simple osu editor written in C using sdl 1.2 & cairo

background

for those of you who are interested in the why of yuiedit, feel free to read~ this project, and my subsequent obsession with Vine Linux started as a result of 有機酸 (uki3)'s error EP, which i really liked being a big vocaloid fan ^_^ the album artwork features an obscure linux distro running in Virtual PC 2007 - Vine Linux 4.2 (Lynch Bages). i became obsessed with the idea of mapping something from this album within this version of Vine Linux, because that's the only way i can do a proper tribute to it :p

after much messing around with upgrading the ancient toolchain in this version, upgrading the kernel with some success, and various other attempts to somehow shoehorn a modern enough version of wine to run osu!stable... i decided to bite the bullet. instead of fighting with Vine Linux, i'll instead embrace it and create my own osu! editor old enough and portable enough to run in this ancient 2007 distro - and for anyone else, to run in whatever fuckass environment they may please. all you need is an operating system made within the last 25 years.

usage

yuiedit! is mostly keyboard nagivated - i personally like keyboard nagivation better, and it's easier to implement ^-^ most nagivation is rather intuitive, just use the arrow keys or mouse wheel to move around menus and enter, space, or left click to select an option. the menu feels quite smooth to navigate once you get used to it~

the actual editor part is also quite intiutive coming from osu!stable at least, lots of your usual shortcuts and navigation options are here.

useful keyboard shortcuts:

ctrl + s to save a map (any osu mapper knows this one very well!!)

ctrl + e to export your map as an osz or .osu file alone

ctrl + , / ctrl + . to rotate by 90 degrees

ctrl + g to reverse a slider

ctrl + h / ctrl + j to flip horizontally / vertically about the centre

ctrl + arrow keys to nudge an object by 1 pixel in any direction

ctrl + shift + r / ctrl + shift + s to open a rotate/scale menu respectively

additionally, there is currently no way to create a new map inside of yuiedit! itself. again, could come in later versions~

info

on launch, yuiedit! automatically will create a maps/ folder if none is present. the only way to add maps is through adding them to this folder, it doesn't support drag and drop into the editor itself >_< this only supports osu!std maps, so don't expect to be mapping mania on this or anything :p

bit technical, but it only supports v14 and v128 (lazer) osu files - which is everything from ~2015 onward. the full featureset can be seen below, for your viewing pleasure:

feature support
set/diff selection ✔️
reading/writing .osu files ✔️
extracting/compressing .osz files ✔️
straight, bezier, perfect and catmull sliders ✔️
.ogg/.mp3 audio ✔️
.png/.jpeg backgrounds ✔️
reading maps with colourhax ✔️
colourhax creation ❌
lazer (v128) map support ✔️
old (<v14) map support ❌
hitsound playback/editing ❌
storyboard/video playback ❌
storyboard editing ❌
map testing ❌

dependencies/compilation

for anyone downloading a binary of yuiedit!, there's zero dependencies to worry about on all platforms! however, if you are planning on contributing or making your own compiled build, chrysalis is what you want. chrysalis is a bash script that will automatically determine your platform and download (or compile, depending on the platform) all of the dependencies you need. this makes compilation smooth and seamless, no matter which esotetic platform you may be running. but what is it installing? everything that yuiedit relies on, and what it does, can be seen below.

additionally, heliotrope is included within yuiedit itself - no need to get it as an external dependency.

windows

windows is the only platform that is (without msys2 or a mingw setup) unable to run chrysalis. as such, if you are on a platform that is not easily able to use the latest version of msys2 (<= windows 10), i'd recommend downloading the gtk bundle that supports down to windows 2000 for cairo, and run ./chrysalis to download all other dependencies

anything with gcc 3 or newer should be able to compile just fine, provided you have all libraries installed as mentioned above. grab a release tarball, run ./configure then make in the main directory - and you should be good! you can also run ./configure --enable-debug to have the proper debug symbols if you'd like to contribute and make development easier for yourself! have fun o/