bsnes v0.037a released

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
wertigon
Rookie
Posts: 46
Joined: Sat Aug 07, 2004 7:20 pm

Post by wertigon »

byuu wrote:Also added a new path selector for where you want all data files to go. This will include WAV files, screenshots in the future, tracelogs and memory export data. No, I'm not making 30 paths so you can separate your WAV files from screenshots, sorry.
If you're going down this route, atleast be kind enough to create subfolders automaticly (One for images, one for sounds etc). Takes about 20 seconds total and helps everyone tremendously. :3
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

henke37 wrote:It is basic computer security, don't let the users do stuff they have no need to do. Take vista for example, no normal user is allowed to write to the programs folder, because that should only happen during program installation.
That's a bit overzealous for me, I move things to my program folder all the time, overwrite executables with different ones, etc. It's not like they're system files, I put them there. There's no reason Vista should be extending admin lockout to this folder by default.

But anyways, bsnes doesn't have an installer/uninstaller, so it leaves remnants of itself upon deletion. Nor does it create unique cfgs for each version, so operating multiple versions under this system is impossible. If that's by the book, it needs a new chapter.
byuu

Post by byuu »

FitzRoy wrote:Lastly, before I collapse into bed, I got an e-mail out of the blue a few days ago after being put on a waiting list for SWC DX2 availability last year. He says he has one now for $150. Let me know if you're interested, I'll PM you his e-mail.
Too bad I missed this. I just spent my $150 on a new processor.
I really do want a working NTSC SWC DX2, but I unfortunately don't have the money right now D:
wertigon wrote:If you're going down this route, atleast be kind enough to create subfolders automaticly
I prefer if the default uses the current path for everything, as is the case now. Also, that doesn't work well for Linux. I'd have to default all the paths to a users' home folder. Given people don't like the config file there, I can only imagine the ensuing chaos of putting everything there ...
FitzRoy wrote:That's a bit overzealous for me, I move things to my program folder all the time, overwrite executables with different ones, etc. It's not like they're system files, I put them there. There's no reason Vista should be extending admin lockout to this folder by default.
Linux, Linux, Linux :P
I like consistency between ports.
FitzRoy wrote:But anyways, bsnes doesn't have an installer/uninstaller, so it leaves remnants of itself upon deletion. Nor does it create unique cfgs for each version, so operating multiple versions under this system is impossible. If that's by the book, it needs a new chapter.
Keeping the config file between versions is much better than making them incompatible. See ZSNES+PSR.

If we make an important change, all we have to do is change the name of the variable (eg snes.smp_ntsc_rate -> snes.ntsc_smp_rate or whatever), and it will automatically be set to the emulator default.

----------

Would be cool if you were a programmer, I could just give you the reigns of the Windows port :P
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

byuu wrote:Linux, Linux, Linux :P
I like consistency between ports.
But let's face it, Linux isn't even consistent with itself :P

On a more serious note, why not put a version string in the config file? Then you don't have to rename any variables, you can just make bsnes enforce a minimum version number. You could simply use the bsnes version numbering system for that, but only update it on major changes.
DataPath
Lurker
Posts: 128
Joined: Wed Jul 28, 2004 1:35 am
Contact:

bsnes windows installer

Post by DataPath »

byuu, would you be interested in a windows installer for bsnes?

Wrap everything up nice in a little windows installer package, create a start menu shortcut, and lets people uninstall it from the windows Add/Remove programs tool?
_willow_
Hazed
Posts: 51
Joined: Mon Dec 24, 2007 2:03 am
Location: Russia
Contact:

Post by _willow_ »

Please Please do not pack the goods into installer c**p [garbage] :(
Let it remain clean.
[url=http://quake2xp.quakedev.com]quake2xp[/url] audio engineer
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

Just do it like the pros and ship with and without an installer, now everybody is happy.
[Imagine a picture of people singing and dancing here]
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: Too bad I missed this. I just spent my $150 on a new processor.
I really do want a working NTSC SWC DX2, but I unfortunately don't have the money right now D:
I would've still gotten it myself because I'm in the market for a copier, but it's pretty steep compared to the UFO he had and of no advantage to me. So I got the UFO, which I've owned before. The flash cart is a million times faster to dump with, but a bug in the dumping software makes it incapable of dumping games with colons or slashes in the internal header. It also transfers via a legacy port that my new motherboard doesn't have, and LPT1>usb adapters may not work for this device.
Would be cool if you were a programmer, I could just give you the reigns of the Windows port :P
Would be cool if I was lord of the universe. I've thought about getting into programming... I've always wanted to create a rom management program because I hate working with the ones that exist. I doubt I have the time to get to your level and create an emulator.

But I foresee myself getting livid with OS-end issues I can do nothing about. I'm also nitpicky about other things. For example, I get bothered by things most people don't care about, like inconsistent or nonsensical constructions in the languages themselves. Take A HREF for instance. What does A have to do with hyperlinks? Why not LINK REFERENCE? Why abbreviate IMAGE to IMG and SOURCE to SRC? TABLE isn't. BODY isn't. Learning the language could have been made much simpler by doing away with this randomness and utilizing existing memories as much as possible. I'm sure the savants who constructed the higher level languages took chainsaws to every short word they could find.

I'm just turning into a huge non-conformist these days when it comes to systems we've adopted from god-knows-who and done nothing to improve upon. The phonetic orthography of English is a disaster.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

Yup, things does get messy when they gradually evolve. Look at how actionscript evolved. It was such a mess that they really did scrap (kinda) the full thing and remade it from scratch, and much faster this time.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:Why not LINK REFERENCE? Why abbreviate IMAGE to IMG and SOURCE to SRC? TABLE isn't. BODY isn't. Learning the language could have been made much simpler by doing away with this randomness and utilizing existing memories as much as possible. I'm sure the savants who constructed the higher level languages took chainsaws to every short word they could find.
While I agree with you to an extent, it generally gets very annoying to work with code that has massive variable names. (they make it harder to see the algorithm as a whole: lines get too long, and when line wrap rules are in effect it's even worse) On the other hand you still want them to -mean- something; using A and B and X and Y works to an extent, but can be very difficult to understand for someone seeing the code for the first time (even with explanations above the function, which also lead to excessive commentary)

The people who designed these languages were most likely long-time programmers, and old habits die hard. For web-based languages they also had to take into account the fact that smaller pages are quicker to send - not a real problem nowadays, but with the languages already in such wide-spread use..

PS: besides, if programming languages looked like normal languages, programming wouldn't look impressive :P
odditude
Official tech support dood
Posts: 2118
Joined: Wed Jan 25, 2006 7:57 am

Post by odditude »

Verdauga Greeneyes wrote:
FitzRoy wrote:Why not LINK REFERENCE? Why abbreviate IMAGE to IMG and SOURCE to SRC? TABLE isn't. BODY isn't. Learning the language could have been made much simpler by doing away with this randomness and utilizing existing memories as much as possible. I'm sure the savants who constructed the higher level languages took chainsaws to every short word they could find.
While I agree with you to an extent, it generally gets very annoying to work with code that has massive variable names. (they make it harder to see the algorithm as a whole: lines get too long, and when line wrap rules are in effect it's even worse) On the other hand you still want them to -mean- something; using A and B and X and Y works to an extent, but can be very difficult to understand for someone seeing the code for the first time (even with explanations above the function, which also lead to excessive commentary)

The people who designed these languages were most likely long-time programmers, and old habits die hard. For web-based languages they also had to take into account the fact that smaller pages are quicker to send - not a real problem nowadays, but with the languages already in such wide-spread use..

PS: besides, if programming languages looked like normal languages, programming wouldn't look impressive :P
not to mention that especially in the earlier days of the intarwebs, shaving bytes off your HTML was a huge thing. shorter tags, hell yeah!
Why yes, my shift key *IS* broken.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

odditude wrote:not to mention that especially in the earlier days of the intarwebs, shaving bytes off your HTML was a huge thing. shorter tags, hell yeah!
I did mention that :P But yeah, what was that 'sport' called again? The only thing I remember is that you were supposed to keep your lines within a 256 character limit (or 255 to include a null?) because browsers tended to use 256 character buffers and would choke (well, slow down at least) on longer lines. Other than that they strongly discouraged the added cost of line breaks.
byuu

Post by byuu »

Went to World Market for the first time finally. Got some Julmust and Dubbel Zout Salmiakki.

The Julmust is fucking awesome. It's basically hops flavored Coke. I wish I could buy this stuff year-round.

The double-salt salmiakki ... wow. The first piece was similar to what I imagine drowning in the Atlantic Ocean would be like. But ... it grows on you pretty quickly. Oddly enough, the Ammonium Chloride in it seems to cause at least a psychosomatic mood lift effect.

Bastard co-workers won't even try a piece D:<

If "Ammonium Chloride" scares you -- not to worry. It's just a mixture of Hydrogen Chloride and Ammonium ;)

I'll have to try and make some home-made Salmiakki Koskenkorva with some Absolut sometime.
On a more serious note, why not put a version string in the config file?
If an entirely new version of the config file is needed, I would take this route, yes.
byuu, would you be interested in a windows installer for bsnes?
I'm not personally interested in making / hosting one, but if other people want one I certainly don't mind if one is made. I do want to make a .deb Linux binary package at some point.

Speaking of which -- a recent idea: since bsnes uses UPX anyway, and the only other files are the readme texts ... what if I stuck those inside the emu under the "Misc" menu, and distributed bsnes as a direct executable, rather than as a ZIP file? Would people like that more or less?
It also transfers via a legacy port that my new motherboard doesn't have, and LPT1>usb adapters may not work for this device.
I bought a cheap PCI add-on card for serial ports. Though the USB one works great, too. I like the USB one more, it turns blargg's SNES<>serial interface into a SNES<>USB interface :D
I doubt I have the time to get to your level and create an emulator.
It'd be for editing the GUI, which would be substantially easier.

Writing an entire emulator is certainly not for everyone. Most importantly, you need lots and lots of patience. Even after a half-decade of programming daily, you need the patience to work on an app that only shows a black screen for a solid three to six months.

Once you get your first game running a bit, no matter how broken it is overall, it's all downhill from there. For me, that was with Super Valis IV with no BG SC region support ("corrupted" backgrounds.)
h4tred

Post by h4tred »

since bsnes uses UPX anyway, and the only other files are the readme texts ... what if I stuck those inside the emu under the "Misc" menu, and distributed bsnes as a direct executable, rather than as a ZIP file? Would people like that more or less?
Thats something I can actually agree with you on.

Another thing, try upx with the --lzma command line parameter.
byuu

Post by byuu »

Another thing, try upx with the --lzma command line parameter
Thanks, I'll try it. Always thought -9 was the best you could do, but that looks to be incorrect.

Also, the manual at http://linux.die.net/man/1/upx advises:
Info: the option --brute is an abbrevation for the options --best --all-methods --all-filters --crp-ms=999999.

I'll try that, too.
Jipcy
Veteran
Posts: 768
Joined: Thu Feb 03, 2005 8:18 pm
Contact:

Post by Jipcy »

byuu wrote:Speaking of which -- a recent idea: since bsnes uses UPX anyway, and the only other files are the readme texts ... what if I stuck those inside the emu under the "Misc" menu, and distributed bsnes as a direct executable, rather than as a ZIP file? Would people like that more or less?
Can you make them auto-generate on first-run like the config file?

Either way, that sounds find to me. And if you start using -brute with upx, well then smaller downloads all around, right?
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

byuu wrote:If "Ammonium Chloride" scares you -- not to worry. It's just a mixture of Hydrogen Chloride and Ammonium ;)
Err... what you do with your food is not my concern, but I doubt you should advertise it like that.
Little primer. It's good for plants as a long-lasting fertilizer, but it's completely useless for animals - seeing as it's a primary toxic waste, and not used for anything.
And smells like crap, honestly.

But hey, it's your kidneys, not mine.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Fras
Hazed
Posts: 54
Joined: Tue Jan 16, 2007 5:32 pm

Post by Fras »

byuu wrote:I wish I could buy this stuff year-round.
After a whole month with julmust being almost the only thing one drinks here, one can get a little tired on it. If not, then there's påskmust(essentially the same thing...) in the easter. >_>"
Tallgeese
Justice is Blind
Posts: 620
Joined: Wed Jul 28, 2004 3:33 pm
Location: Test
Contact:

Post by Tallgeese »

Well, if I'm not mistaken... chemically it is possible to mix a poisonous thing with another thing, and the result is non-poisonous. Table salt anyone?
byuu

Post by byuu »

Can you make them auto-generate on first-run like the config file?
I could, sure. Don't see the point if they're accessible from the menu, though. Seems like a better place for them.
Little primer ... But hey, it's your kidneys, not mine.
The combination is supposedly safe. Given the Finns eat the stuff all the time. In fact, they use AC for some kidney diuresis thing or something.

Not like it really matters, I'm not a big fan of the stuff so far.
After a whole month with julmust being almost the only thing one drinks here, one can get a little tired on it. If not, then there's påskmust(essentially the same thing...) in the easter. >_>"
Do they make you drink it there? o.O
I figure it'd be like Egg Nog or Coke, just get it when you're in the mood. Hmm ...
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

I like the idea of putting the readme and license into the program. I take it that will change "About..." to more of a notepad-like program window with everything in the readme displayed. And License would be an entry. If you do it in a program window, you might be able to make the links clickable, which would be cool.

I think this less obvious location for the readme information makes me not like "Misc" as much. I think you should put things like the debugger and wav logger into a "Tools" section and put the other stuff into "Help".
byuu

Post by byuu »

Okay, looks like upx --lzma only tests one mode. So upx --brute is best for testing all 36 methods and choosing the best. Results:

Code: Select all

~\bsnes_v037_wip06>upx -9 bs1.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2008
UPX 3.03w       Markus Oberhumer, Laszlo Molnar & John Reiser   Apr 27th 2008

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1063936 ->    348160   32.72%    win32/pe     bs1.exe

Packed 1 file.

~\bsnes_v037_wip06>upx --brute bs2.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2008
UPX 3.03w       Markus Oberhumer, Laszlo Molnar & John Reiser   Apr 27th 2008

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1063936 ->    306688   28.83%    win32/pe     bs2.exe

Packed 1 file.
ZIP: 378 KB (387,620 bytes)
I take it that will change "About..." to more of a notepad-like program window with everything in the readme displayed. And License would be an entry. If you do it in a program window, you might be able to make the links clickable, which would be cool.
Yes, exactly. Though a hyperlink inside of an standard editbox wouldn't be possible. For that, I'd have to make something fancy like an HTML viewer widget -- and that could get really tough.

The blocking feature here would be hiro's font support. I'd want to create a monospace font (for the === separators) and size the window for 80xNN vertical-scroll only. I need that anyway for the debugger stuff I'm starting on.

Could always use all-caps for the section names, too. Then just use the normal font.
I think this less obvious location for the readme information makes me not like "Misc" as much. I think you should put things like the debugger and wav logger into a "Tools" section and put the other stuff into "Help".
The only "tools" would be "Log audio data" and "Capture screenshot" ... doesn't make much sense to have a whole top-level menu option for that. How about we relegate those options to keyboard bindings? We can make it one of the input config UI groupings: "General", "Tools" and "Debugger". Not like that many people are going to take screenshots anyway.

Then we can have:
Help >
- Readme / Documentation
- License
- <separator>
- About ... (keeping this as I'd like to put some artwork on here one day)
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

Metatron wrote:Well, if I'm not mistaken... chemically it is possible to mix a poisonous thing with another thing, and the result is non-poisonous. Table salt anyone?
Salts aren't any less toxic than their components. Why ? Because they dissociate in water (and saliva is largely made of it).
Now, what ARE the components of table salt ? Sodium ION and Chloride ION (plus others like iodine - still ionic - depending the origin/processing of that salt). NOT the elements, the ions. I'm not gonna explain the differences here, but they are many and major.

As a matter of fact, you can't live without sodium or chloride (and many, many other) ions.
But you can live just fine without ammonium. It's not used for anything and is a byproduct of cellular activity, is transformed by your kidneys into urea then excreted. Eating it increases their workload. Eating too much overloads them and you end up happy dialysis kidney failure yay fun times.

Of course 'too much' is a specific amount for the average adult human being, you can probably find it somewhere on the extarbutts. Also everything has a 'too much' limit over which it stops being good, but ammonium's limit for that is ZERO. It's never good.

Anyway, I'm all for enjoying stuff in life and eating various horrors in the process, but you don't see me advertising it without pointing out the (arguably) fun consequences, if ever.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: Yes, exactly. Though a hyperlink inside of an standard editbox wouldn't be possible. For that, I'd have to make something fancy like an HTML viewer widget -- and that could get really tough.
NM then, it's easy enough to copy and paste.
byuu wrote:The blocking feature here would be hiro's font support. I'd want to create a monospace font (for the === separators) and size the window for 80xNN vertical-scroll only. I need that anyway for the debugger stuff I'm starting on.

Could always use all-caps for the section names, too. Then just use the normal font.
You don't have to use a different font, but maybe you should add bold support and use that. Which you needed to do for GUI notes anyway, right?
The only "tools" would be "Log audio data" and "Capture screenshot" ... doesn't make much sense to have a whole top-level menu option for that. How about we relegate those options to keyboard bindings? We can make it one of the input config UI groupings: "General", "Tools" and "Debugger". Not like that many people are going to take screenshots anyway.

Then we can have:
Help >
- Readme / Documentation
- License
- <separator>
- About ... (keeping this as I'd like to put some artwork on here one day)
I do want to get away without a tools section, but WAV recording has to be singled out as problematic. If you accidentally hit that keybind, an enormous audio file would start generating on your hard drive. I question the usefulness of this option anyway. You know I'd rather have people using external programs to log audio or video of their apps. They're as common as dirt since youtube took off, I doubt we even have to bother suggesting any in the documentation.

I don't like the redundancy of having both documentation and about, but whatever. I've modified my readme reconstruction since you last read it, changed tips and tricks to standard behavior, and explained what bsnes does with configuration settings in as simple terms as I could. I did not go into the whole "single-user" mode thing. I don't think anyone needs to know about that functionality except developers and testers who use versions prior to when you realized the variable conflicts, because avoiding those is the only reason I'd ever use it.
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

FitzRoy wrote:WAV recording has to be singled out as problematic. If you accidentally hit that keybind, an enormous audio file would start generating on your hard drive.
Let bsnes have a "save file" dialog pop up then that can be canceled.
FitzRoy wrote:I question the usefulness of this option anyway. You know I'd rather have people using external programs to log audio or video of their apps. They're as common as dirt since youtube took off, I doubt we even have to bother suggesting any in the documentation.
I take it you never used that option yourself? :roll: :?

The reason why internal recording options are so immensely great, why e.g. the TASers maintain their own emulator forks if necessary, is that nothing gets lost. You get frame-perfect results, no matter how long it takes to render a frame. External programs like Fraps are inherently flawed in that regard.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
Locked