Previous Thread
Next Thread
Print Thread
Page 16 of 120 1 2 14 15 16 17 18 119 120
Kale #52652 08/13/09 07:18 PM
Joined: Mar 2001
Posts: 17,217
Likes: 234
R
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,217
Likes: 234
Huh. On my laptop I couldn't see a difference between the "before" and "after" Aerobiz pictures above, but it's very obvious on my desktop (which admittedly has a much higher quality LCD panel). I guess those pictures are useful as a sort of color gamut quick check smile

Kale #52653 08/13/09 07:18 PM
Joined: Feb 2008
Posts: 107
D
Senior Member
Offline
Senior Member
D
Joined: Feb 2008
Posts: 107
Well that's one more reason to try hardware rasterization :P

Joined: Jun 2008
Posts: 205
B
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Looks like you're making exciting progress, congratulations!
Please don't hesitate to ask if you have any questions.

Quote
Oh well, we need a mess vs. bsnes snap comparison before continuing talking all the day about it ;P

Yes, discussed on my forum. Minor regression caused while moving some things for save state support:
src/ppu/ppu-inline.hpp:77:
status.hcounter = 0;
//was status.hcounter = 186;
//which was mis-aligning OAM address reset and such

http://img13.imageshack.us/img13/2981/71901316.png

In the middle of adding a GUI-based debugger, so no new build just yet.

Quote
Color shifting is the first thing that MESS does what other snes emus don't afaik. Ideally if you should do a color conversion to a framebuffer and you can't completely fill that framebuffer, you should fill the remaining data with the most significant bytes of the color offsets.

If you're meaning SNES RGB555->RGB888 bit-extending (10111->10111101 instead of 10111000), I already do that. If you're meaning direct-color mode RGB443->RGB555, then you are incorrect. The low bits are always zero on the real thing.

//palette data = 00000bgr
//tilemap data = BBGGGRRR
//result = 0BBb00GGGg0RRRr0

Verify yourself by placing an all-white sprite on top of the BG layer.

If your goal is to make the output prettier than the real thing, it's a good strategy. I'd also recommend rasterizing mode 7 at 512x448 in that case wink

Now then, if you really want to be the first to do something ... $2100 INIDISP controls the screen brightness. But it is not a linear drop as you go down. In fact, with a brightness of zero the screen is still visible. Max out your TV brightness control and you will see it. The effect can't be simulated in RGB555 colorspace. The actual color adjust occurs on the luma channel upon TV output in YUV format. The exact algorithm is unknown, as it's very hard to measure.

Joined: Mar 2008
Posts: 1,049
Very Senior Member
Offline
Very Senior Member
Joined: Mar 2008
Posts: 1,049
Good!
The Super Mario Kart are now showing the screen!
But i have a problem to report: the other racers are being attracted by mine...
and i can't go forward after this...


"A user interface is like a joke. If you have to explain it, it's not that good."
Joined: Feb 2008
Posts: 107
D
Senior Member
Offline
Senior Member
D
Joined: Feb 2008
Posts: 107
Yup, color depth extension can be tricky - usually due to hardware limitations. On PowerVR twiddled textures will reuse high-order bits but non-twiddled (for example RT stride-type texture) will be zero-padded. Except one-bit channels, those are always properly extended (this only applies to alpha in 1555 mode anyway).

byuu #52661 08/13/09 08:57 PM
Joined: Aug 2009
Posts: 1,251
Likes: 171
Kale Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Aug 2009
Posts: 1,251
Likes: 171
Originally Posted by byuu
If your goal is to make the output prettier than the real thing, it's a good strategy. I'd also recommend rasterizing mode 7 at 512x448 in that case wink

The goal wasn't to do the output prettier, but to do things in line with all the other Arcade/Console HWs that does things like that (yes, it's a guess). If you've done tests on the real HW that says otherwise, then I'll go reverting it. smile

Kale #52662 08/13/09 09:59 PM
Joined: Jun 2008
Posts: 205
B
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Well, I always recommend everyone test on real hardware themselves. The truth is, I've tested thousands upon thousands of things, but I don't always keep documentation for each and every last thing.

I'm quite sure I've tested this, and it's the reason I always use my own custom palettes in mode 3 rather than direct color for my fan translation splash screens. Well, that plus only being able to control the low bit per 8x8 tile makes it extremely useless ...

