[Tool]Pokitto Emulator



Felipe, did not work at all. Sorry.

But I will manage with the online emulator today / executable made by @aus


Really? Sorry, I’ll look into it right away. :confused:

Did you test the mac build on a machine that didn’t have SDL installed?


Everybody please test and say which one works best.

Also, post which browser+OS you used and if any of the links don’t work at all.

0 voters


Linux Mint, Chromium: B seems best, A and D almost as good, C doesn’t work at all (just black screen).


All worked. Win10 + Chrome. Maybe D was a little slower than the rest (?)


win 10 chrome.
All worked for me. a,b,d were all similarly slow. c was the fastest


A, B, D
Windows 8(.1), Firefox 62.0.3 (64-bit)
Cookies disabled, Do Not Track request sent
(And possibly other things that might interfere with functionality, e.g. WebGL disabled.)


Mac OS High Sierra, Firefox 62.0.2 (64 bit)
C did not work, D was the fastest.


Thanks, here’s one of the errors:

sd.cpp:104:33: error: non-constant-expression cannot be narrowed from type 'int'
      to 'unsigned char' in initializer list [-Wc++11-narrowing]
            response = std::vector<u8>{(idle?1:0), 0, 0, 0x01, 0xAA};
sd.cpp:104:33: note: insert an explicit cast to silence this issue
            response = std::vector<u8>{(idle?1:0), 0, 0, 0x01, 0xAA};
                                       static_cast<unsigned char>( )


also adding error log for C:


I’m not sure why that’s only turning up on Mac, it should be turning up on Linux and Windows as well.
I’m guessing either @FManga has been compiling with C++03/C++98 or has been building with relaxed rules.

Prior to C++11 most compilers would have flagged this with a warning.
As of C++11 implicit narrowing conversions of expressions in a brace-initialiser list being used for ‘aggregate initialisation’ are no longer permitted, they must be made explicit.

That’s all there is to it really.
In fact the error message pretty much told you all that, albeit not in a straightforward way.

The best thing to do would be to make a note of the changes you made to fix the issue and either hand them over to @FManga so he can make the necessary changes, or fork the repo and make a PR with your changes.


@FManga Your emulator was the star of the show today


Win10, Chrome. All works, C is the fastest.
Great work!


Same result here


@drummyfish, @Hanski, @Xhaku, @Pharap, @aus, @HomineLudens, @sbmrgd :
Thank you all for the reports. Looks like it’s safe to switch to using B (compiled to webassembly instead of asmjs), but I shouldn’t enable threads just yet (C, faster, but apparently not supported by chromium at all, as can be seen in the error log).

Its interesting that nobody has reported using Safari and IE/Edge.

I keep waiting for the day I can use webassembly with threads (B+C), but that’s still an experimental feature in firefox/chrome and will take a while before it’s widely available.

Not sure why I don’t normally get that error, but I noticed it when making the online build yesterday and I fixed it by adding a cast. What version of GCC are you using?

Glad it helped. :smiley:


Just because cost me nothing, I’ve tested also with Edge on Win10. C is not working anymore, both AB&D seems to work well. Maybe D seems smoother.


:slight_smile: I just did the same test. Indeed C does not work anymore.


That’s what I would have expected to be honest.
I can’t remember the last time I saw Safari in use, probably close to a decade ago.

As for IE/Edge, I don’t think Microsoft has convinced many people that Edge isn’t IE in sheep’s clothing. :P


Here’s the output of gcc --version:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin


@HomineLudens, @sbmrgd: Thanks, its especially good to know that B works on Edge too. Maybe next year I’ll get to switch to B+C and that would be fastest.

iPhone and iPad users are forced to use Safari since that’s the only rendering engine allowed on those devices. When they install Chrome/Firefox, they’re looking at embedded Safari and I still have to deal with their non-standards.

Also, there’s people who drink only apple kool-aid and actually use Safari on the desktop. I got some bug reports from them when I released ProjectABE.

These days Edge isn’t too bad. Safari is the new IE. Samsung Internet is the new IE6.

Ah, we’re using entirely different compilers! Your gcc is actually clang.
I should use clang more often.