Giter VIP home page Giter VIP logo

genesis-plus-gx's People

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

sergiomartin86

genesis-plus-gx's Issues

Expose the overscan option to bizhawk

Note that GameGear games don't need overscan to be enabled, or rather they need it to be disabled because it doesn't make sense for a handheld. So while the option is one for all 3 systems, GG needs to be an exception of some kind and ignore it.

Savestate integrity: SMS background colour incorrect on loadstate

Originally reported by @ScHlAuChi on Discord. There doesn't appear to be a related issue filed upstream, nor in BizHawk's tracker (this core is new after all).

Repro:

  1. Load SMS Asterix and the Secret Mission SHA1:DE6A32A548551553A4B3AE332F4BF98ED22D8AB5 in EmuHawk
    • Also affects the Game Gear port SHA1:8AB4EA406A0503B09C1BD89E3217C5735B36EBED, which will show the incorrect behaviour as early as frame ~50—though I had to hardcode GPGX for GG roms as the core preference wasn't being respected.
  2. Advance to the start of gameplay (frame ~500 if you spam B1 through the menus)
  3. Savestate
  4. Loadstate
  5. Observe sky is lime green instead of blue (if you have "Use custom backdrop color" enabled, it will be magenta or whatever you've set that to be)
    • On the GG port it's olive green, and the custom colour will override that also.

Affects:

Doesn't affect:

Ability to fully freeze memory addresses

Camhack needs the world to remain in the non-runahead state, so all objects need to have their memory values frozen while we're forcing the camera to go to where the character is.

If the character is way ahead, it takes dozens of invisible frames, because in genesis Sonic games we can't just poke camera to jump to where we need it, it has to be moving there gradually or everything breaks.

So while all this is happening, we need to ensure the world remains frozen so the camera doesn't display things in different places by the time it gets there. Then this could be exposed as a gpgx-exclusive lua function.

My idea has always been having internal memory hooks on the addresses we need to freeze, and on every write occurring from the core, we'd write it back to what it's frozen at immediately.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.