2026-07-06 17:24:09 +02:00
2026-07-05 10:37:39 -03:00
2026-07-06 17:24:09 +02:00
2026-07-06 17:24:09 +02:00
2026-05-25 21:33:48 -03:00
2026-05-28 21:52:10 -03:00
2026-05-25 21:33:48 -03:00
2026-07-06 17:24:09 +02:00
2026-05-25 21:33:48 -03:00

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
Description
NeoNucleus JNI bindings
Readme 234 KiB
Languages
C 76.8%
C++ 8.8%
Java 7.7%
Lua 5%
Makefile 1.3%
Other 0.4%