UpsilonNumworks / Upsilon

Upsilon, an OS forked from Omega for your Numworks calculator
https://getupsilon.web.app/
Other
209 stars 61 forks source link

[NSpire Simulator] Fix framebuffer in nspire port #340

Closed Luminoso-256 closed 1 year ago

Luminoso-256 commented 1 year ago

Resolves the issue brought up in UpsilonNumworks/Upsilon#339 (and therefore closes #339 )

The issue ultimately boils down to incorrectly handling the fact that some calculators use a different framebuffer implementation under the hood that is not compatible with the assumptions that were being made.

Also makes the framebuffer copy more efficient - direct passing of the buffer via lcd_blit instead of the loop-through-and-draw-1x1-rectangles algorithm being used before.

github-actions[bot] commented 1 year ago
.text .rodata .bss .data Total (RAM) Total (ROM)
Base 822196 bytes 477549 bytes 226520 bytes 1816 bytes 228336 bytes 1301561 bytes
Head 822196 bytes 477549 bytes 226520 bytes 1816 bytes 228336 bytes 1301561 bytes
+0 bytes +0 bytes +0 bytes +0 bytes +0 bytes +0 bytes
+0.0 % +0.0 % +0.0 % +0.0 % +0.0 % +0.0 %
Yaya-Cout commented 1 year ago

I dont have any Nspire so I can't test, but it seems OK for me. I just have a question : why did you remove the code to enter in idle mode ?

Luminoso-256 commented 1 year ago

The idle mode code in its current implementation caused persistent screen flicker even after exiting the application. On the Nspire, the underlying OS Upsilon is running as an app on seems to handle sleep well enough on its own, in my testing.

Yaya-Cout commented 1 year ago

OK, so I'm going to merge it.