registry = ipsRegistry::instance(); $this->settings =& $this->registry->fetchSettings(); } public function getOutput() { return; } public function replaceOutput($output, $key) { require_once( IPSLib::getAppDir('ibprobattle') . '/sources/battleHooks.php' ); $this->battleHook = new battleHooks( $this->registry ); return $this->battleHook->statsTopicView($output, $key); } } ?>registry = ipsRegistry::instance(); $this->settings =& $this->registry->fetchSettings(); } public function getOutput() { require_once( IPSLib::getAppDir('ibprobattle') . '/sources/battleHooks.php' ); $this->battleHook = new battleHooks( $this->registry ); return $this->battleHook->statsTopicViewJS(); } } ?> Modernizations, Fixes & Improvements - ARCADE - 1Emulation.com

Jump to content

Welcome to 1Emulation.com
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account
Photo

Modernizations, Fixes & Improvements

- - - - -

  • Please log in to reply
9 replies to this topic

#1
mamesick

mamesick

    Member

  • Members+
  • 56 posts

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.

interfarcade.jpg

 

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.

http://www.mediafire...e39x2/ARCADE.7z

 

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.

 



#2
Robert

Robert

    Alchemist

  • User Admin
  • 11,369 posts
  • Gender:Male
  • Location:Land of Oz
Thank you for that. I don't know when I'll get to look at it, because it's so hot here and too hot for my development computer. Hopefully some time in February.

#3
Robert

Robert

    Alchemist

  • User Admin
  • 11,369 posts
  • Gender:Male
  • Location:Land of Oz
OK I copied over the new winui files.

Then I deleted history.h and history.cpp.

Then I manually modified winui.lua to account for the filename changes.

And lastly went into mainmenu.cpp and commented out the favorites menu option and a separator.

It compiled and ran fine. Hopefully I didn't leave anything out?

#4
haynor666

haynor666

    Member

  • Members+
  • 56 posts
  • Gender:Male
  • Location:Tarnobrzeg, Poland

Guys, I've found that taito_l.cpp is exactly the same as in official mame source (not to mention many files in scripts directory). Should contain any changes ?


Edited by haynor666, 03 February 2017 - 10:11 AM.


#5
Robert

Robert

    Alchemist

  • User Admin
  • 11,369 posts
  • Gender:Male
  • Location:Land of Oz
taito_l.cpp had contained 2 extra games (sokoban and speccies) but these were removed, because they are in HBMAME. So, it should have been removed from newsrc.bat but was overlooked. This has now been fixed.

As for scripts, the entire folder is copied over, without any check if each file is changed or not. The files are quite small so I figured it doesn't matter.

#6
mamesick

mamesick

    Member

  • Members+
  • 56 posts

OK I copied over the new winui files.

Then I deleted history.h and history.cpp.

Then I manually modified winui.lua to account for the filename changes.

And lastly went into mainmenu.cpp and commented out the favorites menu option and a separator.

It compiled and ran fine. Hopefully I didn't leave anything out?

I think that what you've done is fine. I have other changes in mind too but I guess it's enough for the moment.

 

For the curious people, no, I'm not coming back on the emulation "scene". Though I'll continue to post something here now and then.



#7
mamesick

mamesick

    Member

  • Members+
  • 56 posts

Side note: when I made a reply, a lot of garbage messages appear on top of screen and my reply didn't appear even if registered correctly.



#8
haynor666

haynor666

    Member

  • Members+
  • 56 posts
  • Gender:Male
  • Location:Tarnobrzeg, Poland

I have the same problem. Probably something is wrong with forum software.



#9
Robert

Robert

    Alchemist

  • User Admin
  • 11,369 posts
  • Gender:Male
  • Location:Land of Oz
Yeah forum got stuffed up when they did a recent "upgrade".

The garbage appears when you post to an existing thread. Just press F5 and it then looks normal.

#10
TEOL

TEOL

    Newbie Poster

  • Members+
  • 7 posts

Nice. In the modern MAME Source codes as well there is all sorts of audio related goodies for an all new M1 Arcade.

 

I searched using the new Windows 10 deeper folders search thing and I can find the new folders where the machines from M1FX are located now just like that and there is a lot more new entries of sound chips from arcades and home systems.

 

It would be cool if someone can tinker sometime and add all the new stuff into your existing source code.

 

It's important though that M1FX stays uncut if we do have a go updating it so that even though home systems games can't be played on the Arcade due to it being for the arcades only the music can be played of everything as of course native sound quality is better than those logged to SPC and VGM on the home systems so on a new Arcade M1 Music Player the full monty would be nice to have although I understand Arcade only having the Arcades because the other systems lets be honest work pretty rubbish currently other than the sound so M1 would be the only thing worthwhile for them at the moment anyway but a full monty M1 on the other hand is worth the hassle as MAME/MESS on all systems plays audio well.

 

A super M1 Arcade is definitely a music player I would like to see. We also have to find out how we can make all games musics play without a hex related playlist though as it would take years to be able to make every game it runs work if we have to use hex lists. What would be better is if it used the real MAME/No-Intro XML lists to run titles rather than the custom one with the 2304u923404 x 975934u5 format.


Edited by TEOL, 07 February 2017 - 01:30 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users