View unanswered posts | View active topics It is currently Mon Dec 09, 2019 8:00 pm



This topic is locked, you cannot edit posts or make further replies.  [ 408 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 17  Next
bsnes v0.038 released 
Author Message
Inmate
User avatar

Joined: Mon Dec 06, 2004 7:47 am
Posts: 1751
Location: WA
Post 
what was ever stopping it from being distributed via torrent?

_________________
Image


Mon Dec 15, 2008 10:17 pm
Profile
Post 
Quote:
I left untranslated strings because of my lack of programming experience. If someone has the knowledge, feel free to modify my locale file.


No problem, I don't expect anyone to use those options anyway. Thank you and everyone else very much for the locales :D

I'm sure it's a pain given how fast I post new releases all the time, heh.

Quote:
what was ever stopping it from being distributed via torrent?


I meant the executable is distributed like uTorrent. Eg on their download page, it's a direct link to an executable. You run it and that's the program. That's what I'm doing now, rather than putting the program inside a ZIP archive.


Mon Dec 15, 2008 10:25 pm
Lurker

Joined: Thu Jul 24, 2008 1:29 pm
Posts: 113
Post 
polish locale
Sorry for using polish file hosting service (to download press POBIERZ PLIK), but rapidshare says file can be downloaded only 10 times (free upload, I don't have any kind of premium account). Gratz and thanks for new version.


Mon Dec 15, 2008 10:28 pm
Profile
Lurker

Joined: Wed Jul 28, 2004 1:35 am
Posts: 128
Post 
sinamas wrote:
If possible, use a single counter and a single "next necessary update count" variable to batch updates. A hierarchical event system may be even better.


When I had to simulate a circuit we were designing in college, I tried to do it with a hierarchal event system. I found it harder to debug, but that may have had more to do with my level of experience and limited time.

What you describe with a single counter and a single "next necessary update count" variable sounds a lot like a delta queue, which could actually be pretty cool.

If you kept a single central counter/clock and event queue, and then a couple accessor methods for adding events based on the clock speed of the source, it should be pretty readable. And most likely very compatible with byuu's current architecture.


Mon Dec 15, 2008 10:33 pm
Profile ICQ YIM
Post 
Quote:
Ugh, those games have horrible Huffman tables.

If you have the time, could you explain to me what a "huffman table" is?


Mon Dec 15, 2008 11:00 pm
Seen it all
User avatar

Joined: Mon Jan 03, 2005 5:04 pm
Posts: 2302
Location: Germany
Post 
diminish wrote:
Sorry for using polish file hosting service (to download press POBIERZ PLIK), but rapidshare says file can be downloaded only 10 times (free upload, I don't have any kind of premium account).

Rapidshare has a free account system - go to "Free Zone" | "Collector's Zone Login". Once logged in you can also manage the files you have uploaded.

@byuu:
Maybe bsnes is small enough (455 KB when compressed with WinRAR) to not invoke a download delay counter...

_________________
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list


Mon Dec 15, 2008 11:12 pm
Profile WWW
ZSNES Developer
ZSNES Developer
User avatar

Joined: Tue Jul 27, 2004 10:54 pm
Posts: 3902
Location: Solar powered park bench
Post 
Code:
#define forever for(;;)

...

forever
{
  do_stuff();
}


Don't limit yourself to the language you're using.

_________________
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding


Mon Dec 15, 2008 11:51 pm
Profile WWW
Post 
Quote:
If you have the time, could you explain to me what a "huffman table" is?


http://en.wikipedia.org/wiki/Huffman_coding

That article should explain the concept of Huffman encoding nicely, as well as Huffman trees.


Mon Dec 15, 2008 11:57 pm
Post 
Quote:
Yeah, we really don't have a sweet spot between portability, compatibility and speed right now. 9x uses an older opcode-based model, ZSNES uses x86 assembler and SNESGT is closed source.

I'd really like to team up with some other people (maybe AamirM? ;) and work on something like that once I finish the cycle renderer. Would be fun working in a group via SVN or something.


That certainly ain't a bad idea. hiro, nall and ruby are certainly nice libraries, and it would be very nice to see something like SNESGT, but with it being open source for the Linux/MacOSX people. To be quite honest, if I decide (and if I am motivated), to get back into emu stuff, I might help you guys out :).

PS: Sorry for not being my chirpy, and pleasant self lately :(. I didn't mean to turn into such a big asshole. Looking back, I feel absolutely terrible how I acted, and I guess I will take Aamir's advice and give peace a chance.


Tue Dec 16, 2008 12:06 am
Post 
Quote:
When I had to simulate a circuit we were designing in college, I tried to do it with a hierarchal event system.

What you describe with a single counter and a single "next necessary update count" variable sounds a lot like a delta queue, which could actually be pretty cool.

If you kept a single central counter/clock and event queue, and then a couple accessor methods for adding events based on the clock speed of the source, it should be pretty readable.


I have no idea what you're talking about, but delta queue sounds badass. Care to elaborate, or are you going to make me use a search engine? ;_;

Quote:
If you have the time, could you explain to me what a "huffman table" is?


How the script in the game is encoded. See h4tred's link.

Quote:
Maybe bsnes is small enough (455 KB when compressed with WinRAR) to not invoke a download delay counter...


Yuck. I'd rather host it locally than send people to an ad farm. I'll buy the bandwidth if I need it.

Quote:
To be quite honest, if I decide (and if I am motivated), to get back into emu stuff, I might help you guys out


Sounds awesome to me. The more, the merrier. Plus you can't complain about if you worked on it :P

Man, I wish I wasn't so busy with all the bsnes stuff and the upcoming FEoEZ translation ... it'd be so much fun to start on this right now, heh.

Quote:
That certainly ain't a bad idea. hiro, nall and ruby are certainly nice libraries


I'm a big fan of ruby and nall, but hiro's extremely limited. Qt would've been so much better, if only it were licensed under the LGPL.

Quote:
PS: Sorry for not being my chirpy, and pleasant self lately


I'm used to it </rimshot> :P
Nah, you had me riled up and acting the same way, sadly. Lesson learned.

Seriously, I completely respect your opinion to disagree. Just please don't bring it up on these two specific boards. It forces me to respond, and that just creates all kinds of unnecessary drama that I want to avoid.


Tue Dec 16, 2008 1:47 am
Veteran
User avatar

Joined: Thu Feb 03, 2005 8:18 pm
Posts: 768
Post 
byuu wrote:
Yuck. I'd rather host it locally than send people to an ad farm. I'll buy the bandwidth if I need it.


http://aws.amazon.com/s3/
http://jungledisk.com/

I've been using Jungle Disk (which uses Amazon S3) for backup and shared drive, and I like it pretty well. Reliable file serving, only pay for what you use, and no limit.

_________________
Official ZSNES Docs | NSRT Guide | Using a Wiimote w/ emulators


Tue Dec 16, 2008 2:04 am
Profile WWW
Seen it all
User avatar

Joined: Mon Jan 03, 2005 5:04 pm
Posts: 2302
Location: Germany
Post 
I didn't notice any advertising on rapidshare, just counters. Meh.

_________________
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list


Tue Dec 16, 2008 2:09 am
Profile WWW
Regular
User avatar

Joined: Tue Mar 07, 2006 10:32 am
Posts: 347
Location: The Netherlands
Post 
byuu wrote:
I have no idea what you're talking about, but delta queue sounds badass. Care to elaborate, or are you going to make me use a search engine? ;_;

I didn't either, but it was actually very easy to find: http://compilers.cs.ucla.edu/avrora/api/current/avrora/sim/clock/DeltaQueue.html

Completely off-topic, but maybe you guys can help me with this. I'm trying to do something like the following:
(x-a)³ = (x³ - 3ax² + 3a²x - a³)
However, the moment I do this the compiler completely explodes.


Last edited by Verdauga Greeneyes on Wed Dec 17, 2008 2:43 am, edited 2 times in total.



Tue Dec 16, 2008 2:11 am
Profile
Post 
Quote:
I didn't either, but it was actually very easy to find:


Oh wow, yeah. That's actually exactly what my CPU core needs.

I currently schedule IRQ and NMI hold delays, but I will also need to schedule ALU events, joypad polling steps, etc in the future.

If I'm able to compact the IRQ and NMI to a single test, then it'll actually be faster, despite testing even more things.

If it weren't such an amazing PITA to calculate how many cycles in the future were needed to trigger a given IRQ, and for all the crazy edge cases and race conditions, that would be a great way to implement range testing, too. I've tried doing that in the past, sans the delta queue part.

Way cool, thanks.

Quote:
Completely off-topic, but maybe you guys can help me with this. I'm trying to do something like the following:
(x-a)³ = (x³ - 3ax² + 3a²x - 3a³)


o.O

Never seen an algebraic transformation like that before -- almost looks like the crap the FOIL method spits out.

... you want help implementing the math algorithm ... or?


Tue Dec 16, 2008 3:52 am
Regular
User avatar

Joined: Tue Mar 07, 2006 10:32 am
Posts: 347
Location: The Netherlands
Post 
byuu wrote:
Quote:
(x-a)³ = (x³ - 3ax² + 3a²x - a³)


o.O

Never seen an algebraic transformation like that before -- almost looks like the crap the FOIL method spits out.


Really? (x-a)³ = (x-a)*(x² - 2ax + a²) = (x³ - 3ax² + 3a²x - a³)
I need it so I can split the a from the x. Anyway I've implemented the maths, but I'm still working on my problem.

Good grief. Okay, whatever the problem is, it's caused by Direct3D9's CreateDevice. It returns successfully so I don't know what's going on, but in a greatly reduced testcase I was able to observe that (x-a)³ and (x³ - 3ax² + 3a²x - 3a³) are equivalent (as they should be) when I leave the call out.

Here is the call in question:
Code:
memset(&presentation, 0, sizeof(presentation));
presentation.SwapEffect           = D3DSWAPEFFECT_FLIP;
presentation.hDeviceWindow        = (HWND)param;
presentation.Windowed             = true;
presentation.Flags                = D3DPRESENTFLAG_VIDEO;
presentation.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (HWND)param, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &presentation, &device);

I don't think I'm doing anything strange there - param is the client rect hwnd and rendering seems to work fine.

I've fully reinstalled MinGW and gotten the latest DirectX SDK - no luck.


Last edited by Verdauga Greeneyes on Wed Dec 17, 2008 2:42 am, edited 1 time in total.



Tue Dec 16, 2008 4:58 am
Profile
ZSNES Developer
ZSNES Developer

Joined: Thu Jul 29, 2004 9:51 pm
Posts: 115
Location: Germany
Post 
Verdauga Greeneyes wrote:
byuu wrote:
Quote:
(x-a)³ = (x³ - 3ax² + 3a²x - 3a³)


o.O

Never seen an algebraic transformation like that before -- almost looks like the crap the FOIL method spits out.


Really? (x-a)³ = (x-a)*(x² - 2ax + a²) = (x³ - 3ax² + 3a²x - 3a³)
I need it so I can split the a from the x. Anyway I've implemented the maths, but I'm still working on my problem.

Good grief. Okay, whatever the problem is, it's caused by Direct3D9's CreateDevice. It returns successfully so I don't know what's going on, but in a greatly reduced testcase I was able to observe that (x-a)³ and (x³ - 3ax² + 3a²x - 3a³) are equivalent (as they should be) when I leave the call out.

Here is the call in question:
Code:
d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (HWND)param, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &presentation, &device);

I don't think I'm doing anything strange there - param is the client rect hwnd and rendering seems to work fine.

I've fully reinstalled MinGW and gotten the latest DirectX SDK - no luck.

It might help to replace the call with that:
Code:
d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (HWND)param, D3DCREATE_FPU_PRESERVE | D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &presentation, &device);


Tue Dec 16, 2008 5:24 am
Profile
Regular
User avatar

Joined: Tue Mar 07, 2006 10:32 am
Posts: 347
Location: The Netherlands
Post 
Jonas Quinn wrote:
It might help to replace the call with that:
Code:
d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (HWND)param, D3DCREATE_FPU_PRESERVE | D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &presentation, &device);


