News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Emulator feature innovation history?  (Read 4386 times)

PresidentLeever

  • Hero Member
  • *****
  • Posts: 654
    • View Profile
    • Mini-Revver
Emulator feature innovation history?
« on: December 10, 2016, 10:58:53 pm »
It wasn't that long ago that we could start save stating in commercial emulators and many other features aren't used yet, which has got me thinking about when most major emulator features were created and realizing that I have no idea. There isn't much info at wikipedia either. Do you know when and where the below were first used?

-Save states - Nesticle (1997)?
-Fast-forward
-Rewind - QuickNES (2007), first heard of in 2005?
-Cheat code support - Software/initial loaders/breaks in things like the commodore 64 (see poke and peek), Nesticle (1997)?
-Graphics plugins for 3D games
-Overclocking
-Netplay - Kaillera or Nesticle (1997)?

You can go ahead and tell or ask about others that I've missed and you think are important.
« Last Edit: December 11, 2016, 05:03:01 pm by PresidentLeever »
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

Chronosplit

  • Hero Member
  • *****
  • Posts: 1411
    • View Profile
Re: Emulator feature innovation history?
« Reply #1 on: December 10, 2016, 11:16:52 pm »
I think rewind is the newest of the list.  I remember chat about that starting around Retroarch, though it may have come earlier.

PresidentLeever

  • Hero Member
  • *****
  • Posts: 654
    • View Profile
    • Mini-Revver
Re: Emulator feature innovation history?
« Reply #2 on: December 10, 2016, 11:17:47 pm »
I think I first saw that in zsnes, but maybe it was snes9x.
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

Disch

  • Hero Member
  • *****
  • Posts: 2763
  • NES Junkie
    • View Profile
Re: Emulator feature innovation history?
« Reply #3 on: December 10, 2016, 11:48:57 pm »
First I saw rewind was in blargg's NES emu 'QuickNES'.  (Ref:  https://forums.nesdev.com/viewtopic.php?f=3&t=3428 )

Dated mid 2007... the actual feature may have been available earlier.  Though I wouldn't be surprised if it was around before that.

EDIT:

Found an earlier thread.  Idea first introduced to nesdev boards in 2005:
http://forums.nesdev.com/viewtopic.php?t=331

Again, don't know if this is "first" historically... it's just the first I'd ever seen/heard of it.

Kallisto

  • Sr. Member
  • ****
  • Posts: 486
    • View Profile
Re: Emulator feature innovation history?
« Reply #4 on: December 11, 2016, 12:46:40 am »
I like the new music format support recently, and hope it evolves more to a point where it is more universal, it would help a lot of aging games out there for a newer audience.

PresidentLeever

  • Hero Member
  • *****
  • Posts: 654
    • View Profile
    • Mini-Revver
Re: Emulator feature innovation history?
« Reply #5 on: December 11, 2016, 01:02:20 am »
You mean MSU-1? It's cool, but I think chip music usually suits the low res 2D graphics better.
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

FAST6191

  • Hero Member
  • *****
  • Posts: 2652
    • View Profile
Re: Emulator feature innovation history?
« Reply #6 on: December 11, 2016, 07:46:02 am »
Save states were available in hardware for a few machines, I think I pulled one such device apart and stuck pictures up here once. Similarly cheats were available in software/initial loaders/breaks in things like the commodore 64 (see poke and peek). For cheats explicitly in emulators then debugger support has been available for a while and the ability to reach out and touch the emulated system's virtual memory would have been part of that, I don't know when a more "formal" approach might have been adopted.

Rewind is the logical conclusion of save states to me, I vaguely recall seeing a macro once that would hit savestate three times and give you a choice and another that would automatically savestate every so often. I don't know if it is was a lack of inspiration or a lack of system power that held things back though.

Plugins... is that a thing worth noting? From a programming perspective it feels no different to using a DLL file or maybe using someone else's sound core or something like that (though if that is statically compiled into the program then I will note a minor difference). Alternatively it is arguably the continuation of the game specific bodges and hacks that we are still dealing with the fallout from today in some cases.

Fast forward and overclocking for most consoles are the same thing. I am not sure when it would have hit emulation as a thing but at the same time most old consoles are synced with their clock (why main clocks often vary between NTSC and PAL regions). Emulating is inherently going to want to match speeds for the output machine. Again I don't know if lack of grunt or lack of inspiration would have held it back, especially if frameskip was still a necessary thing. Disable vsync and skip vblank and whatever else would have effectively done it, even if someone would take a while to later bind it to spacebar or something, and I recall seeing options for that way back when.

Netplay on home consoles is basically video and control streaming, for handhelds it might be something more as you have some custom communications and for modern stuff it might well just being able to emulate enough of the system to allow the servers to think it is real.
I don't know if anything predated Kaillera at this point, or if someone used an earlier version of RDP or something to make it happen but I would not be surprised as a lot of people had fun with business machines at the time and that was another point in time when remote computing/mainframe thinking/network terminal was on the rise.
For the handhelds then http://problemkaputt.de/gmbhist.htm "v1.1  10/97  much more carts working, 2 player link, better sound, ems used"


For my money the main development I would really want to note would be the introduction of dynamic recompilation, or dynarec in some circles.


nesrocks

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
    • nesrocks.com
Re: Emulator feature innovation history?
« Reply #7 on: December 11, 2016, 08:27:11 am »
First I saw rewind was in prince of persia sands of time (2003) but that was just a game, not an emulator.
Plugins are the worst. Why can't the emulator emulate the system fully? epsxe I'm looking at you... Plugins would be a neat idea if they were optional. How hard is it to simply emulate the system without over complicating things?

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6934
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Emulator feature innovation history?
« Reply #8 on: December 11, 2016, 10:45:52 am »
For the handhelds then http://problemkaputt.de/gmbhist.htm "v1.1  10/97  much more carts working, 2 player link, better sound, ems used"
I think that just meant it was able to emulate the link cable (by running the game in two windows for two players on the same computer, though it did not support Pokemon or other games that required different SRAM if not also different ROMs between players).
"My watch says 30 chickens" Google, 2018

