Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible Support for Tokimeki Memorial 3? (SH2/3 Blender Script) #9

Open
NatsukiOkusawa opened this issue Apr 28, 2024 · 3 comments
Open

Comments

@NatsukiOkusawa
Copy link

Although the game appears to store models with compression with an atp extension and header, but the eeMemory reveals that the game's format has a similarity to SH2/3, but with some differences, particularly the normals, which has an extra padding/shorts, as well as an another tag (01010001), which roocker666 on ResHax had pointed out. It seems possible that these extra stuff might be related to the cel shading the game uses.

As for how I got the model data, I just simply pulled it out of the eeMemory manually with a hex editor, and I saved it as 'Untitled', which roocker666 later went on and put an SH2 header on this file and then imported it with your script and it somewhat brought a promising result with the bones being imported. With the help of roocker666, shak-otay was able to find both vertices and faces, but the latter is a mess for now.

More information can be found on my thread on ResHax:

https://reshax.com/topic/666-ps2-tokimeki-memorial-3-getting-models-from-eememory/

Here are the sample files: (Courtesy of roocker666 for the SH2 header edit on 'Untitled')

https://drive.google.com/drive/folders/1BFO-wlChXqkVae_YLdAqyIiCKIsBQ2uX?usp=drive_link

I have also included a sample .atp file (and this appears to be the 'Untitled' file in its .atp form) just in case if it would be helpful to provide it too.

Would you be able to at least tell some more differences between the format from this game and the Silent Hill games, and possibly if it would be possible to modify your script (particularly import_mdl.py) to import models from this game?

Thank you very much, and hopefully you'll take some time to take a look at this. I would highly appreciate it.

@Murugo
Copy link
Owner

Murugo commented Apr 30, 2024

Interesting, had no idea that Konami used this format outside of Silent Hill 2/3. I made some small edits to import_mdl and managed to import the "Untitled" file with the original header.

tm3-untitles

The format for mesh data is mostly the same, but TM3 uses extra flag bits for tristrips (actual tri index is (val & 0x3FF) instead of (val & 0x7FFF)).

This build should work with newer versions of Blender (3 or 4): io_tm3_ps2.zip
Textures aren't supported since the format does seem to be very different.

@NatsukiOkusawa
Copy link
Author

NatsukiOkusawa commented Apr 30, 2024

Thank you very much for taking the time for this, Murugo. I highly appreciate it. Now, I would just like to ask you a few more questions.

Can you deal with the possible compression the game uses, in the .atp format? If not, would it be easier to just create a model data extractor for the eeMemory file? I think there are two or so other models in the eeMemory file I provided.

Update: I just went on and tried your script on the other model data present in the eeMemory, (those on 0x1480000 and 0x15c0000) and they appear to import just fine.

1480000
15c0000

@NatsukiOkusawa
Copy link
Author

Textures aren't supported since the format does seem to be very different.

Sorry if I'm asking this a bit late but, I wonder how does the texture format differ from the Silent Hill games?

With some help from piken on ResHax, I somehow managed to figure out the texture format (maybe a little?) by being able to display them in TiledGGD. More information can be found on my thread about the textures. You may check on this too if you'd like.

https://reshax.com/topic/702-ps2-tokimeki-memorial-3-textures/

Once again, thank you very much for your amazing works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants