stary2001 / godot Goto Github PK
View Code? Open in Web Editor NEWThis project forked from godotengine/godot
A port of Godot Engine to Nintendo Switch via homebrew tools.
Home Page: https://godotengine.org
License: MIT License
This project forked from godotengine/godot
A port of Godot Engine to Nintendo Switch via homebrew tools.
Home Page: https://godotengine.org
License: MIT License
Godot version:
3.2.1-windows
Issue description:
OS functions like "OS.get_system_time_secs()"& "OS.get_system_time_secs()"
don't seem to be implemented. There might be more but I havn't tested it.
Temporary fix:
Cap fps and count the frames to get a sec.
Godot version:
OS/device including version:
Issue description:
Hi, I'm trying to compile your version of godot switch. But I'm stuck at the point where miniupnpc its used. As I don't find switch-miniupnpc package anywhere available, I try to compile the package myself from your git repository, but the compilation always fails cause incompatible versions of the package. Can You point me what repository if any is used to get the correct miniupnpc version needed to compile?. Can you make available the correct package? Thanks in advance.
Steps to reproduce:
Minimal reproduction project:
Godot version:
any 3.0.0 version - 3.3.4
OS/device including version:
Nintendo Switch
Issue description:
when i do a discard;
in an shader the game crash.
https://github.com/D3fau4/HaachamaWare/blob/8ee936a0acfb03d07b34c5a5a355deaf2f1a71dd/Scenes/MicroGames/LongWatson.tscn#L11
Steps to reproduce:
Just play the minigame: 'Long Watson' in switch.
Minimal reproduction project:
https://github.com/D3fau4/HaachamaWare/tree/Switch
I'd love to see this merged into upstream.
Hey there. I've been working on a game for a while in C#, and I'm wondering if C# support is implemented into this. I wouldn't think so, but I also don't have the tools to try at the moment.
Theres also the fact that Yuzu emulator seems to not work with these builds. Running a small test application causes the emulator to freeze and stop responding on Windows. Crash logs are at this link. https://hastebin.com/eqedojovud.cs It would be amazing to get these features properly working so we can have some amazing homebrew games!
does Virtual Keyboard appear on switch?
Once (and if) one become official Nintendo third party developer, can send the files that export gives to Nintendo to make it an official game? (I know that there are other stuff requsted like trailer ecc), i'm saying if the file from exporter are fine to become an official game or it will work only on modded (homebrew) console.
Thanks, and sorry if the question may sound stupid, i don't know much of the Switch publishing ecosystem.
When I attempt to compile the 3.1.1-stable_switch-export branch of your repo using this command:
scons platform=switch tools=no target=release bits=64
I get the following output:
scons: Reading SConscript files ...
OSError: [Errno 2] No such file or directory:
File "/home/nora/godot/SConstruct", line 321:
detect.configure(env)
File "./platform/switch/detect.py", line 162:
bullet_version = subprocess.check_output(['aarch64-none-elf-pkg-config', 'bullet', '--modversion']).strip()
File "/usr/lib/python2.7/subprocess.py", line 216:
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 394:
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1047:
raise child_exception
I hope you can resolve this
I managed to build the engine and and a .nro with a empty 3D scene that ran on my switch. But ass soon as I make a little more complex scene (I added a skinned character model as .dae with some .png textures) the .nro just closes back to the switch home screen after the GoDot logo (scene ofc runs fine when pressing play on PC). Is there any list of things that are save to add to the scene or a way to see why the .nro is closing?
Godot version:
3.3.4
OS/device including version:
Windows 11
Issue description:
Second Controller get's deactivated upon launch
Steps to reproduce:
Make a game with multiple controllers
Export it as an nro file
Setup 2 controllers
Start the game
See that the light on the second controller turns of
While 'Switch' shows up as a preset in the 'Export' window, it does not show up as a platform in GDNativeLibrary resource files. Is there any plan to support this? How much work would be involved to make it work?
Howdy, I'm just wondering if there's any plans on having a Godot 4.x [like 4.1.1 at the time of writing] version of this engine? I understand it's a rather huge undertaking considering how different 3.x and 4.x are, but I was just curious. Would love to use Godot 4.x to export to Switch.
This causes massive flickering Not the actual issue
Test case: https://github.com/Bauxitedev/meteorite
1: #version 300 es
2: #define EXPOSURE_BEGIN
3: precision highp float;
4: precision highp int;
5: precision highp sampler2D;
6: precision highp samplerCube;
7: precision highp sampler2DArray;
8:
9: uniform highp sampler2D source_exposure; //texunit:0
10: /* clang-format on */
11:
12: #ifdef EXPOSURE_BEGIN
13:
14: uniform highp ivec2 source_render_size;
15: uniform highp ivec2 target_size;
16:
17: #endif
18:
19: #ifdef EXPOSURE_END
20:
21: uniform highp sampler2D prev_exposure; //texunit:1
22: uniform highp float exposure_adjust;
23: uniform highp float min_luminance;
24: uniform highp float max_luminance;
25:
26: #endif
27:
28: layout(location = 0) out highp float exposure;
29:
30: void main() {
31:
32: #ifdef EXPOSURE_BEGIN
33:
34: ivec2 src_pos = ivec2(gl_FragCoord.xy) * source_render_size / target_size;
35:
36: #if 1
37: //more precise and expensive, but less jittery
38: ivec2 next_pos = ivec2(gl_FragCoord.xy + ivec2(1)) * source_render_size / target_size;
39: next_pos = max(next_pos, src_pos + ivec2(1)); //so it at least reads one pixel
40: highp vec3 source_color = vec3(0.0);
41: for (int i = src_pos.x; i < next_pos.x; i++) {
42: for (int j = src_pos.y; j < next_pos.y; j++) {
43: source_color += texelFetch(source_exposure, ivec2(i, j), 0).rgb;
44: }
45: }
46:
47: source_color /= float((next_pos.x - src_pos.x) * (next_pos.y - src_pos.y));
48: #else
49: highp vec3 source_color = texelFetch(source_exposure, src_pos, 0).rgb;
50:
51: #endif
52:
53: exposure = max(source_color.r, max(source_color.g, source_color.b));
54:
55: #else
56:
57: ivec2 coord = ivec2(gl_FragCoord.xy);
58: exposure = texelFetch(source_exposure, coord * 3 + ivec2(0, 0), 0).r;
59: exposure += texelFetch(source_exposure, coord * 3 + ivec2(1, 0), 0).r;
60: exposure += texelFetch(source_exposure, coord * 3 + ivec2(2, 0), 0).r;
61: exposure += texelFetch(source_exposure, coord * 3 + ivec2(0, 1), 0).r;
62: exposure += texelFetch(source_exposure, coord * 3 + ivec2(1, 1), 0).r;
63: exposure += texelFetch(source_exposure, coord * 3 + ivec2(2, 1), 0).r;
64: exposure += texelFetch(source_exposure, coord * 3 + ivec2(0, 2), 0).r;
65: exposure += texelFetch(source_exposure, coord * 3 + ivec2(1, 2), 0).r;
66: exposure += texelFetch(source_exposure, coord * 3 + ivec2(2, 2), 0).r;
67: exposure *= (1.0 / 9.0);
68:
69: #ifdef EXPOSURE_END
70:
71: #ifdef EXPOSURE_FORCE_SET
72: //will stay as is
73: #else
74: highp float prev_lum = texelFetch(prev_exposure, ivec2(0, 0), 0).r; //1 pixel previous exposure
75: exposure = clamp(prev_lum + (exposure - prev_lum) * exposure_adjust, min_luminance, max_luminance);
76:
77: #endif //EXPOSURE_FORCE_SET
78:
79: #endif //EXPOSURE_END
80:
81: #endif //EXPOSURE_BEGIN
82: }
83:
**ERROR**: ExposureShaderGLES3: Fragment Program Compilation Failed:
0:38(25): error: could not implicitly convert operands to arithmetic operator
0:38(19): error: cannot construct `ivec2' from a non-numeric data type
0:38(19): error: operands to arithmetic operators must be numeric
0:38(19): error: operands to arithmetic operators must be numeric
0:39(17): warning: `next_pos' used uninitialized
At: drivers/gles3/shader_gles3.cpp:164:_display_error_with_code() - ExposureShaderGLES3: Fragment Program Compilation Failed:
0:38(25): error: could not implicitly convert operands to arithmetic operator
0:38(19): error: cannot construct `ivec2' from a non-numeric data type
0:38(19): error: operands to arithmetic operators must be numeric
0:38(19): error: operands to arithmetic operators must be numeric
0:39(17): warning: `next_pos' used uninitialized
**ERROR**: ExposureShaderGLES3: Fragment Program Compilation Failed:
0:38(25): error: could not implicitly convert operands to arithmetic operator
0:38(19): error: cannot construct `ivec2' from a non-numeric data type
0:38(19): error: operands to arithmetic operators must be numeric
0:38(19): error: operands to arithmetic operators must be numeric
0:39(17): warning: `next_pos' used uninitialized
At: drivers/gles3/shader_gles3.cpp:429:get_current_version() - ExposureShaderGLES3: Fragment Program Compilation Failed:
0:38(25): error: could not implicitly convert operands to arithmetic operator
0:38(19): error: cannot construct `ivec2' from a non-numeric data type
0:38(19): error: operands to arithmetic operators must be numeric
0:38(19): error: operands to arithmetic operators must be numeric
0:39(17): warning: `next_pos' used uninitialized
**ERROR**: Method/Function Failed, returning: __null
At: drivers/gles3/shader_gles3.cpp:437:get_current_version() - Method/Function Failed, returning: __null
**ERROR**: Condition ' !version ' is true. returned: false
At: drivers/gles3/shader_gles3.cpp:123:bind() - Condition ' !version ' is true. returned: false
**ERROR**: Condition ' !version ' is true. returned: -1
At: drivers/gles3/shader_gles3.h:381:_get_uniform() - Condition ' !version ' is true. returned: -1
**ERROR**: Condition ' !version ' is true. returned: -1
At: drivers/gles3/shader_gles3.h:381:_get_uniform() - Condition ' !version ' is true. returned: -1
no savefile detected
fading from menu to meteorite
Godot version:
3.2
OS/device including version:
Windows 10 WSL
Issue description:
Cannot build for switch. Invalid target platform "switch".
The following platforms were detected:
server
This is not a duplicate of #15
Steps to reproduce:
Install Devkitpro
Set environment variables
Clone this git repository
Run scons platform=switch in the root of the repo
Godot version:
3.5.1
OS/device including version:
Mac OS Catalina
Issue description:
No nxlink and no build_romfs included in the download
Steps to reproduce:
Download the dmg and realise there is no nxlink and no build_romfs
Minimal reproduction project:
Realise there is no nxlink and no build_romfs
Hey, apologies if this isn't the place to ask such questions, but...
I managed to build this fork of godot, and I exported a random test game I grabbed from the templates section to a .pck file. Now, since I'm new to godot and porting games to the Switch, I'm not so sure what to do at this point; how to I create a binary (I presume an .nro file) to export to my Switch? I got devkitpro and all installed on my Ubuntu machine.
Thanks :)
godot/platform/switch/detect.py
Line 168 in 5f1adeb
OS: Ubuntu 18.04.3 (bionic) LTS
Python: 2.7.15+
When using trying to compile I get the following error:
user0@localhost:~/Downloads/godot-3.1.1-stable_switch$ ./go.sh
scons: Reading SConscript files ...
TypeError: __init__() got an unexpected keyword argument 'encoding':
File "/home/kubeuser0/Downloads/godot-3.1.1-stable_switch/SConstruct", line 321:
detect.configure(env)
File "./platform/switch/detect.py", line 168:
bullet_version = subprocess.check_output(['aarch64-none-elf-pkg-config', 'bullet', '--modversion'], encoding='utf-8').strip()
File "/usr/lib/python2.7/subprocess.py", line 216:
process = Popen(stdout=PIPE, *popenargs, **kwargs)
Looking at the (python 2.7) docs for subprocess.check_output() reveals that it has no named argument called encoding. Removing that argument allows the compile to complete successfully when using python 2.7.
Please note, that this does not have to be done if using python 3.6 or newer.
https://docs.python.org/3/library/subprocess.html#subprocess.check_output
Godot version:
3.2
OS/device including version:
Windows 10 WSL
Issue description:
Unable to compile for switch in Windows WSL. It just raise pkg-config not found error.
Steps to reproduce:
Minimal reproduction project:
request_mirror->request("https://godotengine.org/mirrorlist/" + p_version + ".json");
Most of the changes outside of the platform
directory seem to be adding || defined(HORIZON_ENABLED)
to lines that already have defined(UNIX_ENABLED)
. Is there any reason you don't simply add the Unix define here to avoid most of those edits? Or is it just that Horizon isn't fully Unix-compatible?
Godot version:
3.2.1
OS/device including version:
OSX | 10.0.1
Issue description:
Vibration does not work
Steps to reproduce:
for id in Input.get_connected_joypads():
Input.start_joy_vibration(id, 1.0, 1.0, 1.0)
Input.start_joy_vibration(0, 1.0, 1.0, 1.0)
Input.vibrate_handheld(1.0)
Minimal reproduction project:
Not necessary
Hey thanks for this, it's amazing! My quick test project (to see if video would play on Switch - it does) built and ran first time.
In hbmenu the .nro's name, author and version are all showing as "1.0", tho I have the Title and Author fields set appropriately in the Export dialog. Didn't see this mentioned in any other issues, am I doing something wrong? I can always hexedit the .nro if it comes to it, but hopefully there's a better answer!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.