Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pc-lucignolo-doc

Lucignolo — Il Videogioco, 7Th Sense s.r.l. A point-and-click adventure built on OGRE 1.2.4, tied to a late-night Italia 1 magazine programme, whose content was finished on 22 November 2007 and whose entire copy protection is a six-byte file containing the word codice.

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

Eight files. One of them is 96.7857 % of the disc, and everything below chapter 05 is inside it.


Two things to know before the numbers

There is no pressed disc, and there is no subchannel. The user was asked, before any measurement was taken, whether an original pressed disc existed: it does not. What exists is a cooked ISO — 544,320 sectors of exactly 2,048 bytes, no sync patterns, no headers, no EDC, no P channel — whose volume says

application identifier : WWW.BURN4FREE.COM
volume identifier      : DISC 13 291107
data preparer          : (blank)
publisher              : (blank)
creation date          : 2007-11-29 12:36:16

Burn4Free is a free consumer burning program and DISC 13 291107 is disc thirteen, 29/11/07. Every volume-level figure in this repository describes a home re-master made by an unidentified third party, not the product. This is a regression in what can be known relative to pc-grandefratello-doc, which had a real subchannel dump and could say things about a disc as an object; rawsect.py, ccd.py and subch.py have nothing to read here and say so in the tools chapter instead of being run to fill a table.

The file contents are the game's, and the eight file timestamps turn out to be trustworthy for a reason that can be demonstrated to the second — chapter 07.

What this repository measures, and what it does not. It reads a stopped disc: how many files there are, of what formats and sizes, with what dates, in what order on the medium, and what their headers say about themselves. It does not install the game, run it, or play it, and therefore it says nothing about whether the game is any good, whether its puzzles work, or whether it crashes — those are observations at runtime, and pretending otherwise would be the worst thing these documents could do. The rule that governs them is every figure with the command that reproduces it, and there is no command that returns a verdict.

That other half has been covered, seriously and publicly, by Fraws of Parliamo di Videogiochi, in the series Giochi brutti. His measurement and this one do not overlap and do not compete: he installed it and played it, and this read a disc that never started. Where his account and these figures both touch the same object they are answering different questions about it, and the figures here are offered as the half he did not need and could not get from playing.


What the numbers found

Six bytes. Installer\Installer.spf contains the ASCII word codice and nothing else. The game's executable holds the strings LUCIGNOLO CD CHECK, %c:\Installer\Installer.spf, three Italian insert the DVD messages, and the literal codice. That is the whole disc check, and the word occurs exactly twice in everything this session extracted: once as the file, once as the constant it is compared against (04).

Sector 544,319 is not a mystery. The image is 544,320 sectors and the volume declares 544,319. The extra sector, and the sector padding after all eight files, is a byte-exact copy of the data 65,536 bytes earlier in the image — eight files out of eight, bounded exactly by the padding and not one byte more. The image is exactly 17,010 × 64 KiB, which is why (02).

The clocks agree to one second. The volume descriptor declares GMT+0 and the directory records declare UTC+1 for the same instant. Inno Setup records its 2,440 source timestamps in local time and flags that it does so; the game executable's PE COFF timestamp is UTC by definition. The difference is 59 minutes 59 seconds — one hour of time zone and one second of link-to-close lag — which settles the zone by measurement rather than inference, and makes the installer's build time computable at 54 minutes 10 seconds (07).

The engine names itself. The developers shipped a 475-line Ogre.log from a machine with an ATI Mobility Radeon X1600, and it says Version 1.2.4 (Dagon). It shipped with ogre.cfg, Crash.log, OgrePlatform.dll.backup and a resources.cfg still carrying D:/VGData (06).

Cinepak, in 2008. Eight AVI files, 295,563,076 bytes, 6 minutes 37.5 seconds, all of them Cinepak — a 1991 codec — at 512 × 512, with uncompressed PCM audio that is 22.041 % of the video's bytes. The tie-in on the bigger disc has 56 % as much television in it as Grande Fratello had (08).

Nothing is hidden. 1,609 images, 1,609 correct magic numbers, zero exceptions; the private extensions .sgi and .ssd are XML; levels.db is a text file with one field per line; and the XOR experiment that took a chapter on the previous disc comes back empty in one command (09).

And the four-disc comparison says less than the three-disc one did. Not one file on this disc is byte-identical to any file on the other three Italian discs, the set of filenames common to all four is empty, and fmod.dll — the only thing the first three shared — does not survive: this game uses Audiere (10).


The three sizes, because they are not the same size

