how about this one:mudlord wrote:Okay, I'll be nice. For Mr Kitty's sake as well.
![Image](http://img297.imageshack.us/img297/4885/57781135591831tk4.jpg)
how about this one:mudlord wrote:Okay, I'll be nice. For Mr Kitty's sake as well.
Yes. But someone had to preempt him for once.mudlord wrote:Doesn't grinvader eat kittens?Oooh! Breakfast!
Those ones looked diseased.Nach wrote:Yes. But someone had to preempt him for once.mudlord wrote:Doesn't grinvader eat kittens? :oOooh! Breakfast!
Code: Select all
<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
I 100% agree. Way too much stuff these days is either bloated, unoptimized, or both. Like Word 2003. Its utterly insane, same with loads other apps I use daily, like Visual Studio 2008. We really don't need the bloat. I just wish the devs just wake up and do something about it.When CS/programming is taught, the students are never taught to optimize. This is a huge failure since this problem becomes systemic and there are tons of programs produced that could be significantly faster than what was written for it. I could easily point to games being a culprit, but an even more pratical example is the freaking word processor. When you think about load times, you shouldn't be requires to beef up your computer massively just to get Word running better. It makes absolutely no sense to me. Something like Word should load up as fast as Notepad, but that simply is not the case. Maybe it seems that I'm asking for a lot, but considering that it shouldn't consume insane resources or insane CPU just to write up a document. Is that asking too much? I don't think so.
It seems to me that optimization as a final stage will have a better end result faster than optimizing as you go due to code volatility. Maybe it doesn't matter so much with a word processor, but with an emulator, you're trying to duplicate something you're in a constant struggle to understand. If some optimizations have a chance of being scrapped along the way or are going to hinder the author's ability to troubleshoot newly discovered problems, then why bother?mudlord wrote:byuu,
http://mudlord.blogspot.com/2008/08/spe ... arity.html
There's my abbreviated response. I could have expanded a lot more, but I chose not to.
But basically, it shows the gist of what I think about optimization, and what I think of bloat & the relevance of optimization on ultra modern hardware.
Feel free to make a article as a rebuttal. I don't care.
And you'll find that nearly every time that happens, the original poster was suffering some major, irresolvable issue in their game. People suggest bsnes because it's easy. Got a problem? Bsnes probably doesn't have it. People know this by now, they don't have to go check equally uncertain alternatives every time someone moans that all their games are glitching out.AamirM wrote:If you do a simple google search, you'll find that nearly on every forum there will be someone who will sugggest bsnes to play games.
I still feel though optimizing while going along instead of it being at the final stage is okay though. Sure its a choice some people make, but whatever works for them.t seems to me that optimization as a final stage will have a better end result faster than optimizing as you go due to code volatility. Maybe it doesn't matter so much with a word processor, but with an emulator, you're trying to duplicate something you're in a constant struggle to understand. If some optimizations have a chance of being scrapped along the way or are going to hinder the author's ability to troubleshoot newly discovered problems, then why bother?
This one existed purely out of polarities between byuu and I. Honestly, sometimes I wish I wasn't here at this forum, because of all the fights and stuff. As honestly, I hate all the resentment and arguments, as it really gets to me. Sure people will just say "its just the internetz", but to some people, its more than that.I have no idea why these types of threads persist.
Looks good to me, thanks for writing it :)There's my abbreviated response. I could have expanded a lot more, but I chose not to.
All of the niceties (video filters, special chip support, etc) probably aren't helping the perception that it's not meant to compete / replace other emulators ... but I suppose if it increases the number of people testing games, that's probably a good thing.And you'll find that nearly every time that happens, the original poster was suffering some major, irresolvable issue in their game.
That's pretty much my entire point. Get it right first, optimize it later. It's just that "right" to me, for this specific program, means perfect, and that's not possible ;)It seems to me that optimization as a final stage will have a better end result faster than optimizing as you go due to code volatility.
Yes, precisely, a choice. I certainly don't mind if people optimize as they go along.I still feel though optimizing while going along instead of it being at the final stage is okay though. Sure its a choice some people make, but whatever works for them.
The sad part is that I don't really even think we disagree. Like politicians, we just have two ways of saying the same thing.This one existed purely out of polarities between byuu and I.
Not to add insult to injury, but in the interest of fairness -- you were the one who brought this up in the first place :/Honestly, sometimes I wish I wasn't here at this forum, because of all the fights and stuff.
No probs.Looks good to me, thanks for writing it
Yes, and then that leads to all the bickering and stuff. Which isn't nice for both of us, considering we do get along. Its only when the contentious issues start that problems get abound.The sad part is that I don't really even think we disagree. Like politicians, we just have two ways of saying the same thing.
Exactly. If I was paying for a product, I would expect it to run well, and be optimized for such. And the software devs around that charge for bloated POS'es of software really don't deserve the money.Yes, I certainly appreciate optimized code and think it has a lot of value. And in 99.9% of cases, I agree with your approach. I also agree that VS2k8 and Word are ungodly slow, and there's not much excuse for that. Especially considering those products cost money. I hate the fact that even the "runs on legacy hardware" major Linux distros consume all available RAM on my 512MB machines, unless I go with Xfce.
Ah I see...so thats why theres not much commenting in the BSNES source...Still I think code commenting is nothing bad.But I want to do something different: a niche of a niche, I want the code to be self-documenting so that other emulators can implement my findings. And they do, see zones' additions to IRQ timing in SNES9x for but one example. Really, that's my #1 goal -- I'm not worried about speed because I'm not aiming for people to play it. It's just that I kind of need people to in order to find bugs and such.
Sound perfect to me.I agree though that's it getting old. Let's both try to be nice, even if we disagree -- we can at least respect that the other can do whatever he wants with his project and should be able to do without criticism. And if one of us starts bickering here, we'll have FitzRoy delete all of said posts. Sound good?
That same logic applies to Windows Vista too.I'm going to play devil's advocate here. You two love to throw around Word and Visual Studio as your examples of unoptimized, bloated programs. However, do you really know this to be true? With all the features in Visual Studio 2008 and Word, do you really think you could create something better? There's just no backing substance to your claims other than the programs are slow in loading. You have no idea why they are slow nor how they could be improved.
More often than not, there is criteria for bloated software. LikeHowever, do you really know this to be true?
I see a point in Aero, which I think is very important - as the whole desktop environment is hardware accelerated by the video card and it's done really nice, you DON'T have any visual tearing when moving windows, or which is the most important, scrolling. Combining this with ClearType makes life for my eyes much easier (using TN panel)As for the Linux comment I agree. Fluxbox for me works equally well to Xfce.I honestly don't care for looks in GUIs, just functionality. So I really don't see the point in Aero, Compiz Fusion and stuff....
Ah I see...so thats why theres not much commenting in the BSNES source...Still I think code commenting is nothing bad.
Code: Select all
/*****
* One PPU dot = 4 CPU clocks
*
* PPU dots 323 and 327 are 6 CPU clocks long.
* This does not apply to NTSC non-interlace scanline 240 on odd fields. This is
* because the PPU skips one dot to alter the color burst phase of the video signal.
*
* Dot 323 range = { 1292, 1294, 1296 }
* Dot 327 range = { 1310, 1312, 1314 }
*****/
//dram refresh occurs once every scanline
status.dram_refreshed = false;
if(cpu_version == 2) status.dram_refresh_position = 530 + 8 - dma_counter();
//hdma triggers once every visible scanline
status.line_rendered = false;
status.hdma_triggered = (status.vcounter <= (ppu.overscan() == false ? 224 : 239)) ? false : true;
//interlaced even fields have one extra scanline (263+262=525 NTSC, 313+312=625 PAL)
if(ppu.interlace() == true && ppu.field() == 0) status.field_lines++;
//H/DMA pending && DMA inactive?
//.. Run one full CPU cycle
//.. HDMA pending && HDMA enabled ? DMA sync + HDMA run
//.. DMA pending && DMA enabled ? DMA sync + DMA run
//.... HDMA during DMA && HDMA enabled ? DMA sync + HDMA run
//.. Run one bus CPU cycle
//.. CPU sync
/*****
* last_cycle()
*
* Used to test for NMI/IRQ, which can trigger on the edge of every opcode.
* Test one cycle early to simulate two-stage pipeline of x816 CPU.
*
* status.irq_delay is used to simulate hardware delay before interrupts can
* trigger during certain events (immediately after DMA, writes to $4200, etc)
*****/
//initial latch values for $213c/$213d
//[x]0035 : [y]0000 (53.0 -> 212) [lda $2137]
//[x]0038 : [y]0000 (56.5 -> 226) [nop : lda $2137]
add_clocks(186);
Code: Select all
//DMAEN
void sCPU::mmio_w420b(uint8 data) {
for(unsigned i = 0; i < 8; i++) {
channel[i].dma_enabled = data & (1 << i);
}
if(data) status.dma_pending = true;
}
I didn't throw out VS, but I wonder how much stuff has to be loaded so it's happy.. not that it actually matters when time is spent compiling and debugging, that those minor things can be sped up and be helpful is always welcomed.Nightcrawler wrote:I'm going to play devil's advocate here. You two love to throw around Word and Visual Studio as your examples of unoptimized, bloated programs. However, do you really know this to be true? With all the features in Visual Studio 2008 and Word, do you really think you could create something better? There's just no backing substance to your claims other than the programs are slow in loading. You have no idea why they are slow nor how they could be improved.
I guess it depends more on the primary usage of the app. If you only use 10% of an app's features and that app consumes 1GB, you wonder if you spent that space wisely. If the app is like 2MB but its feature filled, noone tends to notice this extra stuff as bloat.I'm not agreeing nor disagreeing with whether or not they are bloated. Just throwing out the fact that these claims seem frivolous to use as supporting evidence of your opinion of poor software design without backing.
Oh, I'm very aware of that.. I'm only referring to a simple "open app" case than a "open huge file" case. It's woefully insufficient but then again, you shouldn't expect to use it for that purpose in the first place...P.S. Notepad is slow as hell to open and do anything with large files. That doesn't win any awards for speed in my book either.