STARWIN

  • Sr. Member
  • ****
  • Posts: 449
    • View Profile
Re: Emulator feature innovation history?
« Reply #9 on: December 11, 2016, 03:08:30 pm »
netplay: http://bloodlust.zophar.net/NESticle/nes.html

i don't think any netplay is video streaming (!!), just inputs and keep state in sync, haven't coded one though

wikipedia also praises nesticle for gameplay recording. it was certainly a solid early emulator so it might have had various features for the first time.
« Last Edit: December 11, 2016, 03:29:09 pm by STARWIN »

PresidentLeever

  • Hero Member
  • *****
  • Posts: 654
    • View Profile
    • Mini-Revver
Re: Emulator feature innovation history?
« Reply #10 on: December 11, 2016, 03:29:41 pm »
First I saw rewind was in prince of persia sands of time (2003) but that was just a game, not an emulator.

It was also done in the GB game Catrap/Pitman, from 1990.

Thanks for the replies, people.
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

Sliver X

  • Hero Member
  • *****
  • Posts: 1044
  • EX•CINERIBVS•IGNIS•EXCITABITVR
    • View Profile
    • Panicus - A Fragment of Memory
Re: Emulator feature innovation history?
« Reply #11 on: December 11, 2016, 04:54:42 pm »
I'm almost positive Game Genie cheats, Netplay (With the default user name of "sodomite", hehe) and save states were introduced in NESticle around 1997.

It was a really amazing piece of software for its day.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6934
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Emulator feature innovation history?
« Reply #12 on: December 11, 2016, 09:18:28 pm »
netplay: http://bloodlust.zophar.net/NESticle/nes.html

i don't think any netplay is video streaming (!!), just inputs and keep state in sync, haven't coded one though

wikipedia also praises nesticle for gameplay recording. it was certainly a solid early emulator so it might have had various features for the first time.

Did Nesticle have video recording, or was it only the kind of recording that is basically a savestate+keylogger?
"My watch says 30 chickens" Google, 2018

BlackDog61

  • Hero Member
  • *****
  • Posts: 784
    • View Profile
    • Super Robot Wars A Portable translation thread
Re: Emulator feature innovation history?
« Reply #13 on: December 12, 2016, 01:05:23 am »
So what's rewind really do? It saves you the burden of save states for "recently played seconds"?
Does a more recent emulator than NES / SNES support it, for instance?
And how do you think it works internally? (Saving every RAM / register / video buffer change sounds like a tough thing to me...)

PresidentLeever

  • Hero Member
  • *****
  • Posts: 654
    • View Profile
    • Mini-Revver
Re: Emulator feature innovation history?
« Reply #14 on: December 12, 2016, 01:13:14 am »
Well, pretty much, but it looks cooler! And if slow enough, you have more exact control over how far back you want to go.

No idea how it works, or if more recent emulators supporting it.
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

FAST6191

  • Hero Member
  • *****
  • Posts: 2652
    • View Profile
Re: Emulator feature innovation history?
« Reply #15 on: December 12, 2016, 04:50:30 am »
I would imagine it is savestates every vblank or similar (maybe every other vblank or some higher multiple, maybe also with some kind of change detection as a form of compression -- such change detection is there as debugging and cheat search), mainly as we occasionally see "ram tracing" (the DSi had some stuff) done when hacking devices and a few seconds ends up in the gigabytes.
Probably should have just loaded up the source for a few things but that would be my logic.

Disch

  • Hero Member
  • *****
  • Posts: 2763
  • NES Junkie
    • View Profile
Re: Emulator feature innovation history?
« Reply #16 on: December 12, 2016, 10:54:24 am »
And how do you think it works internally? (Saving every RAM / register / video buffer change sounds like a tough thing to me...)

It's explained in the threads a linked (someone proposed the idea, and the thread became a breakdown of how it could be implemented)

Short version:

Periodic savestates
+ constant Movie (keystroke) recording

When you rewind, it loads a previous savestate and plays back the movie to the current time, capturing all the audio/video --- and outputting it in reverse order.

BlackDog61

  • Hero Member
  • *****
  • Posts: 784
    • View Profile
    • Super Robot Wars A Portable translation thread
Re: Emulator feature innovation history?
« Reply #17 on: December 12, 2016, 11:35:37 am »
Thanks, Disch and Fast!
I'm surprised "more modern console" emulators can take this... Is there such a feature for a PSP emulator?

shadowmanwkp

  • Full Member
  • ***
  • Posts: 134
    • View Profile
Re: Emulator feature innovation history?
« Reply #18 on: December 13, 2016, 01:52:09 am »
Thanks, Disch and Fast!
I'm surprised "more modern console" emulators can take this... Is there such a feature for a PSP emulator?

Quick google says yes, ppsspp can do periodic save states: https://www.reddit.com/r/PPSSPP/comments/4wuuu0/how_to_use_the_rewind_feature_of_ppsspp/

MisterJones

  • Hero Member
  • *****
  • Posts: 1572
  • :D
    • View Profile
Re: Emulator feature innovation history?
« Reply #19 on: December 13, 2016, 08:53:04 am »
ZSNES features rewind in a more rollback format, where it simply reloads a savestate from like 3 seconds ago. Retroarch (and Im guessing quicknes and co) play the thing backwards.
_-|-_