Wow, you're absolutely right. Now that's something I never would have found out on my own. For the record, without that flag it also fails on MSVC. Thanks a million!


Tue Dec 16, 2008 5:31 am
Profile
Lurker

Joined: Tue Apr 10, 2007 4:30 pm
Posts: 152
Location: Sweden
Post 
I have a wild guess why the performance hit exists. Cpu instruction caches. It might possibly have been short enough to fit in one transfer or something like that. But yeah, I am just guessing here.


Tue Dec 16, 2008 2:24 pm
Profile WWW
Gecko snack

Joined: Sun Aug 21, 2005 11:06 am
Posts: 2372
Location: Australia, QLD
Post 
Would the memory controller being integrated into the CPU chip affect it at all? the new i7 Intel CPU's and most of AMD's do that.

_________________
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64


Tue Dec 16, 2008 2:48 pm
Profile WWW
Regular
User avatar

Joined: Tue Mar 07, 2006 10:32 am
Posts: 347
Location: The Netherlands
Post 
By the way, for those of you who might be interested in the details of my problem, Direct3D was forcing my calculations into single precision and I was doing a summation that really needed double. I could have mitigated the effects of this with Kahan Summation, had I known of its existence at the time - but of course finding an actual solution is even better.

Edit: actually I just tried it, and even using Kahan Summation it completely fails. So yeah, I don't know what's up with this flag or the behaviour without it, but I guess I'm using it.


