libretro / genesis-plus-gx Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ekeeke/genesis-plus-gx
An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
License: Other
This project forked from ekeeke/genesis-plus-gx
An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
License: Other
Hi,
I don't know if ti's a issue with Genesis-Plus-GX or retroarch, but when I use Genesis-Plus-GX, the retroachievements are showed, the retroachievements's site add the game to my gamelist but the achievements aren't unlocked.
There isn't problems using picodrive.
According to Sega Retro (http://segaretro.org/Genesis_Plus_GX):
"ROM images up to 10 MB (Mortal Kombat II hack Mortal Kombat II Unlimited) (Ultimate Mortal Kombat 3 hacks such as Ultimate Mortal Kombat Trilogy, Mortal Kombat Revelations, Ultimate Mortal Kombat [SMD])"
Games that i've tested over Raspberry Pi Model 2 and haven't worked:
Do you think it is possible to add support for Steam Link devices? You can find the Steam Link sdk at: https://github.com/ValveSoftware/steamlink-sdk
When playing a zipped Sega CD game, it automatically only extracts the first ".bin" file from the zip, rather than the cue file and the additional tracks. This results in no audio, since the additional track bins nor the cue file are being extracted.
The other issue that I noticed, is that after quitting retroarch, the extracted bin file will still be on the drive, rather than being cleaned up. Is this intentional?
I am using the newest WIndows buildbot build via the Updater.
Hi Guys,
First, thanks for everything you do. With that out of the way, I think I have come across a bug in the Genesis core.
Put simply, I think the multitap functionality for a number of games is currently broken.
I've spent the last few days setting up per game overrides to enable MultiTap for all supported Sega Genesis games. While I have been able to get 55 games working, there are still a number of games that I haven't been able to get MultiTap working -- via any combination of P1 / P2 / EA4Way / TeamPlayer / 6 Button / 3 Button.
I already submitted this to ekeeke, but he closed the issue indicating that it works on his end. I've tested his recommended setting on RetroArch, for the example game I reported, and they don't seem to work:
That said, here's the full list of games that I've been unable to get working with MultiTap:
Wayne Gretzky and the NHLPA All-Stars
ATP Tour
College Slam
Dino Dini's Soccer
Ichidant-R
International Rugby
J.League Pro Striker 2,
J.League Pro Striker Perfect Edition
Pro Striker Final Stage
Micro Machines 2
Mortal Kombat 3
NBA Action 94
NCAA Final Four Basketball
Olympic Gold
Pepen ga Pengo
Ultimate Soccer
Wimbledon
World Cup USA 94
Worms
Finally, if it is at all helpful, I've included a DropBox link below to a zip file containing all of my 55 working Per Game Config Overrides. These config overrides contain nothing but the changes required to get MultiTap working on the games that do, in fact, work.
Thanks!
https://itunes.apple.com/app/id982939500
This guy is selling Snes9x, GenplusGX and other emulators plus some indie ("homebrew") games on the Apple store. It is said to be RetroArch iOS with Snes9x, GenplusGX and other cores. I believe Snes9x and Genplus GX have non-commercial clauses preventing their use in commercial products correct?
The Content Dispute Form is here:
http://www.apple.com/legal/internet-services/itunes/appstorenotices/
Also posted:
snes9xgit/snes9x#73
libretro/snes9x#12
It's not possible to merge with upstream anymore due changes in core/cd_hw/cdd.c, ekeeke touch there too: ekeeke@2a19462
I can hear the bios background music for a split second and then it crashes:
==17034==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7f643c1299f6 at pc 0x7f643c07d566 bp 0x7fffd57e4f70 sp 0x7fffd57e4f60
READ of size 2 at 0x7f643c1299f6 thread T0
#0 0x7f643c07d565 in cdd_process core/cd_hw/cdd.c:1544
#1 0x7f643c08b378 in scd_write_word core/cd_hw/scd.c:1287
#2 0x7f643bfd4b9c in m68ki_write_16 core/m68k/m68kcpu.h:899
#3 0x7f643c00bf23 in m68k_op_move_16_pi_pi core/m68k/m68kops.h:12164
#4 0x7f643c0415cb in s68k_run core/m68k/s68kcpu.c:260
#5 0x7f643c08e1cc in scd_update core/cd_hw/scd.c:1631
#6 0x7f643bf16fd2 in system_frame_scd core/system.c:998
#7 0x7f643c1003cd in retro_run libretro/libretro.c:2221
#8 0x41acde in core_run /home/bp/RetroArch-bp/RetroArch/core_impl.c:415
#9 0x423209 in runloop_iterate /home/bp/RetroArch-bp/RetroArch/retroarch.c:3076
#10 0x4181ca in rarch_main frontend/frontend.c:131
#11 0x418300 in main frontend/frontend.c:151
#12 0x7f6445851439 in __libc_start_main ../csu/libc-start.c:295
#13 0x40f279 in _start (/home/bp/RetroArch-bp/RetroArch/retroarch+0x40f279)
0x7f643c1299f6 is located 50 bytes to the right of global variable 'lut_BCD_8' defined in 'core/cd_hw/cdd.c:53:20' (0x7f643c129960) of size 100
0x7f643c1299f6 is located 10 bytes to the left of global variable 'lut_BCD_16' defined in 'core/cd_hw/cdd.c:67:21' (0x7f643c129a00) of size 200
SUMMARY: AddressSanitizer: global-buffer-overflow core/cd_hw/cdd.c:1544 in cdd_process
Shadow bytes around the buggy address:
0x0fed0781d2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 f9
0x0fed0781d2f0: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
0x0fed0781d300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fed0781d310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fed0781d320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0fed0781d330: 00 00 00 00 00 00 00 00 04 f9 f9 f9 f9 f9[f9]f9
0x0fed0781d340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fed0781d350: 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9
0x0fed0781d360: 00 00 00 00 00 02 f9 f9 f9 f9 f9 f9 00 00 00 00
0x0fed0781d370: 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9
0x0fed0781d380: 00 00 00 00 00 00 00 04 f9 f9 f9 f9 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==17034==ABORTING
This game is a compilation which uses an odd mapper of some description to handle loading in the chosen game. It's had problems in emulators for a long time, but in mainline Genesis Plus GX as well as RetroArch on other platforms, the game seems to work OK (I tested both mainline and libretro ports on a Wii).
On 3DS, the system locks up immediately when launching this particular game (running the emulator via 3dsx). The system has to be hard-powered off to get anything out of it, the RetroArch menu cannot be triggered, etc. This issue appears to be long-term on 3DS, I tested on a RetroArch build as old as 1.3.6 (the same build does work with this game on Wii), and the game is equally as nonworking there as on current (1.5.0) RetroArch for 3DS.
Hardware I'm testing on is a New 3DS XL with arm9loaderhax, running 3DS firmware version 11.1.
I tried both the US and EU version since I believe the US version was unlicensed release and it may have been a quick and dirty region change and I have no idea about converting PAL Mega CD games. When you are about to start a level there is some graphic corruption near the bottom of the screen. I did not see this in the Genesis version.
I believe this happens on other emulators too. Now I don't think this longplay was done on Genesis Plus GX but at 2:24 if you pause it, this shows what I am talking about:
When I change Aspect Ratio to NTSC PAR or PAL PAR the mouse cursor is always visible. It doesn´t happen when it stays at AUTO.
Retroarch 1.4.1
Windows 7 64bit
This is a follow-up to a previous bounty.
All I ask is that someone adds CHD support to the Genesis Plus GX core.
I won't be posting a bounty to add CHD support to the PicoDrive. Someone else can do that if they really want to play all six Sega CD games that require the 32X expansion (Corpse Killer, Night Trap, Fahrenheit, Slam City, Supreme Warrior, and Surgical Strike*).
This will have a bounty of $15.
*Surgical Strike for the 32X was only released in Brazil and no dump of it can be found on the internet.
EDIT: There is hope for Surgical Strike! Some Brazilian guys are re-releasing it. They say that they will release an ISO of it on August 15 of 2017.
EDIT2: Because ekeeke doesn't want the money, I am changing this to a Geneis Plus GX and Picodrive bounty. Thus, whoever ports it to Picodrive will get all the money.
I'm not sure if this is new or it's been always like that but the LCD Ghosting filter option applies for any ROM, not only for Game Gear.
Wouldn't it make more sense if it worked exclusively for Game Gear titles? I know it can be done via shaders but this built-in feature requires far less resources and looks great with a GG overlay.
Just as the title suggests: games act as if you've turned the system off then back on if you reset using this core in RetroArch instead of pushing the reset button. Without it, games like X-Men become impossible to beat as intended. Other games that remember settings such as control configurations or enabled cheats on a soft reset forget these, too.
At first I thought this was a RetroArch issue, as the response in my now-closed issue states. But then I noticed that soft resetting works just fine with NES games like Rad Racer and IronSword. Maybe the potential to use the functionality wasn't there awhile ago, but it appears to be there now.
It seems saving with this patch is broken in the latest core. I tested it and after beating a boss and saving, when you quit and load the game again the boss isn't faded out. There's someone else who noticed it first here: http://libretro.com/forums/showthread.php?t=5026
The original issue report: https://bitbucket.org/eke/genesis-plus-gx/issues/200/mega-man-the-wily-wars
These issues might have started popping up after the WinRT patches.
I see posters commenting on it here -
http://gbatemp.net/threads/retroarch-wiiu-wip.447670/page-328
http://i.imgur.com/dfBnyvf.jpg
@ekeeke could you hazard a guess here as to what might be going wrong here that would lead to a segfault like this at startup? From looking at the codepaths, it seems cdd_unload should only be invoked at startup if a Mega CD BIOS can't be found, but maybe you'd know more about the situation.
Ekeeke confirmed that there was an issue with Input Descriptor Labels that was fixed with this commit:
Unfortunately, it looks like the Libretro core hasn't used the commit, resulting in broken Input Descriptor Labels.
Any reason this hasn't been added to the core?
When my mouse is on the left side of the play area, the gun cursor is right on. As I move the mouse to the right, the gun cursor trails behind more and more. This screenshot doesn't show the mouse cursor so you'll have to take my word for it I guess, but it is all the way to the right, yet you can see the gun crosshair hasn't moved as far to match it.
It works fine if I run in windowed mode, which lead me to believe it is related to fullscreen resolution scaling. Seemingly noteworthy also is that it works fine in Retroarch for Windows at fullscreen.
This thread has the intention of documenting potential overclock incompatible games. Please list the game name, the commit version of your core (can be seen in the lower-left hand corner when running RetroArch), and where/how the problem was encountered. Also, please specify which core speed has the issue.
This will provide useful data for those wanting to create game profiles where the option is disabled by default. Or could be potentially useful to those able to fix it, if a fix is even possible.
GAME NAME (REGION)
Core Commit #: 82d83c4
Overclocking Speed: 125%, 150%, 175%, 200%
Problem: Problem Description
Probably the only ROM that doesn't load on v1.7.4 7104058
Edit: the ROM loads if bootrom is disabled. Any idea why?
This is something I noticed in Dennin Aleste (Robo Aleste in US version):
When the game starts the main character digit voice is not playing (it should be like this https://youtu.be/PrcRnnOdXew?t=272 ).
But when you go in the sound test mode you can hear it.
The sound test mode plays just that track you ask, no music in background, unlike the game itself.
Selecting EA 4-Way Play on any any/all inputs does not work with the three EA Sega CD 4-way play specific titles. If selected, no inputs work. These are the affected titles.
Bill Walsh College Football (Sega CD)
FIFA International Soccer (Sega CD)
NHL '94 (Sega CD)
Sega Team Player configurations and tiles work correctly for both Genesis and Sega CD.
EA 4-Way play configurations with Genesis titles work correctly.
Oddly, selecting any option of EA 4-way play and the single Sega CD title built for EA or Sega's hardware (ESPN National Hockey Night) works correctly.
Last commit i have been able to build is 8d5ce59
Current fail with this error :
core/mem68k.c: In function ‘ctrl_io_write_byte’:
core/mem68k.c:649:39: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
unsigned int status = s68k.cpu_stopped;
^
core/mem68k.c:680:21: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
if (s68k.cpu_stopped != status)
^
core/mem68k.c:685:23: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
if (s68k.cpu_stopped & STOP_LEVEL_HALT)
^
core/mem68k.c:685:38: error: ‘STOP_LEVEL_HALT’ undeclared (first use in this function)
if (s68k.cpu_stopped & STOP_LEVEL_HALT)
^
core/mem68k.c:685:38: note: each undeclared identifier is reported only once for each function it appears in
core/mem68k.c:700:95: error: ‘m68k_unused_w_8’ undeclared (first use in this function)
m68k.memory_map[base + 0x02].write8 = m68k.memory_map[base + 0x03].write8 = m68k_unused_w_8;
^
core/mem68k.c:701:95: error: ‘m68k_unused_w_16’ undeclared (first use in this function)
m68k.memory_map[base + 0x02].write16 = m68k.memory_map[base + 0x03].write16 = m68k_unused_w_16;
^
core/mem68k.c: In function ‘ctrl_io_write_word’:
core/mem68k.c:875:39: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
unsigned int status = s68k.cpu_stopped;
^
core/mem68k.c:906:21: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
if (s68k.cpu_stopped != status)
^
core/mem68k.c:911:23: error: ‘m68ki_cpu_core’ has no member named ‘cpu_stopped’
if (s68k.cpu_stopped & STOP_LEVEL_HALT)
^
core/mem68k.c:911:38: error: ‘STOP_LEVEL_HALT’ undeclared (first use in this function)
if (s68k.cpu_stopped & STOP_LEVEL_HALT)
^
core/mem68k.c:926:95: error: ‘m68k_unused_w_8’ undeclared (first use in this function)
m68k.memory_map[base + 0x02].write8 = m68k.memory_map[base + 0x03].write8 = m68k_unused_w_8;
^
core/mem68k.c:927:95: error: ‘m68k_unused_w_16’ undeclared (first use in this function)
m68k.memory_map[base + 0x02].write16 = m68k.memory_map[base + 0x03].write16 = m68k_unused_w_16;
Btw i'm using gcc-4.8.3
I've found that while cheats can be loaded up in the GUI, when applied, they don't actually enable.
This is a no-no.
I believe that the new accurate sound engines are a pointless menu option for low-powered devices such as the Raspberry Pi.
Even on my overclocked RPi 3, non-mame makes emulation extremely slow, which makes sense given the accuracy. Mame is the only option for sound for that core (and such devices).
I converted the .wav sound files to .ogg, and it's working well on my laptop, but not on Android. I took a brief look and it seems tremor is enabled in the Android.mk, so I really don't know what's happening here.
When I play any ogg music in the sega cd bios, I can hear only noise.
When I try to play Zaxxon 3D, the 3D is turned off.
Is there any way to activate it?
Hello everyone,
I can't figure how to crop overscan of the master system. I'm really annoyed by the bar on the left. Even though I understand it is what the master system actually output, on a CTR TV we weren't able to see it.
Is there any way to crop overscan with Genesis Plus Gx?
I know picodrive can do this, but it has many flaws and is far from being as good as Genesis Plus Gx.
Like beetle-saturn-libretro and beetle-psx-libretro, it would be great if Genesis-Plus-GX could have CHD support as well:
libretro/beetle-saturn-libretro#31
libretro/beetle-psx-libretro#219
I'll start a bounty at $15 for it. Thank you to anyone willing to work on this!
I have obtained the correct BIOS files and am able to access the Sega CD screen. My only issue is that Genesis Plus GX (RetroArch) keeps crashing when I load the .iso file via "Load Content". If I load the .iso to "Load Core", nothing happens. [the game is just a .iso, no .bin or .cue]
My machine is 64-bit, and this issue occurs in both the x86 and x64 versions of RetroArch.
Someone else had a similar issue in the past. I'm not sure if there was a fix-action to it (post 19):
http://libretro.com/forums/showthread.php?t=79&page=2
If needed, I can post a download link to the fan-game that I'm attempting to open.
Anytime I reset the system while playing a CD game, the system boots back to the BIOS screen. However, emulation locks up and no logos can be seen on the main screen.
If this is expected behavior for an actual Sega/Mega CD system, feel free to disregard this. I know that the RESET button is used to open the drive of a Model 1 system, but it shouldn't cause it to lock up like this. Even if the button functionality was implemented, pressing START should close the system anyways.
Crop overscan appears to be always enabled regardless of whether or not it is set ON or OFF.
SEGA Mega Drive & Genesis Classics on Steam provides some legal ROMs as .68k files. Unfortunately, .68k is not recognized by RetroArch as a valid filename extension for Sega Genesis ROMs. It is possible to play these (I tested this on the USA version of Sonic 3D Blast) by renaming the filename extension from .68k to .bin but I think that the ideal behavior should be to support .68k files directly as a valid filename extension for Sega Genesis ROMs. This should be a trivial change.
I posted the same issue on Picodrive.
For whatever reason I cannot get this to work on the Raspberry Pi. A mouse works fine on the PC version of Retroarch as a Lightgun if you set it properly (i.e. light phaser for SMS games, Menacer for Genesis games) but it does not on the Raspberry Pi if you have a mouse hooked up, a mouse works fine in the Retroarch GUI if you enable it, but as for Genesis Plus GX the buttons work so when you press the left or right mouse button they fire as they should but you cannot move the cursor.
Is it very difficult to implement bios_MD.bin support in the libretro side?
It seems i get the wrong aspect ratio for sms games. I have to manually set retroarch for 16:10 to make it correct. Ginisys games are fine.
It only happens when soft patching a rom with Genesis Plus GX. It does not happen to me with other cores, they work fine.
I tested the rom and the patch using lunar and they both work fine, so the patch and the rom are not to blame.
I've posted abouit this problem here: http://libretro.com/forums/showthread.php?t=6435&p=43389#post43389
Thank you.
http://pastebin.com/2isECKzc
ParkerR had the issue originally and I can confirm it.
I loaded up Snatcher in the latest nightly and the crosshair doesn't go away even when set to off in the core options.
I'm sure my sk.bin is OK (at least that's the sk.bin to use with genplus 1.7), but activating sonic & knuckles lock-on in core option won't do anything when i load any of the sonic roms. Retroarch output this :
RetroArch: rarch_log_libretro: [libretro INFO] :: INFORMATION - Loading 2097152 bytes ...
RetroArch [ERROR] :: rarch_log_libretro :: [libretro ERROR] :: File is too large.
According to this issue here:
ekeeke#42
and this commit here:
ekeeke@9310dcf
this BIOS file should be working: bios_MD.bin
My bios_MD.bin file have the following checksums:
CRC32: 5F5E64EB
MD5: 45E298905A08F9CFB38FD504CD6DBC84
SHA-1: 453FCA4E1DB6FAE4A10657C4451BCCBB71955628
and the size for this file is 16384 (16 KB)
I placed it in the system folder under my Retroarch folder as instructed but nothing shows up when I start my game (Castlevania Bloodlines) and it goes straight to the game without showing the TMSS screen.
This BIOS file is working correctly in Kega Fusion 3.64 so I thought it would work here too.
I'm trying to move away from Kega Fusion and use as much Libretro cores as possible because of how easy things are to maintain and I really would like this to work.
What could be the problem here?
Everything is up to date both core and Retroarch wise using latest nightly builds.
Thanks in advance!
Hi, basically trying to x-post an issue I am having where Retroarch when trying to load Genesis Plus Core is consistently failing (OSX), and trying to load it from a different region.
Basically, everything is loading up as follows
I have tried several roms (same game) from different rom sets, and always getting the same problem. I have also verified my assets for the megacd bios are correct:
MD5 (bios_CD_E.bin) = e66fa1dc5820d254611fdcdba0662372
MD5 (bios_CD_J.bin) = 2efd74e3232ff260e371b99f84024f7f
MD5 (bios_CD_U.bin) = 278a9397d192149e84e820ac621a8edd
Is there anyway I can produce a log of how Genesis Plus is being loaded up in order to help diagnose the issue? I have been successful loading the rom in another frontend like OpenEmu, and I have also tried setting the region manually after the default auto settings were not working, but this had no effect.
Couldn't compile the genesis plus gx from the source :(
the log it's in the followed link:
Hey,
Credits for Alien Soldier(NTSC) are glitching out for me. I think I'm using the newest version (window title: RetroArch Genesis Plus GX v1.7.4. afa38e3).
To be exact, the artifacts occur when presenting the bosses. I attached a savestate to that part.
as_state.zip
Very appropriately, it starts to glitch out when presenting a boss caled Bugmax, the fourth one. The glitches generally get progressively worse. Here is an example:
Quick video of the ending I found on Youtube, without the glitches: https://youtu.be/ZadUVhHOfY0?t=5m37s
Do you plan on adding this option to correct the slow down in games like Sonic and Megaman the wily wars? I think Regen has this option but it is windows only.
Just as the title states. When you use RetroArch's rewind feature, all graphics on-screen for these games become corrupted. Any graphics that get refreshed or updated afterwards appear normal.
This issue applies only to SG-1000 games. Games for the Master System and later don't have any issues with rewinding. I'm guessing that this will be low priority given the affected system being emulated, which is completely understandable.
I hope this doesn't come off as me bombarding the Libretro project with issues. I just wanted to bring this up before I forgot about it.
Cannot run CHD files under linux. core is updated, core info and retroarch.
I/RetroArch( 6052): Mega CD (PAL) BRAM is located at: /storage/sdcard0/RetroArch/saves/scd_E.brm
I/RetroArch( 6052): Sega CD (NTSC-U) BRAM is located at: /storage/sdcard0/RetroArch/saves/scd_U.brm
I/RetroArch( 6052): Mega CD (NTSC-J) BRAM is located at: /storage/sdcard0/RetroArch/saves/scd_J.brm
I/RetroArch( 6052): Sega/Mega CD RAM CART is located at: /storage/sdcard0/RetroArch/saves/cart.brm
I/RetroArch( 6052): File is too large.
E/RetroArch( 6052): Failed to load content.
I/RetroArch( 6052): Environ SET_PIXEL_FORMAT: RGB565.
https://github.com/libretro/Genesis-Plus-GX/blob/master/libretro/libretro.c#L226
the same chd works fine in linux.
Obviously this stretches the accuracy of emulation even further, but would a core option for the "double field" view to be displayed side by side be possible? This mode is used most prominently in Sonic 2's 2P VS mode, where the game runs in splitscreen, with each player getting 320224 (320448 total). When played on a vertical screen, the "double field" core option works very well, but it would be great if horizontal screens could get a mode which displays at 640*224; on wide screen televisions in particular this would be useful.
Mainstream Genesis Plus GX has already adapted that code so they are playable in Genesis Plus GX Wii, but libretro version doesn't now.
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.