Why would you want to use an alternate rendering engine anyways?_willow_ wrote:No, it's not i propose to move all the code out of the core but to add the enumeration for auxiliary renderers support. It is not that silly. Just to add another renderer which adds the external modules. Not a thing would change for existed renderers classes except additional wrapper device.grinvader wrote:You have 30 seconds to die on your own before I start helping you._willow_ wrote:plugins
bsnes v0.041 released
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
-
- Seen it all
- Posts: 2302
- Joined: Mon Jan 03, 2005 5:04 pm
- Location: Germany
- Contact:
You could switch more easily between scanline- and pixel-based renderers.
EDIT: Anyway, plugins would make sense if several independent developers work on the project. Though that increases the risk of incompatibilities and bugs, as can be seen with N64/Playstation emulators.
EDIT: Anyway, plugins would make sense if several independent developers work on the project. Though that increases the risk of incompatibilities and bugs, as can be seen with N64/Playstation emulators.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
bsnes launcher with recent files list
-
- Regular
- Posts: 347
- Joined: Tue Mar 07, 2006 10:32 am
- Location: The Netherlands
I'm not sure it would really be good for that considering the amount of communication between the core and the renderer - you probably want to give the compiler as much opportunity to optimize that as possible!creaothceann wrote:You could switch more easily between scanline- and pixel-based renderers.
-
- Seen it all
- Posts: 2302
- Joined: Mon Jan 03, 2005 5:04 pm
- Location: Germany
- Contact:
My guess is that compiler optimizations won't be able to help much.Verdauga Greeneyes wrote:I'm not sure it would really be good for that considering the amount of communication between the core and the renderer - you probably want to give the compiler as much opportunity to optimize that as possible!
For example, if you do rendering on a Pentium 1 with a VGA card, realistic raytracing in realtime is just not possible, optimizations or not.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
bsnes launcher with recent files list
New WIP.
This adds support for hats and analog buttons, and fixes the centering code so that it never ends up minimized on Linux at startup. Just went back to putting the window offscreen before centering, as thanks to the delay in propagating window messages in Xorg, you don't even notice the flicker on Linux.
You can now have up to 8 hats, 16 axes, 16 analog buttons and 96 digital buttons. Just to future proof things. If your controller has more than that ... then I demand you send it to me before I'll support it.
SDL input for Linux should work fully: hats allow four unique inputs, axes two and analog buttons one. It calibrates to tell the difference when you start the emulator.
DirectInput doesn't work so well. The DIJOYSTATE2 struct has a ton of analog inputs, but only lX/lY map to the first stick, and lRx/lRy to the analog buttons. But I can't even detect those properly because for some bastardized reason, polling them at startup returns 0, 0. It isn't until the user presses at least one button that the controller 'snaps out of it' and returns the proper +32767,+32767 for the two buttons.
On the bright side, DI treats POV hats like POV hats. It allows up to four, so that's what you get. You'll have to deal with that or the first analog stick for Windows.
Unless there's a DirectInput expert here, not sure I can fix this. The other inputs are not in DIJOYSTATE2 at all. Yet somehow the control panel applet can sense them.
Mapping is fully inclusive, for joypad buttons and UI shortcuts, you can use keyboard buttons, mouse buttons, joypad buttons, joypad axes, joypad hats, joypad analog buttons. For mouse / super scope axes, you can use mouse axes and joypad axes. Buttons aren't bi-directional and lack the precision to support the mouse / SS / Justifier to any usable degree, and analog buttons are uni-directional.
I consider the best time to be 03:58, and 04:06 (edit: 4:01:97 now) is close enough to make me happy :D
This adds support for hats and analog buttons, and fixes the centering code so that it never ends up minimized on Linux at startup. Just went back to putting the window offscreen before centering, as thanks to the delay in propagating window messages in Xorg, you don't even notice the flicker on Linux.
You can now have up to 8 hats, 16 axes, 16 analog buttons and 96 digital buttons. Just to future proof things. If your controller has more than that ... then I demand you send it to me before I'll support it.
SDL input for Linux should work fully: hats allow four unique inputs, axes two and analog buttons one. It calibrates to tell the difference when you start the emulator.
DirectInput doesn't work so well. The DIJOYSTATE2 struct has a ton of analog inputs, but only lX/lY map to the first stick, and lRx/lRy to the analog buttons. But I can't even detect those properly because for some bastardized reason, polling them at startup returns 0, 0. It isn't until the user presses at least one button that the controller 'snaps out of it' and returns the proper +32767,+32767 for the two buttons.
On the bright side, DI treats POV hats like POV hats. It allows up to four, so that's what you get. You'll have to deal with that or the first analog stick for Windows.
Unless there's a DirectInput expert here, not sure I can fix this. The other inputs are not in DIJOYSTATE2 at all. Yet somehow the control panel applet can sense them.
Mapping is fully inclusive, for joypad buttons and UI shortcuts, you can use keyboard buttons, mouse buttons, joypad buttons, joypad axes, joypad hats, joypad analog buttons. For mouse / super scope axes, you can use mouse axes and joypad axes. Buttons aren't bi-directional and lack the precision to support the mouse / SS / Justifier to any usable degree, and analog buttons are uni-directional.
Would rather not. Cross-platform dynamic library support is terrible.Have you thought about rendering plugins for sound, input, video?
Yeah, here. I posted about it here a while back. Probably should've mentioned the name.Hmm must be "spin the black circle" as far as I can tell.
It's usually okay when it's painfully obvious. I cleared every level at least a dozen times, and took advantage of every collision quirk there was to get time there. For there to be a > 30 second leap between #4 and #5 (and #1-4 all from the same person), it's pretty obvious that he was cheating in some way.Yeah. That cheating nonsense discourages me from really playing any online games with top scores like that. It sucks all the fun out of it.
I consider the best time to be 03:58, and 04:06 (edit: 4:01:97 now) is close enough to make me happy :D
Last edited by byuu on Wed Mar 18, 2009 7:39 pm, edited 2 times in total.
The interface thing would pass just pointers not the data itself. No worries about the precious optimizations. Besides, we are speaking about extra renderers.Verdauga Greeneyes wrote:I'm not sure it would really be good for that considering the amount of communication between the core and the renderer - you probably want to give the compiler as much opportunity to optimize that as possible!creaothceann wrote:You could switch more easily between scanline- and pixel-based renderers.
And it should not to be portable. Why you do not complain about DirectSound or whatever renderer being not portable? Just another Platform specific wrapper. I'm sure it would reduce the specific demands considerably. Some may want to try the exclusive full screen, capturing or platform and device specific drivers.. I'm not pressing for myself, but trying for some tech wise solution for everyones good.byuu wrote:Would rather not. Cross-platform dynamic library support is terrible.
-
- Seen it all
- Posts: 2302
- Joined: Mon Jan 03, 2005 5:04 pm
- Location: Germany
- Contact:
I'm not saying they do.franpa wrote:how do plugins alleviate the problem in your example?
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
bsnes launcher with recent files list
Because the DirectX drivers come with Windows, and I link directly against their libraries._willow_ wrote:Why you do not complain about DirectSound or whatever renderer being not portable?
Targeting an as-yet-undefined implementation requires LoadLibrary / GetProcAddress / dlopen / dlsym / etc etc. And then each platform needs drivers, it isn't a one-package deal like the binaries.
I don't like the idea, sorry. If something is important, I'll add direct support for it.
byuu wrote:Lazy ass Linux driver developers mapping four physical controllers (eg 4-player PS2 USB adapter) to one logical device.FitzRoy wrote:Why would there ever be more than 4 analog axes per controller? Humans only have two thumbs.
byuu vs byuu. Fight!byuu wrote:Thanks, but the problem isn't on my end, it's with worthless Windows anti-virus software. By working around it, I encourage said behavior to continue.
-
- Regular
- Posts: 347
- Joined: Tue Mar 07, 2006 10:32 am
- Location: The Netherlands
You people have too much free time.
http://www.bubblebox.com/highscores/902.htm
http://i73.photobucket.com/albums/i221/ ... /stbc1.png
http://i73.photobucket.com/albums/i221/ ... /stbc2.png
http://i73.photobucket.com/albums/i221/ ... /stbc3.png
3:58:65. First place if you discount the cheater with > 25 seconds better time above me :D
Now if only my emulator was that fast ...
http://www.bubblebox.com/highscores/902.htm
http://i73.photobucket.com/albums/i221/ ... /stbc1.png
http://i73.photobucket.com/albums/i221/ ... /stbc2.png
http://i73.photobucket.com/albums/i221/ ... /stbc3.png
3:58:65. First place if you discount the cheater with > 25 seconds better time above me :D
Now if only my emulator was that fast ...
-
- ZSNES Developer
- Posts: 3904
- Joined: Tue Jul 27, 2004 10:54 pm
- Location: Solar powered park bench
- Contact:
I have a gamepad with a D-Pad, an analog pad, a hat, and flippers (think playing pinball). That's 2+2+2+1 (the hat is read as 2 axis for some reasons). Obviously, they're not meant to all be used at the same time, more of an all in one deal.FitzRoy wrote:Why would there ever be more than 4 analog axes per controller? Humans only have two thumbs.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
_____________
Insane Coding
-
- Regular
- Posts: 347
- Joined: Tue Mar 07, 2006 10:32 am
- Location: The Netherlands
Cool music, but I don't have the patience for games like this. It's basically cameltry with booby traps.byuu wrote:You people have too much free time.
http://www.bubblebox.com/highscores/902.htm
http://i73.photobucket.com/albums/i221/ ... /stbc1.png
http://i73.photobucket.com/albums/i221/ ... /stbc2.png
http://i73.photobucket.com/albums/i221/ ... /stbc3.png
3:58:65. First place if you discount the cheater with > 25 seconds better time above me
Now if only my emulator was that fast ...
-
- Inmate
- Posts: 1751
- Joined: Mon Dec 06, 2004 7:47 am
- Location: WA
-
- Inmate
- Posts: 1751
- Joined: Mon Dec 06, 2004 7:47 am
- Location: WA
or two independent axes (like the ps3 l2/r2 buttons)sweener2001 wrote:axis, or haven't you tried one?FitzRoy wrote:Button, not an axis.Analog triggers
neutral when you're not doing anything, right trigger makes it go in one direction and left trigger the other
they are analog, after all.
Last edited by odditude on Thu Mar 19, 2009 9:34 pm, edited 1 time in total.
Why yes, my shift key *IS* broken.
-
- Buzzkill Gil
- Posts: 4295
- Joined: Wed Jan 12, 2005 7:14 pm
It has six-axis motion-tracking(rotational and translational movement along the X, Y, and Z axes), which is what the name refers to.FitzRoy wrote:Uh, I've never seen the sixaxis referenced as having more than 6 axes.odditude wrote:or two independent axes (like the ps3 l2/r2 buttons)
It ALSO has 6 traditional potentiometer axes(2 per thumbstick, plus two triggers).
Plus 6 damned pressure-sensitive face buttons(I assume L1 and R1 are still pressure-sensitive), which supply analog data and are treated as analog axes.
So it has 6 + 6 + 6 axes.