themk2k / metropolislauncher Goto Github PK
View Code? Open in Web Editor NEWA data-heavy Emulation & Gaming front-end for Windows
Home Page: http://metropolis-launcher.net
License: Other
A data-heavy Emulation & Gaming front-end for Windows
Home Page: http://metropolis-launcher.net
License: Other
How can I efficiently link MAME games to their Moby data?
I added MAME ROMs to ML using the special MAME settings widget, where you specify the MAME exe and related data files, then click the "Scan" button to read games into ML.
After performing this step, MAME games appear in ML's "Games & Emulation" screen, with the "Game", "Year", and "Developer" columns populated, but all other left blank. Game names are the "friendly name", e.g. "Ninja Baseball Bat Man (World)", and not the "ROM name", e.g. "nbbatman".
I opened the ROM Browser, which listed all of my imported MAME ROMs, but only displays the MAME filename and inner file in the left panel, both of which are the "unfriendly" ROM name (e.g. "nbbatman"), and not the "friendly" name (e.g. "Ninja Baseball Bat Man (World)").
Moby releases appear on the right side of the ROM Browser, as expected.
At this point, I can select any/all of my MAME ROMs, right-click, and select "Detect MobyGames Links". However, since the basis of comparison is the ROM name and not the friendly game name, the matching algorithm predictably fails to find hardly any matches. It is effectively trying to match "nbbatman" to "Ninja Baseball Bat Man", and that obviously won't work, except in a handful of cases of games with a short, single word name. In my case, matches were found for 337 out of 13364 games. For the remainder of imported MAME ROMs, the match guesses were completely off.
Is there a way to use the MAME friendly game name, and not the ROM file name, as a basis for comparison during MobyGames link detection? The friendly game name is already available and showing in the "Games & Emulations" view, it's just not available in the ROM Browser, where link detection is actually performed. If the friendly name were the basis of comparison during link detection, it would work as well as any other platform.
Or, am I missing something obvious? Although I've read the help file, I'm not 100% confident that I'm approaching MAME game data handling correctly.
Please advise.
Hey, I brought this up earlier on Reddit. If you do implement some kind of export function for other front ends, like I said I would really like one which would export a .nfo file formatted like the movie .nfo files that Kodi uses. I've already gone to the trouble of doing this for a number of games for my own use, but an automated solution would save me years of work. I know plenty of other people who would like to use Kodi as a gaming front end (or who would like for gaming front ends to incorporate other media. Either way, the community is pretty hungry for a solid all-in-one approach to things). I've already gone to the trouble of figuring out suitable replacements for the majority of video game metadata as far as the .nfo files go just by virtue of having been doing it on my own for so long. If you'd like for me to shoot you some examples let me know, and of course I can always type up more detailed ideas if you would prefer that.
For example, I would like to add certain windowed and/or fullscreen resolutions, or certain output modes. I'm DOSBox ECE 4035 which features a patch called "pixel-perfect", and it adds the following output modes:
surfacepp
surfacenp
surfacenb
openglnb
I would like to add these as options to the output drop-down box when creating a template. And of course it would be helpful to change other default values as well, as they may change or be updated with future releases of DOSBox.
There appears to be a problem with the Fluidsynth gain setting for DOSbox ECE. It seems that when using the default setting of 0.600 it somehow gets reset to a null value in the .conf file resulting in no audible sound from MIDI in games. Setting it to something else, like 0.610 results it it working as expected. I do not have this problem with DOSbox ECE on it's own.
MobyGames introduced a whole bunch of new genres (100+) and genre types (ca. 10).
Error messages:
No tags have been found, the window will be closed
I don't think this one is an error, but I am curious as to the nature of tags and how/where they might exist as well as their function.
There has been an error while rescanning a DOSBox game. The error was: Syntax error: Missing operand after 's' operator.
Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately
.
Syntax error: missing operand after 's' operator.
Details: https://pastebin.com/hcYCqLUE
(also known as Parent/Clone roms, especially in MAME)
I don't mean fullsets in one 7z file, instead of this, I mean some versions of the same game into one file, for instance: Mega Man 3.7z
I think an option that allow the user sets it's own preferences of which versions of the games (s)he wants, for example: (U), (J), (E)... (Tw), (Ch). This makes the program choose first the (U) rom, if doesn't exist, choose the (J)... finishing by the (Ch) rom if it's the only available.
But let's also remember that in the Mega Man 3 example, the (U) rom has PRG0 and PRG1, so it's also well, letting choose which file to rom inside the 7z file before starting, like Nestopia or BizHawk does.
https://s15.postimg.cc/oohvk8ch7/metropolis1.png
Getting back to the preferences method, maybe something like this would be great:
https://s15.postimg.cc/upfkhch3v/metropolis2.png
This is a great idea because this saves time by choosing the best version of every game by the user (him/her)-self, especially if has a full collection of merged roms, saves hours.
Would save a mouse click each time. User can click the back arrow to access settings and apps menus if necessary (or can disable this feature).
From what I've seen, you've only developed ways to import images manually for each game or created while an emulator is running a specific game.
Please consider adding an option to specify directories that already contain images (snapshots, title screens etc.) for a platform.
MAME users can download full sets of images from Progetto Snaps, and people who use No-Intro/Redump ROMs can download collections of screenshots and box arts from https://github.com/libretro/libretro-thumbnails/ . Both offer images that have the same names as the expected ROM file names.
Here's how you set the directories up on QuickPlay:
The filename drop-down menu:
Result after specifying the folders with all images:
One of the most interesting features on launchers such as hyperspin is the ability to use metadata (title, filename, extension, 1 or 2 custom fields) from roms and use them within scripts.
For instance, you can :
Plus other general functions not requiring metadata :
I've written a lot of AutoIT3 scripts for ECC, a frontend that enables the use of metadata but is otherwise sluggish and primitive compared to MetropolisLauncher. They really make the difference for launching computer games (Amstrad CPC, NEC PC-8801 and PC-9801, Fujitsu FM-7 and FM-Towns, Sharp X1 and X68000, MSX, Thomson MO5/TO7, Texas Instruments TI-99...)
I'm using this metadata for my scripts :
Could support for AutoIT be possible in MetropolisLauncher in the future ?
If it can be of any help, I can send you some of my scripts, of course.
When importing a folder I get the following:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
---- Exception Text ----
System.NullReferenceException: Object reference not set to an instance of an object.
at Metropolis_Launcher.frm_Tag_Parser_Edit.Extract_Content_From_FileName(String FileName, Dictionary2& dict_Contents, ArrayList& al_Allowed_Extensions) at Metropolis_Launcher.frm_Tag_Parser_Edit.Extract_Content_From_FileInfo(FileInfo fi, Dictionary
2& dict_Contents)
at Metropolis_Launcher.frm_Tag_Parser_Edit.Extract_Content_From_Path(String Path)
at Metropolis_Launcher.frm_Tag_Parser_Edit.frm_Tag_Parser_Edit_Shown(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnShown(EventArgs e)
at DevExpress.XtraEditors.XtraForm.OnShown(EventArgs e)
at System.Windows.Forms.Form.CallShownEvent()
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
It could be nice to auto-add roms to platforms.
Instead of going platform by platform adding roms, just add your roms folder (with or without subfolders inside). Knowing if a rom/file/zip... is Sega Genesis or N64 is easy using dats.
What do you think about this idea?
Regards.
Please make the "Game" column from the "Games & Emulation" screen available for selection in the left panel of the ROM Manager.
Manually linking an individual MAME rom to its corresponding Moby game is theoretically possible in the Rom Manager, but it's impractical because only the filename is available to the user in this screen. For non-MAME roms, the filename itself tells the user which game the rom is for, but this is not the case for MAME roms.
Thanks!
Who wouldn't like if the Launcher every time loads the rom and minimize automatically? Admit it, it's great! Then, when you close the emulator and the Launcher re-opens after waiting for you having fun.
Edit: I see this is implemented only for Applications, why not also for Games & Emulation?
One particular feature of D-Fend Reloaded that I like is that when you right-click a game and click "edit", you can change the emulator settings for that particular game.
In MK2k, it looks like the only way to have discrete emulator settings from game to game (which is very important), is to create individual emulator templates for each game (in a separate menu), and to then select the matching template for the game. It would be handy to be able to perhaps automatically create a template via the right-click context menu, or to somehow make it such that emulator settings for a specific game could be altered by right-clicking the game.
MobyGames is adding Genres. Upon MobyUpdate check each genre for update or if it does not exist add it to moby.tbl_Moby_Genres with No_Category set.
D-Fend Reloaded allows the user to execute commands before the game launches and after the game is closed. This can be useful for opening/closing a midi synth (such as Falcosoft Midi Player, for example), so that the synth only runs while the game is being played.
In the example image below, I have told DFR to execute mt32.exe when the game is launched and to execute kill.exe when the game is closed (although the suffixes are not necessary). These exe files are autohotkey scripts which launch Falcosoft Midi Player and then close it (upon termination of the game), respectively.
When executing a command before the main program, DFR allows the user to "wait before execution of the main program" so that DFR will hold off on launching the game until the command is fully executed. This is a useful feature to ensure that a midi synth is fully initialized before a game launches, although it could be further improved by allowing the user to specify an additional delay (in milliseconds) if more delay is needed.
Observe the other options that DFR allows the user (such as running the commands minimized and in order). This would be a helpful addition to MK2k.
This is a bad idea for people who uses RetroArch, but I still think for the other emulators is a good idea (or maybe not).
An good alternative would be implement this only for MAME/MESS, but let's remember MAME is updating every month ending and has a HUGE platforms list. So it's possible to list something like the auto configuration Metropolis already has, but exclusively for every working (and probably partially working) platform MAME supports, so doesn't list "NOT WORKING" platforms like Virtual Boy or PC-FX.
Depending of how hard you made the auto configuration for some of emulator, I may help you creating a MAME/MESS auto configuration for every working platform, but first we need to have a verdict and think on how it will work, to avoid problems.
If someone has an alternative idea (even if its better or worst than mine) about this I would like to read it because I'm not sure if my idea would really help improving the Launcher.
Anyway I could help you with this process perhaps??... Maybe by manually collecting the CHD numbers and compiling a list of them?..
EDIT - Sry Im new to Github and tried responding directly to Issue of CHD files... I SEE I DIDNT scroll down far enough to CLEARLY see the comment area...And I also cant seem to find a way to Delete this comment.... Yeeeeeah a new thing to be a fresh newbie at... Ill learn the web page fast as I always learn fast....
Ok I see I can NOT delete this as I thought might be the csae... Once again sry.. Please close this and Delete... Ill comment where it belongs.
LaunchBox (http://www.launchbox-app.com) is a popular front end that has lots of polished HTPC-style features (e.g., choosing a game from an Apple iTunes-style animated full screen menu system using an Xbox 360 controller), but is severely limited in its data management features compared to Metropolis Launcher.
A very nice workflow would be:
Use Metropolis Launcher for intensive data management (including ROM launching) of my entire ROM collection. You might call this "power user mode".
Export a subset of those ROMs into LaunchBox, so that e.g. family members could use the HTPC features to browse a subset of ROMs, with hacks etc. filtered out. You might call this "end user mode".
LaunchBox has an plugin framework for extending its functionality using .NET, including modifying its game database (which is actually stored in XML and not a relational database like SQLite).
I envision an export function in Metropolis Launcher that rebuilds LaunchBox's internal XML database on demand, either via the API, or by XML construction.
I realize this is a major request, with many requirements as yet undefined. That said, I'm happy to assist in this effort. I have a deep familiarity with the idiosyncrasies of LaunchBox's data model.
Currently, ML only supports the platforms it ships with its database.
The possibility to add custom platforms would give users more freedom in using ML.
I noticed that there's nothing for adding additional command line paramters for DOS and Windows games (example. Loading Elder Scrolls II: Daggerfall using FALL.EXE Z.CFG) Was wondering if you could add a text field for that in the Edit Game window.
Most emulators for disc-based platforms also support ccd/img/sub files, and some emulators (like Gens or Xebra) read only one bin file so if you have multiple bin files and a cue file, oooh $%&/, and sometimes we need to merge them into one, and most times we merge to a ccd file.
Maybe this is a good idea, for people who are used to ccd files, or for people who converts their multi-bin files with (for example) Xebra CUE2CCD.
The only disadvantage is that almost always we backup a game from our own disc, the result is a cue file, and the best emulators already supports multi-bin files listed by the cue.
I just timed this with my phone, and it took just over 8 seconds to access the "Games and Emulation" menu. This seems a bit long. What is the cause of such a long loading time? I've noticed that subsequent loading times are much shorter, but if the program is closed and re-opened, the initial loading time is very long.
When I export my eXo collection to TDL via Metro, I get an arithmetic overflow error when trying to add files larger than 2gb. I've had to select 6986 of the 7000 zips in order to avoid this overflow error.
First of all, let me say that I just found this program and it is INSANE. I've been looking for this for a couple years now. I don't see a huge community, but I hope you feel appreciated for this truly amazing piece of software!
An issue I'm having, is that pictures do not download from Moby. Everything behaves as normal--the Extras Manager loads, the list of items shows up on the left, but the picture area is blank, and clicking items on the left does not force a download. (The "Download extras when selected" check box is checked.)
If I hover the mouse over the picture area, I get the popup "tooltip" "Click to Edit / Click here to edit the image", but clicking does nothing but make the popup go away.
Any ideas? Am I missing something? Do I need to create a Moby account? Do I need to update some DLLs?
Thanks much, Aaron
This feature request is purely cosmetic in nature, but it would be nice to have an icon view (without the additional windows and such) similar to this:
I have many icons that I have custom-made for each of my games (some icons come from Collector's Sierra Help installers), but I really like this kind of a view for the frontend. Very minimalistic and nice to look at. I think that MK2k might benefit from a similar type of layout for those who prefer it. D-Fend allows the user to choose from display 32x32, 64x64, 128x128, and 256x256 sizes (I think it just scales the image to these sizes and doesn't necessarily require a .ico file without multiple sizes within, although .ico format is supported).
In the Edit Game dialog at DOSBox Settings | Midi Config the Fluidsynth Settings are not correctly visible.
moby.db lists over 100 platforms, however, only 39 are visible to the user, because metadata is available.
Add an option to the Platform Settings dialog where a user may add a platform from the list of available platforms even if metadata is not available.
Show the user an information about the implications.
(not sure yet) let the user decide if the platform is multivolume or not
It's maybe a bad idea because this will affect the moby.db size but even in case someone is agree, I request this.
There's some missing platforms in the systems list in Metropolis, and I know some people would be satisfied at seeing all their collection of favorite games per platform.
Let's just see for instance: a guy has just discovered Metropolis, and seen all it's features and the offline database incorporated for more than 50k games, the guy downloads and while adding it's little collection, the guy seems that the Launcher isn't managing ColecoVision games!! That's unaffortunate...
I'm seeing right now while I'm writing this the list of platforms MobyGames so...
Platforms that surely would be great for add:
I request without any doubts these platforms to be added.
Platforms that possibly some people will like to also see:
I'm not sure if these ones would be a great idea to add, but if I still know these consoles and mention them in case someone would like it, this discussion works for this, to know what's everyone thinks about this.
RocketLauncher (http://www.rlauncher.com) has a plugin format that allows it to connect to various front ends, in order to automatically retrieve lists of platforms and games. This lets users do all their complex emulator setup in RocketLauncher, and they can leverage that setup in multiple front ends with minimal configuration.
Since I already have RocketLauncher all set up to launch my ROMs, a plugin would be great so I could leverage those configurations, and not have to replicate them in Metropolis Launcher.
Steps to reproduce:
At this point, ML displays an unhandled exception dialog
************** Exception Text **************
System.NullReferenceException: Object variable or With block variable not set.
at Microsoft.VisualBasic.CompilerServices.Symbols.Container..ctor(Object Instance)
at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
at Metropolis_Launcher.frm_Rom_Manager.gv_Emu_Games_RowCellStyle(Object sender, RowCellStyleEventArgs e)
at DevExpress.XtraGrid.Views.Grid.GridView.RaiseGetRowCellStyle(Int32 rowHandle, GridColumn column, GridRowCellState state, AppearanceObject appearance)
at DevExpress.XtraGrid.Views.Grid.GridView.GetRowCellStyle(Int32 rowHandle, GridColumn column, GridRowCellState state, AppearanceObject appearance)
at DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.UpdateCellAppearanceCore(GridCellInfo cell)
at DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.UpdateCellAppearance(GridCellInfo cell, Boolean always)
at DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CreateCellEditViewInfo(GridCellInfo cell, Boolean calc, Boolean allowCache)
at DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.RequestCellEditViewInfo(GridCellInfo cell)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRegularRowCell(GridViewDrawArgs e, GridCellInfo ci)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRegularRow(GridViewDrawArgs e, GridDataRowInfo ri)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRow(GridViewDrawArgs e, GridRowInfo ri)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRows(GridViewDrawArgs e)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawContents(GridViewDrawArgs e)
at DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.Draw(ViewDrawArgs ee)
at DevExpress.XtraGrid.Views.Base.BaseView.Draw(GraphicsCache e)
at DevExpress.XtraGrid.GridControl.OnPaint(PaintEventArgs e)
at DevExpress.Utils.Drawing.ControlPaintHelper.PaintWithErrorHandling(PaintEventArgs paintEventArgs, Int32 layer)
at DevExpress.Utils.Drawing.ControlPaintHelper.ProcessWMPaint(Message& m)
at DevExpress.XtraGrid.GridControl.CheckProcessMsg(Message& m)
at DevExpress.XtraGrid.GridControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
In the Rom Manager, there is an option in the right-click menu to remove games from the collection. Please add it to the right-click menu in the Games & Emulation screen, as well. It would be very useful.
Hi!
Would be possible to add a feature to customize launcher's skins?
Or maybe there is already a way?
Thanks!
1. Allow MK2k to remember size and position of window so that it opens in the same configuration
This is a somewhat minor aesthetic feature that I would like to see. D-Fend Reloaded allows the user to choose different options for the interface itself, such as restoring the window size/position from the previous session. Personally, I like starting the frontend in a smaller window. It would be nice if MK2k would remember the sizing and positioning of the window (as well as the various borders of the different sections within the GUI) if desired. An option to reset these to default would also be nice.
Additionally, an option to center the window (in relationship to the overall screen) would be nice.
Example from D-Fend Reloaded:
To increase portability of games collection, it would be useful to be able to change game paths (and all other relevant paths) to a relative structure.
For example:
C:\Users\lmill\Desktop\Metropolis_Launcher\games\KQ1
becomes
.\games\KQ1
It would also be useful to be able to specify helper programs in this manner as well, if that feature is added. That way, the Metropolis_Launcher folder (assuming it contains games and all other relevant files) can be moved from one PC to the next without issue.
Hi,
I was trying to compile Metropolis Launcher, however, I have a different version of DevExpress available. Changing the references was easy enough, however, there seem to be some hardcoded references inside these two libraries, for which no source code is available.
Please provide the source code to these two libraries so that they can be rebuilt against a different version of DevExpress
Another bad idea I think.
I did think it would be amazing for people who already has Metropolis, to download a soft update.
What are you talking about? Easy, not everybody have an very great internet (but well is better than nothing), and Metropolis is too large in size (even more than LaunchBox), and that's due to the moby.db and rombase.db. So an update that excludes these two files will result in a very smaller file than the normal updates.
But the problem is also obvious, is that with every update of Metropolis Launcher, these files are also updated, and I didn't think that.
I still think about an alternative update method, maybe its possible a patch, or something else. Because for example, hackroms uses IPS to patch their roms. I still think there's some possibilities for this.
At least when you're about to launch an update and there's not any updates to the db, launch the update without the db files and the full program (for new users).
Requesting addition of ScummVM platform
Retroarch now supports CHD (compressed images) files for a variety of platforms including PC-Engine CD, Sega CD, Playstation and Saturn. Metropolis Launcher can't currently "see" them when scanning a folder for roms. Would it be possible to add support for these files ?
Trying to add an image through the user extras manager causes the following error:
Unable to cast object of type 'System.Drawing.Bitmap' to type 'cls_Extras_Result'.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.InvalidCastException: Unable to cast object of type 'System.Drawing.Bitmap' to type 'cls_Extras_Result'.
at Metropolis_Launcher.ucr_Emulation.bbi_USER_Extras_Manager_ItemClick(Object sender, ItemClickEventArgs e)
at DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
at DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link)
at DevExpress.XtraBars.BarItemLink.OnLinkClick()
at DevExpress.XtraBars.BarButtonItemLink.OnLinkClick()
at DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
at DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
at DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
at DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
at DevExpress.XtraBars.Controls.CustomPopupBarControl.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at DevExpress.XtraBars.Controls.CustomControl.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
This is not really an issue, but a relevant problem for me: metropolis launcher is really slow, way too slow. I have timed 30 seconds between the moment I click on the button "games" and the appearance of these. If you compare with a less pretty frontend such as "emulators organizer" where there is no loading time, I chose the fastest of two ... I don't know anyone who likes to wait, you lose a lot of potential users in my opinion.
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.