Open a1batross opened 6 years ago
Saving can be slow, because IO. Maybe it's not related to case-insensitive emulation, and there is just slow write() syscall?
Hello and thanks a lot for your suggestions. I built the port on top of v0.19 because I thought it would be easier to port a stable version, but now I wish I hadn't, since there will be much to fix during a rebase. I'm afraid it's not possible to integrate Vita support cleanly into upstream Xash yet, since it's pretty much hacked in with #ifdefs all over the code. This had to be done because the Vita environment is a lot different from any other platform Xash currently supports, for several reasons:
All this would require some work to resolve, so I think I'll focus on making everything work on the Vita first. Before all this is resolved all I can do without much trouble is backport particular commits from upstream.
As for your suggestions:
The renderer could also be sped up significantly by using custom shaders instead of vitaGL's general purpose built-in shaders that are quite slow. This is already on my to-do list.
Also, I suggest that you guys refrain from using enums in structures that are read or written to or from buffers and files, because for certain platforms (Vita being one of them) -fshort-enums is enabled by default in GCC, which caused me a lot of grief.
I see some advantages to you to move on current master branch: 1) 0.19.1 thought to be a next major release, but we don't moved to new protocol yet. So 0.19.1 isn't a minor release, it contains many new features and optimizations(which may ne handy to you) from total 300 commits. Or more, I don't count :) 2) I see you don't preserved git history. Git is a very powerful tool, especially in patch handling. So even if you will fall behind from upstream, Git will do best possible rebase for you. And it's easier to me to merge your branch into upstream.
I don't insist to move now. I just suggest you to do it when you consider it necessary.
Although we stop porting engine to new platforms, patches for non-posix environment will be great, which means easier console ports in future. :) Dynamic linking does not exist on many console platforms. Sometimes it's possible to write your own dynamic linker, sometimes it's not, due to platform issues. Xash3D have already some workarounds for Emscripten, which doesn't handle dynamic linking completely. We maybe need to provide a common way for such platforms. Buttons are not hardcoded. They are translated from system keys, i.e. keycodes, to engine-side keys.
Yes, I am aware about enums and crossplatform. I'm trying to avoid it in network or file structures, but there is too much struct definitions which came from Unkle Mike's engine. I am afraid to change them even if they are meant to be a 32-bit integer without a serious reason.
You see, I started this as an experiment to see if a Xash port would even be possible for the Vita. I just grabbed the 0.19 source ZIP and started working on it with no hopes of success, which is why I didn't even think of making a proper fork. I will move it sooner or later, just saying that it isn't probably going to happen very soon.
As for hardcoded buttons, I meant that Vita gamepad buttons are mapped to engine keys, and those mappings are hardcoded and cannot be changed with configs, i. e. X maps to Enter, Start maps to ESC, etc.
It doesn't need to be configured. Engine have a good key binding system, where keys are mapped to appropriate console commands.
You may use K_AUX keys, which is preferred way, as it's intended for using on gamepads(but there is no default mappings for them), or just map them to keyboard keys and have default mappings.
25 февр. 2018 г. 22:14 пользователь "fgsfds" notifications@github.com написал:
You see, I started this as an experiment to see if a Xash port would even be possible for the Vita. I just grabbed the 0.19 source ZIP and started working on it with no hopes of success, which is why I didn't even think of making a proper fork. I will move it sooner or later, just saying that it isn't probably going to happen very soon.
As for hardcoded buttons, I meant that Vita gamepad buttons are mapped to engine keys, and those mappings are hardcoded and cannot be changed with configs, i. e. X maps to Enter, Start maps to ESC, etc.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fgsfdsfgs/vitaXash3D/issues/2#issuecomment-368336043, or mute the thread https://github.com/notifications/unsubscribe-auth/ADEJgf7iE-lsSEoF73F2DPeJXbzrD2Waks5tYbEngaJpZM4SSPgP .
Do you guys have an IRC channel or something? I'd prefer a more convenient way of communicating than Github issue comments.
We have a Jabber conference, Discord server and VK conference. We had IRC before, but it was forgotten, because no one joined channel.
Oops. Forgot to add link to Jabber conference. It's most international-friendly way to communicate with other engine's developers. fwgs@conference.jabber.ru
At first, I want to congratulate you with new engine platform port. :)
I saw you put in README some issues, so I may give you some points with resolving these:
I recommend you to rebase on current master branch from FWGS/xash3d, so you can send a PR with Vita support to the upstream engine code, when it will be ready. :)