Tue Dec 16, 2008 6:21 pm
Profile
ZSNES Shake Shake Prinny
User avatar

Joined: Wed Jul 28, 2004 4:15 pm
Posts: 5615
Location: PAL50, dood !
Post 
Jonas has a gift for that kind of stuff


he is a great voodoo expert

_________________
皆黙って俺について来い!!
Code:
<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)

Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54


Tue Dec 16, 2008 8:48 pm
Profile
Trooper
User avatar

Joined: Tue Apr 19, 2005 11:08 pm
Posts: 376
Location: DFW area, TX USA
Post 
byuu, if you'd like an extra mirror to host the bsnes file, I can host it on my site. I pay for my site so there are no ads, and I have plenty of bandwidth per month.

Anyway, just want to say the new version works great on my Q6600 system. I did some testing and the speed hit was about 8%, though the lowest FPS was still well above 90, so I'm well in the clear of the 60 minimum I like to have.


Tue Dec 16, 2008 9:12 pm
Profile WWW
Post 
Quote:
byuu, if you'd like an extra mirror to host the bsnes file, I can host it on my site. I pay for my site so there are no ads, and I have plenty of bandwidth per month.


I should be okay, my site only draws ~10% of cinnamonpirate's traffic. The main limitation of my site is space, not bandwidth.

