Code Monkey home page Code Monkey logo

Comments (6)

snesrev avatar snesrev commented on June 16, 2024

This will be very hard to do in a non-glitchy way without a big rework. Any idea how bsnes is doing it?

from zelda3.

UltraHDR avatar UltraHDR commented on June 16, 2024

This looks like the bsnes commit DerKoun/bsnes-hd@f4e0df6 and this might help https://github.com/DerKoun/bsnes-hd#widescreen-technical. Given that the source code exists, a mod similar to https://github.com/VitorVilela7/wide-snes would be better . Not saying it'll be an easy task....

from zelda3.

FitzRoyX avatar FitzRoyX commented on June 16, 2024

A somewhat related topic that I won't create a new issue for is expanding vres to 240. SNES overscan masking is mostly a superficial limitation that no longer applies to modern screens. But to retain the ability to compare to rom, it would have to be made an ini option because several parts of the rendering code would have to be adjusted to work with it.

from zelda3.

mvacosta avatar mvacosta commented on June 16, 2024

Been working on an implementation on a fork that might be out of scope for this project. But since the PPU is constrained to the same parameters as the SNES (which I presume is to keep things as accurate as possible), there's a lot of restrictions. The big one being OAM, which restricts X & Y positions to 8-bit values. And since all these values are kept on the RAM to have parity with the SNES, it's not as simple as making X & Y be bigger values.

The approach I took was to completely decouple OAM (and potentially the BGs & Windows) to keep it out of the SNES RAM. That gives OAM the freedom to be able to be expanded (and eventually implement the flags into their own bools, or potentially add new features such as opacity & rotation). This is why I mention it might be out of scope for this project.

It's been a lot of rework but on my fork, I have decoupled OAM and integrated it into the PPU properly. There's bound to be bugs introduced somewhere but it's been pretty stable so far. I've even turned X & Y into uint16s without issue. There's still work to be done in expanding all the truncations in sprite_main.c and such, and a lot of testing to make sure all the sprites appear as expected, hah.

from zelda3.

UltraHDR avatar UltraHDR commented on June 16, 2024

A WIP PR is here #71

from zelda3.

UltraHDR avatar UltraHDR commented on June 16, 2024

Thanks @snesrev for making this the definitive edition!!!

from zelda3.

Related Issues (20)

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.