How Emulators 'Rewind' Games | MVG

Поделиться
HTML-код
  • Опубликовано: 13 дек 2024
  • Ever wondered how emulators work? In this episode we perform a technical deep dive on how emulators can Rewind games and how Save States work. We demonstrate these features with the Nintendo Game Boy as the target emulation device.
    Credits :
    ► BSOD Gaming - • Epic Emulation Updates...
    ► Digital Foundry - • DF Retro: Capcom Home ...
    ► someother1ne - • PS3 Gran Turismo 5 on ...
    Social Media Links :
    ► Facebook : / modernvintagegamer
    ► Twitter : / modernvintageg
    ► IG: / modernvintagegamer
    ► BandCamp : modernvintageg...
    ► The Real MVP Podcast : player.fm/seri...
    #Emulation #SaveStates #Rewind

Комментарии • 1,4 тыс.

  • @ModernVintageGamer
    @ModernVintageGamer  5 лет назад +891

    Minor correction : at 6:36 LD B, C actually takes the value of register 'C and puts it in 'B' - had too much eggnog

    • @silvaxbruno
      @silvaxbruno 5 лет назад +30

      Yeah I noticed it... Thanks for correcting! :)

    • @hualni
      @hualni 5 лет назад +133

      Just press and hold "r" to fix it.

    • @nliberty
      @nliberty 5 лет назад +6

      @@hualni best comment

    • @renakunisaki
      @renakunisaki 5 лет назад +30

      Also F is not a general purpose register.

    • @ModernVintageGamer
      @ModernVintageGamer  5 лет назад +146

      @@renakunisaki thats right, its to pay respects

  • @RossTheNinja
    @RossTheNinja 5 лет назад +448

    "this is about as simple as things will get"
    Me: Has no idea what's going on.

    • @elmalloc
      @elmalloc 5 лет назад +17

      just press select, start, a, or B

    • @doublepmcl6391
      @doublepmcl6391 4 года назад +2

      Do the Konami Code, it will be much easier ;-)

  • @ikagura
    @ikagura 5 лет назад +1197

    Preservation is very important

    • @Sean-D78
      @Sean-D78 5 лет назад +32

      Nintendo: Hold my F-Zero

    • @ikagura
      @ikagura 5 лет назад +7

      @@Sean-D78 True, even if the first game is on the snes online there are people that managed to keep and save the lost BS versions of the game (F-zero Gran Prix 2 with levels such as Sandstorm and Metal Fortress) and the 64DD expansion pack for F-zero X (which had a track maker)

    • @vegetafan9922
      @vegetafan9922 5 лет назад +36

      Sega letting people who wish to use Mega Drive roms on the Steam version of Sega Mega Drive Classics the ability to do so.
      Sega still does what Nintendo'nt.

    • @AcornElectron
      @AcornElectron 5 лет назад +16

      Pfft, let’s be honest, preservation is important but piracy is more important. Hence emulators. No one is REALLY doing it for preservation.

    • @TooBokoo
      @TooBokoo 5 лет назад +12

      Although I don't care if people emulate, preservation is the cheapest excuse to use for emulation and roms. LOL! At the end of the day, 95% of people crack consoles and games so they can get them for free. "Preservation" only became wildly popular to cite in the last 10 years or so.

  • @JodyAlford
    @JodyAlford 5 лет назад +37

    As a programmer, I really appreciate the code snippets as you are walking through the execution. Great video!

  • @BSoDGaming
    @BSoDGaming 5 лет назад +569

    Awesome video as always mate.

  • @ptakup3
    @ptakup3 5 лет назад +222

    I almost never post any comments, but here I have to make an exception. I really like to watch your videos cuz you share with us many technical details and your experience, not like many others who just read something on web and create video about this. :) I’ve been always interested in how these things works „under the hood” and your channel is full of usefull informations. Nice video and excellent content at all.
    Your videos inspired me to start programming (I wrote many times simple things in various languages but it never was an serious thing) and some day I hope I could write something we could call an simple emulator.
    Have a good week! ;)

    • @kkgt6591
      @kkgt6591 5 лет назад +6

      Worse is most of them think that reading and making a video is research.

    • @Geeon2
      @Geeon2 4 года назад +5

      i code for a living and i cannot even come close to coding a full emulator. you might want to search for a new goal 🤪

    • @null_pointer_deref
      @null_pointer_deref 4 года назад +3

      @@Geeon2 well, to be honest, you shouldn't expect to be able to make a functional emulator from the ground up if you have not done research on it before. Yes, it's not an easy thing, but definitely a feasible feat. There are already tutorials in youtube that explains the basics or how-to, such as the series of the NES emulator from javidx9, which is a great channel for all game programming stuff. And of course, you can find a lot of docs and help online if you go to the right places.

  • @darkerm76
    @darkerm76 5 лет назад +456

    Rewind always remind me of Prince of Persia

    • @avavii
      @avavii 5 лет назад +5

      This? Yes! :D

    • @ModernVintageGamer
      @ModernVintageGamer  5 лет назад +78

      Yeah that was the first time I experienced rewind in a game it was a cool feature

    • @ic_trab
      @ic_trab 5 лет назад +29

      "That's not how it happened"

    • @ipodguy9
      @ipodguy9 5 лет назад +15

      Anyone remember Blinx: the time sweeper

    • @BenGillam
      @BenGillam 5 лет назад +2

      the original or more recent one? fell to my death far too many times back in the day

  • @HistoMagouri
    @HistoMagouri 5 лет назад +199

    Back in my day, we used an Ocarina and the Song of Time.

    • @AwakenTheGuardian
      @AwakenTheGuardian 4 года назад +5

      FIFTH ROOT FLAT THIRD FIFTH ROOT FLAT THIRD

    • @geraq0
      @geraq0 4 года назад +3

      @@charlesdoesmore5488 he is talking about music notation, those are the notes making up the Song of Time in any key. In the game, if I'm not mistaken, is A D F A D F, which would make it a D minor

    • @ArtHazard
      @ArtHazard 4 года назад +6

      Fascianating. People from my generation used Sands of Time.

  • @MrMario2011
    @MrMario2011 5 лет назад +53

    Yes! More emulation techniques videos!

  • @nutter-world
    @nutter-world 5 лет назад +174

    Very interesting, I assume you could compress the older buffers and uncompress on a rewind giving you a rolling cache. More videos like this, very informative!

    • @ModernVintageGamer
      @ModernVintageGamer  5 лет назад +62

      yep, thats another way ive seen it work. Linked-Lists, Circular buffers, compressed frames. Maintaining a full state on 8-bit systems is fine because the overhead is small. doing that on 32 bit systems would not work as well

    • @nutter-world
      @nutter-world 5 лет назад +8

      @@ModernVintageGamer while I was typing I was thinking Prince of Persia (sands of time I think) and how they kept a cross platform rewind consistent given the ram differences.
      NB yeah easy on a simple set of registers but once you get over 16bit or custom chips it's going to be a little more tricky.

    • @emilianoleiva9467
      @emilianoleiva9467 5 лет назад +7

      @@nutter-world if you think about it, rewind its in everywhere. Braid, Tracer in Overwatch, Grid. Maybe Race-Ghosting its a type of "rewind" method when you race againts the ghost which drives the exact way you raced before.

    • @nutter-world
      @nutter-world 5 лет назад +3

      @@emilianoleiva9467 Yeah actually when you put it like that it makes sense but are they storing enough information so you could drop back in during a replay and continue where you left off; say in a racing game. That would be fun once you've finished a game / track and go back and work on each corner scrubbing the timeline to make a perfect lap that you could then work to beat in realtime.

    • @rollizle
      @rollizle 5 лет назад

      In the case of tracer she only needs to store her location, ammo and health over the time of that rewind. Which is what? 1.5 seconds? So it's really not much info to store in her case, which I always found to be very smart design from a programming and performance standpoint.

  • @MarcoGPUtuber
    @MarcoGPUtuber 5 лет назад +42

    An amazing feature when I realise that *Mistakes Were Made* in my gameplay!

  • @Solowraith4life
    @Solowraith4life 4 года назад +1

    As a computer science major I loved that you explained the programming techniques used, not many youtubers ever seem to talk about the actual code because they don't think people care but I would love a full series like this video

  • @theannoyedmrfloyd3998
    @theannoyedmrfloyd3998 5 лет назад +239

    Emulators can also be considered as development kits.

    • @jornthree8881
      @jornthree8881 5 лет назад +19

      Phúc Trần I mean, it’s pcsx2, what do you expect, it’s project64 for ps2 emulation. I recommend looking into and supporting “play!”, an open source ps2 emulator. It’s not to hot right now, but it’s getting better. And I believe it’s in libretro as well, so I recommend giving it a shot.

    • @SteelSkin667
      @SteelSkin667 5 лет назад +12

      Not necessarily, but they can be amazing debug tools - especially when developing for older platforms

    • @dan_loup
      @dan_loup 5 лет назад +15

      Many emulators are not very good for it because outside of the context of "running the commercial games", they're pretty imprecise.
      For example, on BlueMSX, you're allowed to change the sprite table on the middle of the scanline, change the video memory layout with no consequences to the data in it and even read a disk without turning on the motor.
      Those things make OpenMSX (an emulator made with making a perfect 1:1 copy of the real hardware) throw a fit, but BlueMSX just allow you because it don't break any games, as no real game attempt to do those things.

    • @omegarugal9283
      @omegarugal9283 5 лет назад

      exactly

    • @gasparmxm
      @gasparmxm 5 лет назад +13

      Emulators can't be considered Dev kits, there's a good reason, almost all emulators just want to emulate with errors, they don't rely on tech of the original hardware, that's why emulators have lots of errors on games, it's not 1:1 emulation. You need a real dev kit so you can develop in a reliable environment.

  • @tensevo
    @tensevo 3 года назад

    The emulation community is really something special.
    Preserving classics. Modding. Up-scaling. Save-states, Filters, Control mapping. Effects. Speed-up, slow-down, collecting, home-brew.
    Emulation can give new life to old titles and often they can even play better.

  • @seanflores3511
    @seanflores3511 5 лет назад +6

    I love it when you get into the weeds with an IDE and break down concepts like this with a technical walk through. Great video!

  • @nothankyou4859
    @nothankyou4859 5 лет назад +52

    You should do a video on the history of the dolphin emulator! It's pretty crazy how good it has gotten, with multiple forks for specific games too (faster melee)

  • @gamertygonl
    @gamertygonl 5 лет назад +71

    MVG Time!

  • @nighttimestalker
    @nighttimestalker 5 лет назад +556

    I honestly hate anti emulation people.
    It's a literal necessity now-a-days

    • @emperorfaiz
      @emperorfaiz 5 лет назад +69

      Fortunately, they have no power to stop the emulation but whining pointlessly with no effort. You do you, my man. Long live emulation!
      EDIT: encycl07pedia for example literally has no power to stop us. A big L to him and move on with what we want to enjoy.

    • @koffing2073
      @koffing2073 5 лет назад +71

      They are just angry that their retro collection lost a lot of value lol

    • @chairwood
      @chairwood 5 лет назад +5

      Fuk u nerd

    • @nighttimestalker
      @nighttimestalker 5 лет назад +48

      @@encycl07pedia-
      It's literally a necessity for game preservation.

    • @AzrialAlaria
      @AzrialAlaria 5 лет назад +1

      @@mezzb Same here!

  • @GRBtutorials
    @GRBtutorials 5 лет назад +25

    As someone interested in the more technical details, I loved this video (though I most likely can't speak for most of your audience, as I already knew how a CPU works so it was easy to understand). Certainly, I'd like you to make the series on emulation.

  • @MetalJody1990
    @MetalJody1990 5 лет назад +1

    I love emulation. Been a fan of it since the early PSP modding days. I'll never forget how amazing it was to play my first consoles ever, on the go, for the first time. It absolutely blew my mind. I want to give a huge thanks to everyone involved in making emulation happen, and you too, MVG, for making videos on it.

  • @Gods_God
    @Gods_God 5 лет назад +11

    I would love to see this series expanded. I've always wondered what goes on behind the scenes in emulation, and how people reverse engineer hardware functions to make quality software

  • @OnYourSquare
    @OnYourSquare 5 лет назад

    MVG is has become one of my Top 5 favorite RUclips channels. I work from home recovering data from damaged Apple products, so my head is buried in a microscope most of the day. Typically I end up listening to shows more than I watch. His content is detailed, informative AND entertaining. So regardless of what I'm doing, it still holds my attention. Love it. Keep it up.

  • @deafhobbit
    @deafhobbit 5 лет назад +3

    I appreciated you talking about how these features improve accessibility. As someone who finds old school arcade inspired designs like limited lives and long gaps between checkpoints extremely frustrating, save states have really been essential in helping me enjoy older games.

  • @SullySadface
    @SullySadface 5 лет назад +28

    I understood about 5% of this. I finished the video because it's interesting as hell.

    • @SullySadface
      @SullySadface 5 лет назад +3

      On the note about rewinding, i could swear ZSNES (yes I use dumpster tier eumlators) has had a rewind function since 1.42 released, if not before. Granted, it's nowhere near as visually pleasing as the short coding demo you displayed. Perhaps I just made an assumption.

    • @mcqueenspartyisinhell2013
      @mcqueenspartyisinhell2013 5 лет назад +1

      At least you got a better idea about emulation and hardware limitations

    • @ClokworkGremlin
      @ClokworkGremlin 4 года назад

      It has. I'm certain I remember using rewind features as early as the end of the 90s.
      I used to have fun with the rewind and record features, recording a set of inputs, playing them back, and then hitting rewind or state restore in the middle of the playback and watching my character's actions play out in a different context.

  • @SourCloud
    @SourCloud 5 лет назад +24

    Better than YT-Rewind. Nice Episode. I would love a emulation series!

    • @chrisakaschulbus4903
      @chrisakaschulbus4903 5 лет назад +1

      not original, please consider going through the door and never coming back, thank you very much, have a nice christmas my child

    • @SourCloud
      @SourCloud 5 лет назад +1

      @@chrisakaschulbus4903
      Dude chill.
      I just want to comment what I want and btw i commented this liturally 8 min after upload.
      So go back in your toxic Schulbus und verpiss dich.
      Thanks.

    • @chrisakaschulbus4903
      @chrisakaschulbus4903 5 лет назад +1

      @@SourCloud i just wrote some random crap because i literally have nothing better to do... even on christmas.
      but i actually laughed at that line "So go back in your toxic Schulbus und verpiss dich."
      no hard feelings bro :D

    • @SourCloud
      @SourCloud 5 лет назад +1

      @@chrisakaschulbus4903 No worries my man Happy chistmas!

  • @Altilt
    @Altilt 5 лет назад +26

    Rewinds definitely been around more than 7 years, I remember doing it on ZSnes over a decade ago. Wasn't as clean as modern ones, but its definitely been around.

    • @Yamigishi
      @Yamigishi 4 года назад +5

      I remember using rewind on a NES emulator on my psp, I can't remember the exact time frame but that was at least 8 years ago

    • @Faygris
      @Faygris 4 года назад +4

      Exactly what I thought. I've definitely been using it 10 or 15 years back on ZSNES

  • @haggisman0812
    @haggisman0812 5 лет назад +7

    Discovered your channel earlier this year and been hooked ever since, fantastic content especially for someone like myself who is very interested in emulation but doesn't understand the technical details. Merry Christmas to you and yours MVG!

  • @dbzkidkev2
    @dbzkidkev2 5 лет назад

    This is what I love about your channel! The videos are not just a high level glossed overview, you go into technical detail which is excellent!

  • @Docs1231
    @Docs1231 5 лет назад +10

    You gotta do more of these. This was fantastic

  • @michaelyapkf
    @michaelyapkf 5 лет назад +1

    Thank you for a detailed explanation. Very informative. Thank you to all who spent so much time bringing us all the emulators for all the vintage systems so that we can still enjoy those vintage games which we treasure.

  • @TheGunmanChannel
    @TheGunmanChannel 5 лет назад +13

    Merry Christmas from Australia man.

  • @Psilocervine
    @Psilocervine 5 лет назад +1

    This episode, along with the episode on the Game Boy's graphics tools, have been some of my favourites

  • @chrismarshall4523
    @chrismarshall4523 5 лет назад +70

    Would love to see you do a series on how to code for beginners. Im 43 yo and now have a little extra time in my life to finally learn. With your ability to break down and explain things from an analytical mindset, not only are you a great instructor, it might make a successful side channel.

    • @bobafruti
      @bobafruti 5 лет назад +11

      Chris Marshall if you’re serious about your desire there are a number of game making tutorial channels that will start you off simply enough in Unity or Gamemaker and you can get real projects under your belt before you even get into the tedious nitty-gritty that most compsci courses start off with.

    • @andymorin9163
      @andymorin9163 5 лет назад +11

      This is what I send people who want to learn how to code www.reddit.com/r/learnprogramming/comments/6fto5j/how_to_start_learning_to_code_when_you_dont_know/

    • @kaitlyn__L
      @kaitlyn__L 5 лет назад +17

      This isn't a video series, but there's a few approaches you can take.
      You could learn something modern like Lua or Python, or Java or possibly maybe JavaScript (the last two are a little more arcane, and can get some hate for it, but they still simplify a lot of the same things).
      You could learn C or C++ (many do C and then C++, since C++ was designed to appeal to existing C users at the time). They're a few decades old now but C++ is still used in a lot of programming contexts, because the programmer has to manually manage a lot more things and thus it can run faster or on fewer resources.
      Ultimately learning both kinds of things would be useful, but these are just the different approaches of where to start. Many programs today will use a combination of C++ and Python, to combine speed of writing the program with Python, with the speed of C++ for certain attributes. Python was designed to compile into C++, so you can insert actual C++ code into a Python program as well and have it "drop down" into C++ for certain functions.
      Another approach some people advocate is learning on something retro like a C64, because those computers were built around anybody programming something right away on the screen. That may appeal to you if you used a C64 back in the day, but it can also be more difficult because of memory limitations that modern computers just don't have. Additionally, if you get to the point of writing things like sorting algorithms, a modern computer is going to run through them so much faster when you test them.
      So I don't personally recommend going retro to learn, although they were indeed simpler to program for. If you wanted to run something faster than BASIC (which is "interpreted" like Python and JavaScript and so on, which again means the computer manages resources you might have to manually allocate in another language, which takes up more of its time) you would have to use Assembly on those computers, which is a fancy way of saying you're directly speaking the CPU's language. The parts about programming the Game Boy in this video were in Assembly, with the registers and the memory addresses.
      Advocates say retro Assembly is better to learn than a modern CPU's Assembly, because of how much simpler the CPUs themselves were. They say it gives you a deeper and intuitive understanding of the way computers actually work and handle data. And I wouldn't fundamentally disagree that it gives you those skills, so if that appeals to you, by all means start there.
      But in my opinion, Assembly is mostly comprised of busywork shuffling values around between registers, with maybe 1-10% of your time actually spent making the CPU do its task. I'm sure there are plenty of people who enjoy that, but I just prefer to let a compiler handle all of that and let me think about what I'm actually wanting to happen in my program. So I wouldn't personally go "lower level" than C/C++, which still has memory allocation (malloc) and things like that, but at least eliminate a lot of the active register swapping busywork.
      But any way of getting started is valid. Any way into the way computers think makes it easier for you to learn other methods later. Plenty of people started with Python and plenty with Assembly, neither would inhibit you from picking up the other one later.
      As for actually learning those things, there are a lot of free courses available online if you search terms like "learn [programming language]". Additionally there are sites such as Skillshare which you may have seen sponsoring people's videos, they're paid services but have video courses split up into chapters. These may be more your speed compared to the free options, which can often be like reading Wikipedia for hours. Additionally, there's multiple different people who uploaded their own courses, so you might find it easier to try different people's methods until you land on the one that clicks with you.
      Ultimately, don't be afraid to try multiple sources and methods if one isn't really gelling with you. There's no benefit to sticking with one method if you hate it, you're going to learn better if you enjoy it. But no matter which way you take to finding how to learn programming, something I wish someone had told me is this - Google for specific problems you're having! "How do I alter the size of an array in [language]" for example - you're going to be back on your way to programming much faster that way than just hoping your online learning resource gets there eventually. Don't be afraid to skip around the curriculum if it'll let you try new ideas, you can always go back into the prescribed path once you're directionless again.
      This was a bit long, but I hope it helped a little Chris! Self-directed learning can be overwhelming at first, but can also be immensely empowering once you get a handle on it. Info about almost anything you might want to do around the house, but don't know how, is usually available online with a little digging.
      Good luck with learning to program!

    • @paulgraves1392
      @paulgraves1392 5 лет назад +11

      If your just wanting to learn to code for games, I strongly recommend reading Fabien Sanglard's blog- he specialises in writing detailed source code reviews of video games from the 1990s that are technical but easy to understand for people who have never coded before.
      I also recommend two of his books:
      Game Engine Black Book: Wolfenstein 3D
      Game Engine Black Book: DOOM

    • @deus_ex_machina_
      @deus_ex_machina_ 5 лет назад +4

      @@kaitlyn__L Incredible comment Kaitlyn, I took a screenshot and will be sure to reference this when I finally get started.

  • @agatonspik
    @agatonspik 2 года назад +2

    Rewind has been there for much longer than 6 years in emulators. Implemented it back in 2007 myself in one of my own emulators with a technique of combining movie recording through button presses and savestates during timed in intervals. Even had the option back then for the sound to play backwards as well.

  • @justdewitt3758
    @justdewitt3758 5 лет назад +150

    this is better than YT Rewind!

    • @Quiltfish
      @Quiltfish 5 лет назад +2

      I mean, not hard, but the sentiment is good.

    • @logang4eversikehellno140
      @logang4eversikehellno140 5 лет назад

      DummyFacts

    • @EastDallasKicks
      @EastDallasKicks 5 лет назад

      Falco Lombardi yup

    • @EastDallasKicks
      @EastDallasKicks 5 лет назад

      Just DeWitt isn’t everything better than that

    • @sosasees
      @sosasees 4 года назад

      @@WiiUniverse Yes. You can watch the RUclips Rewind without paying any money.
      But Google Stadia is many purchases which eventually add up to (more than) what you'd pay for a regular games console which is much better.

  • @TuffBaddi
    @TuffBaddi 5 лет назад

    Long-time watcher, first-time writer. I really appreciated this video's somebody who wants to get into coding and emulation but some of the concepts go over my head. I appreciate you stripping back the veil a little! More of this style of history and learning would be great!

  • @johnsimon8457
    @johnsimon8457 5 лет назад +26

    First time I saw rewind, I thought “This must gobble up ram like a son of a gun.” but then I remembered this isn’t the 90’s and it’s totally OK to use a hundred MB or so of RAM and store each state for each frame for a couple of seconds.

    • @tf_d
      @tf_d 2 года назад

      I remember thinking that when I switched from making a game on the NES to making a program in C lmao

  • @AnonymousFREEZEpOp1
    @AnonymousFREEZEpOp1 4 года назад

    I'm a gamer, but know nothing about modding or emulation, but I find these video and this channel overall so interesting. He makes it so much easier to understand than other channels I've seen.

  • @GabeSkolnik
    @GabeSkolnik 5 лет назад +34

    Definitely like this topic for a series 😁🎮

  • @n64ever
    @n64ever 5 лет назад

    This is some of the best emulation content on RUclips, PLEASE continue this series!

  • @myopiniondoesntmatter7068
    @myopiniondoesntmatter7068 5 лет назад +98

    Its nearly impossible for me to play 99% of my favourite emulated games now without a frameskip/fast forward option. I pretty much exclusively play JRPG's and I can get the same experience as I did back when I was a kid in 1/10th of a time simply by speeding through every overly long battle animation or making the walk speed bearable.
    Playing games like Lufia 1, Breath of Fire 2 or Any Phantasy Star besides 4 (macros were ahead of their time) without them is torture, especially knowing that frameskip exists.

    • @fryncyaryorvjink2140
      @fryncyaryorvjink2140 5 лет назад +24

      Same with pokemon, that guy walks so slow

    • @onepunchgirl7152
      @onepunchgirl7152 5 лет назад +4

      Same here.

    • @p3trichor862
      @p3trichor862 5 лет назад +7

      @@fryncyaryorvjink2140 Omg the pokemon, I have no idea how people play pokemon on original hardware its like impossible.

    • @comicsans1689
      @comicsans1689 5 лет назад +2

      @Brett C That's a major flaw in Pokemon's design philosophy, because it originally came out in a time where developers had to pad out gameplay with grinding so that you feel like you got your money's worth. Unfortunately, JRPG developers of today still have that same mindset, where there is a ridiculous amount of grinding in game to hide the utter lack of content and shallow gameplay. That's why I always return to western CRPGs, because most of them don't feel like a complete chore to get through.

    • @xavier7769
      @xavier7769 4 года назад +3

      @A GentlemanExperiencing Nostalgia isnt always practical. Thats like if a game werent in your country and it was really good, its not worth your time because there is absolutely no way to find it legally.

  • @ktvx.94
    @ktvx.94 4 года назад

    Finally those 4 years of studying game development paid off. It really is beautiful watching videos like these and actually understanding what they say with little effort (sometimes).
    I'm very interested in how emulators work to begin with. I've never done research so it would be awesome for an experienced youtuber to explain it. Like, how does a device pretend ir's abother?

  • @koopdawhoop.
    @koopdawhoop. 5 лет назад +5

    9:00 "So let's move on to rewind" *Gets a RUclips Rewind ad*

  • @prophismusic
    @prophismusic 4 года назад

    I've been commenting on gaming channels for years asking them to make this video. Thanks for actually doing it.

  • @Wkterr
    @Wkterr 5 лет назад +39

    I write emulators and virtual machines myself, and while rewind isn't a new concept to me, having a playlist with various emulation techniques would be useful. Just a tip though: Please animate the state changes when showing what the CPU does. It makes it much easier to follow along when there are more visual cues to make it more obvious what's going on. Check out Michael Steil's "27c3: Reverse Engineering the MOS 6502 CPU" talk, I found his approach very easy to follow.

    • @Dannysince1985
      @Dannysince1985 5 лет назад +3

      My brain trying to understand this is like the episode of Simpsons when homer is doing an experiment and blows his basement up then changes one value of something to a lower value then blows his basement up even more than before........but good on you I like to play emulators and wish I knew how they actually do what they do.....

    • @Wkterr
      @Wkterr 5 лет назад +1

      @@Dannysince1985 I highly recommend the Michael Steil video I mentioned. I've watched that talk probably 10 times, but it really helps understanding how a CPU works on a really low level. Once you understand that, coding an emulator is actually pretty straightforward.

    • @DasAntiNaziBroetchen
      @DasAntiNaziBroetchen 4 года назад

      @@Dannysince1985 Learn to code.

    • @SerBallister
      @SerBallister 4 года назад

      @@Wkterr debugging an emulator is kind of hard though. Mess up a status flag for one opcode and getting a crash 3 million cycles later is not something you want.

    • @Wkterr
      @Wkterr 4 года назад +1

      @@SerBallister Yep, that's why you should have unit tests or a specifically designed test ROM to fully confirm the operation of each op code. Obviously it's not a guarantee, but it makes it a lot easier to develop.
      Emulating peripherals, however. That sucks.

  • @LordRaven256
    @LordRaven256 5 лет назад

    I love that you actually show the C++ code that does it. This gives this video so much more credibility in my eyes.

  • @MrNyagasu
    @MrNyagasu 5 лет назад +14

    Please do a series on this :)

  • @Zachism
    @Zachism 5 лет назад

    ABSOLUTELY love this video!
    As someone who grew up with emulation and is currently learning to code, but only skirted around the backend of it while growing up, I’d love to see more about this!

  • @petwisk2012
    @petwisk2012 5 лет назад +9

    Pleasse do more emulation Stuff, great vídeo, happy holidays

  • @TehEpicMuffzor
    @TehEpicMuffzor 4 года назад

    I love the technical details you dug into. Been watching you for 2yrs and this is my favorite video

  • @AmyraCarter
    @AmyraCarter 5 лет назад +6

    I use rewind on NES, SNES, and GB game emulators. Kinda helps with some things.
    Happy Yule; may the winter be plentiful, but merciful...

  • @supersquare
    @supersquare 5 лет назад

    I was LITERALLY looking into this myself, as I basically made the underpinning of a rewind algorithm while programming a high performant, real time undo/redo algo for my framework. I wanted to see if emulators were simply recording user inputs or if they were recording entire data streams.
    Thanks so much for this incredible insight!! Absolutely love your channel and have been loving these super deep dives!

  • @jeddunkxyz
    @jeddunkxyz 5 лет назад +12

    As someone who's studying Computer Science, I'd love to see this as a series.

  • @blakryptonite1
    @blakryptonite1 5 лет назад

    You have one of the best retro gaming channels on RUclips. Most other channels review a new crappy AliExpress emulator every week, and try to get people to buy it using affiliate links. Your channel gives actual information about the technical aspects of vintage gaming.

  • @mingusdegeest7162
    @mingusdegeest7162 5 лет назад +77

    Life would be so much harder without emulators

    • @basshead.
      @basshead. 5 лет назад

      Good for speedrunners.

    • @milhouse777
      @milhouse777 5 лет назад +1

      No doubt, I wouldn't played +80% of all titles that I've played in my life,

  • @GameplayandTalk
    @GameplayandTalk 5 лет назад

    Man, you're really cranking these out, yet the quality remains top notch. I have no idea how you do it!

  • @kenrickkahn
    @kenrickkahn 5 лет назад +17

    I just left a channel talking about Emulators for this channel talking about Emulators.. I guess I like this RUclipsr better.. LOL *Edit: Correcting Sentence Structure by adding missing word*

    • @kenrickkahn
      @kenrickkahn 5 лет назад +1

      @McTurbo1300 LOL!

    • @kenrickkahn
      @kenrickkahn 5 лет назад +1

      @McTurbo1300 🤷🏿‍♂️🤷🏿‍♂️🤷🏿‍♂️🤷🏿‍♂️😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂😂

  • @TaimatCR
    @TaimatCR 4 года назад

    As someone that can barely write a super simple script, it is amazing that there are people out there who are talented enough to make emulation a reality

  • @thequake2009
    @thequake2009 5 лет назад +4

    The song in the beginning is MVG's own beat! called Race Condition. Damn it's good!!

  • @Blendeture
    @Blendeture 5 лет назад +2

    10:25 "Hold down R", our favourite Aussie went Irish for a second there!

  • @HellScream107
    @HellScream107 5 лет назад +3

    MVG, I hope someday you become a professor of gaming technology if such a thing exists in the future :D

  • @vk3fbab
    @vk3fbab 5 лет назад

    Great to see someone explaining how this stuff works. I'm sure people who have never thought about how software emulation works would get great benefit. Brings back memories from the old university days. Had a lecturer write a software emulation of a CPU. Kept finding bugs in it. Remember a case where he was not impressed that I wrote a very simple program that crashed his emulator but would never crash the real hardware.

  • @flameshana9
    @flameshana9 5 лет назад +11

    10:50 Rewinding is recent? I recall doing that on my snes emulators back in the early 2000's though. 12:16 I recall that setting on the ZSNES.

  • @alancaX
    @alancaX 5 лет назад

    This is very different than some of your other videos; being extremely technical with programming specifics was a welcome surprise! I've always respected emulator programmers, thanks for sharing!

  • @DukenukemX
    @DukenukemX 5 лет назад +7

    I'd like to see a video on why Vulkan is so great for emulators.

  • @karehaqt
    @karehaqt 5 лет назад

    What a great start to Christmas week, an MVG video.

  • @manuelvillalta3793
    @manuelvillalta3793 5 лет назад +6

    At first, I read the title and thought to myself, eh..who cares?
    Then I glance at the name of the channel and thought to myself, MVG!? This is gonna be interesting!
    You can break down the process of paint drying and it would be an epic video.

  • @NesGaming0801
    @NesGaming0801 5 лет назад

    I would’ve probably never been as active in getting my retro consoles and games if it weren’t for discovering them with emulation and it’s something I’ll be grateful for forever!

  • @taylorwoolston8856
    @taylorwoolston8856 5 лет назад +4

    Before watching, I would think it would just save the contents of RAM (and whatever else) every X number of frames. Then when you hit the rewind button, the emulator would go backwards through the saved RAM by X number of frames until you stop pressing it, and load the saved RAM and continue from there.

  • @BM-wf8jj
    @BM-wf8jj 3 года назад

    Another great episode from your channel. I've been playing games on emulators since I was a kid back in the mid 90's but never knew much about how it all works behind the user interface. It's definitely something I find more interesting now since I'm learning real basic stuff like how to program PLC's as well as how they work in my electrical apprenticeship right now. I'd love to see this topic turned into an ongoing series.

  • @marlbear
    @marlbear 5 лет назад +86

    Emulation is literally the best, not cos I want to play pirated games cos I want to play 90’s arcades not the crap console ports. 👍🏼👍🏼👍🏼
    Quality video btw 👌🏼

    • @kenrickkahn
      @kenrickkahn 5 лет назад +5

      Exactly!! Final Fight SNES version I'm looking at you..

    • @marlbear
      @marlbear 5 лет назад +4

      Kenrick Eason and sunset riders on the SNES! So pixelated

    • @jenniferlynn3579
      @jenniferlynn3579 4 года назад

      Not that I have a problem with it, but those arcade games are still pirated lmao

    • @michaelhelmut1
      @michaelhelmut1 4 года назад +3

      @@jenniferlynn3579 piracy intends that all of them have a modern way to play that isnt 2nd hand equipment

    • @matthieuleperlier251
      @matthieuleperlier251 4 года назад +1

      Yeah, it sucks when you buy a port of an old game and realize that emulating it would actually be better!

  • @warpnowify
    @warpnowify 4 года назад

    This is the first time I've posted a comment on any of your videos. I really like the level of detail you go into in your explanations without going too far over anyone's head. I have always wanted to know how emulators work and would be very interested in watching them. Please keep them coming.

  • @diablo888
    @diablo888 5 лет назад +5

    10:51 "past 6 years" ... what do you base that on? Because I have seen and used it extensively waaaaaay before that.
    Maybe not all emulated system had it from the start, but ZSNES had it if not 10+ years ago.

    • @ShadowFox64
      @ShadowFox64 4 года назад +1

      Yea I remember using rewind while playing a FFV fan translation when I was in middle school so it's at least been a thing since the mid-aughts.

  • @saje5821
    @saje5821 5 лет назад

    MVG,
    Please do make more videos like this! As a younger kid, I grew up past the time of many of the older game consoles that are covered in your videos, and emulation was really essential in enabling me to appreciate the history of video games, which came to be a really big part of my childhood, and I think really contributed to who I am today.
    Even today, I use emulators all the time for games that are otherwise (pretty much) inaccessible due to reasons like age. For example, I am currently using an emulator to play a game in Japanese called "Home Sweet Home" (ホームスイートホーム) .
    Not to mention, it's just really cool to be able to learn about all these things from a programming and technical perspective. I don't know how much I am exactly retaining of what I learn in videos like yours, but I know I am learning a few things, and what information I do get to learn is just amazing to me.
    So, for those reasons, please make more videos like this!

  • @joshm264
    @joshm264 5 лет назад +21

    The funny thing about some of these emulators is that alot of new mini consoles and emulated compilations use the same emulators that are primarily used to illegally play these games.
    Also, Merry Christmas if you see this!

    • @PhantomDogman
      @PhantomDogman 5 лет назад +3

      Wanted to comment that emulators by themselfs are legals but getting roms... probably in gray zone if not illegal, but I assume that you already understood that how you wrote that comment.

    • @joshm264
      @joshm264 5 лет назад

      @@PhantomDogman yeah, was trying to say that the same emulators that the mini systems and compilations are using is the same one that people are using illegal roms with

  • @ioioio13
    @ioioio13 5 лет назад +1

    Very interesting topic and I liked the code and concept breakdown on rewind features. It has been many years since I have dipped my toes into code.
    Would definitely be interested in seeing more breakdown of emulation. Thanks for making great content.

  • @ifi3763
    @ifi3763 4 года назад +4

    "now things can be done in different ways of course, but you certainly get the idea"
    me: 😶

  • @Metaphor9696
    @Metaphor9696 5 лет назад

    I really did like this episode. I have to be honest, I was barely able to follow along with the information you were giving but until I learn what everything means exactly, I would still like to see more of these types of videos. Happy and safe holidays everyone!

  • @primezone416
    @primezone416 5 лет назад +4

    Oooooh im early Merry Christmas everyone ;)

  • @fernandohernannunez1513
    @fernandohernannunez1513 5 лет назад

    Excellent video. I'd love to see more lengthy ones. Not because I'd use it, but because I find emulation fascinating. And your way of presenting stuff is so good.

  • @darek4488
    @darek4488 5 лет назад +13

    Rewind didn't appear in the last 6-7 years. I've used a rewind function playing NES games on my DS Lite with R4DS more than a decade ago.

  • @Dinnye01
    @Dinnye01 5 лет назад

    You ABSOLUTELY should make a series of this.

  • @AlwaysEngland
    @AlwaysEngland 5 лет назад +8

    Can't wait till I start to build my own Emulation Station. Got all the games ready.
    Merry Christmas!

    • @AlwaysEngland
      @AlwaysEngland 5 лет назад +1

      @@WiiUniverse That's what I'm getting, only found out about the Raspberry PI a few months back.. I've already designed the casing & the layout of the inside.
      I had a ZX Spectrum 48k when they came out & looking forward to playing some old favourites.

    • @Adioownz1
      @Adioownz1 5 лет назад

      I’m trying to figure out which console has like ALL the retro games, ps1, ps2, Xbox, Xbox 360, wii and Wii U games. Which console has the most games emulated on?

    • @Adioownz1
      @Adioownz1 5 лет назад

      singularon1 there’s not a lot of videos on the Wii U modding just the original wii. Which the og wii can have over 10,000 games but most of them are ones I wouldn’t even want. What kind of pc setup would you have to have? I don’t actually want ALL the games from those consoles but I want to be able to have a setup that I can download every game I’d ever want to play

    • @Adioownz1
      @Adioownz1 5 лет назад

      singularon1 and why would I need a super good pc to play those games that run on low spec hardware? I’m only talking about running everything up to last gen (ps3 360 wii Wii U)

    • @Adioownz1
      @Adioownz1 5 лет назад

      Kryštof Píštěk sounds dope but would a high end pc be able to run them all?

  • @vladtomoiaga4721
    @vladtomoiaga4721 5 лет назад

    I'm excited about the following series on emulation! Merry Christmas, MVG, and a Happy New Year!

  • @BIGwillTHEGAME
    @BIGwillTHEGAME 5 лет назад +10

    Good Topic

  • @McWickyyyy
    @McWickyyyy 4 года назад

    I have been dying to find a channel like this. I’m so fascinated with old games and how the programming and hardware etc for them worked. Awesome channel!!

  • @mauryj.3415
    @mauryj.3415 5 лет назад +5

    My phone is already playing NES, SNES, GENESIS, MASTER SYSTEM, TURBOGRAFX, DREAMCAST, GB, GBA, Gamecube, Wii, Arcade Cabinet games.... EMULATION IS GREAT!

  • @jeenkzk5919
    @jeenkzk5919 5 лет назад

    Emulation is the Film Preservation if video games. I’m happy that someone somewhere took the time to dump all these games from all formats no matter how obscure! Love the video! Much of it is over my head but hearing an Aussie speaking as a Texan is always a treat!

  • @stanislav8794
    @stanislav8794 5 лет назад +8

    Do you have any "how to make emulator" or any kind of basic for making one? Or maybe you plan on making one? Would be great. Love how you explain things and I would love to start some way making my own emu if only for practicing my coding skills

    • @michael.andreae
      @michael.andreae 5 лет назад +1

      You could watch javidx9 Videos about a NES Emulator Part 1 --> ruclips.net/video/F8kx56OZQhg/видео.html

    • @themrnobody9819
      @themrnobody9819 5 лет назад +1

      Haven't seen these videos myself, so I can't say anything about them but resources for NES Emulation can be found at wiki.nesdev.com. You can find all the concepts and how the NES works there, for actual example code you can e.g. look up the source for Nintendulator/Mesen/FCEUX/...

  • @ZAX27171527
    @ZAX27171527 5 лет назад

    Im a CS student and I LOVE this in depth stuff. I would like to re-create an emulator just to see how it works and this was something that really helped. I would love to see more in depth videos like this.

  • @timovandam
    @timovandam 5 лет назад +20

    Back in 2006 or 2007 I used a NES emulator on my Nintendo DS that had rewind 🤓

    • @bobafruti
      @bobafruti 5 лет назад +2

      Timo van Dam yeah, I was thinking that same thing. If you think about it the DS has more than enough memory to do what he is talking about.
      In fact once you’ve gone to the effort of writing the emulator the extra 20 lines of code to enable rewind is a no brainer.

    • @ClokworkGremlin
      @ClokworkGremlin 4 года назад

      Yep. I played games on emulators as early as 1999(I remember having to disable transparent layers to get a playable framerate) that included a "rewind" feature. It wasn't the Prince of Persia-style "warp backwards through time until the desired moment" rewind, but it did allow me to jump back several seconds in increments of a second or two at a time.

  • @kbzonmarko
    @kbzonmarko 5 лет назад +1

    Great video man, literally. Awesome content and perfect visual quality!

  • @karliskorlass196
    @karliskorlass196 5 лет назад +17

    Wii U emulation is quite far along. I can play BoTW on a Wii U emulator without any artifacting or graphical bugs at 50fps on a Ryzen 5 3600 and a GTX 1070.

    • @karliskorlass196
      @karliskorlass196 5 лет назад

      @@BlindBison 1080p. I get no differene in fps between 1080p and 720p.

    • @karliskorlass196
      @karliskorlass196 5 лет назад +1

      @@BlindBison Yeah, I get 40% GPU usage during gameplay.

  • @SuperSanjuro
    @SuperSanjuro 5 лет назад

    I've enjoyed every single one of your videos, but yes, this one was really cool. I only have a very rudimentary understanding of code, but you make it easy to understand. I come here for the joy of learning. Thanks for all the work you've put in so far.

  • @phatboi202
    @phatboi202 5 лет назад +12

    without emulation my whole shelf of PS2 games would be unplayable for me.
    as my PS2 has thrown it's laser, why should i spend more money fixing something that's out of manufacture? i'll just emulate those games. I just wish there was better steering wheel support in pcsx2 so i can run GT 2-4 better with my sim setup :/

    • @BulletFever1
      @BulletFever1 5 лет назад +2

      Well if I'm being honest I'd say that repair can be as fun as emulation

    • @fifaworldcup1994
      @fifaworldcup1994 5 лет назад +1

      Mine luckily still works.

    • @phatboi202
      @phatboi202 5 лет назад

      @@BulletFever1 i can, but i have shakey hads, so if i messed up the mod chip at the same time would make it worse... lol :/

    • @phatboi202
      @phatboi202 5 лет назад

      @@fifaworldcup1994 glad it does, it a fat original though?

    • @fifaworldcup1994
      @fifaworldcup1994 5 лет назад

      @@phatboi202 Nope. PS2 Slim. The silver model.

  • @johnsaxston6004
    @johnsaxston6004 4 года назад

    The very first red emu menu I remember, the emu menu with the hand that looks like its dripping blood. My brother years ago introduced me to that emulator on a windows 7 desktop. Ever since my brother passed away a year ago, you MVG, have had me interested in every thing of old. I have been looking into all these emulators that run on windows 10, mainly the dolphin master build that runs gamecube and wii games. Its quite amazing what is possible with just a little bit of knowledge and you mr MVG, have given me enough knowledge through your videos to be able to code and fix things. Thank you mr MVG!!

  • @bitelaserkhalif
    @bitelaserkhalif 5 лет назад +8

    I wonder.. what if you can implement hibernate features for one app without shutting down the pc?

    • @renakunisaki
      @renakunisaki 5 лет назад +4

      It's difficult if the app has any files or network connections open. They might not still be there when you resume.

  • @ViperliciousOG
    @ViperliciousOG 4 года назад

    I would definitely love to see more on this topic. You explain these complex tech concepts with clarity and I get to learn things I never thought I’d understand the science behind. Keep up the good work!

  • @overlordalfredo
    @overlordalfredo 5 лет назад +3

    If you are going to make videos on emulation techniques, please make them more explanatory.
    I am working within IT for almost 10 years now and I really struggle to follow the steps you are making and what actually happens or what you are doing...

    • @inlovewithi
      @inlovewithi 5 лет назад +1

      I thought the explanation was great. Just simple common sense explanation for what is not supposed to be a tutorial.

    • @overlordalfredo
      @overlordalfredo 5 лет назад +1

      @@inlovewithi yes for this video it's totally okay as it is not meant as a tutorial, but if he is going to make a video about emulation techniques, I would love to have it properly explained.
      Especially for someone from a non-English country like me, it was too compact in this video to follow.

  • @32th
    @32th 5 лет назад

    You are definitely one of my favourite retro game RUclipsrs and a big reason for that are your programming skills and technical knowledge