zxq5
98668c681e
more optimisations test program ~54MIPS -> ~110MIPS
2025-06-29 02:04:14 +01:00
zxq5
05a25447b2
minor optimisation to reduce unnecessary allocations
2025-06-28 03:43:20 +01:00
zxq5
56d2abe17f
- optimised main emulator loop, allowing updates only once every roughly 32,000 instructions.
...
- optimised memory access patterns, removing unecessary mutability and accesses.
- replaced the standard HashMap with an implementation that uses a faster hashing algorithm.
results:
before:
- our benchmark program with ~4m instructions would take around for their data to make it to the UI, and a bit over 200ms to actually run
after:
- our benchmark program with ~4m instructions can run in around 75ms, and the UI receives the update almost instantly.
conclusion:
- emulator performance should be around 2-3x faster than before.
2025-06-28 03:21:46 +01:00
zxq5
620584488b
fixed unit tests & misc changes to workspace config
2025-06-26 00:50:58 +01:00
zxq5
1101331f70
fixed a couple of emulator bugs, including fixing shift instructions. finished implementing lib/io/print/print_hex_byte and print_hex_word
2025-06-25 16:31:42 +01:00
zxq5
82b99c127c
finished initial interrupts implementation
2025-06-25 00:13:55 +01:00
nullndvoid
92c4660a4d
misc: get rid of some errors from Cargo lol
2025-06-24 21:55:11 +01:00
zxq5
d2c1492dca
added step(n) feature to emulator, allowing for stepping n instructions at a time
2025-06-24 18:07:11 +01:00
zxq5
4ef8bbdf46
updated dependencies
2025-06-24 18:06:29 +01:00
zxq5
76197fac8f
finished refactor of emulator - started on loader (needs significant changes before functional in the way that I would like)
2025-06-23 23:45:47 +01:00
zxq5
bc5ddef311
added error handling to emulator
2025-06-23 21:28:38 +01:00
nullndvoid
f432fe7665
misc: clippy lint fixes
2025-06-23 18:23:01 +01:00
zxq5
ddd0c27893
found a cause of a memory bug in emulator - fix is TODO ( #6 ) - continued working on brainf interpreter. we really need better debugging tools tbh.
2025-06-23 00:31:09 +01:00
zxq5
6ea3a76d74
fixed some bugs with file picker & loading different file types - will start working on brainf##k interpreter tomorrow because a compiler isn't enough.
2025-06-22 05:19:55 +01:00
zxq5
2b777f55c7
Merge remote-tracking branch 'refs/remotes/origin/main'
2025-06-22 03:54:44 +01:00
zxq5
808b51ff5f
updated emulator to support importing .dsb binaries
2025-06-22 03:52:11 +01:00
nullndvoid
c7322d8171
emulator on android: crashes but APKs are building
2025-06-22 03:46:42 +01:00
nullndvoid
a878483923
emulator: fix build errors in main.rs
2025-06-22 02:21:08 +01:00
nullndvoid
b97dcd5692
emulator: start supporting Android, this is WIP
...
Needs storage permissions, probably extra tweaks
2025-06-22 02:13:06 +01:00
nullndvoid
83259b9217
emulator: use egui file pickers rather than native ones
...
TODO: Add file types when picking? This is a regression
2025-06-22 02:12:26 +01:00
nullndvoid
bbf893290f
misc: more clippy fixes, **switched to stable**
...
The switch was due to rust-analyzer bug on latest nightly, please use stable until [this bug](https://github.com/rust-lang/rust-analyzer/issues/20051 ) is fixed
2025-06-22 00:42:44 +01:00
nullndvoid
1907bbb200
misc: clippy fixes
2025-06-22 00:30:27 +01:00
nullndvoid
22a8785083
emulator: cut down on cfg directives
2025-06-22 00:03:48 +01:00
zxq5
528ceddade
refactor & fixed assembler path handling
2025-06-21 04:05:22 +01:00
zxq5
42c26d4184
added a create-project system to assembler, and fixed a couple of parsing bugs
2025-06-20 03:25:28 +01:00
zxq5
5c83b49328
fixed some clippy warns
2025-06-19 18:50:57 +01:00
nullndvoid
a48dfee777
misc: revert "purged .unwrap()"
...
Harry is an idiot @zxq5 is also an idiot
This reverts commit d4e538a2b3 .
2025-06-19 17:01:04 +01:00
zxq5
d4e538a2b3
purged .unwrap()
2025-06-19 16:57:43 +01:00
nullndvoid
78512d95e9
tests: update to reflect new argument ordering
2025-06-19 16:46:07 +01:00
nullndvoid
6f834025ed
emulator: imports work relatively to file being assembled (set cwd)
2025-06-19 16:35:00 +01:00
nullndvoid
b5ce5e0011
emulator: run by default and auto add the config feature
2025-06-19 16:16:13 +01:00
nullndvoid
81433dcbcd
misc: apply clippy lints
2025-06-19 15:51:23 +01:00
zxq5
e308362533
idk
2025-06-19 15:18:48 +01:00
zxq5
6b58a17f03
fixed a lot of bugs with the emulator, instruction set and assembler
2025-06-19 01:57:36 +01:00
zxq5
e281bc2d1d
IT WORKS HELL YEAH.
2025-06-18 22:53:01 +01:00
nullndvoid
687dea99ca
emulator: get RPC working w/ Cargo features
2025-06-17 23:48:28 +01:00
nullndvoid
3a40719e54
misc: back to little endian because I am evil
2025-06-17 19:51:16 +01:00
nullndvoid
0b16246dd2
misc: applied some clippy lints
2025-06-17 19:43:35 +01:00
nullndvoid
868cba376f
misc: fix merge conflict
2025-06-17 19:22:01 +01:00
nullndvoid
a6be668328
emulator: just saving my changes
2025-06-17 19:19:49 +01:00
zxq5
87fbd6c362
assembler still very broken, dependency resolution works, now working on expanding pseudoinstructions
2025-06-17 03:11:22 +01:00
zxq5
88a1c9f245
Merge remote-tracking branch 'refs/remotes/origin/main'
2025-06-16 23:40:29 +01:00
zxq5
75246f5e73
editor go brr?
2025-06-16 23:38:36 +01:00
nullndvoid
ae10249616
misc: fixed some shit thanks to Clippy, have fun with the merge conflicts lmao
2025-06-16 23:21:35 +01:00
zxq5
7d17107a8c
Merge remote-tracking branch 'refs/remotes/origin/main'
2025-06-16 03:50:25 +01:00
zxq5
e9eca34d48
editor changes
2025-06-16 03:49:08 +01:00
nullndvoid
5ed0f9c1ca
misc: formatting and clippy lint fixes
2025-06-16 01:19:57 +01:00
zxq5
2b5ad0885b
added assembler skeleton code
2025-06-15 21:53:57 +01:00
zxq5
2b8281157e
refactor 2 electric boogaloo
2025-06-15 21:40:43 +01:00