Previous Page | Next Page

by Nisto at 1:19 PM EDT on October 14, 2014
You wouldn't happen to know if there is a recent dev build anywhere? I don't have all the resources to build it myself.

Never mind, found some builds.

As I expected.. this emulator is still not quite mature. The debugger doesn't seem to allow me to break on memory reads. The breakpoint gets added but it's not in an enabled state.. But even if it was enabled, it doesn't break on memory writes either, even though they seem to be supported. :S

edited 7:43 PM EDT October 14, 2014
by bypasser at 4:03 AM EDT on October 15, 2014
Doesn't MHS have a Break on Read/Write function? Cheatengine does as well. I only use Cheatengine and it crashes PCSX2 when I break sometimes but I can step-run with no problems if it didn't crash at the break.
by peronmls at 9:49 AM EDT on October 15, 2014
Do you have the debug version of Sh2?
by Nisto at 11:21 AM EDT on October 15, 2014
bypasser: yes, I am aware. But:
1: MHS and Cheat Engine only shows x86 assembly (which is harder to learn/follow)
2: there are OS/emulator calls to consider as well, so you might not necessarily follow only a particular game function's operations.

peronmls: I saw the debug version on YouTube, but I don't have it. I didn't see anything audio-related that might help. Is there anything that might help?

I wonder what this means..

edited 4:50 PM EDT October 15, 2014
by bypasser at 12:44 AM EDT on October 16, 2014
http://rutracker.org/forum/viewtopic.php?t=2402393

Click "Скачать .torrent файл". You'll need to map two controllers, the P1 is for James and the other is for the Debug Menu.
by peronmls at 4:19 AM EDT on October 16, 2014
^^^also need an account for that site. It's free.
by Nisto at 3:40 AM EDT on October 17, 2014
The value at 0x08 in the KDT1 chunk is timing related. See "tickdiv" here.
by peronmls at 2:36 AM EST on November 9, 2014
Any new info, nisto?
by Nisto at 9:04 AM EST on November 10, 2014
Not exactly.

To figure out the sequence format, I'll probably need to know more about the MIDI format or sequence formats in general. If you want to help, you can try messing around with the actual sequence data of some tracks, changing one byte at a time (make a backup of the original image!), then run it in an emulator to see what it affects (it may not be noticeable for some instructions/values though). I find it more helpful to just trim everything down to a few notes (one track only), otherwise you might not notice changes you make. The disk image offset of White Noiz/Prisonic Fairytail/Forest Trail is (((sector of SOUND.DAT) + 11999) * 2048), at least on SLUS-20228. To be more precise:

offset+0x58 = BPM and other track settings
offset+0x61 = not really sure what this is
offset+0x8B = White Noiz, part 1
offset+0x20E = White Noiz, part 2
offset+0x38F = White Noiz, part 3
offset+0x4A5 = White Noiz, part 4
offset+0x5BF = Prisonic Fairytale
offset+0x725 = Forest Trail, part 1
offset+0xA66 = Forest Trail, part 2
offset+0xDA9 = Forest Trail, part 3
offset+0xEB8 = Forest Trail, part 4
offset+0xEF9 = Forest Trail, part 5

Here are the structures known from previous research in case you need to modify them (you will need to change sizes if you add or remove any sequence data):

sddt
u32 sddt_signature
u32 sddt_size

sdtr
u32 sdtr_signature
u32 sdtr_size

tmid
u32 tmid_signature
u32 tmid_size
u32 bgm_id
u32 unk1
u32 master_vol
u32 unk2
u32 unk3
u32 unk4

kdt1
u32 kdt1_signature
u32 kdt1_size
u16 tickdiv
u16 rsv1
u16 tracks
u16 rsv2


One common convention I've noticed in sequencers is checking if certain bits are set in order to determine whether it should read another byte for a particular value. For example, (0x7F &= 0x80) would check if bit 8 is set in the value, which it is not (0x7F = [0]1111111, 0x80 = 10000000). If the bit was set, it would read another byte for the same value.

Currently I'm thinking we should first try to figure out how it determines a note value (looking at the dissected sequence data I uploaded some posts ago may help, but it's probably not accurately dissected..) If you have any ideas, post them!


I wanted to try ripping the driver for SH1 the other day, but I cannot figure out how to properly append BODYPROG.BIN (decoded) to the "main" executable in IDA so that it shows all functions properly. It detects some functions fine, but values are missing and cross-references doesn't make sense because BODYPROG.BIN needs to be loaded. If I could figure out how, IDA should also be able to detect some more "known" functions (PSYQ SDK functions that are in the "psyq" signature that comes with IDA, or even the ones Cait Sith2 made) it seems.

