programs: Add Uxn emulator #272
Merged
Burer
merged 1 commits from 2025-10-13 09:52:33 +00:00
iyzsong/kolibrios:main into main
Labels
Clear labels
Eolite
FS
Good First PR
GSoC
HardwareTested
HLL
Influence/Settings
Influence/Text/TYPO
IRCC
Lang/C
Lang/FASM
Pay for the code
Subsystem/API
Subsystem/Audio
Subsystem/Graphics
Subsystem/IPC and events
Subsystem/Memory
Subsystem/Network
Subsystem/Services(daemon)
Subsystem/Taskmanager
Subsystem/VFS
Subsystem/Window
Category
Applications
Category
Drivers
Category
General
Category
Kernel
Category
Libraries
The issue is suitable to beginners
This issue or PR in the Google Source of Code program
Kind
Breaking
Breaking change that won't be backward compatible
Kind
Bug
Something is not working
Kind
Build
Kind
Documentation
Documentation changes
Kind
Enhancement
Improve existing functionality
Kind
Feature
New functionality
Kind
Security
This is security issue
Kind
Testing
Issue or pull request related to testing
Paid task
PR
Conflicts
PR conflicts with main
PR
Dependent
This PR is dependent on another PR
Priority
Critical
1
The priority is critical
Priority
High
2
The priority is high
Priority
Low
4
The priority is low
Priority
Medium
3
The priority is medium
PR
Ready to merge
Pull request is ready for merge
PR
Request changes
Changes requested in pull request
PR
Review required
Reviewed
Confirmed
Issue has been confirmed
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
This issue won't be fixed
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
infinity service, audio drivers, midi, speacker, audio programs
vesa, vga, framebuffer, cursors, blitter, and video drivers
pipes, signals, events, shared memory
virt and phys memory allocators, malloc and other
userspace and kernel(for example: serial) services
process, threads, run apps, scheduler
drivers from filesystem, fs api, blkdev, programs that work with the file system
windows, skins, buttons, mouse and keyboard code for windows (not the base code)
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: KolibriOS/kolibrios#272
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
To build this, a zig compiler (tested: 0.14.1) is needed, run
zig build --release=fast.It will download https://github.com/chmod222/zuxn when building.
Hello!
You can configure associations to run
.romfiles in this config:https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/data/common/settings/assoc.ini
Also, you probably would like to configure icons for
.romfiles and additional associations (for some file managers), using config files in this folder:https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/data/common/File%20Managers
All available icons and numbers can be found in
/sys/@reshareapp,ICONS16/Wsection.603f643f67toa826c724eeAdd association and icon for
.romfiles, thanks.Also implement the file device (without stat op), and remove the MPL-2.0 license file (which I think should be in the root folder so that each program don't need to store its own).
a826c724eeto24d245c09b24d245c09bto3633516f62Hi!
Wanted to test it and realized that emulator itself isn't included in image auto-build yet.
To include it, you need to use KolibriOS TUP build system:
Tupfile.luato emulator source code folder.data/Tupfile.luafile.You can get an example in this commit and adapt it to your Zig building pipeline:
2d9007da32Hi, it seems tup doesn't want to work with
zig build, which will download 3rd deps and manage some cache itself.May I commit the built binary into the repo?
Yep, if tup can't work with Zig - binary is okay.
3633516f62to6fba27b780OK, now I commit the built binary.
Your project can be in a separate repo with autobuild. While building the OS, main workflow can just download an artifact from your CI
@iyzsong hi, and sorry for late response!
I finally tested your emulator, and have some feedback.
Overall, it works pretty fine, but there are some small problems:
Is it possible to fix them?
When creating a window, you can set a flag to start drawing coords from window client area (don't overlap borders), and call a separate function to get header height of current skin, and adapt your rendering accordingly.
No problem.
Yes, full screen is not supported, it only render at 1x/2x/3x. The weird you see is due to screen is too small for the left editor, run it at 1080p will show the correct border.
I think that's skin drawing, I created the window with skinned, no fill and and relative coordinates. change to another skin show this, which i think is correct:
Oh, got it!
I tried to run KOS with bigger screen resolution, and now this problem is also gone.
Thus, I suppose, all is okay with this PR.
Thank you for your response!