Harvest Moon: Back to Nature
OriginPlayStation
TechnologyDecompilation and reconstruction in C/C++
Available forWindows
View official projectAbout the project
Harvest Moon: Back to Nature es un videojuego de la serie de simulación de granjas, Harvest Moon, desarrollado por Victor Interactive Software. Es el único juego de la serie Harvest Moon desarrollado para la PlayStation, así como el primer Harvest Moon publicado para una consola que no fuera Nintendo. Los personajes de Harvest Moon 64 fueron transferidos a este juego, aunque con nuevos estilos de vida, personalidades y familiares, incluyendo a las chicas cotejables de Harvest Moon 64.
Official project information
Harvest Moon: Back to Nature
A matching decompilation of Harvest Moon: Back to Nature (PlayStation, USA,
SLUS_011.15). The C source builds the EXE and its 13 overlays byte for byte and, given
your own copy of the disc, the whole disc image.
Building
docker build -t hmbtn-build .
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/src:ro -v /tmp/hmbtn-build:/build \
-v /path/to/disc:/disc:ro hmbtn-build bash -c 'cmake -S /src -B /build -G Ninja \
-DORIGINAL_DISC=/disc/disc.bin && cmake --build /build --target check'
check compares every output with the original's SHA-1. Without -DORIGINAL_DISC it
builds and checks only the 14 code binaries, which needs no game data.
Exceptions
Two things in the build are not compiled from source:
- One patched SDK word. The game links PSY-Q 4.7, but the only 4.7 release
available has a later
LIBCD.LIB: it is dated 2000-05-10, while every other 4.7 library is dated 2000-02-18. The game's copy of that library has one word different, a flag inBIOS_1's.data, so the build patches it back (sdk/patches.txt). - Padding bytes. Where a file's data ends off a 4-byte boundary, the original
build padded it. In the EXE, and in Sony's own library objects, that padding is zero.
In 13 places in the overlays it is not: it holds leftover memory, mostly text with
DOS line ends (
\r\n,\t0; one iste\t0\r\n, the end of an assembler line.byte 0). No object holds these bytes, so each overlay lists them asGAPentries in itsCMakeLists.txt.
License
CC0 1.0, covering this repository's own work only; tools/maspsx keeps its
own license. The game and the PSY-Q SDK belong to their owners and are not included.