fgsfdsfgs / perfect_dark

work in progress port of n64decomp/perfect_dark to modern platforms
MIT License
1.19k stars 74 forks source link

Add or restore face mapping #497

Open Cancelling66 opened 1 month ago

Cancelling66 commented 1 month ago

perfec55 perfec49 perfec54

perfec52

https://www.unseen64.net/2010/03/22/perfect-dark-removed-face-mapping/

Hello, I would like to ask if it would be possible to add or restore the Face Mapping which was planned in the 1999 beta version. This feature was canceled at the time due to technical problems. However, with technological advancements in 2024, such as cameras and phones, I think it could be feasible.

Given that online mode on PD64, which was also a beta feature, has been added, I think you could also try integrating Face Mapping.

MArmourTCCC commented 1 month ago

I think there is some debate if this was removed "for technical" reasons or if it was Nintendo not wanting people being able to shoot at "real people" since the game was released shortly after the Columbine High School massacre. There is a video of this feature floating around that looks like it's entirely done so that does cast some doubt on the "technical" issue line.

Regardless, I would love to add this feature back to the game as well. I don't think I have time at the moment to put resources into it but perhaps later this year I can help out with it.

Cancelling66 commented 1 month ago

https://tcrf.net/Perfect_Dark_%28Nintendo_64,_Xbox_360%29/PerfectHead

I think you have a reason, it's probably because of the Columbine shooting. However, this site mentions that there are still elements of face mapping in the ROMs.

It's also possible to check debug ROMs, just in case. I know it's doable, because Rainbow Six: Vegas had this feature.

MArmourTCCC commented 1 month ago

You can see the old bits of the menus via some GameShark codes. You can also find the text strings in the source code.

I'm sure at this point it would be simpler to start from scratch.

fgsfdsfgs commented 1 month ago

I've looked into this at some point but it appears that there's not that much code left in the final game for it. Theoretically it could be reimplemented in the future.

Cancelling66 commented 1 month ago

Yes, I think it would be better to start from scratch.

RyanDwyer commented 1 month ago

Actually, all the code is there except for the menus.

It's quite possible that all you need to do is reconstruct the menus and it'll work. And find a way to get a camera image into the game, either through save file editing or through some camera hardware. I attempted to implement it through save file editing but realised I'd have to make a controller pak management library first, and I lacked the motivation to do that. Keep in mind camera files are only supported on controller paks, not the EEPROM.

As for the reason for its removal, it could very well be a technical reason. There is a bug in camdraw.c that causes it to write to an incorrect array slot. It's the first @bug in that file. Maybe they never found that bug and opted to disable the feature instead.

LonelySpaceDetective commented 1 month ago

As for the reason for its removal, it could very well be a technical reason. There is a bug in camdraw.c that causes it to write to an incorrect array slot. It's the first @bug in that file. Maybe they never found that bug and opted to disable the feature instead.

I personally suspect it may've been a bit of A, a bit of B, so to speak.

Interesting post though, didn't know that the implementation was nearly finished.

fgsfdsfgs commented 1 month ago

Huh, I completely misremembered what it was like then. Might be a good idea to start simple, by loading and using the head from a file if it's present, just to see if nothing has been broken in the port.

MArmourTCCC commented 1 month ago

Ryan, as always, is a wealth of information. It's good to know that most of the work is just recreating the menus. Not that will be a small feat, it's a lot less work than starting over.

I have attached a youtube video I found that goes through the menus for Perfect Head at the 1999 E3 conference. Hopefully this provides some value in recreating them.

Perfect Dark - Perfect Head E3 1999