tukuyomi has a great archive that goes back pretty far. I used to have older ones all the way back to v002, but like an idiot I formatted the drive they were on by mistake.

Quote:
I did some testing and the speed hit was about 8%, though the lowest FPS was still well above 90, so I'm well in the clear of the 60 minimum I like to have.


Darn, only 90. At least v036 or so's S-DSP state machine approach boosted it 10% before this hit; so we're back to the same performance as then. And hopefully the delta queue method will pan out for some extra speed.


Tue Dec 16, 2008 10:09 pm
New Member

Joined: Mon Feb 25, 2008 5:21 am
Posts: 9
Post 
byuu wrote:
I'm a big fan of ruby and nall, but hiro's extremely limited. Qt would've been so much better, if only it were licensed under the LGPL.

One thing that a lot of people overlook about Qt's open-source license is that it has an exception:
http://doc.trolltech.com/4.4/license-gp ... tions.html

So, if I'm reading it correctly, Qt-based open-source software can use a non-GPL license just as long as it's one of the licenses listed there. So you probably can't use a custom license, but at the very least it doesn't have to be GPL.


Wed Dec 17, 2008 12:01 am
Profile
"God"

Joined: Tue Jul 27, 2004 11:24 pm
Posts: 1128
Post 
should it not be

(x-a)³ = (x³ - 3ax² + 3a²x - a³)

_________________
Does [Kevin] Smith masturbate with steel wool too?

- Yes, but don’t change the subject.


Wed Dec 17, 2008 12:02 am
Profile
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 408 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 17  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.