Previous Page | Next Page

by Nisto at 7:55 AM EDT on July 30, 2015
Yes. I'm quite confident I can get everything to play, but dynamic tracks can not be played back in a traditional way (even if I did rip the original driver most likely), so I will have to make separate PSFs for each part of them. We will have to play around with the final results however we want I guess, since there isn't exactly any "true way" that some of them are meant to be played.

Actually creating these PSFs shouldn't be too hard to automate, but admittedly the delay here is actually due to me having gotten sidetracked trying to recreate one of the tracks in the game, so now I'm back at trying to reverse engineer the actual format again in hopes of converting to MIDI (or at least manually inputting stuff in my tracker-based DAW, Renoise).
by peronmls at 9:54 AM EDT on July 30, 2015
awesome man! Maybe this could lead to figuring out SH2 and 3 KDT2s format.
by peronmls at 3:56 PM EDT on September 17, 2015
bump? any updates nisto? If you need help i can offer.

Silent Hill was well known for its music. I'm really surprised nobody cared to research these formats.
by Nisto at 4:05 PM EDT on September 17, 2015
I have found all functions for the driver, so basically all I have left to do is remove CD functions and any other non-audio related functions that aren't supported by PSF players. So basically I'm really close to being done. But there will be no way to play its dynamic tracks back "normally", so I will have to modify (unmute) the sequences and create individual PSFs for each of them (see the "What's going on in other xsf formats" thread).

I have also made some significant progress on a KDT1 to MIDI converter, but that's been on hold for the last couple of weeks since I've been working on ripping the driver non-stop basically.

edited 4:05 PM EDT September 17, 2015
by peronmls at 8:56 PM EDT on September 17, 2015
AWESOME MAN! Yeah I wouldn't worry about muting the tracks. Unless there is 2 different tracks that use the same KDT and VAG then yeah. lol. I'm really excited for this!!
by Nisto at 4:04 AM EDT on September 30, 2015
Got the driver ripped at last! If everything goes smoothly I'll have a rip up tomorrow sometime, after I catch some sleep.
by peronmls at 9:26 AM EDT on September 30, 2015
awesome!!!
by Nisto at 1:20 AM EDT on October 20, 2015
Well, it's been quite a while longer than I hoped obviously. I guess I got ahead of myself as usual.

The ETA took a turn as I realized that ripping the dynamic BGM parts were going to be more time consuming than I had hoped, because I needed to write a KDT1 interpreter to automate demuting their tracks (there's several hundreds of tracks in total...)

In addition to that, I realized after demuting all the non-standard tracks, that there are multiple songs with their own separate tracks within the same KDT (it could look like this for example: first song = tracks 2-6, second song = tracks 7-9, etc.), so I also needed to go through everything manually to determine which exact tracks I needed to rip to their own KDT/PSF file.

Also, I initially ripped the driver for SLUS-00707 (US) because SLPM-86192 (JP) won't run on No$psx due to a BIOS/copy protection check, which meant debugging SLPM-86192 would be much harder for me (since I don't really know anything with a decent debugger that runs that release anyway). But I always intended to rip the SLPM-86192 driver, because apart from it being "straight from the source", SLPM-86192 is also a more recent release and may have had some driver changes/fixes - who knows. So in order to rip that version, I had to find the same routines I had narrowed down in SLUS-00707 by comparing my IDA databases and looking for their equivalent locations in SLPM-86192. This took MUCH less time than doing the initial SLUS-00707 rip of course, but still also ended up taking a bit more time than I had hoped.



But, AT LAST I finished writing a bunch of scripts, converting to PSFs, organizing, tagging, all that good (tedious) stuff. However, I didn't time them for several reasons, but I hope I'm forgiven.

Silent Hill (1999-03-04)(KCE Tokyo)(Konami)

I used FirebrandX's digital-in gamerip as a reference for track transitions and whatnot, and have tried to follow the rip as closely as possible, but obviously I have been limited to what I can do with the PSFs, as everything is actually played in-place and simply gradually demuted by the game engine from what I understand. So I didn't end up combining many of the tracks after all. And I suppose there's many ways the tracks could be mixed anyway. I tried my best at least. If anything in particular needs fixing though, let me know, and I'll look into it ASAP. Also, please take the time to read notes.txt :)

Now, if I could just somehow convert SCEIVers data to a VABp container... I might actually be able to make a half-assed rip of SH2 and SH3 using this driver as well... assuming this driver supports their KDT1 data. Although, I wonder, has anyone ever used regular PSFs in a "PSF2" set (I assume it would still end up on psf2.joshw.info, since despite the subdomain's name, it seems to be for anything PS2 really)?

Finally, in case there's anyone who wants to experiment with doing their own mixing of the dynamic tracks or whatever, here is the aforementioed (prototype-ish) library/tool/whatever that I wrote to deal with KDT sequences, mainly to demute a lot of this stuff. But it can be used in lots of ways, so please don't run it unless you know what you're doing. Also, beware potentially cringe-worthy code. Among other things, there is a very basic function to print note/velocity/command events, but I could use some help with figuring out commands and improving parsing of parameters (please get in touch if you'd like to help - I can share my IDA database with loads of named functions, structs, comments, etc. for the executable). I am hoping we can combine efforts and eventually write a full-fledged KDT to MIDI converter. Currently I am trying to understand how to interpret all the time values, but I can't really figure out how to do all the conversions, so if anyone can help out with that I'd really appreciate it! The script (main function) is currently set up to demute specified tracks (command-line arguments) and write the result to a new KDT file, so you will have to do some minor modifications to get it to do whatever it is you want it to do.

Example usage: kdt-tool.py "C:\UFO.KDT" 2 3
This would demute tracks 2 and 3 of UFO.KDT (tracks 0 and 1 are always demuted if needed, as they're special tracks) and write the updated KDT data to "UFO (tracks 02, 03).KDT". You can also specify ranges of tracks (e.g. "6-9"). You might also want this to easily create PSFs compatible with this driver (just drop a VAB and/or KDT, or even a folder onto it and it'll convert to .psflib/.minipsf respectively).

Sorry for the huge wall of text. Over and out.

edited 10:12 AM EDT October 20, 2015
by hcs at 4:22 AM EDT on October 20, 2015
Wicked sir!
This isn't so necessary with Dropbox, but here's some IPFS mirror links:
Silent Hill (1999-03-04)(KCE Tokyo)(Konami).7z
kdt-tool.py
psf-make.py
by Nisto at 10:14 AM EDT on October 20, 2015
Thanks for the mirrors, hcs :)

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source