Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pc-bloodandlace-doc

Blood & Lace — GMM Entertainment, Tortona, 2001. An Italian 3D adventure about a countess, a vampire baron and a book, built over two and a half years on an engine one man in Genoa wrote and licensed by name.

This repository measures the disc. It does not modify the game, port it, reverse-engineer it towards a re-release, or distribute any of its content: no asset from the disc is committed here, and the tools work on a copy you supply yourself.

It is the second half of a pair. The first is pc-zerocomico-docZero Comico, October 2001, the same studio, the same engine, seven months later — and the two discs are the first titles in this collection to share an engine, which is what chapter 11 is for.

There is a debt in the other direction, too. The session that documented Zero Comico spent two hours unable to open the compressed container holding 76 % of that disc, and got out because a report on this game described its files as holding "LZH-compressed data". Blood & Lace is the reason Zero Comico opened, and three of that repository's claims are corrected here.


The documents

00 — Predictions 55 predictions, written before the image was opened, never edited
01 — A master with nothing to check it against the volume, the namespaces, 215 unclaimed sectors, 56 empty files, and the caveat that runs through everything
02 — The night of 30 December 2000 4,624 files in nine minutes at a quarter to five in the morning, nine builds recorded in the data, and thirty-six files that are also on the other disc
03 — The engine, and what it lost 237,568 bytes of code that Zero Comico does not have, a renderer with a name, and no Silver Raven
04 — The man who wrote the engine a signed licence notice inside japotek3d.dll, a demo group from 1993, and two surnames
05 — Two extensions, one language .esc is not a typo — the correction this session was convened for
06 — Barbara, and 2,151 things to look at twelve chapters, 123 rooms, 150,212 characters of Italian, and a test level that shipped
07 — The combat the engine finally gets to use five weapons, 99 hit sensors, a heartbeat that speeds up, and what that does to Zero Comico's best joke
08 — One compressor, 4,622 files JFX1, JGF5, LZHUF re-verified, and the channel order that turns out to be BGRA
09 — Floor plans again, and a length field 171 of 171 two-dimensional BSPs, and the model format parsed for the first time
10 — 640×480, and 151 minutes of Italian the older disc's video is four times the resolution at a third of the cost per pixel
11 — Two discs, one engine, seven months the comparison, measure by measure
12 — Open questions twelve of them, each with the measurement and the failed attempts
13 — Prediction scoring 45 hit, 24 missed, and why ten of the misses are the same mistake
14 — Tools what each script measures, what had to be fixed, and what returned zero
15 — Leftovers two files created by right-clicking, a directory called superfluous, and ten pounds sterling

notes/ holds the saved output of every run the documents cite.


Five things this disc says that nothing else does

The engine has an author, and he signed it. japotek3d.dll contains 3,576 bytes of Italian in which Dario Pelella of Genoa states that he developed it entirely himself, from 1996, and licensed this compiled version to Giunti Multimedia Entertainment of Tortona for the production of Blood & Lace — dated 29 December 2000 and signed. It names the four-person core team, and it greets "tutti gli stimatori di JapoTek - demo group dal 1993". None of it is in Zero Comico's copy of the same DLL. 04

The engine shrank. japotek3d.dll is 819,200 bytes here and 557,056 there, and 237,568 bytes of the difference is compiled code: thirty-one C++ translation units, three assembly objects, a software renderer called JapoTek SimPlus with 8-bit and 32-bit back ends, per-object shadow rendering, and most of a Direct3D 5 path. The round 262,144-byte difference is a coincidence of five section alignments. 03

Silver Raven On-line came after this game, not before both. No such string, no DPLAYX.dll import, no NetService.hpp keyword. The cancelled multiplayer project pc-zerocomico-doc found fossilised in the 2001 binary was not linked into the 2000 one. 03

The combat system is real here. Thirty-two sword animation sets, twenty-six collision-sensor files declaring ninety-nine hit zones, seventy-six combat sounds named attacco / subita / morte, five weapons wired to the inventory, and a heartbeat that speeds up as you lose energy. Zero Comico's running gag about an animation the studio never made is about a feature they shipped nine months earlier. 07

The whole product was assembled in nine minutes. The engine linked at 04:44:31, the game at 04:45:20, and 4,624 files — two thirds of the disc — were copied into place between 04:47 and 04:53 on the morning of 30 December 2000. The executable's version resource claims it was "Compilata il 6 dicembre 2000 alle 6 del mattino!", which is twenty-four days wrong and was typed by somebody who meant it. 02


Three corrections sent back to pc-zerocomico-doc

  1. char.esc is not a typo. That repository read the engine diagnostic Can't define another main character (look at file char.esc) as one letter away from char.isc. This disc has 108 .esc files, fifteen of them called char.esc, and Zero Comico's own executable contains the string .esc at offset 0x000D6B34. .esc is the engine's earlier name for the same format; the diagnostic is a fossil, not a misspelling. 05

  2. The model format has a length field, and Zero Comico's parser now closes. Record type 0xF044 carries a u32 at +4. With it read, that repository's chunk walk goes from a heuristic that worked on 520 of 526 files to a parse that closes on 526 of 526, and 4,266 records it used to step over become visible. 09

  3. JGF5 pixels are BGRA, not RGBA. Zero Comico's chapter 11 prints ALDPELLE.tga as "a solid RGBA (154, 183, 239, 255), a pale lilac" standing in for a character's skin. Sixteen single-colour textures on this disc — five of them named *pelle, skin — decode to blue under RGBA and to flesh under BGRA, and that repository's own Mp2/backgrd/azzurro.tga (azzurro: sky blue) is orange under RGBA and sky blue under BGRA. The engine's only rendering import is DirectDraw. 08


Reproducing it

You need the disc image and Python 3. Nothing else — no third-party modules.

python tools/iso9660.py "Blood & Lace (Italian).iso" --vd
python tools/iso9660.py "Blood & Lace (Italian).iso" --extract _work/iso --joliet

python tools/census.py _work/iso
python tools/pe.py     _work/iso --summary
python tools/avi.py    _work/iso --summary
python tools/lzhuf.py  _work/iso --verify         # slow; run it in the background

B="_work/iso/program files/GMMEntertainment/Blood"
python tools/escisc.py "$B" --keywords
python tools/p3d.py    "$B" --verify
python tools/bsp.py    "$B" --verify
python tools/mp3.py    "$B" --summary

Quote every path. The disc root contains Blood&&Lace.msi and the game executable is blood&lace.exe; an unquoted & in a shell will do something creative.

14 — Tools lists every command each document cites, which tools came from pc-zerocomico-doc, which had to be corrected, and which returned zero.

Provenance, stated plainly

The artefact is a 519,358,464-byte image whose application identifier is NERO - BURNING ROM and whose 1,655 timestamps are all valid and all carry the correct seasonal GMT offset. There is no retail disc for this title in this session, so tools/compare.py — which exists to check an image against the thing it was made from — could not be run.

Zero Comico's first two chapters were written, carefully, about a rebuilt image, and had to be deleted when the pressed disc turned up. Every filesystem-derived number here is therefore a measurement of this file, and the two sectors past the end of its declared volume are an open question rather than a finding.

About

Measuring the Blood & Lace disc (GMM Entertainment, Tortona, 2001): a Nero master, a signed engine licence inside japotek3d.dll, and a chapter-by-chapter comparison with its sibling Zero Comico, which shares the engine seven months later.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages