Search found 52 matches

by WolfWings
Sun Jan 18, 2009 6:15 am
Forum: ZSNES Talk
Topic: Custom soundtracks replacing SPC music keeping sound FX
Replies: 10
Views: 4444

More explicitly for those that "don't know much about the SPC700" in laymans terms: It's an entire CPU, with an assembly language it's programmed with and the ability to talk with the main CPU on the SNES. It's why SPC files exist, they're emulating the SPC700 from a given fixed state in t...
by WolfWings
Tue Jan 13, 2009 5:43 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Re: Q

Squall_Leonhart wrote:I wonder, if this will benefit LQ2x at all, there are some games where HQ, just doesn't look right...
It may, I haven't looked at LQ at all yet since I'm focussing on the 'hardest to implement fast' filter first.
by WolfWings
Tue Jan 13, 2009 4:52 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

And I had a chance to test my current C code against the existing MMX HQ4x pure-assembly code. I'm not faster. But that's not actually surprising. It clocks in (when handed a slowly mutating input image to vaguely simulate what an average SNES game may throw at it) at 7-8 clock cycles per output pix...
by WolfWings
Mon Jan 12, 2009 5:09 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

On the other hand, since you're reading index out of another table, you could just multiply the entries in the other table by 4 (or maybe not, since you're using the table for multiple filters, some using a different factor, like 16). I'm spoiled by x86 in that regard, power-of-two shifts of indexe...
by WolfWings
Mon Jan 12, 2009 4:57 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Oh yeah, forgot about cache usage. Though for common images like from the SNES, there will only be around 256 distinct colors. If these are spread evenly, then it'll only use 256*cache_line_size bytes of cache. With 32-byte lines, that's 8K. I think it might be higher, like 64 or 128 bytes per line...
by WolfWings
Mon Jan 12, 2009 3:22 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

I notice you're not using the simpler pixel comparison that only involves two table lookups and a few bit operations . Was that slower or not precise enough? That version still requires a conversion from RGB to YUV, which is a 64kb table AFAIK. The technique I'm using currently only takes 512 bytes...
by WolfWings
Mon Jan 12, 2009 7:17 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Fixed the permissions on the file, and I believe I corrected all the errant '7' entries in the main lookup table that needed to be 12's so it should return identical results to HQ4x as well as HQ2x now. I also shoe-horned in the technique to reduce it down to only 4 'full' pixel-difference tests per...
by WolfWings
Sun Jan 11, 2009 9:30 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Woot, progress! Sneaking on between work and bed, but I updated the website with the v0.2 code. It has a mostly-finished HQ4x implementation (I need to hand-edit the table still to move some 7's to 12's before it's pixel-identical to factory HQ4x) and start working out the HQ3x table which will be q...
by WolfWings
Thu Jan 08, 2009 1:08 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Fixed the code, renamed the library, etc. It supports any single fixed resolution when compiled, and properly processes the entire input framebuffer without any speedhit that I've found so far. About half-way done rigging up HQ4x, though I may not finish before I have to go in to work 7 12-hour day...
by WolfWings
Wed Jan 07, 2009 9:30 pm
Forum: bsnes Dev Talk
Topic: bsnes v0.038 released
Replies: 407
Views: 254036

GameBoy I've got no explanation for. It's as trivial to "defeat" as the first-run Genesis. GameBoy was their moment of legal brilliance, basically. The 'protection' in this case was a copyrighted and trademarked logo in bitmap form, so by having that fixed byte sequence in your ROM, you h...
by WolfWings
Wed Jan 07, 2009 8:07 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Looking at the source, I guess this lib is tied to SNES dimensions? Just wondering, since Kega Fusion filters are done with arbitrary resolutions in mind (and the original HQ2X() function had this in mind....) At the moment, yes, it's tied to 256x224. And as I said, it doesn't process edge-of-scree...
by WolfWings
Tue Jan 06, 2009 1:43 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

h4tred wrote:File's 403'd o.o
I was a dumbass and forgot to set the file permissions right when I uploaded the zip file. Fixed now!
by WolfWings
Tue Jan 06, 2009 8:50 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

All thats needed really is a simple function that does the processing to a image buffer. Like what the old HQXX and 2xSai functions do, as well as blargg's nes_ntsc implementations. :) That's easilly provided, and nudged me to more-properly modularize the HQ system now. WolfWings HQ Library WIP v0....
by WolfWings
Mon Jan 05, 2009 6:32 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Well its more the fact VBA-M supports Kega plugins, it was either make it a plugin format so it works in both kega and vba-m, or add it directly into vba-m, which im not sure the licenses would allow... Um... my version's not GPL. It's ISC, as close to public domain as you can get. Add to projects,...
by WolfWings
Mon Jan 05, 2009 5:44 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

this is good work wolfwings, you think it'll work as a kega plugin? Don't know anything about kega plugins, but I've never been that interested in most Genesis games, to be honest, so I have little enthusiasm to convert it for Kega use. I'll assist someone else, but it's unlikely I'll do any heavy ...
by WolfWings
Sun Jan 04, 2009 11:49 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Post deleted, see here for post to re-written HQ-code website.[/url]
by WolfWings
Sun Jan 04, 2009 1:40 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

- Shorter way to mix two pixels, same result: accum = (accum + l - ((accum ^ l) & 0x0421))) >> 1; Didn't know that was any faster, I'll give it a try. - Do you need to use uint16_t for local variables/return values, or would unsigned int suffice? Sometimes compilers generate extra masking when ...
by WolfWings
Sun Jan 04, 2009 9:57 am
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

