23 Commits

Author SHA1 Message Date
JanNeuendorf
7be70269e9 Slightly altered virtual mouse position 2025-05-04 14:44:06 +02:00
JanNeuendorf
aff6daa1e0 Bumped version to 1.0.0 2025-04-02 17:53:34 +02:00
JanNeuendorf
fdea26ae7a Added some comments and made some minor changes in preparation for extensions. 2025-02-20 11:01:40 +01:00
JanNeuendorf
920c9f02e6
Replaced all arrays with Vec to avoid Stack-Overflow on Window(#14) 2025-01-12 23:33:24 +01:00
jan
a26457417b Bumped the version and cut fluff from the README 2025-01-12 14:29:32 +01:00
jan
2a9944038b Emulator now prints key-bindings on startup 2025-01-11 15:34:38 +01:00
jan
defac087c7 Restarting now reloads the file 2025-01-11 14:53:55 +01:00
jan
29f215ff9e Reworked the sync function to reduce input-lag by one frame and changed confusing documentation. 2025-01-08 19:21:15 +01:00
JanNeuendorf
cf3306eeb2
Debug instruction (#12)
This combines the SET and INST instructions into one SET instruction and adds DEBUG for opcode 10.
This is a breaking change, but the migration is very simple.
2025-01-06 18:37:34 +01:00
JanNeuendorf
6abfcbc811
Macroquad port (#10)
I ported the gui to the macroquad crate.
This has the following advantages:

    We can easily draw text. This means we can show the number of instructions on screen.
    The filter mode can be set to linear for a different look.
    The dependencies are a lot cleaner now. Just depending on the latest stable version of macroquad makes it a lot more likely that the app builds properly on different platforms (and will continue to do so in the future).

I also use the gilrs crate directly for the gamepad input.
2025-01-05 16:36:51 +01:00
JanNeuendorf
24c192f129 Added support for loading gzip-compressed programs 2025-01-04 18:06:45 +01:00
jan
b498160c41 Improved output for division by zero 2025-01-03 10:49:28 +01:00
jan
cea522cee3 Mapped the left stick of a gamepad to be used as a DPad 2024-12-23 20:28:53 +01:00
jan
f5ea5b88fe Moved the controller support into a cargo feature that needs to be turned on explicitely. This makes the emulator more portable. 2024-12-23 16:26:33 +01:00
jan
890c2b7b79 Added better error-reporting to the emulator. 2024-12-22 13:17:41 +01:00
JanNeuendorf
36579b22dd
Utility buffer and expansion card mechanism (#7)
* Included utility buffer in sketch and reworked it.

* Included the new buffer and instruction changes in the README.

* Implemented the new buffer in the emulator

* Made the buffer clear since no expansion is active

* Added the new buffer and expansion card to the specification document

* Used more consistent wording and added expandability to the goals. Added more examples for expansions.
2024-12-21 14:16:53 +01:00
jan
010583c6b4 Gamepad input is working 2024-12-19 16:07:02 +01:00
jan
5fce0f70cf Bumped winit version to highest 0.29 release 2024-12-19 15:08:15 +01:00
jan
a229e6d378 Preallocated the u16 pixel buffer and made the -v output more detailed. 2024-12-19 13:38:35 +01:00
JanNeuendorf
3cbeba00ee
Port to pixels crate (#5)
Using "pixels" instead of minifb allows for better window decorations and resizing. 
I mostly copied their winit exampe.  
The debug option has been removed and the scaling option is now a plain factor.
2024-12-19 12:35:46 +01:00
JanNeuendorf
4ba681cc52
Additional input (#3)
* Implemented additional input codes in the emulator

* Explained new inputs in the README

* Added additional inputs to the specification and changed the layout.

* Made a more advanced input-tester example that shows all keys.
2024-12-18 13:20:42 +01:00
JanNeuendorf
df631a0060 Mapped the mouse buttons to the keyboard as an alternative 2024-12-17 00:10:44 +01:00
jan
31ea35cc93 Included the emulator 2024-12-13 11:22:32 +01:00