psxsdk

clone

A first-person maze shooter, three levels deep, in fog, with a heartbeat that quickens as the monsters close in.

Controls

The d-pad walks and turns, L1 and R1 sidestep, Cross fires, and Circle shows the map of where you have been. Hold Start and Select together to quit.

A port of Sony's Net Yaroze demo "clone" (S. Ashley, 1997): a first-person maze shooter. Walk a fogged, textured maze, shoot the monsters before they shoot you, pick up first aid, find the pulsing exit, and do it again on the next of three levels. A heart beats louder as monsters get closer.

It puts much of the machine to work at once: the GTE and the 3D library, with fog and subdivision, models built in memory, sprites, lines, filled boxes and text, a palette rewritten every frame, and sound effects played straight on SPU voices, which the check example's sequenced music does not use.

Differences from the original:

  • The sound bank, maps and textures are read off the disc into the program's own memory, and the models it builds are built there too. On a Net Yaroze the loader's batch script sent the files from the PC to fixed addresses, and the models were built at others.
  • Every object has a real coordinate system. The original points them all at WORLD, the library's nil coordinate system, and writes each object's transformation through that pointer, which in C silently overwrites the kernel's memory at address 0. They share one here, as they shared that address there.
  • Reading the map outside its bounds reads as no walls. The original reads whatever memory is next to the map, which Go does not allow.
  • The heartbeat's volume starts from zero. The original compares against a variable it never sets.
  • It shows a loading message, and a report if the data is missing, where the original would hang or exit.

Nothing allocates after startup.

Source on GitHub