How Emulators 'Rewind' Games | MVG

Поделиться
HTML-код
  • Опубликовано: 10 сен 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  4 года назад +890

    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 4 года назад +30

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

    • @hualni
      @hualni 4 года назад +133

      Just press and hold "r" to fix it.

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

      @@hualni best comment

    • @renakunisaki
      @renakunisaki 4 года назад +30

      Also F is not a general purpose register.

    • @ModernVintageGamer
      @ModernVintageGamer  4 года назад +146

      @@renakunisaki thats right, its to pay respects

  • @ikagura
    @ikagura 4 года назад +1193

    Preservation is very important

    • @Sean-D78
      @Sean-D78 4 года назад +32

      Nintendo: Hold my F-Zero

    • @ikagura
      @ikagura 4 года назад +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 4 года назад +37

      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 4 года назад +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 4 года назад +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 4 года назад +35

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

  • @ptakup3
    @ptakup3 4 года назад +221

    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 4 года назад +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.

  • @BSoDGaming
    @BSoDGaming 4 года назад +568

    Awesome video as always mate.

  • @RossTheNinja
    @RossTheNinja 4 года назад +445

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

    • @elmalloc
      @elmalloc 4 года назад +17

      just press select, start, a, or B

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

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

  • @darkerm76
    @darkerm76 4 года назад +457

    Rewind always remind me of Prince of Persia

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

      This? Yes! :D

    • @ModernVintageGamer
      @ModernVintageGamer  4 года назад +78

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

    • @ic_trab
      @ic_trab 4 года назад +29

      "That's not how it happened"

    • @ipodguy9
      @ipodguy9 4 года назад +15

      Anyone remember Blinx: the time sweeper

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

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

  • @HistoMagouri
    @HistoMagouri 4 года назад +196

    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.

  • @nothankyou4859
    @nothankyou4859 4 года назад +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)

  • @nutter-world
    @nutter-world 4 года назад +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  4 года назад +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 4 года назад +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 4 года назад +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 4 года назад +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 4 года назад

      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.

  • @MrMario2011
    @MrMario2011 4 года назад +53

    Yes! More emulation techniques videos!

  • @GRBtutorials
    @GRBtutorials 4 года назад +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.

  • @MarcoGPUtuber
    @MarcoGPUtuber 4 года назад +42

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

  • @Gods_God
    @Gods_God 4 года назад +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

  • @theannoyedmrfloyd3998
    @theannoyedmrfloyd3998 4 года назад +239

    Emulators can also be considered as development kits.

    • @jornthree8881
      @jornthree8881 4 года назад +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 4 года назад +12

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

    • @dan_loup
      @dan_loup 4 года назад +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 4 года назад

      exactly

    • @gasparmxm
      @gasparmxm 4 года назад +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.

  • @nighttimestalker
    @nighttimestalker 4 года назад +556

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

    • @emperorfaiz
      @emperorfaiz 4 года назад +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 4 года назад +71

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

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

      Fuk u nerd

    • @nighttimestalker
      @nighttimestalker 4 года назад +48

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

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

      @@mezzb Same here!

  • @seanflores3511
    @seanflores3511 4 года назад +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!

  • @Altilt
    @Altilt 4 года назад +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

  • @SullySadface
    @SullySadface 4 года назад +28

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

    • @SullySadface
      @SullySadface 4 года назад +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 4 года назад +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.

  • @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

  • @deafhobbit
    @deafhobbit 4 года назад +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.

  • @MetalJody1990
    @MetalJody1990 4 года назад +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.

  • @chrismarshall4523
    @chrismarshall4523 4 года назад +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 4 года назад +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 4 года назад +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 4 года назад +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 4 года назад +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_ 4 года назад +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

    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.

  • @haggisman0812
    @haggisman0812 4 года назад +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!

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

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

  • @myopiniondoesntmatter7068
    @myopiniondoesntmatter7068 4 года назад +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 4 года назад +24

      Same with pokemon, that guy walks so slow

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

      Same here.

    • @p3trichor862
      @p3trichor862 4 года назад +7

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

    • @comicsans1689
      @comicsans1689 4 года назад +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.

  • @Wkterr
    @Wkterr 4 года назад +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 4 года назад +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 4 года назад +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.

  • @SourCloud
    @SourCloud 4 года назад +24

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

    • @chrisakaschulbus4903
      @chrisakaschulbus4903 4 года назад +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 4 года назад +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 4 года назад +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 4 года назад +1

      @@chrisakaschulbus4903 No worries my man Happy chistmas!

  • @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.

  • @Docs1231
    @Docs1231 4 года назад +10

    You gotta do more of these. This was fantastic

  • @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.

  • @gamertygonl
    @gamertygonl 4 года назад +72

    MVG Time!

  • @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?

  • @johnsimon8457
    @johnsimon8457 4 года назад +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

  • @ioioio13
    @ioioio13 4 года назад +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.

  • @justdewitt3758
    @justdewitt3758 4 года назад +150

    this is better than YT Rewind!

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

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

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

      DummyFacts

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

      Falco Lombardi yup

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

      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.

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

    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!

  • @GabeSkolnik
    @GabeSkolnik 4 года назад +34

    Definitely like this topic for a series 😁🎮

  • @michaelyapkf
    @michaelyapkf 4 года назад +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 4 года назад +13

    Merry Christmas from Australia man.

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

    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.

  • @AmyraCarter
    @AmyraCarter 4 года назад +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...

  • @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.

  • @MrNyagasu
    @MrNyagasu 4 года назад +14

    Please do a series on this :)

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

    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!

  • @kenrickeason
    @kenrickeason 4 года назад +18

    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*

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

      @McTurbo1300 LOL!

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

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

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

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

  • @mingusdegeest7162
    @mingusdegeest7162 4 года назад +77

    Life would be so much harder without emulators

    • @basshead.
      @basshead. 4 года назад

      Good for speedrunners.

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

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

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

    would love to see this as kinda a mini series, getting into detail about not only the rewind / save state but how blueprints for an emulator , how it’s coded at a high level , maybe another series about emulating graphics core, sound , etc

  • @koopdawhoop.
    @koopdawhoop. 4 года назад +5

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

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

    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!

  • @jeddunkxyz
    @jeddunkxyz 4 года назад +12

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

  • @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.

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

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

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

    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.

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

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

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

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

  • @marlbear
    @marlbear 4 года назад +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 👌🏼

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

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

    • @marlbear
      @marlbear 4 года назад +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!

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

    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.

  • @petwisk2012
    @petwisk2012 4 года назад +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

  • @DukenukemX
    @DukenukemX 4 года назад +7

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

  • @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!!

  • @manuelvillalta3793
    @manuelvillalta3793 4 года назад +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.

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

    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!

  • @flameshana9
    @flameshana9 4 года назад +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.

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

    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!

  • @taylorwoolston8856
    @taylorwoolston8856 4 года назад +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.

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

    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!

  • @joshm264
    @joshm264 4 года назад +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 4 года назад +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 4 года назад

      @@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

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

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

  • @darek4488
    @darek4488 4 года назад +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.

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

    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!

  • @diablo888
    @diablo888 4 года назад +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.

  • @32th
    @32th 4 года назад

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

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

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

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

    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!

  • @BIGwillTHEGAME
    @BIGwillTHEGAME 4 года назад +10

    Good Topic

  • @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

  • @mauryj.3415
    @mauryj.3415 4 года назад +5

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

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

    The Forza Demo for XBONE was huge! I remember being blown away when my mate let me try it out. I remember asking him if it was the full game or what cause it went way further than what I thought a demo was. Sure some content was turned off but it still lets you play a vast majority of the game with no time limit.

  • @FDCAFOK
    @FDCAFOK 4 года назад +8

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

    • @FDCAFOK
      @FDCAFOK 4 года назад +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 4 года назад

      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 4 года назад

      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 4 года назад

      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 4 года назад

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

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

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

  • @timovandam
    @timovandam 4 года назад +20

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

    • @bobafruti
      @bobafruti 4 года назад +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.

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

    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.

  • @karliskorlass196
    @karliskorlass196 4 года назад +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 4 года назад

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

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

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

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

    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!

  • @stanislav8794
    @stanislav8794 4 года назад +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 4 года назад +1

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

    • @themrnobody9819
      @themrnobody9819 4 года назад +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/...

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

    I can hear the nostalgia in your voice, you need to do more videos like this. I have been involved with emulation & homebrew dev for a long time and absolutely loved this video concept. As a teen emulation and homebrew was my inspiration and tool kit to learn a myriad of technical skills. I have done content many years ago using emulators to create cheat codes to explain computer number systems, memory, buffers, and using save/load state as a tool to do memory mapping of NES games. It was an easy visual approach toward an abstract and often complex concepts.

  • @phatboi202
    @phatboi202 4 года назад +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 4 года назад +2

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

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

      Mine luckily still works.

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

      @@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 4 года назад

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

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

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

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

    As someone who has been heavily into modding and emulation in recent time but also a background in computer games programming.... i've always wondered how this was achieved and never thought to actualy look it up. Ofcourse YOU did a video on the subject. This makes so much sense. Fascinating tbh.
    I had ideas of what was done and i was kind of there in my thoughts but it just seemed so unwieldy with memory usage in my head.

  • @bitelaserkhalif
    @bitelaserkhalif 4 года назад +8

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

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

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

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

    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.

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

    May I ask a question? Im the loner type with my gaming and in life. (Autism) .. Years ago I puchased on Xbox Arcade the Teenage mutant ninja turtles game. I really really enjoyed that game. At the point I had issues keeping my life together and gaming went out the window for several years. Now that I am able to keep a life together (employment and relationships) I got back into gaming. TMNT was delisted from what I have researched. I paid for that game and I feel its mine. I dont think its fair im not allowed to redownload it since I was given no way to archive it to begin with. Whats the easiest way of getting it up and running? Im not asking for the rom just what to do to make it run. Thanks

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

      If you're referring to Turtles In Time Re-Shelled this also happened to me and I've found the only way to play it on the original hardware these days is to mod your Xbox 360/PS3.

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

      its either with a modded 360, or there is a 360 emulator, of which MVG has spoke of im sure in a past video, but unsure of which one it was ! ...

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

      @@mezzb Thanks for the reply. Im looking into it now. Sounds like for me this is the best option. I did find an Odroid XU4 option that sounds pretty reasonable to run this game and others like it in the future. I guess my best bet for a more portable way would be the purchase one of those boards or the Sheild I just saw which seems to be pretty capable too.

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

    I like the direction of trying to explain the concepts in little more depth from the programmers perspective. Didn't understood it all, but I'm planning to rewatch. I use emulators so much that it would be nice to understand a little more of how they work, so I'm looking forward to seeing more videos like this, even though honestly they might push away some people because of complexity and requirement of understanding basic programming concepts and the programming language used.

  • @overlordalfredo
    @overlordalfredo 4 года назад +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 4 года назад +1

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

    • @overlordalfredo
      @overlordalfredo 4 года назад +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.

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

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

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

    Oooooh im early Merry Christmas everyone ;)

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

    I'm always in favor of videos that go into technical details on software and hardware topics. Emulation is something that's fascinating as well. I'd watch a series.