You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> No known issues as of now! Wanna go find out one?
3
+
> ClassiCube closes upon clicking Singleplayer button in menu. Most probably the missing functionality thats needed to open another game window.
4
+
5
+
> Providing an argument to ClassiCube skips menu and starts a world with that name. But mostly page faults, and rarely does work but the entire rendering engine looks messed up. Read following issues to get an idea why its messed up.
6
+
7
+
> ClassiCube doesn't even launch from other real shells like ash and sh (BusyBox), other than ZenOS's shell, which works because it uses a custom spawn() instead of fork + exec. Infact launching classicube from one of these shells freezes the system.
8
+
9
+
> All of this points to core memory issues. Other big clue of this is that launching nk_widgets, or classicube, or imgview, or other big apps (i.e big binary, or an app that loads a lot of memory at runtime), actually can mess up their own window buffer (this does not sound serious as obviously apps can access window buffer but its dangerous) but they can ALSO CORRUPT the window titlebars background and colors, and harp's bottom dock islands' blur and background with corrupt ahh pixel garbage.
10
+
11
+
> imgview app almost never works correctly and always has some garbage pixel lines and artifacts in it, but imgview app itself is damn simple... its memory corruption too.
12
+
13
+
---
14
+
15
+
### What to do:
16
+
17
+
> This is definitely a kernel-side or core userspace-side error.
18
+
19
+
> Completely debug out, rewrite, and fix fork, and also check spawn() in the meanwhile.
20
+
21
+
> Check and debug the core memory manager, PMM and VMM
22
+
23
+
> Also need to consider edge cases of memory running out, heap, etc.
24
+
25
+
> Shift the custom shell to use fork() again, and test ALL apps.
26
+
27
+
> Make the fork, spawn, exec stuff better, idk atp
if(smp->cpu_count>MAX_CPUS) {// Very unstable beyond 16.
61
61
clr();
62
-
log("\n\nThis system cannot run ZenOS\n\n - This system does not meet the requirement of maximum 8 CPUs.\n\nConsider downgrading your CPU.\nDecrease CPUs available if on a VM.\n ", 0, 1);
62
+
log("\n\nThis system cannot run ZenOS\n\n - This system does not meet the requirement of maximum 16 CPUs.\n\nConsider downgrading your CPU.\nDecrease CPUs available if on a VM.\n ", 0, 1);
63
63
}
64
64
65
65
g_cpu_count= (uint32_t)smp->cpu_count;
@@ -83,7 +83,7 @@ void init_smp() {
83
83
log("Starting CPU %lu (LAPIC ID %d)", 1, 0,
84
84
i, smp->cpus[i]->lapic_id);
85
85
smp->cpus[i]->extra_argument=i;
86
-
smp->cpus[i]->goto_address=ap_entry;
86
+
smp->cpus[i]->goto_address=ap_entry;// CPU cores now end up at ap_entry, lets catch them there
0 commit comments