Not to commit too much thread necromancy...

I feel really bad, I never posted my finalized code, that does HQ2x in (on average) 126-131 clock cycles on my Core 2 Duo per original source pixel, so around 32 clock cycles per output pixel. And, yes, it does fit entirely into L1 cache even back on a 486. 692 bytes of read-only data, ~279 bytes of...
by WolfWings
Wed Dec 31, 2008 9:03 am
Forum: Bug Reports/Feature Requests
Topic: ZSNESW (Windows) fullscreen vertical refresh rate bug
Replies: 42
Views: 19791

LCDs/TFTs will have a hard time with PAL games, unless they can go down to 50 Hz. Actually, it's worse/better than that. A lot of bleeding-edge high-res laptops (including mine, 1920x1200 ThinkPad T61p) actually have the EDID on the LCD screen report back as low as a 40 Hz native video mode. A lot ...
by WolfWings
Sun Sep 03, 2006 5:54 am
Forum: Development
Topic: Another LUT->bit transformation request x.x
Replies: 15
Views: 11639

Bugfix: uint speed(uint addr) { addr |= ((addr & 0x8000) << 7); if((addr & 0xc00000) == 0xc00000) { return fast; } addr |= ((addr - 0x2000) & 0x4000) << 8; if(addr & 0x400000) { return 8; } if((addr & 0x7e00) != 0x4000) { return 6; } return 12; } TRAC's method wins. It's equal t...
by WolfWings
Sat Aug 12, 2006 5:27 am
Forum: Development
Topic: Fast bit mixing algorithm for $2100 brightness emulation
Replies: 18
Views: 18951

Oh, and a final reason you have to turn the brightness up all the way to see 'bright white' at b=0 state: The gamma of the TV. TV's have VERY bad gamma curves, so very dark colours (like 1 versus 0) can require cranking the brightness up enough to get out of the 'black void' state. In fact lots of '...
by WolfWings
Sat Aug 12, 2006 5:19 am
Forum: Development
Topic: Fast bit mixing algorithm for $2100 brightness emulation
Replies: 18
Views: 18951

Um... there are SNES->SCART RGB cables available from Lik-Sang. For $3.

http://www.lik-sang.com/info.php?catego ... cts_id=220
by WolfWings
Fri Aug 11, 2006 4:39 pm
Forum: Development
Topic: Fast bit mixing algorithm for $2100 brightness emulation
Replies: 18
Views: 18951

I do not have an RGB-modded SNES. Nor can I find anything that will display a SCART signal. Nor can I mod an SP/DIF out. These things would be immensely useful to me, but I have no soldering skills whatsoever, so it isn't going to happen, sadly. As long as you have an original-era SNES, the only th...
by WolfWings
Fri Aug 11, 2006 3:55 pm
Forum: Development
Topic: Fast bit mixing algorithm for $2100 brightness emulation
Replies: 18
Views: 18951

The problem is that $2100 = 0 shows a really dark picture. It is definitely not an even scale downwards. I had to turn brightness up to its absolute limit on my TV to just barely see the outline of letters from my test program on the screen. From 0 to 1 causes a huge jump in brightness, and then it...
by WolfWings
Tue Aug 08, 2006 9:25 pm
Forum: Development
Topic: Progress on reducing HQ2x to fit in L1 cache
Replies: 95
Views: 71076

why are you supporting 6 bits of green? The SNES only calculated things at 5 bits of green. :-) And blue and red were reversed from normal PC format. Hmm, good point. But the PPU code of an emulator can produce output in whichever format is easier. It makes sense to produce it in a 565 format which...