summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-19Avoid memory allocations!Ekaitz Zarraga
With this change we avoid all memory allocations. Everything is pre-allocated. It makes the frame-rate stay steady with no drops produced by the GC. In order to test this, `gcprof` can be used from `statprof` module.
2022-07-19Simplify the instruction load and execution processEkaitz Zarraga
This makes the process a little bit lighter, but it doesn't have a huge impact in the performance. Looks like we are avoiding a memory allocation without the `values` call.
2022-07-19Simplify pixel conversion function:Ekaitz Zarraga
Accessing the memory directly instead of an intermediate bytevector makes things easier but still this looks like it's the bottleneck of the whole thing.
2022-07-19Fix instructions:Ekaitz Zarraga
The program counter must be reset after each frame, and it's not supposed to be set after each instruction execution. We were setting the PC from the C value of the instructions but that's not what we need to do. The C value is only used for a jump and then, in the next frame the PC must be reloaded from its value in the memory. The only way to change the PC in the program is using it in the B argument of the instructions, which would overwrite it with an arbitrary value (stored in A).
2022-07-14Add repl launcherEkaitz Zarraga
2022-07-14Add more bytepusher romsEkaitz Zarraga
2022-07-14Accept multiple args in mainEkaitz Zarraga
2022-07-14Fix loop frame amount and indentationEkaitz Zarraga
2022-07-14Key handling supportEkaitz Zarraga
2022-07-08Rework FPS log is correct and add possible FPSsEkaitz Zarraga
2022-07-08Set flag for hardware accelerated rendererEkaitz Zarraga
2022-07-08Rewrite access in terms of get-byteEkaitz Zarraga
- This changes happens to slow down the whole system a lot. Also add a test for the PC.
2022-07-08WIP fix instructions:Ekaitz Zarraga
Fixes access to bytes and instruction calls
2022-07-08Fix palette:Ekaitz Zarraga
Looks like the colors were unpacked incorrectly after the changes and red and blue where inverted.
2022-07-08Parameterize scaleEkaitz Zarraga
2022-07-07Remove ugly whitespaceEkaitz Zarraga
2022-07-07Make `get-pixels` fast:Ekaitz Zarraga
Using bytevectors inside makes the process way faster and now can be safely used in the loop, not only for debugging purposes
2022-07-07Add update-texture support:Ekaitz Zarraga
Cleans the code generation and controls the formats better. I'm not sure if this really improves performance, but it looks cleaner so ¯\_(ツ)_/¯
2022-07-06First prototype...Ekaitz Zarraga
Palette works, but the instruction execution loop doesn't. Needs further research. Sound and keys are not implemented either.