Email or username:

Password:

Forgot your password?
Bad Diode

Finished optimizing the main drawing functions for uxn-playdate getting speedups ranging from 1.98x to 4.38x.

Only screen_fill missing and then it's time to do audio and filesystem stuff. At this point the playdate should be able to handle pretty much any rom you throw at it (within reason). I think there is full speed parity for Oquonie compared with uxnemu.

More testing is needed of course, and I could make things faster but not worth it until I can test on hardware. :uxn:

#uxn #playdate

A playdate simulator showing the uxn screen demo and a terminal displaying some performance numbers for before/after comparisons between drool, screen and oquonie room. Median speedup ranges from 1.98x to 4.38x
5 comments
tbsp

@bd Congratulations! This has come a long way in a very short period of time. 😃

Devine Lu Linvega

@bd that's sick! I was looking at the uxn core, and I think it could be to run faster.

Many times you increment the stack pointer each push and pop, I was wondering if it'd be faster to move it once, and write the values with an offset, so something like PUSH(a) PUSH(b) wouldn't load the ptr twice, just once and write a at -1 and b at -2.

Bad Diode

@neauoire it's best not to do these optimizations manually, the compiler should be able to do this for you. There may be some operations where this could help, but if you decide you wanna give it a try let me know and I can A-B the changes :)

Devine Lu Linvega

@bd oki :) yeah I never know what turns into what, with one of the older cores, I noticed that in Compiler Explorer it would do an extra load between each.

Go Up