Re-designed a bit Interface Options Dialog:
Removed unused MAME Internal UI options that were there but completely useless for us. Moved on the left the "Display Info" section and centered all the options.
Windows Data Types renaming to stay updated with the core:
WCHAR, TCHAR ----> wchar_t
BYTE ----> uint8_t
INT_PTR, UINT_PTR ----> intptr_t, uintptr_t
UINT8, UINT16, UINT32 ----> uint8_t, uint16_t, uint32_t
INT8, INT16, INT32 ----> int8_t, int16_t, int32_t
Fixed issue with DATAFILES not being displayed in the Internal UI:
Now the path for datafiles for the Internal UI which is stored in UI.INI is set at startup with the value set for *our* DATS path stored in INTERFACE.INI and the UI.INI is re-saved immediately. This ensure us that at every game startup the core will find the correct path for the datafiles and the "External DAT View" menu will correctly appear. This is a workaround to fix a core bug, as reported by MASH at MAMEWorld Forums.
Disabled "Add to Favorites" menu voice in the Internal UI:
This option in the Internal MAME UI is completely useless for us, from ARCADE you haven't access to the Internal UI completely so have it displayed when you press TAB is a non-sense. Commented out in \FRONTEND\MAINMENU.CPP
Completely removed dependencies from core file WINUTF8.CPP:
All the functions we use in our code from that file have been moved to WINUI_UTIL.CPP and renamed as follows:
void winui_output_debug_string_utf8(const char *string); int winui_message_box_utf8(HWND hWnd, const char *text, const char *caption, UINT type); bool winui_set_window_text_utf8(HWND hWnd, const char *text); int winui_get_window_text_utf8(HWND hWnd, char *buffer, size_t buffer_size); HICON winui_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex); HANDLE winui_find_first_file_utf8(const char* filename, WIN32_FIND_DATA *findfiledata); bool winui_move_file_utf8(const char* existingfilename, const char* newfilename);
This makes us safe from future changes/brainstorming that surely will happen in the Windows source code section of the MAME core, expecially when full support for Windows Store and Smartphones will be completed. I modified all the ARCADE files that use these functions that have been also simplified to use standard C code conventions to convert chars from UTF-8 ----> UNICODE and viceversa.
Renamed HISTORY.CPP to DATAFILE.CPP:
I believe that this better represents what our code is doing in this file, because we don't handle only HISTORY.DAT. So for external people that want to have a look at ARCADE source code and maybe contribute/help, it will be easier understand it. A good idea could be also rename
char * GetGameHistory(int driver_index);
to something like for example:
char * GetGameInfo(int driver_index);
In the meantime, the WINUI.LUA script has been updated to correctly compile our files.
I believe that's all and hopefully I didn't forgot anything and above all, I've been enough detailed in what I've done.
Here's a link to the modified source, I compiled it against 0.182 source and I got a couple of error about some extra games defined in MAME.LST. So I guess you used a more updated source to release ARCADE 0.182. In any case, a test 64-BIT build worked perfectly, I didn't noticed any relevant bug.
Ok, that's all. I hope you'll include all the changes but any case you're now the mantainer of the build so final decision is yours.