JNI bindings for NeoNucleus
  • C 64.3%
  • C++ 16.5%
  • Java 9.7%
  • Lua 7.1%
  • Makefile 1.9%
  • Other 0.5%
Find a file
2026-07-09 20:25:36 +02:00
.vscode stop using a copy of the neonucleus header and just point it to the submodule instead, and fix "jump to case label" 2026-07-08 10:22:24 -03:00
NeoNucleus@c26c51b500 useful methods 2026-07-09 20:25:36 +02:00
src useful methods 2026-07-09 20:25:36 +02:00
.clangd nicer API 2026-07-09 18:28:51 +02:00
.gitignore first commit 2026-05-25 21:33:48 -03:00
.gitmodules nicer API 2026-07-09 18:28:51 +02:00
build.sh first commit 2026-05-25 21:33:48 -03:00
Makefile stop using a copy of the neonucleus header and just point it to the submodule instead, and fix "jump to case label" 2026-07-08 10:22:24 -03:00
README.md fixed merges 2026-07-09 17:48:38 +02:00
run.sh first commit 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