505 words
3 minutes
Pikachu Volleyball PSP port: Hermes Agent vs. VS Code

You can check the Github repository here: https://github.com/athekat/Pikachu-Volleyball-PSP

Project#

So, the idea behind this project was to set the same task to two agents using the same LLM to see who could complete it first.

The agents used were the Hermes Agent and the Visual Studio Code chatbot, both of which used the DeepSeek V4 Pro Max LLM.

The task was to create a PSP port of the 1997 Pikachu Volleyball game. The source code was already available in a Github repo by Kyutae Lee.

The prompt for both agents was:

You are an embedded systems engineer experienced in PSP homebrew development using the PSPSDK (C/C++, GU graphics library, PSP-specific audio and input APIs).

Port Pikachu Volleyball to run natively on the PSP, targeting compatibility with 6.60 PRO-C custom firmware. I have a dir at /Projects/Volleyball-Pikachu/ with two folders:

- `pikachu-volleyball`: contains the decompiled source of the original game (review this to extract game logic, physics, state machine, sprite/asset references, and rules — this is the authoritative reference for behavior, not code to copy verbatim unless the language/structure is directly portable).
- `PSP-PORT`: currently empty. Build the full PSP homebrew project here.

Constraints:
- Target PSP hardware/firmware constraints for 6.60 PRO-C: build using PSPSDK toolchain conventions (`EBOOT.PBP` output, proper `PARAM.SFO`, correct module/threading setup) so the resulting homebrew loads and runs correctly on real hardware or PPSSPP under that firmware.
- Reimplement the core game logic (physics, ball/player movement, scoring, AI opponent behavior, match/set rules) faithfully based on what's in `Pikachu-volleyball`, adapted to C/C++ and PSP APIs rather than the original's language/runtime.
- Use PSP's GU library for rendering and native PSP input (D-pad/analog stick, buttons) for controls, mapping the original's control scheme sensibly to the PSP controller.
- Convert or repackage original game assets (sprites, sound effects, music) into formats usable on PSP, preserving visual/audio fidelity as closely as the hardware allows.
- Structure the `PSP-PORT` folder as a buildable PSPSDK project: source files, Makefile, asset directory, and any necessary conversion scripts, so it can be compiled with `psp-gcc`/`make` into a working EBOOT.

Before writing code, inspect the decompiled source in `Pikachu-volleyball` to confirm the game's structure (language, entry points, asset formats, core loop) and account for that in how you organize and implement the port. Flag any part of the original logic that can't be directly ported due to PSP hardware/API limitations, and propose a working alternative rather than skipping it silently.

Results#

Agent 1: Visual Stuido Code.#

  • 72.953.000 tokens.
  • First Result: Game opened. Black screen, glitched audio.
  • Second one: The game worked, but didn’t render the graphics properly. Like half of the tokens usage was iterations trying to fix that without being able to do it.

Agent 2: Hermes Agent.#

  • 26.986.000 tokens.
  • First Result: Game opened. Same graphic glitches as VSCode 2nd attempt. Game didn’t get past the intro logo screen.
  • Second Result: Game working. Graphics were ok. Some details: clouds seem to show outside the screen, some issue between the game’s canvas size/viewport dimensions and how off-screen assets or scrolling offsets are handled. And sometimes pressing buttons didn’t work.
  • Third result. Game working fine, no issues at all.

Output