mirror of
https://github.com/NeoFlock/neonucleus.git
synced 2025-09-24 09:03:32 +02:00
2.4 KiB
2.4 KiB
Code quality stuff
- Use the same namespacing style everywhere, that being
nn_<class>_<method>
for functions related to "classes",nn_<function>
for static functions,nn_<type>_t
for types. - Rework to API to be much more future-proof to reduce potential breaking changes.
Parity with Vanilla OC (only the stuff that makes sense for an emulator)
- in-memory version of
filesystem
- complete the GPU implementation (screen buffers and missing methods)
- complete the screen implementation (bunch of missing methods)
hologram
componentcomputer
componentmodem
componenttunnel
componentdata
component (with error correction codes and maybe synthesizing audio)redstone
componentinternet
componentdisk_drive
componentcomputer.getDeviceInfo()
, and subsequently, component device informationcomputer.beep(frequency?: number, duration?: number, volume?: number)
, frequency between 20 and 2000 Hz, duration up to 5 seconds, volume from 0 to 1.
Bugfixes
- Do a huge audit at some point
nn_unicode_charWidth
appears to be bugged, look into that.
The extra components
oled
component (OLED screen, a store of draw commands and resolution from NN's perspective)ipu
component, an Image Processing Unit. Can bind witholed
s, and issues said draw commandsvt
, a virtual terminal with ANSI-like escapes. (and a function to get its resolution)- (maybe)
qpu
component, a Quantum Processing Unit for quantum computing radio_controller
andradio_tower
components, for radio telecommunications- (maybe)
clock
component for arbitrary precision time-keeping led
component for LED matrixes and/or LED lightsspeaker
component, allows playing audio by asking for binary samples and pushing a signal when it needs moremicrophone
component, allows reading audio from nearby sourcestape_drive
component, compatible with Computronics, except maybe with proper seek times and support for multiple tapescd_reader
andcd_writer
components, to work with CDsserial
component, for serial communications with other devices (USB?)
Internal changes
- rework some interfaces to account for possibility of errors
- use dynamic arrays for signals (and maybe components), but still keep the maximums to prevent memory hogging
- setup an extensive testing system to find bugs easier
- check if ports are open in
nn_pushNetworkMessage