synnchan
Posts: 4
Joined: Sun Nov 27, 2016 10:23 pm

[Feature Request] re-recording function for .inp

Hi, everyone. I'd like to suggest something to improve MAME: re-recording function for .inp.

Making pre-rendered playthroughs (for any system) is a hobby of mine and I've seen many other people that are also into it. A re-recording feature for .inp would definitely help a lot in making playthroughs, and later host them in video format to some websites, in order to help the preservation of vintage/classic games.

Most of the better emulators out there have re-recording function, and in my humble opinion, it should be staple for any emulator.

mhoes
Posts: 134
Joined: Wed Oct 26, 2016 12:26 pm

Re: [Feature Request] re-recording function for .inp

Hi,

What do you mean exactly with 're-recording' ? Do you mean that you have an .inp file created with an older version of mame, and now want to somehow use that same older .inp file with a newer version of mame ? If so, Im not sure if that can be done: Ive always thought that if the code/driver of a game/hardware changes, it's extremely likely that the content of the older .inp file simply does not correspond any longer to the new code.

Of course, I could be wrong. It's been a while since I last looked at playback and .inp files.
:(

However, when using the same version of mame for the inp and for the recording, I dont see any reason why you should not be able to keep doing this ? :

mame setname -record new.inp
mame setname -playback new.inp -aviwrite new.avi
mame setname -playback new.inp -aviwrite new2.avi
mame setname -playback new.inp -aviwrite new3.avi

etc.

synnchan
Posts: 4
Joined: Sun Nov 27, 2016 10:23 pm

Re: [Feature Request] re-recording function for .inp

The difference between a re-recording emulator and a regular emulator is that the former throws away all of the inputs that were recorded after loading state. A regular emulator on other hand doesn't know how to get rid of the "unwanted" inputs.

I'm not the best at explaining this, so I made a video showing the difference between a re-recording emulator and a regular emulator. I recorded the first level of Daimakaimura (daimakai) as example. First I recorded it on mame-rr (an unofficial re-recording fork of mame that's extremely outdated, broken and buggy), then on the official mame 0.179: https://www.youtube.com/watch?v=1z6ljiIBenU

As you can see, I saved and loaded states freely while recording the movies. On mame-rr, the movie replayed correctly, but on the official mame, it quickly went out of sync.

Hopefully this video will make things clear, otherwise I will still be here to answer any questions.

(By the way, mame-rr and its source code can be obtained from here: http://tasvideos.org/EmulatorResources/Mamerr.html)

mhoes
Posts: 134
Joined: Wed Oct 26, 2016 12:26 pm

Re: [Feature Request] re-recording function for .inp

Hi,

Perhaps I'm just not the best person to comment on this issue.

Let's forget the technical details and terminology for a second here, and focus on what you functionally want to achieve ? I've watched your youtube video, and to me it looks like what you want to happen is this :

Play and record the game in an input file .inp. But when you die, or otherwise do something in the game you didn't want to, go back a certain amount of frames in the game, for example before you died, and then continue the game as if you didn't die. Then at the end of playing, you want the resulting input .inp capture to make it look as if you didnt ever die at all: That is, replay an .inp recording that shows the gameplay *minus* the part where you died and went back a few frames, as if the dying and going back some frames never ever happened at all. Does that correctly describe what you would like to be able to do ?

synnchan
Posts: 4
Joined: Sun Nov 27, 2016 10:23 pm

Re: [Feature Request] re-recording function for .inp

Yes, I guess that correctly describes things.

To put things more straight, here's a good explanation of re-recording taken from tasvideos.org's glossary:
Re-recording is the act of replacing an already recorded part (of a movie) with something else.

Also called: undo

In the making of emulator movies, re-recording is done by loading a savestate of earlier event in the movie and continuing playing from that point.

The emulator will update the movie file to undo everything that was cancelled by the savestate loading, and continue recording from that point.
In short, re-recording is used in order to reach perfection and to avoid mistakes.

Return to “MAME Discussion”