Giter Site home page Giter Site logo

HD tile replacement about genesis-plus-gx HOT 6 CLOSED

ekeeke avatar ekeeke commented on June 9, 2024
HD tile replacement

from genesis-plus-gx.

Comments (6)

ekeeke avatar ekeeke commented on June 9, 2024

Might be possible although it has never been done with Mega Drive emulation and implementation is specific to each emulated console so it can't be reused from other emulators.

Anyway, that would likely require rewriting a lot of the emulator rendering process, making it less accurate in the end and it's really not something I am interested in.

from genesis-plus-gx.

ADormant avatar ADormant commented on June 9, 2024

@ekeeke The method used in GBE+ doesn't decrease accuracy.

from genesis-plus-gx.

ekeeke avatar ekeeke commented on June 9, 2024

I don't really care, it still requires to break the way the emulator is actually fetching pixels from tiles in VRAM memory and require to increase the number of rendered lines. Also, just because it's something that has been done with basic systems such as GB, NES or SMS does not mean it's as much easy to do with more complex systems, where a higher number of tiles can be used / loaded through the games, as well as being flipped/rotated/etc ... Similarly, for games that do tricky effects by changing stuff mid-line or on a line basis, those fixed HD tiles wouldn't do any good.

It also seems it requires pre-making your own HD tiles for each games specifically and that's not something I'm interested in doing (or even using) since it seems a very painful thing to do, especially with systems such as Mega Drive where games can use a huge amount of tiles, modify them on the fly, etc.

Anyway, I personally like the way older pixel design looked better and feel this HD feature is just some hyped gimmick that only a few people will care about, maybe experiment with it a little to have some fun or show off to their friends then drop out once they realize nobody is making complete tilesets for more games and that it doesn't make those games "better" ;-)

from genesis-plus-gx.

ADormant avatar ADormant commented on June 9, 2024

It also seems it requires pre-making your own HD tiles for each games specifically and that's not something I'm interested in doing (or even using) since it seems a very painful thing to do, especially with systems such as Mega Drive where games can use a huge amount of tiles, modify them on the fly, etc.

Well it's best to leave making custom tiles to end-users if Genesis-Plus-GX will ever get such feature I don't expect you making them yourself.

Perhaps @shonumi can explain in more detail how it works, if it breaks anything and if special effects are doable.

I don't really care, it still requires to break the way the emulator is actually fetching pixels from tiles in VRAM memory and require to increase the number of rendered lines.

Similarly, for games that do tricky effects by changing stuff mid-line or on a line basis, those fixed HD tiles wouldn't do any good.

from genesis-plus-gx.

ekeeke avatar ekeeke commented on June 9, 2024

I am not sure why you keep insisting, I already said I was not interested in modifying the emulator to support this and I really don't need to be lectured how it is done on different systems, I think I understand quite well how this could work and what would be the limitations (at least for tile-based systems and Genesis in particular).

Another thing you don't seem to understand (since you keep quoting or linking random emulator projects as if it was some key piece of information to get things started) is that each emulated hardware is different, i.e Genesis does not work the same as GBA, etc... so the way it is done on other emulated systems is quite (if not completely) irrelevant.

from genesis-plus-gx.

shonumi avatar shonumi commented on June 9, 2024

I'm not going to say much, but I'll just touch upon the method I came up with. Basically, an emulator just hashes any tile it comes across in VRAM, stores it in a list, then continually matches this hash to a separate list of hashes pointing to graphical replacements. It's essentially the 2D version of custom textures in Dolphin or PJ64/Mupen64Plus. That's glossing over a lot of details, but that's the gist of it.

Supporting this feature requires substantial hooks into the emulated video code, "deep hooks" as byuu has called it. It's not something that I would casually add on. If you don't have the framework for it, this feature can become very invasive very quickly. And by far, the biggest factor is maintaining GUI code to extract the tiles.

Personally, I don't thing people should be bothered to replicate what I've done. Every emu-dev should follow whatever course he/she wants. I don't push my method on others, but I don't turn away questions. I'd actually rather have people wait until I can finish publishing my findings (there are a lot of challenges to getting it working just right).

About system complexity, in theory, this method should work on most 2D tile based consoles. Fancy stuff, even the scaling/rotation and alpha-blending on the GBA will work. I can't speak about the Genesis. What I do know won't work are some things that aren't tiles at all (Super Metroid's power bomb, other HDMA effects on the SNES and GBA, and bitmap modes). Performance is also currently an area of struggle.

The theory behind my work isn't set, and it'll evolve later. But anyway, I'm not the pushy type. Let's let this project follow its own course.

from genesis-plus-gx.

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.