Post subject: DTM files (Dolphin Emulator)
DRN
Joined: 1/5/2014
Posts: 3
So I was trying to edit my DTM file with HxD, but I am having problem interpreting this. I did take a look at this: http://tasvideos.org/DTM.html but I still feel lost. I still can't comprehend which row and which columns means what. Thanks.
Zarmakuizz
He/Him
Joined: 10/12/2013
Posts: 279
Location: France
On the left you have each row for each 16 bytes. On the top you have each column for each byte. On the page you linked, it is written:
0x004 String 6 Game ID
What does it mean? Starting from the byte 4 to the byte 9 (that's 6 bytes) you have a value, which is String (=text), this value is the Game ID: the hexadecimal value is 47 46 45 45 30 31, which is bleh, however you could just look at the text on the right where a human readable form for any text is displayed, here it is GFEE01. Apply the same logic to the other values. EDIT: for Integer, they are numbers written in Little Endian, which means you have the lowest value first. Example with:
0x00D Integer 8 VI count
Starting from D you have the following values: 7A 10 00 00 00 00 00 00. To translate that number, first let's rewrite it: 00 00 00 00 00 00 10 7A, or rather 107A. Then you either do the math : 1x16^3 + 0x16^2 + 7x16^1 + A = 4096 + 112 + 10 = 4218 or use a calculator that converts from hexa to decimal.
DRN
Joined: 1/5/2014
Posts: 3
Thanks a lot. I'm still slightly confused, but I think I got a better grasp of it now. Now, I'll start playing around with it! :) -------------------------------------------------------------------------------------------- One more question, what represents "doing nothing"? Because I'm trying to get rid of the portions where I just stop and do nothing, but what happens is that it just messes up my TAS and do really random things. Thanks.
Player (236)
Joined: 11/17/2013
Posts: 9
DRN wrote:
One more question, what represents "doing nothing"? Because I'm trying to get rid of the portions where I just stop and do nothing, but what happens is that it just messes up my TAS and do really random things. Thanks.
A frame with no controller input looks like this: 00 00 00 00 80 80 80 80 There's a couple of them in your screenshot starting at 0x100. If you just put a bunch of nulls then it translates to mashing down left on the joysticks, so that could be messing you up. I'm not exactly sure what you're going for though. If you're removing frames it might be causing desyncs with the RNG, or maybe you accidentally edited the header or misaligned the frames. You might also miss an input if it gets shifted into a lag frame, which would probably happen pretty often if the game has a lot of pauses.
Active player (335)
Joined: 1/19/2010
Posts: 383
Location: Texas
The value which is set to 16, I would change that to 8 so that each row is exactly 1 VI. At offset 100 is when your controller inputs begin. It would be helpful if you learn counting in hex and binary.
DRN
Joined: 1/5/2014
Posts: 3
I actually do know how to count in binary and Hex, because I learned it in my programming class. But I never really got the experience where I must use hex or binary. Well, I think I understood much more about dtm files. Thanks a lot! I hope I can make a TAS sooner or later :).
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
You almost never need to use binary yourself, but it's useful to know how to read flags out of a value. (e.g. if a byte is >= 128 (aka 0x80) you know it has the highest bit set, which might indicate some condition)