Originally Posted by etabeta78
could you take a look at snes_update_objects_rto? I cannot see exactly your idea would fit the SNES behavior (which is not something I made up, it's the way byuu describes and implement it, and he ran *a lot* of test on the hw about this flag): the flag can be updated at each scanline, not only when the register is accessed by the snes_io handler. also, notice that snes_oam is going to be a PPU thing only.
maybe we could add an handler which writes back to the register from the PPU, but would the handler be called at the right moment by the video_update?

Well the entire reason I don't use Video Update for anything in Genesis apart from copying a bitmap is so that the sprite collisions flag etc. works as expected. (I'm aware that it makes merging it with S18 harder, but that's tough)

My scanlines are rendered with timers, and to be honest, if you're going to do the brightness trick for that shadow which byuu points out then your only option is going to be using your own timers. Video Update has no concept of partial-scanline updates, and your code would need to at the very least be able to render a partial scanline up to the point where the brightness gets changed. (calculating the time since scanline started based on the timer, thus knowing the point at which the cpu changed the data)

If you've done C64 I'm surprised you don't know this tho? Afaik C64 makes extensive use of mid-scanline updates for some of the demos, which MAME can't handle with partial updates.