I may have attracted some attention to some of our threads around here. Maybe someone will come around. Maybe...
http://silenthillcommunity.com/viewtopic.php?f=20&t=436557&p=7659941#p7659941


Also, I don't believe I posted this yet? It's a list of BGM IDs and their CD sectors (relative to SOUND.DAT), paired with the track titles from the OST where applicable, or the track titles from Firebrandx's rip in other cases (...those that I could recognize anyway). The list is in the order the BGM IDs appear in SOUNDCD.IRX. It's probably incomplete since I only switched BGM IDs. The tracks would have to be manually modified (channels, etc) in order to get every part to play (and to get them to play properly) in some cases.

50000 0x00001CCD ordinary vanity
50001 0x00001D73 confronting the beast???
50002 0x00001DF5 ???
50003 0x00001E89 null moon
50004 0x00001F04 alone in the town
50005 0x00001FAB confronting the beast???
50006 0x00002015 warped heart
50007 0x000020BB confronting the beast???
50008 0x00002158 true
50009 0x0000217D ???
50010 0x000021CC ???
50011 0x00002232 pianissimo epilogue
50012 0x000022C5 promise (reprise) (unused version)
50013 0x00002355 promise (reprise)
50014 0x000023F0 daddy's revenge
50015 0x0000245A bed-head???
50016 0x000024E0 laura plays the piano
50017 0x00002512 heaven's night
50018 0x000025B5 ???
50019 0x00002639 fermata in mistic air
50020 0x0000267A magdalene
50021 0x000026B4 forest
50022 0x000026F4 ??? (unused version of magdalene/forest?)
50100 0x00002774 ???
50101 0x0000280A executioner's handywork
50102 0x0000288E ashes and ghost (unused version?)
50103 0x000028F5 ???
50104 0x0000294A mansion horrors
50105 0x000029C4 hospital predators
50106 0x00002A0F running the gantlet
50107 0x00002A69 prison of the mind (pt.1)
50108 0x00002AFB basement dwellers + another track
50109 0x00002BA2 tormented soul (???) + another track
50110 0x00002C37 ???
50111 0x00002CD2 nurse piper
50112 0x00002D55 music box melody
50127 0x00002DD7 music box melody 2 (unused?) + lakeview hotel
50113 0x00002E73 theme of laura (reprise)
50114 0x00002EDF white noiz + prisonic fairytail + forest trail
50115 0x00002F65 a world of madness
50116 0x00002FE0 the labyrinth (???)
50117 0x0000300E combing town west
50118 0x00003058 ominous hallway + butterflies & secrets
50119 0x00003099 ???
50120 0x000030D5 dueling with eddie
50121 0x0000313A ???
50122 0x00003196 ashes and tears (black fairy)
50123 0x00003203 the day of night
50124 0x000032A0 betrayal + another track
50125 0x0000333E pyramid head's lair + the stairwell
50126 0x0000334A toluca lake
50128 0x000033E9 ???

edited 3:59 PM EST November 10, 2014
by Nisto at 9:58 PM EST on November 17, 2014
Wasn't sure if I should post this since it might be considered a bit of a hassle to set up or use, I guess... But anyway, here's a BGM replacement script. This is basically what I used to find out which tracks are which in my previous research.

https://dl.dropboxusercontent.com/u/48454461/misc/sh2bgmreplace.php

Some things to note:
- You need PHP to run this script. You can get it at windows.php.net. If you've never used it before, simply unpack it and put the script in the same folder as php.exe (usage instructions below).

- You need to configure the script (5 settings) before using it. The settings are at the top of the script. Setting it up may take a minute or two, but once it's done it should be a convenient tool to replace BGMs with (I hope).

- The script will not allow to replace multiple BGMs (i.e. running it again with different values won't work). This is because the script actually restores the original values for BGMs which aren't actually being replaced (which is everything except the two you specify of course), to avoid weird situations where the user may forget to restore BGM values when they should.

To use it, open cmd (Windows-key+R -> cmd), then:
CD /D "path to folder containing the script..."
php script-file.php


Oh yeah, not sure if anyone here is interested but I ripped the samples in an organized fashion (one folder for each track containing all its samples) the other day. https://dl.dropboxusercontent.com/u/48454461/aud/SH2Sound.7z

edited 3:30 AM EST November 18, 2014

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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