Post subject: Is this possible - Playing movies on the original console?
Joined: 1/1/2022
Posts: 1716
Hi guys, I thought it might be cool if you watched a speed movie on the actual original console. I think it'd be great if you could somehow "fuse" the movie file, and the rom together - to make a rom that plays it's self. Say I had an amazing video of Tetris on the original gameboy - wouldn't it be great if when I reset the console, the game would play normally - but if I reset the console while holding down a button, the speed movie would play? I think it'd be great to see the videos being played on the original console. Has anyone done this before? Thanks! -James
Joined: 1/1/2022
Posts: 1716
Sorry if people didn't understand... I ment combining a movie file with a rom, to produce a new rom that plays it's self. This new rom could then be put on to a blank cartridge, and played in the console.
Post subject: Re: Is this possible - Playing movies on the original consol
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
It's an idea that has been around occassionally. It's technically possible to do (an extension chip that has RAM storage and hooks up the controller I/O and can read the vsync signal would do it), but there's one problem: As much as emulator authors try, emulators aren't yet perfect copies of the original system. As witnessed by the difficulty trying to make movie created on one emulator to work on another, chances are that a movie created on <choose your emulator> would desync when played back on a real console. The magnitude of these differences is mostly small enough that it only affects where the game lags and which random drops are generated, but that's enough to desync just about any movie.
Joined: 10/3/2004
Posts: 138
Yeah, for example, I believe that the closest anyone's got to being able to do this was making a cable that plugged into a Genesis controller port. But, as Bisqwit mentioned, emulators are not 100% accurate, especially Gens. I know for a fact that, in the case of the Sonic games at least, there is quite a bit more lag on real hardware than on emulation - thus it will be nearly impossible to watch any Sonic TAS runs on real hardware. You'd have to figure out a way to detect lag, and I don't think that would be too easy to do by programmatically looking at the video signal.
Player (36)
Joined: 9/11/2004
Posts: 2630
However, it does make a very, very good test on the emulation accuracy of a certain emulator.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
nesrocks
He/Him
Player (246)
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
Nintendulator would be the appropriate emulator for such movies.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
I heard yesterday someone that were able to run DX apps under Wine near perfectly if not. Warcraft 3 etc.. Probably Nintendulator could be runned under Linux.
Joined: 11/2/2005
Posts: 198
How would you do it?
A life without cheese is a life without life.
Joined: 11/2/2005
Posts: 19
There is another problem to doing this. Many games have an eeprom, which cannot be erased. If the game uses this data, then the run may start out different. With emulators, this is fixable, but on the console it would have to be manually wiped for some games before each run.
JXQ
Experienced player (761)
Joined: 5/6/2005
Posts: 3132
I'm quite ignorant to this, but interested! Questions about this eeprom: What kind of data might be on it, and how does an emulator circumvent this problem? Does this mean that the emulation may not be true to the console in some way related to the eeprom?
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
JXQ wrote:
Questions about this eeprom: What kind of data might be on it, and how does an emulator circumvent this problem? Does this mean that the emulation may not be true to the console in some way related to the eeprom?
It's the battery-backed memory. Such as savegames of Final Fantasy.
Emulator Coder, Skilled player (1310)
Joined: 12/21/2004
Posts: 2687
JXQ wrote:
What kind of data might be on it, and how does an emulator circumvent this problem? Does this mean that the emulation may not be true to the console in some way related to the eeprom?
Because the eeprom (or SRAM etc.) is just a separate file or chunk of memory to the emulator, all it has to do is clear it out to all 0's or something like that, and it will effectively be back in from-factory condition. On a real cartridge, it's not so easy to reset that memory, as it is intended to be permanently saved and there isn't necessarily any mechanism in the game for resetting it.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Not easy!? Press the power button a couple times and it will be erased. Pretty easy. In fact I hate NES because of that. It happens so often that my saves were erased. Ex. I had almost finished DW4 and past many hours in Casino to earn coins then later, there was no more save and many hours lost.
Player (71)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
The very same applies to Zelda 1 and 2. Damn annoying when I power down my nes, came back a while later and everything was erased. Even the reset button could do that, but it was rare in my cases. It is however recommended to press and hold the reset button while power down your nes.
JXQ
Experienced player (761)
Joined: 5/6/2005
Posts: 3132
nitsuja wrote:
it will effectively be back in from-factory condition.
I gotcha. There may be certain data that is not erasable that may affect luck in some strange way. An example I can think of (although not NES) is Tetris DX for GBC, as you can erase all the profiles, but the high scores that are obtained with those profiles will not be removed.
Phil wrote:
Not easy!? Press the power button a couple times and it will be erased. Pretty easy.
Oh man, how that brings back (frustrating) memories. One game notorious for this in a strange way was Kirby's Adventure. To get the highest ranking, you beat the "expert game" or whatever it's called, where you only have a max of three units of life, and you become "Super Star" and can access the sound test. I found that if I ever reset instead of power-off, it would change my save file back one ranking, i.e., as if I had never beat expert mode, but the rest of the file was still intact. This was annoying because I like sound tests. Thanks for the info everyone!
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Player (206)
Joined: 5/29/2004
Posts: 5712
I thought it reset you back if you played the expert game again and failed, or something like that.
put yourself in my rocketpack if that poochie is one outrageous dude
Joined: 11/2/2005
Posts: 198
megaman wrote:
How would you do it?
A life without cheese is a life without life.
Emulator Coder
Joined: 6/8/2005
Posts: 14
A month ago I built a NES movie replayer that connects to the controller port and replays data. I got it working both playing live on the NES through it, and replaying a movie recorded with my experimental emulator. I was able to get several-minute Mega Man and Metroid movies to replay consistently. No modification was required to the cartridge, just the replay device that connects to the controller port. There's more about it at the Nesdev thread "PC to NES Transfer Cable".
Joined: 6/6/2005
Posts: 124
Rusty wrote:
There is another problem to doing this. Many games have an eeprom, which cannot be erased. If the game uses this data, then the run may start out different. With emulators, this is fixable, but on the console it would have to be manually wiped for some games before each run.
Ummmmmmmmm doesn't EEPROM stand from Electronically Eraseable Programmable ROM? In which case wouldn't, uh, wouldn't they be eraseable?
Player (21)
Joined: 10/14/2005
Posts: 317
Yah dude, and doesn't SRAM stand for Static RAM meaning it is static, stationary, unchangeable? And doesn't RAM stand for Random Access Memory meaning it's random and unpredictable and we'll need methods to manipulate luck? Phil already established that you can erase the battery backup by hitting the power switch enough times. There's also the option of using a taser or one of those lightning globes to zap it. As for EEPROM, my guess is you could open up the cart and leave it on a bug zapper to expose it to ultraviolet for a while. These technicalities aren't what bumped the topic today and lead you to post your message. Didn't you see blargg's post? Ain't that cool? Maybe the first TAS that we get to go from .fcm to console will be Gradius. -hanzou
Player (206)
Joined: 5/29/2004
Posts: 5712
Oh no, you have opened the door to fraudulent speedrun videos how dare you
put yourself in my rocketpack if that poochie is one outrageous dude
Player (36)
Joined: 9/11/2004
Posts: 2630
The Random in RAM means that you can access any point in the memory without accessing any other point in the memory, unlike a tape drive where you must rewind and read until you reach the point in question.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Player (206)
Joined: 5/29/2004
Posts: 5712
Maybe Hanzou already knew that and was just being silly.
put yourself in my rocketpack if that poochie is one outrageous dude
Player (36)
Joined: 9/11/2004
Posts: 2630
I must admit to not thinking about that... >.< Embarressing.
Build a man a fire, warm him for a day, Set a man on fire, warm him for the rest of his life.
Joined: 10/3/2004
Posts: 138
I've thought for a while now that, for games that don't lag on either emulation or hardware (and also games that lag exactly the same) that it would be possible to hook into the game's vblank interrupt and stuff the correct values into the game's internal handling of the controller (basically, replacing the joypad polling routine with one that just reads from a big long table at the end of the ROM, which would consist of the TAS keypresses converted to the game's internal format, with possibly some simple compression to handle stretches of time where there is no keypress - admittedly not too common in TAS runs but nonetheless every bit of space saved would help). Problem is, this is an enormous amount of work, although part of it only has to be done once for each suitable game (and games like Sonic 2 that lag more on hardware won't be possible without even more manual work to determine where additional lagframes are and inseting them).