RetroPlayer Test Builds (updated for Nexus) - Printable Version +- Kodi Community Forum (https://forum.kodi.tv) +-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33) +--- Forum: Game support (https://forum.kodi.tv/forumdisplay.php?fid=292) +--- Thread: RetroPlayer Test Builds (updated for Nexus) (/showthread.php?tid=173361) Pages:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
RE: RetroPlayer Test Builds (updated for Isengard) - Montellese - 2015-08-30 (2015-08-30, 13:18)garbear Wrote: Each peripheral bus gets its own thread, and all scanning happens within that thread, regardless of where the scan was triggered Are you sure about that? Anyone can call CPeripherals::TriggerDeviceScan() which in turn calls CPeripheralBus::TriggerDeviceScan() which then either triggers an asynchronous device scan through CPeripheralBus:rocess() or directly calls CPeripheralBus::ScanForDevices() in which case the scan isn't performed in the CPeripheralBus thread. (2015-08-30, 13:18)garbear Wrote: The mistake here is that the add-on bus shouldn't hold a lock when passing control to the add-on. I'll get this fixed The locks being held in below stack trace make sense with the current lock structure (apart from the fact that often the locks are protecting a container but then return a raw pointer to an item from the container which might disappear anytime). Moving to RWLocks wouldn't help in the situation either. I took a quick look at the code and looks like the CPeripherals::GetAddon() is new to RetroPlayer and its call to CPeripherals::GetBusType() which already exists in master is causing the deadlock. The add-on peripheral bus implementation doesn't hold any specific locks that are causing this issue. They are all in CPeripherals and CPeripheralBus. I've also done some more runtime testing on the emulators and every now and then when I stop an emulator (doesn't matter which one) it crashes when calling Destroy() on game.libretro. Couldn't figure out yet how to reliably reproduce this. I just start and stop the emulator a lot until it happens. Need to setup game.libretro for debugging. Furthermore I'm getting the feeling that input delay gets worse the longer I'm playing in an emulator. When starting Super Mario Bros. in level 1 input is perfectly fine but when reaching level 4 there's a huge lag and some button presses aren't detected at all anymore (especially when I'm pressing multiple buttons at once like running and jumping etc. I'm not really sure if it has anything to do with how long the emulator is running but I've never noticed any problems after starting fresh. RE: RetroPlayer Test Builds (updated for Isengard) - garbear - 2015-08-30 (2015-08-30, 13:42)Montellese Wrote:(2015-08-30, 13:18)garbear Wrote: Each peripheral bus gets its own thread, and all scanning happens within that thread, regardless of where the scan was triggered Good point, asynchronous scanning only happens for buses that don't set m_bNeedsPolling to false. Seems kind of odd to couple the scan thread to the update model. The add-on bus left m_bNeedsPolling as true, so it was scanned asynchronously. Which was probably an oversight, as it was in the application bus. (2015-08-30, 13:42)Montellese Wrote:(2015-08-30, 13:18)garbear Wrote: The mistake here is that the add-on bus shouldn't hold a lock when passing control to the add-on. I'll get this fixed The biggest offender is CPeripherals::GetPeripheralsWithFeature(). Any peripheral handling that occurs outside CPeripherals right now (configuration GUI) is unsafe. What if I changed these all to shared pointers? (2015-08-30, 13:42)Montellese Wrote: I've also done some more runtime testing on the emulators and every now and then when I stop an emulator (doesn't matter which one) it crashes when calling Destroy() on game.libretro. Couldn't figure out yet how to reliably reproduce this. I just start and stop the emulator a lot until it happens. Need to setup game.libretro for debugging. How do you set up add-ons for debugging on windows? I tried setting cmake params to debug, but the resulting DLLs don't compile successfully. RE: RetroPlayer Test Builds (updated for Isengard) - garbear - 2015-08-30 9f99b1b should fix your deadlock... or come close... too tired to verify RE: RetroPlayer Test Builds (updated for Isengard) - garbear - 2015-08-31 (2015-08-28, 13:38)CrispyXUK Wrote: I have about 20 odd controllers so I'll certainly do some testing Easy... no. Amber needs new windows to support games. This isn't hard to do; I'm not a skinner, i just copy/paste/tweaked some existing xml files. If you or the amber author wants to add game support, you can see the modifications to confluence in the RetroPlayer patch: https://github.com/garbear/xbmc/commits/7e24843 . Commits 0004, 0005, 0007 and 0011 modify confluence. EDIT: RetroPlayer's GUI code is horribly incomplete atm. When it's more finalized, I'll post in the skin subforum all the steps needed for game support RE: RetroPlayer Test Builds (updated for Isengard) - Montellese - 2015-08-31 (2015-08-30, 14:10)garbear Wrote: Good point, asynchronous scanning only happens for buses that don't set m_bNeedsPolling to false. Seems kind of odd to couple the scan thread to the update model. The add-on bus left m_bNeedsPolling as true, so it was scanned asynchronously. Which was probably an oversight, as it was in the application bus.Well thinking about it I realised that it's not that odd. What happens is
Does that make sense? (2015-08-30, 14:10)garbear Wrote: The biggest offender is CPeripherals::GetPeripheralsWithFeature(). Any peripheral handling that occurs outside CPeripherals right now (configuration GUI) is unsafe. What if I changed these all to shared pointers?Well the whole thing depends on how startup and shutdown are handled as that's the only place where m_busses is really modified (i.e. busses added or removed). The startup order probably shouldn't be an issue but the shutdown order needs to make sure that anything using these CPeripheralBus and CPeripheral instances need to be destroyed before destroying CPeripherals. (2015-08-30, 14:10)garbear Wrote: How do you set up add-ons for debugging on windows? I tried setting cmake params to debug, but the resulting DLLs don't compile successfully.I've had it setup once but it wasn't that easy. You don't really need to build for Debug because we also include debug symbols in release builds (to be able to get minidumps from releases). I'll try to set it up again and will write a step by step guide once I've got it running again. RE: RetroPlayer Test Builds (updated for Isengard) - Scourge - 2015-09-01 I noticed Kodi still crashes when I try to exit (Kodi is not responding). I thought this was fixed a few builds ago? RE: RetroPlayer Test Builds (updated for Isengard) - Montellese - 2015-09-01 It's back since the rebase but I haven't had time to look into it yet. RE: RetroPlayer Test Builds (updated for Isengard) - Montellese - 2015-09-04 (2015-08-30, 14:10)garbear Wrote: How do you set up add-ons for debugging on windows? I tried setting cmake params to debug, but the resulting DLLs don't compile successfully. So here goes:
RE: RetroPlayer Test Builds (updated for Isengard) - sergiokhoiser - 2015-09-10 Hi everyone . I'm a little lost, I'm new to this forum. I want to install "Retroplayer" in my Kodi. The problem is that I find the zip in the post add-on, just an "EXE" to "Windows". I do not want to reinstall full Kodi, because I do not want to lose my settings, video library, etc. There is a "step by step" to install "Retroplayer" ?. Thanks and sorry for my bad English. RE: RetroPlayer Test Builds (updated for Isengard) - zag - 2015-09-10 Retroplayer is still in heavy development, I would not install it over your current install. Best to put it on a new machine for testing. RE: RetroPlayer Test Builds (updated for Isengard) - garbear - 2015-09-10 RetroPlayer should be safely interchangeable with the version it's based on (which I include in the installer filename), currently 15.1 This means that you can install retroplayer over 15.1, then revert back to 15.1, without losing any settings. Any game-related settings created by RetroPlayer should be safely ignored by vanilla 15.1 RE: RetroPlayer Test Builds (updated for Isengard) - natethomas - 2015-09-10 (2015-09-10, 10:56)garbear Wrote: RetroPlayer should be safely interchangeable with the version it's based on (which I include in the installer filename), currently 15.1 I do this roughly every other day. Seems to work pretty well. RE: RetroPlayer Test Builds (updated for Isengard) - sergiokhoiser - 2015-09-10 (2015-09-10, 10:56)garbear Wrote: RetroPlayer should be safely interchangeable with the version it's based on (which I include in the installer filename), currently 15.1 Thanks for your reply. My version 15.1 Kodi is stable. I understand that you just have to run the EXE, and this does not erase nor any of my current unconfigures Kodi. True? With Retroplayer need emulador.exe of each video-game? or just I need the ROMs? It will be easier to "Rom Collection Browser"? RE: RetroPlayer Test Builds (updated for Isengard) - natethomas - 2015-09-10 The point of retroplayer is that you should not need any additional applications. Everything runs inside Kodi. So you only need the ROMs. With that said, at the moment only NES, GBA, and... maybe that's it(?) are working with retroplayer, so if you want to play more using retroplayer, you'll need to wait until the various cores for other systems are ported. I don't have a ton of experience with RCB, but I think it can work with both retroplayer and external exe emulators. You'll have to ask in that thread though. RE: RetroPlayer Test Builds (updated for Isengard) - manikm - 2015-09-15 Guys, are you not going to do a build for Android (ARM) I sure would appreciate it... Thanks! |