But without a documented test ROM to prove it, I don't want to tell you with 100% certainty that I am correct here.

The best advice I can give you though, is that 99% of the time, the way you *think* something should logically work, is not the way the SNES actually works :P

byuu #52663 08/13/09 10:12 PM
Joined: Apr 2006
Posts: 737
Likes: 1
Senior Member
Offline
Senior Member
Joined: Apr 2006
Posts: 737
Likes: 1
SVN r5427

Wordtris does not start (no input allowed]

[Linked Image from mameload.mameworld.info]

You get to this screen and you should be able to options with the joypad/arrows or hit START to continue. Neither works and it sits there for a long while before restarting the Title Screen again.




Joined: Dec 2005
Posts: 443
Senior Member
Offline
Senior Member
Joined: Dec 2005
Posts: 443
byuu, how much of a testing battery for things like interrupts and DMA do you still have? I know you've done extensive work on these areas, but it's rather difficult to sort out the "right behavior" from forum posts (and code is notorious for subtle bugs that break things, so an actual test is always better than a source compare)

Joined: Jun 2008
Posts: 205
B
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Quote
He and I both know the guy who programmed that audio driver. The author considers it an ongoing source of lulz that even bsnes sometimes glitches that audio but it's always perfect on real h/w.

I certainly wouldn't be proud of writing such flaky software, but to each their own wink

People tend to think that if something works on one real SNES, that it will work on every real SNES. Not true, those crystal clocks tend to vary per unit, if ever so slightly. I can almost guarantee you that even if it's only on 0.1% of SNES units, that some have problems with these types of games.

Anyway, I'm not aware of any audio glitches in this game. But I do know that we desperately need someone to clock the S-CPU crystal with an oscilloscope. We know that the S-SMP is rated at 24,576,000hz, but really runs at around 24,606,720hz. The S-CPU is rated at 21,477,272hz, but if it actually is off by such a large amount as well, it could very well be the cause of issues in Clayfighters.

If someone can reproduce Clayfighters sound issues, they can try modifying cpu.ntscClockRate in bsnes.cfg. I'm almost certain they could get sound perfected if they find the right value.

Quote
Depending on how it fails, some games seem to want the SPC700's RAM to be initialized on power-up.
Common SNES emulator practice is to flood-fill RAM with bit 5 of the address (but this doesn't fix Panic Bomber World. Already tried it). I believe Overload (of DSP-* fame) discovered that pattern.

I've heard this a lot, and since bsnes started, I've always filled APURAM with 0x00 on power-on. Never had any problems, not even with Bomberman games.

The only game I know that has issues with APURAM initialization is SD Gundam G-NEXT, an SA-1 game. It has some sort of issue if you don't clear certain parts of it on reset. I haven't looked into it much.

Quote
(something about Captain Commando (J) crashing in bsnes)

I can't reproduce that, it runs fine here. Any more details?

Quote
byuu, how much of a testing battery for things like interrupts and DMA do you still have?

I have a few test ROMs that combine a few dozen tests each.

But seriously, you don't want them right now. You will need extremely precise timing for them to work. They will fail if you're off by even a single master clock cycle.

You'll need bus-level (not cycle-level) accuracy, DRAM refresh, (H)DMA/CPU sync, the differences between CPU revisions 1 and 2, every opcode tested to ensure the cycle timing and ordering are correct, full MDR support, etc etc etc perfected before you try them.

At this time, no other emulator can even pass my seek_frame function, which when called, returns with the PPU counters at *exactly* V=0,HC=0 (H=HC/4, by the way. $213c reports the current *dot*, but there are four cycles per dot.)

You guys really need to drop the current CPU approach and go full-on at 21MHz. Be prepared that proper DMA sync timing requires executing the next cycle of the current position, which can be in the middle of two opcodes, and you need to be able to sync up all other processors while a DMA that can be up to ten frames long runs.

I never managed to pull that off flawlessly with state machines, so hopefully you guys are more skilled with those than I am.

I would love it if you guys could catch up, and especially if you guys could start performing your own hardware tests. I desperately need someone else who's really interested in SNES emulation to help motivate-and-work-with me, so we can start making real progress once again laugh

Things have stalled badly since anomie left ...

Page 16 of 120 1 2 14 15 16 17 18 119 120

Link Copied to Clipboard
Who's Online Now
1 members (AJR), 281 guests, and 5 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,944
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com