{"action":"created","issue":{"url":"https://api.github.com/repos/openMSX/openMSX/issues/174","labels_url":"https://api.github.com/repos/openMSX/openMSX/issues/174/labels{/name}","comments_url":"https://api.github.com/repos/openMSX/openMSX/issues/174/comments","events_url":"https://api.github.com/repos/openMSX/openMSX/issues/174/events","html_url":"https://github.com/openMSX/openMSX/issues/174","id":90031384,"number":174,"title":"[Feature] Smooth backward emulation support [sf#150]","user":{"login":"openMSX-import","id":12987176,"avatar_url":"https://avatars.githubusercontent.com/u/12987176?v=3","gravatar_id":"","url":"https://api.github.com/users/openMSX-import","html_url":"https://github.com/openMSX-import","followers_url":"https://api.github.com/users/openMSX-import/followers","following_url":"https://api.github.com/users/openMSX-import/following{/other_user}","gists_url":"https://api.github.com/users/openMSX-import/gists{/gist_id}","starred_url":"https://api.github.com/users/openMSX-import/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openMSX-import/subscriptions","organizations_url":"https://api.github.com/users/openMSX-import/orgs","repos_url":"https://api.github.com/users/openMSX-import/repos","events_url":"https://api.github.com/users/openMSX-import/events{/privacy}","received_events_url":"https://api.github.com/users/openMSX-import/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/openMSX/openMSX/labels/feature%20request","name":"feature request","color":"84b6eb"},{"url":"https://api.github.com/repos/openMSX/openMSX/labels/General/misc","name":"General/misc","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/openMSX/openMSX/milestones/3","html_url":"https://github.com/openMSX/openMSX/milestones/Next_Release","labels_url":"https://api.github.com/repos/openMSX/openMSX/milestones/3/labels","id":1173941,"number":3,"title":"Next_Release","description":"Next Release","creator":{"login":"openMSX-import","id":12987176,"avatar_url":"https://avatars.githubusercontent.com/u/12987176?v=3","gravatar_id":"","url":"https://api.github.com/users/openMSX-import","html_url":"https://github.com/openMSX-import","followers_url":"https://api.github.com/users/openMSX-import/followers","following_url":"https://api.github.com/users/openMSX-import/following{/other_user}","gists_url":"https://api.github.com/users/openMSX-import/gists{/gist_id}","starred_url":"https://api.github.com/users/openMSX-import/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openMSX-import/subscriptions","organizations_url":"https://api.github.com/users/openMSX-import/orgs","repos_url":"https://api.github.com/users/openMSX-import/repos","events_url":"https://api.github.com/users/openMSX-import/events{/privacy}","received_events_url":"https://api.github.com/users/openMSX-import/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":10,"state":"closed","created_at":"2015-06-21T12:56:25Z","updated_at":"2015-06-22T07:35:53Z","due_on":null,"closed_at":"2015-06-21T12:56:25Z"},"comments":1,"created_at":"2015-06-22T07:29:07Z","updated_at":"2015-06-22T07:35:58Z","closed_at":null,"body":"**Reported by manuelbi on 2007-08-20 14:00 UTC**\nIt would be cool and useful to be able to 'roll back' the emulation a few seconds, to correct mistakes.\r\n\r\n\"meisei\" already has this and is open source/freeware:\r\n\r\nhttp://home.planet.nl/~haps/\r\n\r\nThe license permits open source projects to use the code \\(or ideas, I guess\\)."},"comment":{"url":"https://api.github.com/repos/openMSX/openMSX/issues/comments/114028179","html_url":"https://github.com/openMSX/openMSX/issues/174#issuecomment-114028179","issue_url":"https://api.github.com/repos/openMSX/openMSX/issues/174","id":114028179,"user":{"login":"openMSX-import","id":12987176,"avatar_url":"https://avatars.githubusercontent.com/u/12987176?v=3","gravatar_id":"","url":"https://api.github.com/users/openMSX-import","html_url":"https://github.com/openMSX-import","followers_url":"https://api.github.com/users/openMSX-import/followers","following_url":"https://api.github.com/users/openMSX-import/following{/other_user}","gists_url":"https://api.github.com/users/openMSX-import/gists{/gist_id}","starred_url":"https://api.github.com/users/openMSX-import/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openMSX-import/subscriptions","organizations_url":"https://api.github.com/users/openMSX-import/orgs","repos_url":"https://api.github.com/users/openMSX-import/repos","events_url":"https://api.github.com/users/openMSX-import/events{/privacy}","received_events_url":"https://api.github.com/users/openMSX-import/received_events","type":"User","site_admin":false},"created_at":"2015-06-22T07:35:58Z","updated_at":"2015-06-22T07:35:58Z","body":"**Commented by manuelbi on 2009-12-29 21:45 UTC**\nIn the mean time we have functionality to 'reverse', i.e. you can go back to any previous point in time \\(after the reverse start command was given\\). This is not the same, but it's good enough for most purposes.\r\n\r\nThe actual meisei feature is probably what people call 'gold plating'. Although it's quite cool, it's not very useful. So, I'll downgrade the priority of this feature request.\r\n\r\nThe trick that meisei uses:\r\n\\- keep 2 buffers with save states, one with save states every 100 frames and one with 100 consecutive frames\r\n\\- when going backwards, show the frames at the correct framerate by restoring states one frame at a time \\(in the mean time, emulate a new frame in the background to keep the buffer filled\\). Also 'capture' the sound of one frame duration of replay and play that sound backwards during backwards playing\r\n\r\nI hope this is clear :P"}}