Post B2BZPDiizeajXUQe4u by wim_v12e@merveilles.town
(DIR) More posts by wim_v12e@merveilles.town
(DIR) Post #B27PuZifTVxAZTsJCC by neauoire@merveilles.town
2026-01-09T19:50:07Z
1 likes, 0 repeats
Testing Uxn11 optimizations with @tbsp's gameboy emulator.
(DIR) Post #B27QRi2Ba815uontmi by nilix@cafe.nilfm.cc
2026-01-09T19:55:30Z
0 likes, 0 repeats
@neauoire @tbsp WE NEED TO GO DEEPER. i didnt know there was a gb emulator on varvara tho, thats freaking awesome T-T
(DIR) Post #B27QRvVNUu5lh7Ytai by neauoire@merveilles.town
2026-01-09T19:56:13Z
0 likes, 0 repeats
@nilix @tbsp we can go deeper 😈 https://github.com/tbsp/uxngb
(DIR) Post #B29KrX6EeFyG7eY3E0 by wim_v12e@merveilles.town
2026-01-10T18:03:13Z
0 likes, 0 repeats
@neauoire What are those optimisations? Are they things SDL does not support?
(DIR) Post #B29L6PAiPDOHsXjeDI by neauoire@merveilles.town
2026-01-10T18:05:47Z
0 likes, 0 repeats
@wim_v12e I haven't ported them to uxn2(SDL2) yet, but they will work. The optimizations were mostly about reducing branching in hot loops.I'm starting to be more comfy looking at disasssembly now, so I run the emulator in gotbolt and see if I can reduce the work. I noticed how using const efficiently reduced load/stores between registers in some cases, so I've been going through all the code and making sure it's as tight as I can possibly make it.https://git.sr.ht/~rabbits/uxn11/log
(DIR) Post #B2AiVYz1YY9beTBySG by wim_v12e@merveilles.town
2026-01-11T10:02:52Z
0 likes, 0 repeats
@neauoire Is uxn11 noticeably faster for this kind of games?
(DIR) Post #B2BFYEkcX6VOG5KzWS by neauoire@merveilles.town
2026-01-11T16:12:52Z
0 likes, 0 repeats
@wim_v12e Yeah, it's easier to see with something like muxn or duxn3d, it has gotten faster enough that I can feel the difference when I have multiple polycats animating at the same time in the same instance, or looking around in Pinehole.
(DIR) Post #B2BJO3LySB0lpYD0j2 by wim_v12e@merveilles.town
2026-01-11T16:56:09Z
0 likes, 0 repeats
@neauoire What makes it faster?
(DIR) Post #B2BKgFtYf89PtWA2MK by neauoire@merveilles.town
2026-01-11T17:10:36Z
0 likes, 0 repeats
@wim_v12e it spends less time moving state around, predicts the program's intention better, I had this issue where I had branching in a tight loop, I figured maybe the assembly would magically figure out how to handle it, but it didn't when I looked at the code, instead of it was doing the same comparison 64 times for no reason thousands of times per frame, and getting the same result each time, I moved things around a bit, so when painting a whole screen with stuff, this useless operation is gone.
(DIR) Post #B2BKov9l8bBcBGs3fM by wim_v12e@merveilles.town
2026-01-11T17:12:12Z
0 likes, 0 repeats
@neauoire Ah, I thought it was to do with the differences between X11 and SDL.
(DIR) Post #B2BKu50bvy0UBZ3Gpk by neauoire@merveilles.town
2026-01-11T17:13:05Z
0 likes, 0 repeats
@wim_v12e Oh, the SDL2 emulator is a bit slower, but it might be more to do with my using the API poorly than, the micro optimization of individual devices.
(DIR) Post #B2BLJI5GSTR7ycFYaO by wim_v12e@merveilles.town
2026-01-11T17:17:42Z
0 likes, 0 repeats
@neauoire Why do you maintain the X11 version?
(DIR) Post #B2BLLwEq8UXf5nzWHQ by neauoire@merveilles.town
2026-01-11T17:18:05Z
0 likes, 0 repeats
@wim_v12e that's what I use, I only maintain uxn2 for others or if I need audio.
(DIR) Post #B2BMTX09wvhF5pJDyC by wim_v12e@merveilles.town
2026-01-11T17:30:43Z
0 likes, 0 repeats
@neauoire I see, I never realised that. I thought the SDL version was the "official" one.
(DIR) Post #B2BMaiBYlaE7o3471M by neauoire@merveilles.town
2026-01-11T17:31:55Z
0 likes, 0 repeats
@wim_v12e it is, I made uxn11 for me, it's tailored explicitly with how I use Uxn, it has some extra stuff that nobody else would need in it too.
(DIR) Post #B2BZPDiizeajXUQe4u by wim_v12e@merveilles.town
2026-01-11T19:55:37Z
0 likes, 0 repeats
@neauoire OK, good, I thought for a moment I would 's have to study it in more detail :-D I have several students working on uxn for their final year projects, they all like it a lot and it's great fun. One is doing a POSIX style process API, another pthreads, and two others are trying to get the Uxn to work on GPU with a decent frame rate. And in March I'm teaching uxntal again. Look what you've done to me ^_^
(DIR) Post #B2BZbkDjz4UFoOuN9s by neauoire@merveilles.town
2026-01-11T19:57:45Z
0 likes, 0 repeats
@wim_v12e You're all set with uxn2.c, it's state of the art pretty much. It's so cool that your students get to think in stack lang in school, I hope all the recent improvements to the docs and tools and examples help them out!
(DIR) Post #B2Ba2tUFdkheMyZp3I by wim_v12e@merveilles.town
2026-01-11T20:02:48Z
0 likes, 0 repeats
@neauoire I'm sure they do. Compared to last year, I think it is now a lot easier to learn Uxntal.
(DIR) Post #B2Baqoykfv5yrpeNmq by neauoire@merveilles.town
2026-01-11T20:11:45Z
0 likes, 0 repeats
@wim_v12e Awh, you have no idea how good this is to read for me right now. :)
(DIR) Post #B2GF2tWuM1fvFtmIzY by floatvoid@merveilles.town
2026-01-14T02:01:00Z
0 likes, 0 repeats
@neauoire @tbsp wtf that's actually playable speed. Sick
(DIR) Post #B2GGzi7kVJZUv8cUHw by neauoire@merveilles.town
2026-01-14T02:22:43Z
0 likes, 0 repeats
@floatvoid @tbsp It's kind of shocking sometimes how fast uxn runs. There's also tons of room for improvement in the emulator.