Files
Carbon/README.md
2026-07-06 17:24:09 +02:00

1.4 KiB

Carbon Hydrogen

NeoNucleus JNI bindings.

Dev Setup Notes

Java expects libcarbon.so on the src/native directory. This is the default unless you're not using the Makefile. Make sure to build NeoNucleus with make lib MODE=release, and place the libneonucleus.a on src/native. The same applies for TLA (testLuaArch), which must be built with make MODE=release.

Development

Carbon is currently being organized in "milestones", below they are.

Milestone 1

  • PointerBackedClass
  • testLuaArch included
  • Statically linked NeoNucleus
  • Null pointer checks
  • Lua error in console

Milestone 2

  • On-demand native structs
  • NativeComponent, and java-defined Component(s)
  • Make nn_EEPROM not PBC'd.
  • JNIComponentHandler
  • JNI Environment handler
  • Java-side userdata fields
  • Implement ncl screen
  • Prevent more footguns (more error handling, etc...)

Milestone 3

  • Implement all base nn_* functions
  • Implement all ncl_* functions
  • Custom Java architectures (JNI architecture handler)
  • Auto-generate native structs in Java from a JSON file (?)
  • Boot OpenOS

Milestone 4 (MVP release?)

  • OS tests
  • Carbon C library
  • Fix/add missing javadoc comments
  • Point Makefile to the submodule's files instead of copying them over (for NeoNucleus)
  • Write a working emulator using Carbon or Hydrogen (NC-Telnet?)
  • Begin work on Hydrogen