Why don't we have high-res packs for nes/snes emulators?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Why don't we have high-res packs for nes/snes emulators?
by on (#45035)
I've been thinking about the high res packs for n64 textures, and have thought it would be really cool to have high res packs for nes games. The emulator would emulate the game exactly the same, but the graphics engine would replace the chr on the fly with higher res graphics (like 2x or 4x size or something like that--higher color depth also possibly).

Now there are lots of complications with edited tiles and pallets and stuff like that. I think I have some ideas for some of the complications, but I thought I would just throw this out first.

The main reason I've thought about this is because I've talked to quite a few people who even get into snes games, but they say they can't get into nes games because of the simple graphics. I can't understand that myself, of course, but I thought it would be interesting to have higher res graphics...

by on (#45036)
It could be done, just no one has developed such a thing yet. I've thought about it before but it certainly would require quite a bit of effort to figure out something worth the time and effort.

by on (#45039)
I'd bet 4-bit graphics upgrade packs would be quite feasible for a NES emulator. Hell, I could even add that kind of thing to PocketNES. But that wouldn't increase resolution by anything, just increase the color depth from 2-bit (NES/GBC) to 4-bit (SNES).

by on (#45041)
Yeah color-depth would make more sense, to me anyways. It'd just be matter of replacing each 4 color set with 16 colors. Minor issue would be color-cycling (I guess the original 4 colors would just be left alone and that'd be fine).

I imagine if the resolution would increase, if a game has a lot of graphics, no one is going to sit there and redraw each tile in the game. I wouldn't care much for seeing a bunch of high-res tiles that are just anti-aliased versions of the originals.. Admittedly, this is kind of pessimistic.

by on (#45042)
Allow the newer tiles to be larger than the original tiles :)

by on (#45062)
For CHR ROM games, provide a huge (256 by 512*nChrBanks pixel) PNG image showing the double-size CHR. For CHR RAM games, provide a similar image, along with a table from hashes of 8x8 pixel CHR tiles to bitmap tile numbers. Provide a tool based on Scale2x to generate these images from a given ROM (for CHR ROM games) or from a log of CHR RAM, and then let the artist retouch them.

Palettes can be converted algorithmically from what the emulated CPU writes to VRAM $3F00-$3F1F:

0: still transparent
1-3: orig color 1-3 but darker
4: orig colors 1 and 2 mixed
5-7: orig color 1-3
8: orig colors 2 and 3 mixed
9-11: orig color 1-3 but lighter
12: orig colors 1 and 3 mixed
13-15: either black-gray-white or semitransparent versions of colors 1-3

But then you'll have to change the rendering loop to render 2 lines at once: the top half of a scanline and the bottom half.

by on (#45067)
That's an interesting concept but how many times do you play the HD remake of some classic on the psn/wiiware/xlba network? I don't. Just a personal opinion thought.

Some people will prefer the original one and not compromise (I'm in that camp).

by on (#45072)
Sounds like a job for LUA emulators.

by on (#45076)
That 4bpp NES enhancement idea is an original idea that I made up and I was trying to get to all you people, and did not accept it at all, and then you all now think it is time? It's Confusing me.

by on (#45078)
it's a cool idea.. even more color depth without higher resolution would be fun. kind of like roll your own SMB All Stars

by on (#45082)
Nah, better use the additional resolution of PC and HD monitors for accurate composite video and scanline emulation. ;)

by on (#45083)
You didn't "come up with it". Everyone and their mom has thought of it before Hamtaro. You may have thought you were the first to think of it, but you most certainly were not.

by on (#45091)
It's been done before, but good graphics packs for upscaled games are hard to find.

Here's an example of a SMS emulator with this upscaling feature: http://hisms.orgfree.com/tutorial/index.html

by on (#45102)
If you do this, then for compatibility reasons I would recommend new CHR in the following PPU space below, while PPU Master/Slave select (bit 6) of PPUCTRL ($2000) is enabled:

0000-1fff - 4bpp CHR-ROM/RAM Space 1
4000-5fff - 4bpp CHR-ROM/RAM Space 2

That may be it. Also, The PPU Master/Slave has no effect on the real NES because there is no Slave PPU

by on (#45135)
I thought this was intended as a feature for emulators, not actually to be implemented on the hardware itself. :P

In that case, I'd think that a simple external png, loaded by the emulator, alongside the rom would be sufficient.
The only other problem I can see is where the same tiles are used with different palettes. If that were the case, a possible solution could be to keep a table of known palettes that the game uses, and use that to determine which "extended palette" to use. This would work for color cycling as well. Also, the idea is that the extended palette would be RGB, rather than use the nes's palette.

You would also need to have the original graphics loaded at the same time though, to account for things like sprite 0 hits.

chr-ram games would be much trickier though, especially ones like Battletoads that do parallax scrolling with the bg tiles.

by on (#45136)
It would be simpler to instead of a png use an actual "chr" mini file containing just the thing you want to change. That way pallets dont get in the way.

by on (#45140)
But we also want to increase the color depth. So would that be SMS-format CHR, SNES-format CHR, GBA-format CHR, or Genesis-format CHR?

by on (#45144)
SNES Format, Please.

by on (#45147)
Hamtaro126 wrote:
SNES Format, Please.


Image

by on (#45148)
Fx3 wrote:
*Image (Off Topic)*


Image

Do you want some fries with that?

by on (#45150)
Hamtaro126 wrote:
Fx3 wrote:
*Image (Off Topic)*


*another offtopic image*

Do you want some fries with that?


Heh, go figure. ;)

by on (#45152)
Fx3 wrote:
Hamtaro126 wrote:
Fx3 wrote:
*Image (Off Topic)*


*another offtopic image*

Do you want some fries with that?


Heh, go figure. ;)


Lesson learned for both of us: Never go off topic.

(Now let's go back on topic, shall we?)

by on (#45153)
- You didn't get the idea, but fine. Why a SuperNES gfx compression? I think tepples was kicking the can anyways... :) Isn't easier a big PNG image, much like what Sony did with Rockman Complete Works, in order to convert its graphics from NES to PSX format?

by on (#45156)
Fx3 wrote:
- You didn't get the idea, but fine. Why a SuperNES gfx compression? I think tepples was kicking the can anyways... :)

Yes, it was rhetorical. (What does a game of tag have to do with anything?) But then I was also trying to remember how many 4-bit formats I put into 8TED.

Quote:
Isn't easier a big PNG image, much like what Sony did with Rockman Complete Works, in order to convert its graphics from NES to PSX format?

I imagine that CHR editors are more likely than PNG editors to support assigning different 16-color palettes to different 8x8 pixel areas of an indexed image.

by on (#45157)
- Well, forget it. Completely.

by on (#45203)
I don't know that just png files could be used since you'd want to seperate palettes from the image (I'd assume you'd want to be able to say "if the nes palet is this, use this expanded palette" so that you can have color shifts).

And it wouldnt' be horrible to just increase the resolution but not the color depth. Here is a partially complete example (Mario, hill, & ground edited):

http://img3.imageshack.us/img3/7286/mariofun.png

It would be weird, but still uniquely nes. Hopefully it would be much better if someone had talent. It did show me how long it would take for even a single game to be edited if it took me 45 minutes to edit just a handful of tiles.

by on (#45205)
If I'm not wrong about your PNG, well... such effect is largely used by emulators, as custom video filtering. The idea is something really improved, but the choice of a certain gfx compression (like SNES) is stupid.

by on (#45209)
sevast wrote:
I don't know that just png files could be used since you'd want to seperate palettes from the image (I'd assume you'd want to be able to say "if the nes palet is this, use this expanded palette" so that you can have color shifts).

If I'm not mistaken, the SMS emulator linked to in this thread requires you to play through the games so that it knows all the palettes that are used to display the tiles. Different hi-res version of the tiles must be drawn for each palette used. This sure would take up a lot of space.

by on (#45212)
palette handling is actually a big problem for this i woudl think.. i mean i imagine it's not hard to slap any old png into the emulator and even map existing palettes onto them.. but what about the extra colors.. that seems like it would have to be dealt with on a game by game basis

by on (#45220)
kyuusaku wrote:
Sounds like a job for Lua-enabled emulators.

It's possible, but most definitely not with current ones.

FCEUX uses 256 colors with quite bad resolution:
[img]http://xkeeper.shacknet.nu:5/emu/nes/snaps/Super%20Mario%20Bros.%20(JU)%20(PRG0)%20[!]-143.png[/img]
And that isn't even counting the fact you can't specify a specific color to use in the palette!

In addition, the only way to determine anything is by looking at the screen; you can't read from registers or PPU memory or anything else.

And if that wasn't enough, the only tools you have for drawing are box (not filled), line, and pixel. If you do nothing else, you can draw approximately 5000 pixels ot the screen (much less if you're actually calculating anything).


Also, I came into this thread expecting at least "LEAVE GAMES ALONE" post. I was not disappointed. :roll: