libretro / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
47 stars 56 forks source link

backport 1.56 changes #153

Closed ghost closed 6 years ago

ghost commented 6 years ago

irq, openbus, msu1, macs rifle, misc

inactive123 commented 6 years ago

I will allow @Tatsuya79 to test this before deciding to merge this.

Tatsuya79 commented 6 years ago

Seems ok. I can't use the Macs Riffle (can't shoot), but neither can I use the Super Scope, even on current version. I don't know what is the problem with that.

ghost commented 6 years ago

Lots of stuff got updated (again) and I do (many) stupid things when backporting. I know I've caused enough people grief over this. I'll probably soon stop (porting and breaking things) because there's nearly nothing left to do. And don't want to be responsible for well, breaking things again. Although there's some things bearoso suggested that can't be put into upstream, just ports. And there's the multi-cart thing, which has enough scary breaking updates upstream.

For rifle + superscope, you have to select controls - select rifle / superscope / justifier. go to menu - input - input user 2 binds - user 2 gun trigger, reload, etc. I think this'll work for you?

Sorry for all the trouble I've caused over few weeks.

ghost commented 6 years ago

I can play Yoshi's Safari Super Scope with core updater - snes9x win32. Superscope looks okay if runahead is off; aim is terrible if on. I think this was caused before any of the kps501 backports but I'll check to be sure.

edit: Oggom build has strange runahead aiming problem too.

Tatsuya79 commented 6 years ago

Yes I noticed that too, but even with run ahead off I can move the cursor around but not shoot/start playing on win7 x64.

I also see an error "unrecognised device" when you go to "none" in Controls.

Also got that when compiling:

../libretro/libretro.cpp: In function 'void retro_set_environment(retro_environment_t)':
../libretro/libretro.cpp:182:4: warning: missing initializer for member 'retro_controller_info::num_types' [-Wmissing-field-initializers]
    };
    ^
../libretro/libretro.cpp: In function 'void init_descriptors()':
../libretro/libretro.cpp:672:4: warning: missing initializer for member 'retro_input_descriptor::device' [-Wmissing-field-initializers]
    };
    ^
../libretro/libretro.cpp:672:4: warning: missing initializer for member 'retro_input_descriptor::index' [-Wmissing-field-initializers]
../libretro/libretro.cpp:672:4: warning: missing initializer for member 'retro_input_descriptor::id' [-Wmissing-field-initializers]
../libretro/libretro.cpp:672:4: warning: missing initializer for member 'retro_input_descriptor::description' [-Wmissing-field-initializers]

(that's not really related to that PR)

ghost commented 6 years ago

Added new commit that should clear out missing initializers. No idea about trigger button not working on win7 x64 - had that problem until I remapped fire button. Currently on a xp win32 machine but no problems yet (using normal retroarch build) - have some old programs to use.

Tatsuya79 commented 6 years ago

The warnings are gone, nice.

I could fire by going into settings>input>user2 binds and add the mouse buttons to "user 2 gun ..." binds. This is probably the way to do it now that I missed. (that's with the superscope, I didn't figure out the macs riffle yet...)

hizzlekizzle commented 6 years ago

Sorry for all the trouble I've caused over few weeks.

Hey, don't worry about it. The growing pains were/are necessary. BearOso and OV2 have been doing a lot of good work lately and your backports have let us keep up with them without doing a full rebase, which is very much appreciated.

ghost commented 6 years ago

Added R-Type III hotfix.

Did a new clean build based on that one. Still unsure about MACS rifle. Deleted my retroarch.cfg file and restarted emu. Started game. Selected Port 2 MACS Rifle. Mapped LMB to fire and game is going okay. Didn't see any 'unknown' controllers anywhere.

Tatsuya79 commented 6 years ago

It happens when you're in quickmenu->Controls and choose "none" for user 1 or 2. "Invalid device" in the log window as the "none" controller case isn't defined properly it seems.

inactive123 commented 6 years ago

Hey @kps501 , please don't get demotivated. We very much appreciate your PRs/backports. Please don't get the wrong idea here, I just wanted to give Tatsuya the chance to review, that was it, there was no hidden meaning behind it or anything.

Tatsuya79 commented 6 years ago

You can merge it I guess, I'm no expert and it's working fine!

ghost commented 6 years ago

Added a hotfix for unplugging controllers. Turns out it's a valid bug! That created the unknown device error. Now SNES will correctly react to no controllers in port.

ghost commented 6 years ago

Actually it was a very good idea to put it through code review. We caught several more libretro bugs and I didn't do something stupid this time!

When the multi-cart updates are ready, we definitely need a QA for that one. Even I wouldn't immediately PR merge it. I tend to feel bad when I break something around here (and can't fix it). That's been a scary feeling several times over already. And when it happens on upstream also. They're genuinely nice folks but safer not to screw them up (gave them several bad bugfixes).