Den Thu, 30 Aug 2018 21:56:55 +0100 skrev smf <smf@null.net>: > It wouldn't be directly applicable to vice because (apart from vsp, > which is rare in games) you have to move the data around manually, > there isn't a handy equivalent to PPUSCROLL. It could however be implemented in Amiga emulators. Commodore but not 8-bit :) The trouble is how to know beforehand where the screen starts/stops vertically. Horisontally it's more or less just to have a look at the modulo registers, except that you might get garbage to the left of the "official" screen on the first line and to the right of the last line, and you can't really tell where one line ends and the next starts so you could see some horisontal wrap in the extended screen area. > But you could detect screen scrolling by comparing how the data in > memory is moving around. > > I think he's missing a trick as well. With modern cpus you have > enough spare processing power to save stae, fast forward the > emulation to see what data will scroll on screen & then restore the > state. That gives you a problem for dying, but you can always add > optional cheat codes while it's fast forwarding. One problem is that you won't be able to know how computer generated characters behave if they either have some random element to them or if the player interacts with them in any ways. I think that for a C64 or similar, you'll have to write code specific to every game to make it work perfectly. Otherwise for a game like Boulder Dash you could get the map and the emulator could remember how the map looks like off screen, but not be totally sure what happens with the computer controlled dynamic stuff. For some games, like Scramble type games, the playable area is really wide, so there is a question of how much screen should be displayed. For that kind of game there isn't much reason to show that much either though. -- (\_/) Copy the bunny to your mails to help (O.o) him achieve world domination. (> <) Come join the dark side. /_|_\ We have cookies.Received on 2018-08-31 19:02:03
Archive generated by hypermail 2.2.0.