Previous Page | Next Page

by PabloACZ at 12:42 AM EDT on September 9, 2011
Is there a way to playback the video streams from this type of files? AFAIK, Viewtiful Joe and plenty other GCN games use them.
by arbingordon at 12:40 AM EDT on September 10, 2011
by MiLŲ at 4:20 AM EST on March 4, 2012
Just a quick question popped in my head: if a GC emulator (eg Dolphin) can play .h4m videos while running an Iso, than why is it so problematic to make a stand-alone player?
by Mouser X at 10:35 AM EST on March 4, 2012
It seems that you don't understand what is going on there.... The emulator (aka Dolphin) is running, as though it's hardware. Thus, the *hardware* is running a game disc, which contains software. That software (on the game disc) contains the code necessary to read, interpret, and playback the *.h4m data.

In other words, think of it this way - Let's say that a closed-source program exists for the AmigaOS (yes, Amigas still exist, and are currently manufactured, last I checked), that can play back *.h4m files. You'd have to take that program, disassemble it, and then rewrite the assembly code into another, higher level, language (aka, rewrite it to C, C++, JAVA, C##, or whatever).

So, the existence of an emulator essentially has nothing to do with *.h4m playback. The two have very little, if any, relation.

That said, I suppose it's possible (depending on the debug features available in the emulator) to see what's going on "in the background" while a *.h4m file is being played. Watching how memory is moved back and forth, what changes, what goes in, and what comes out, etc., you might be able to "learn" or figure out how the software runs/works, without having to disassemble it. Therefore, assuming that's possible, you might be able to write a program that does the same thing, and thereby can play *.h4m files. Personally, although I have no experience in the matter and therefore can't say for certain, I'd think that this method would be almost as difficult, or time consuming, as rewriting the disassembled assembly into a higher level language.

So, basically, the difficulty existed before the emulator existed (though was of course still possible), and the existence of the emulator doesn't really alleviate that problem. It just makes it possible to use another method, which is probably almost as difficult as the original method, possibly moreso.

Hopefully that provides an answer to your question. Mouser X over and out.
by bxaimc at 11:35 PM EST on March 4, 2012
Emulators EMULATE
by MiLŲ at 2:03 AM EST on March 5, 2012
Yep that answers it, thanks for explanation Mouser X.

edited 4:53 AM EST March 5, 2012
by suloku at 9:01 AM EDT on September 2, 2013
Hello, I'm trying to use your tool to rip the audio from the pokemon channel h4m files.

So far the tool works great, but the files seem to be multi track, so I only get the japanesse audio.

I have both usa and pal versions of the game, so comparing them I've reached the conclusion that the h4m files are multitrack:

USA h4m: ~300 mB
PAL h4m: ~400 mB

Using your app in both files generates the exact same output wav file (checked with md5) which is the japanesse language track.

I think that the number of tracks is in 0x3f at the header and that it can be 0 or 1 if there's only 1 track, as it is 0 at another h4m file of the game, which is the company's logo video.

I'm trying to modify the source so it will dump the next audio track instead of the first one it finds, but so far no luck.

For what I've seen, the file has a video frame, then an audio frame and repeats right?
Comparing with an hex editor makes me think the different audios are just one after the other, but I dunno much about video files structure.

Any help will be appreciated


Interestingly enough, replacing the h4m file on the pal game with the USA one makes the video play in japanesse even though there's nowhere in the game to select that language. Probably when it can't find the selected stream the player just falls back to the first track (japanesse).
Selecting english in the language menu makes the movie play in english.

By the way, the movie has subtitles, probably in another file (g4m), which are associated with the audio stream playin, as each language is accompanied by its subs, even japansesse.

edited 10:53 AM EDT September 2, 2013

edited 10:54 AM EDT September 2, 2013
by Nisto at 2:15 AM EDT on May 5, 2014
It won't work for the files in the movie folder on Biohazard 0 (Resident Evil 0). I get either "invalid step index" or "unexpected frame id". Any fix?

I have no idea about the specs of HVQM, but the files do seem to pretty much comply with what the program expects (headers have "HVQM4 1.5").

Sample file:

The output I get:

HVQM4 1.5
Header size: 0x44
Body size: 0x12a4cea
Duration: 52057 (?)
Resolution: 640 x 360
unk24: 0x33333
34 Blocks
947 Video frames
947 Audio frames
Sample rate: 32028 Hz
Audio frame size: 0x438
Audio channels: 2

unexpected frame id at 00400450

edited 2:19 AM EDT May 5, 2014
by Alpha23 at 5:18 AM EDT on March 16, 2015
Heyho hcs! Can you add a demux function to the tool that only extracts the IMA stream in wav format? That would be really cool! :)
by snakemeat at 4:24 AM EDT on March 18, 2015
Using hcs's source code, I started a adding an H4M demuxer in VGMToolbox for this a long time ago. I seem to recall that each block has it own initializing values (predictor? can't remember...), while the IMA format only has a single predictor (in the header) for the entire file.

Consequently, I not sure the converter you're requesting is possible.

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=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source