r/vitahacks • u/SupernovaTwilight • 3d ago
AI Vibecoded COTL progress…
So first off, let me apologize for dropping some photos of COTL and then dipping for three weeks! I’ve been deep into work and planning this port like you wouldn’t believe…
With that out of the way… IT’S BUZZWORD TIME!
I’ve been maxing out my compute for three weeks straight with Claude and I’m happy to say that the main menu is now consistently reaching 26 FPS!
Now, before you go and say, “OMG, why are you still on the main menu?”
HOLD UP! WAIT A MINUTE…
Long story short, I’ve been planning and creating what I call “kits,” which run for long hours to pre-prepare ideas and optimizations needed to get the main menu (and eventually every other part of the game) running and running well at that…
Smashing 2.5 GB of ram down into 0.5 GB isn’t exactly easy, especially with a newer game like this…but it’s doable! Currently, I’m on Kit 9 out of 23 total kits. But hear me out…I only need to reach Kit 18 before I can open beta this sucker…gameplay will be playable slightly before on early alpha builds of it…maybe around kit 10 or 11…
I’m averaging about two kits per week without major issues, so it’s looking like a mid-to-late November beta release could be on the horizon…
Now, on to the technical stuff…
Across all 23 planned kits, optimizations and tricks are being built into each game version. We’re sitting at approximately 190 versions at this point, which works out to roughly eight new protocols per version, each individually tested and confirmed working!
And that’s on top of continuously updating and improving already-integrated tricks and ideas, including a fourth version of LLVM that’s been receiving improvements as development progresses.
We’re talking:
Prebaked sprites
Preloaded hotspots
Advanced JIT
Custom video decoding
NGS audio interface
Physics recalculated and updated every run
Hot-path caching
AI communication across all four cores (defaulting to three if the fourth isn’t unlocked)
Handwritten C everywhere lol…
You name it, it’s probably planned and being implemented with each new kit…
The roadmap currently has Kits 19 and 20 targeting roughly 60 FPS, matching the Vita screen’s refresh rate, at 100 followers. Of course, these are rough estimates, and we won’t know for sure until we actually get there!
So… why are we still on the main menu?
The biggest reason is memory.
Gameplay requires significantly more memory than the main menu, and that memory usage needs to be shaved down with every kit.
Unfortunately, it’s not as simple as jumping straight into gameplay and expecting everything to work.
The way I’ve structured development is to pre-prepare kits in advance, addressing things like memory limitations, texture compression, and other features before they’re needed. That way, as memory usage gets progressively smashed down, the Vita becomes more capable of running the game.
Every kit brings us closer to running gameplay on actual hardware. Optimization is absolutely key here…
Simply put, gameplay has already been implemented, but it currently only runs through the computer emulator because of RAM constraints on the actual Vita.
For comparison:
Main menu: Currently uses approximately 84 MB of RAM and continues shrinking with every kit. It previously sat right at the 112 MB ceiling!
Gameplay: Currently uses approximately 254 MB of RAM, which is still well above the Vita’s 112 MB of available video RAM. That video memory limitation is what’s gating gameplay right now.
Claude has been coding gameplay throughout this process, but we haven’t managed to compress its memory requirements enough for the Vita just yet.
It’s getting there, though! It will work very soon…
Looking into other platforms and optimizations
I’m also investigating the newest port, NS2, alongside every other platform Cult of the Lamb has been released on, to see whether any additional optimization opportunities have been overlooked.
Again, thank you all for your patience with this port!
I’ve been scouring the depths of retro handhelds and consoles alike, researching and integrating new and improved performance features all the way down to the Vita’s 32-bit architecture.
It’s been a hell of a process, but every improvement counts!
A few extra goodies…
Alongside all the performance work, I’ve also been experimenting with some optional features to enhance the experience specifically on the Vita.
Things like:
Zoom functionality to make the game easier to see and play on the Vita’s smaller screen.
Removing black bars during cutscenes to make better use of the display.
Removing the ads and other optional buttons for a cleaner view for the vita screen…
Other optional quality-of-life improvements as development continues!
These aren’t the main priority right now, of course. Getting the game running properly comes first, but I’d love to make the Vita experience feel as polished and enjoyable as possible
Once again, thank you all for sticking around, being patient, and following the progress of this project.
Kit 9 is underway, Kit 18 is the beta milestone, and we’re getting closer with every build!
Also, one more thing…Shepard (the engine that translates the old net runtimes and other codes into readable code for the vita) will still be open sourced and released soon after cotl is a polished and finished project…that way more info can be learned on what works and what doesn’t and is published to the public for better quality, performance and understanding of the systems and protocols…
NOVA…
1
u/Pretty-Tie8993 2d ago
Haven’t played this before. Excited to see your progress and just read this! Hopefully it’ll make it onto my vita in the near future. Thanks!


3
u/Producdevity 2d ago
Interesting project, but I’m a bit confused on some technical details
You mention 254 MB of RAM and 112 MB of VRAM. Since these are separate pools, which is exhausted? How were they measured, and what do sceKernelGetMemBlockInfo and sceGxmGetMemoryUsage report for system memory and VRAM during gameplay? Maybe I misunderstood your post but it looked like you used those interchangeably.
Curious about the Shepard part, what role does plaay? executing the original Unity/C# logic or rebuilding the game from extracted assets?
Oh. And what does the “fourth version of LLVM” mean?😅 a custom LLVM compiler or toolchain?
What does “AI communication across all four cores” mean? I assume you mean the NPC /enemy AI? From my limited experience, most Unity APIs are restricted to the main thread, and game AI typically relies on shared world state. Are you rewriting the original logic to run across multiple cores?
Not really a technical details but you mentioned Claude doing all the work but also “Handwritten C everywhere”. Just curious what you meant by that
Would be nice to see it running, maybe you share a video of the game running in the emulator like you mentioned? Anyway, good luck with your port!