$ python tools/accounting.py "Lucignolo Il Videogioco.iso" _work/iso _work/game
image bytes                        1114767360      544,320 sectors, 17,010 x 64 KiB
files written by the installer     1411108085      2,440 files
EXPANDED TREE                      2135360919      with the 55 archives opened
expansion over the image               1.9155x

DDS textures inside archives       1089630304   51.028 % of the expanded tree
video                               295563076   13.841 %
Ogg Vorbis audio                     89194854    4.177 %
everything in bin/                   11922644    0.558 %
the game executable                    492032    0.02304 %

Half of the tree is texture. The program that manages all of it is one part in 4,340.


The documents

00 — Predictions 83 clauses, written before the image was opened, never edited
01 — A disc that names its burner, and nobody else Burn4Free, the two descriptors that disagree about capital letters, and five filenames broken in the primary namespace
02 — The sixty-four kilobyte echo the extra sector, explained to the byte, and what that does and does not say about the 155
03 — Two installers, one of which installs nothing Inno Setup 5.2.1 twice, an accounting that closes exactly, and the only name on the disc
04 — Six bytes that say codice the six small files, and the copy protection of a 1.11 GB DVD
05 — Opening a gigabyte the Inno reader, the two mistakes it made first, one solid LZMA chunk, and 2,440 files
06 — OGRE 1.2.4 "Dagon" the middleware stack, the log that came with it, CEGUI that never loads, and 0.713 % of SDK samples
07 — Three clocks, and one second 59 min 59 s, and a note back to pc-grandefratello-doc
08 — Six minutes of Cinepak eight clips, a 1991 codec, and 65 MB of uncompressed sound
09 — 1,387 sentences, 1,002 steps, and 102 minutes of voice the dialogue, the script language, 48 scenes, six minigames, and five paths that are not there
10 — Four Italian discs, and nothing at all zero shared files, zero shared names, and the end of fmod.dll
11 — Open questions ten, each with the measurement and the attempts that failed
12 — Prediction scoring 45 hits, 13 mixed, 25 misses — and ten of the misses are one wrong belief
13 — Tools what each one measures, and which ones did not apply
14 — Leftovers a car from another game, a tool the studio wrote, and a runtime that is named and not shipped

Reproducing it

Python 3, standard library only. Put the image in the repository root and run:

python tools/iso9660.py "Lucignolo Il Videogioco.iso" --vd
python tools/padecho.py "Lucignolo Il Videogioco.iso"
python tools/iso9660.py "Lucignolo Il Videogioco.iso" --extract _work/iso --joliet
python tools/inno.py _work/iso/Installer/Lucignolo.exe --verify-entries
python tools/inno.py _work/iso/Installer/Lucignolo.exe --extract _work/game
python tools/accounting.py "Lucignolo Il Videogioco.iso" _work/iso _work/game
python tools/clocks.py "Lucignolo Il Videogioco.iso" \
    _work/iso/Installer/Lucignolo.exe _work/game/bin/release/Lucignolo.exe
python tools/gamestats.py _work/game --all

The full list is in chapter 13 and the saved output of every run the documents cite is in notes/. _work/ reaches 2.53 GB and is not committed; neither is the image.


The family

The index is pc-gamelist-doc. The three Italian discs measured before this one, with the same tools, are pc-zerocomico-doc, pc-bloodandlace-doc and pc-grandefratello-doc. Lucignolo shares nothing with any of them (10), which took two minutes to establish and is the most useful thing the comparison produced.

External context, labelled as such

Two facts here come from outside the disc and are kept separate from every figure above, because nothing in the image corroborates them:

  • the game is credited to 7th Sense, published by 2lite and distributed by Halifax, with a stated publication date of 30 January 2008. The disc names only 7Th Sense — no publisher, no distributor, no broadcaster appears in any of the 2,440 installed files — and every clock on it predates that date by about two months, which is an open question and not a contradiction;
  • Lucignolo was an Italia 1 programme, and The Games Machine reviewed the game and scored it 25 while praising its voice actors. This repository measured 102 minutes 29 seconds of recorded voice across 1,215 files and 1,387 written lines of which 81.3 % are voiced. Those are two statements about the same recordings and only one of them is a judgement; they are put next to each other rather than against each other.

About

Lucignolo Il Videogioco (7Th Sense, 2007) measured from a Burn4Free ISO: the copy protection is a six-byte file containing the word codice, every file's sector padding echoes the data 65,536 bytes earlier, and the engine names itself in a log the developers shipped by accident.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages