VOGONS

Common searches


First post, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

After reading on the cutting room floor that there is a Dawn face drawn in the game data but never implemented I had the idea to replace the face of a protagonist. Ak'shel would be the one that made the most sense to me since his points are the most of what you would expect from Dawn as presented in the story. After reading that .pak are just an aggregation of different files with an offset table where file start I extracted and peeked around in binary the faces0?.shp files. Apparently .shp files use a form of compaction that make it hard to draw without some logic.

akshel_dawn.png
Filename
akshel_dawn.png
File size
25.16 KiB
Views
167 views
File license
Public domain

Anyway there is an editor called WestPak2 (version 0.68a) that allow to confirm that "face09.shp" is Ak'shel and "face07.shp" is Dawn. The palette of course is a quick fix since I could not easily find the color value reserved for players face but it's not important for this project. Another popular utility would be XCC Mixer that allow to edit .pak files (add, replace, remove files inside a .pak file). So, what seem obvious to me would be to swap name of face07.shp and face09.shp and update general.pak.

At this point it would be surprising that it would work since such an easy hack would probably had been done before. Unfortunately after the select screen (I think it's using a different sprite resource and so it's expected to have Ak'shel face there) the program crash complaining that the file FONT9P.FNT (also on general.pak) would be missing. A binary comparison with original general.pak show that XCC Mixer might not produce a valid .pak file. westpak2 produce an error at loader general.pak and another program (librarian 1.0.3 by Nyerguds) dont want to load the file but dont say why. Maybe that french version dont play well with those utilities.

I have a cd version that might be more compatible, I'll try my luck with it. Also it would allow compatibility with carlostex's gm port hack.

Reply 1 of 3, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

none of my attempt a messing up with westpak2 and librarian worked. It seem that the game executable pay no respect to offset table structure in the beginning of general.pak. All edit of replacing the complete faces assets lead to corruption and editing table structure seem to be ignored. My desperate last attempt at bluntly overwriting the data was inspired since it seem to have fooled the game engine. Dawn data start at 2CA49 and would end at 2F065 and if you copy that block to 316BD (start of Ak'shel) it seem to work. Now I have to test if all face expression work, especially the last one since it end up over Ak'shel middle of data and on my preliminary test it seem to die with the before-last face:

sleep.png
Filename
sleep.png
File size
1.97 KiB
Views
156 views
File license
Public domain

or maybe it's the wounded sleep face since there seem to have an equivalent on a normal state (not to be confused with the blink eye image). The face continue moving a bit when you are presented with the game over so probably they did not considered that. as I expect it to crash at anytime now. Of course if it proves to work, I suggest playing without digitized audio since hearing Ak'shel voice over Dawn can be a bit disturbing.

dawn.jpg
Filename
dawn.jpg
File size
213 KiB
Views
156 views
File license
Public domain

Dawn as luminous as the sunshine I felt when I realize it worked!

dawn_hurt.jpg
Filename
dawn_hurt.jpg
File size
180.44 KiB
Views
156 views
File license
Public domain

Dawn impression of Salad Finger "aaah... rusty swords on the wall..."

Reply 3 of 3, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

haha... damn! thanks, I was about to write a patch to distribute it but I think it's useless now, you saved me some times willow... Although he seem to have proceeded by having the savegame edited instead. It has the advantage to make it easy if you have the cdrom version (no need for fakecd) and apparently he can change the name of the hero too.