Git Product home page Git Product logo

mamehub's Introduction

MAMEHub

MAMEHub: A free gaming platform that brings people from different ends of the earth together to experience both arcade and console games online

Imagine walking into the biggest arcade you've ever seen in your life. There are thousands of arcade cabinets with all of your favorite past-time games, and even rooms full of consoles, including super nintendo, genesis, and even playstation. Just like a real arcade, you can call your friends and invite them to come and play games, but in this arcade your friends don't have to meet you in the arcade, they don't even have to be on the same continent.

MAMEHub is the world's biggest arcade & living room in one: a massive library of games sitting on a scalable, peer-to-peer platform that can bring people from different ends of the earth together to experience both arcade and console games online.

When it comes to code, MAMEHub is two things: A fork of MAME & MESS that supports Netplay (coming to github soon), and a client/server interface that allows players from around the word to meet and play games (server coming soon).

Building the MAMEHub Emulator

The MAMEHub Emulator is a fork of MAME that adds a fully-connected peer-to-peer networking layer. Building MAMEHub should be the same as building MAME, but for completeness, here are some instructions on a per-OS basis.

Mac OS/X

  1. Download SDL from http://libsdl.org/
  2. Open terminal, go to the SDL directory
  3. run ./configure --prefix=SDL_INSTALL_DIRECTORY (replace with an empty directory name)
  4. run make install
  5. Download and install yasm from http://yasm.tortall.net/
  6. In the same terminal, go to the MAMEHub/Emulator directory
  7. run export PATH=SDL_INSTALL_DIRECTORY/bin:$PATH
  8. run export MACOSX_DEPLOYMENT_TARGET=10.5
  9. run make -j8 MACOSX_USE_LIBSDL=1 PTR64=1 NOWERROR=1 TARGET=ume PROFILER=1 SYMBOLS=1 OPTIMIZE=3 CC=/usr/bin/clang LD=/usr/bin/clang++ AR=/usr/bin/ar
  10. You should now have a csume64 file which is the emulator binary.

Linux

  1. Install sdl and yasm using a package manager
  2. Open a terminal and go to the MAMEHub/Emulator directory
  3. run make -j8 NOWERROR=1 TARGET=ume
  4. You should now have a csume or csume64 file which is the emulator binary.

Windows

  1. Download the mamedev tools from http://www.mamedev.org/tools/
  2. Download yasm from http://yasm.tortall.net/ . Rename yasm to "yasm.exe" and put in your path.
  3. Follow the instructions on that page up to the make command
  4. Replace make command with make -j8 NOWERROR=1 TARGET=ume
  5. You should now have a csume.exe which is the emulator binary

Building the MAMEHub Client

The MAMEHub Client uses Gradle. To build the client, first install Thrift, then go to the Client/ directory and run this command in the client directory:

gradle solid

Maven will automatically download the dependencies and build MAMEHub. Then to run your client, run this command:

java -jar solid/MAMEHubClient-0.0.1-SNAPSHOT.jar

mamehub's People

Contributors

antervud avatar gitweazle avatar jaku2k avatar lewoy avatar mistertea avatar prinygod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mamehub's Issues

Feature Request - Modify UME settings from within the GUI

Users can already modify settings by modifying ume.ini, but it would be nice to be able to modify some more of the settings from within the MAMEHub GUI. Like being able to modify the window resolution, triple buffering, etc. Maybe even make it a per-game thing?

Java Errors (but runs normally)

When I run MAMEHub.bat I receive a couple of errors at the end (after it checks for csume updates). Everything seems to run fine, so it might not be important or something on my end, but I thought I'd report anyway.

I run Window XP SP3, fairly recent clean/fresh install of Java 7 Update 21-b11

mamehub_java_error

CHDs from systems other than MAME, Playstation, or Saturn are not detected if one level deeper.

This took me a long time to understand. For MAME, Playstation, and Saturn games you can point at a directory containing many folders in the auditor and it will search the sub folders. Other systems do NOT share this behavior in my many hours of testing. If this is the case, for both consistency and the idea that almost any full set you download will be in a folder filled with numerous other sub folders on level deeper, I suggest this behavior is changed.

EX: If I just drop an chd that matches in the list into ../Roms it'll show up. If I put it in ../Roms it will not if it is not a MAME, Playstation, or Saturn chd.

Client EXE does not work after installing Java SDK

After installing Java SDK the BAT and EXE files redirect to Sun's website to install the browser plugin. MameHubClient.jar still worked. I removed Java completely and reinstalled SDK to get the EXE working again.

CSUME Crash (minor issue)

When you run CSUME from the command line without the -server argument and accidentally use the switch player command in the chat /#, the program will crash with an Access Violation. Of course there is no player to switch to; it's all local.

Obviously not a big problem, but I thought I'd mention it.

Demon Front online errors

I believe Demon Front runs on a new PGM bios and only works in MAME because of an oversight by the developers that somebody discovered.

However it plays fine in single player mode, but when we tried to play it online the person that connects (not the host) receives error messages inside the game. The errors do not seem to come from MAME or MAMEHub, but the emulated game itself (looks like a bunch of memory addresses). If you wait, the errors sometimes go away and you can play normally for a few seconds. After a short while though, the errors return.

I realize this could be related to the ROM itself and thus not fixable, but I was hoping that it might be something in the netcode communication, since it only happens online and to the client. Thanks in advance! Here is a picture:

demonfront_error

after SVN update, mamehub will not let me login

Note: this is from 2.0.7 already installed, then SVN updated to 2.0.7a (not 2.0.7a fresh install).

Was a long SVN update before trying to login, tried restarting program, still no joy there.

demo

Need to update mamehub to 0.149 emulators

There was a lot of changes made to some core MESS drivers during the 0.148 development cycle, which introduced a significant amount of issues with game systems, updating to 0.149 would include the fixes made during the later 'U' updates and thus is a better stable release.

Game starting should not cause pop-ups when status is "away"

This can cause a lot of trouble with a number of things peop-le do on a computer, even if it doesn't steal focus. When set to "away" chat messages don't pop-up outside of MAMEHub, game messages shouldn't either. It essentially forces people to close the program to stop receiving those messages. I understand it is likely a small oversight.

auditor problems

at first mamehub would never get past the step "update cache" now it crashes when i update

win 7 32-bit

errorlog
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\Users\Prinygod\Desktop\emulators\Mamehub\MAMEHub2\dist\AuditIndex9\write.lock
com.mamehub.client.audit.GameAuditor.run(GameAuditor.java:125)
java.lang.Thread.run(Unknown Source)

Allow for custom PSX game image hosting

Think of this as a low priority request, and a mini project in itself. Is it viable or worth doing even?

As mentioned by zambr and Gitweazle, allow custom PSX games to be hosted.

How about allowing users to use a custom PSX hash file and allowing them to add their own PSX game image (.chd file) details to this file, which anyone can add to.

For example:

(1) User selects "custPSX" from game filter list.
(2) This displays a list of PSX games users have uploaded data for.

If user wishes to add their own PSX image data to this list:

(1) User selects top menu option, "Add PSX chd"
(2) User selects a PSX .chd file from a folder on their PC, and is asked to enter in a game title.
(3) MAMEHub reads the crc info automatically from the provided .chd and adds this data to a database file held on the hub.
(4) MAMEHub finally reads the database file of all data entries within it and creates an updated hash file, and this is sent to users PC (maybe hash file gets sent after restarting MAMEHub, so SVN can send it).

So this basically would allow MAMEHub to keep track of all user custom PSX .chd files.

Keyboard emulation warning

Add a warning at the beginning of systems with full keyboard emulation, letting players know that scroll lock switches to partial. This will improver user accessibility and reduce false bug reports

Feature Request - Video recording and uploading

Older versions of MAMEHub (I think this was from V1?) had a neat feature that allowed the player to take a webm video of the session with chat logs and upload it to YouTube. I don't remember if V1 had the ability to upload the video but I know it did have the ability to record.

I know users can use their own recording software like Dxtory and FRAPS, but it would be nice to remove the hassle of having to use them if MAMEHub could provide the functionality from the get go.

NOTE: This is different from the replay record/playback feature request ticket. This ticket supports the idea of physically outputting a video file that can be played in multimedia software while the replay ticket outputs a small file that can be played back directly within MAMEHub.

Can't change listen port

In previous versions of MAMEHub, I could change the listen port. I have multiple computers on the same network connected to the same Internet connection at the same time, and this feature allowed those computers to use MAMEHub simultaneously as I could set up different ports for each computer. MAMEHub 2.0 lacks this feature and is consequently useless on my network.

Nvram too large to be loaded or sent, but it's not.

I'm trying to make nvrams for things like JoJo or Warzard, but I get this message. I know we had problems with this before, but see the thing is the nvram is in fact NOT LARGE. The EEPROM is 1kb. The SIMM files created along ARE LARGE but not necessary in the context of non-physical media. The NVRAM essentially only exists in the EEPROM, you can send that and load it very easily.

My suggestion is to disable the creation of SIMM files (they waste space and slow down closing the rom when they are created) if possible, and if not at to allow the sending of the eeprom in the games nvram folder while ignoring the SIMM files. This will fix numerous issues with unlockables and synching on cps3 games. Thank you.

Upnp not working

win 7 32-bit. Disabled firewall, still getting port messages, upnp on in router

Have Dip switches and cheats be set by host only

Only host should be able to set switches and cheats, to prevent desyncing, and when the host does all peers should automatically duplicate. (again to prevent desyncing) Finally peers who connect should also copy the host, ideally switching back to their preferred Dip switches once they leave the game.

Ratings issue

Here is the event log:

[02:55:19,420 ERROR MainFrame.java:551] Exception trying to assign rating
java.lang.IndexOutOfBoundsException: Invalid index
at javax.swing.DefaultRowSorter.convertRowIndexToModel(Unknown Source)
at javax.swing.JTable.convertRowIndexToModel(Unknown Source)
at com.mamehub.client.MainFrame$1HostGameListPopup$1.actionPerformed(Mai
nFrame.java:537)

The problem is if the game isn't highlighted and you right click and rate it does not work. If you click the game to highlight than it launches the game. Is there any way to highlight the game by right clicking without it launching, or have an extra step, either a button or a double click to launch the game?

in game recorder crashes csume

see summary

Creating server on port 6805
UPSERTING PEER WITH ID: 1 AND NAME: Prinygod
UPSERTING PEER WITH ID: 1 AND NAME: Prinygod
PEER DATA SIZE: 0
PEER DOES NOT EXIST, INSERTING
CHECKING P1 Up AND P1 Down
CHECKING P1 Up AND P1 Left
CHECKING P1 Up AND P1 Right
CHECKING P1 Up AND P1 B
CHECKING P1 Up AND P1 C
CHECKING P1 Up AND P1 A
CHECKING P1 Up AND P1 Start
CHECKING P1 Up AND Player 1 Controller
CHECKING P1 Up AND Player 2 Controller
CHECKING P1 Up AND Player 3 Controller (J-Cart)
CHECKING P1 Up AND Player 4 Controller (J-Cart)
CHECKING P1 Down AND P1 Up
CHECKING P1 Down AND P1 Left
CHECKING P1 Down AND P1 Right
CHECKING P1 Down AND P1 B
CHECKING P1 Down AND P1 C
CHECKING P1 Down AND P1 A
CHECKING P1 Down AND P1 Start
CHECKING P1 Down AND Player 1 Controller
CHECKING P1 Down AND Player 2 Controller
CHECKING P1 Down AND Player 3 Controller (J-Cart)
CHECKING P1 Down AND Player 4 Controller (J-Cart)
CHECKING P1 Left AND P1 Up
CHECKING P1 Left AND P1 Down
CHECKING P1 Left AND P1 Right
CHECKING P1 Left AND P1 B
CHECKING P1 Left AND P1 C
CHECKING P1 Left AND P1 A
CHECKING P1 Left AND P1 Start
CHECKING P1 Left AND Player 1 Controller
CHECKING P1 Left AND Player 2 Controller
CHECKING P1 Left AND Player 3 Controller (J-Cart)
CHECKING P1 Left AND Player 4 Controller (J-Cart)
CHECKING P1 Right AND P1 Up
CHECKING P1 Right AND P1 Down
CHECKING P1 Right AND P1 Left
CHECKING P1 Right AND P1 B
CHECKING P1 Right AND P1 C
CHECKING P1 Right AND P1 A
CHECKING P1 Right AND P1 Start
CHECKING P1 Right AND Player 1 Controller
CHECKING P1 Right AND Player 2 Controller
CHECKING P1 Right AND Player 3 Controller (J-Cart)
CHECKING P1 Right AND Player 4 Controller (J-Cart)
CHECKING P1 B AND P1 Up
CHECKING P1 B AND P1 Down
CHECKING P1 B AND P1 Left
CHECKING P1 B AND P1 Right
CHECKING P1 B AND P1 C
CHECKING P1 B AND P1 A
CHECKING P1 B AND P1 Start
CHECKING P1 B AND Player 1 Controller
CHECKING P1 B AND Player 2 Controller
CHECKING P1 B AND Player 3 Controller (J-Cart)
CHECKING P1 B AND Player 4 Controller (J-Cart)
CHECKING P1 C AND P1 Up
CHECKING P1 C AND P1 Down
CHECKING P1 C AND P1 Left
CHECKING P1 C AND P1 Right
CHECKING P1 C AND P1 B
CHECKING P1 C AND P1 A
CHECKING P1 C AND P1 Start
CHECKING P1 C AND Player 1 Controller
CHECKING P1 C AND Player 2 Controller
CHECKING P1 C AND Player 3 Controller (J-Cart)
CHECKING P1 C AND Player 4 Controller (J-Cart)
CHECKING P1 A AND P1 Up
CHECKING P1 A AND P1 Down
CHECKING P1 A AND P1 Left
CHECKING P1 A AND P1 Right
CHECKING P1 A AND P1 B
CHECKING P1 A AND P1 C
CHECKING P1 A AND P1 Start
CHECKING P1 A AND Player 1 Controller
CHECKING P1 A AND Player 2 Controller
CHECKING P1 A AND Player 3 Controller (J-Cart)
CHECKING P1 A AND Player 4 Controller (J-Cart)
CHECKING P1 Start AND P1 Up
CHECKING P1 Start AND P1 Down
CHECKING P1 Start AND P1 Left
CHECKING P1 Start AND P1 Right
CHECKING P1 Start AND P1 B
CHECKING P1 Start AND P1 C
CHECKING P1 Start AND P1 A
CHECKING P1 Start AND Player 1 Controller
CHECKING P1 Start AND Player 2 Controller
CHECKING P1 Start AND Player 3 Controller (J-Cart)
CHECKING P1 Start AND Player 4 Controller (J-Cart)
CHECKING P2 Up AND P1 Up
MAPPING P2 Up TO P1 Up
CHECKING P2 Down AND P1 Up
CHECKING P2 Down AND P1 Down
MAPPING P2 Down TO P1 Down
CHECKING P2 Left AND P1 Up
CHECKING P2 Left AND P1 Down
CHECKING P2 Left AND P1 Left
MAPPING P2 Left TO P1 Left
CHECKING P2 Right AND P1 Up
CHECKING P2 Right AND P1 Down
CHECKING P2 Right AND P1 Left
CHECKING P2 Right AND P1 Right
MAPPING P2 Right TO P1 Right
CHECKING P2 B AND P1 Up
CHECKING P2 B AND P1 Down
CHECKING P2 B AND P1 Left
CHECKING P2 B AND P1 Right
CHECKING P2 B AND P1 B
MAPPING P2 B TO P1 B
CHECKING P2 C AND P1 Up
CHECKING P2 C AND P1 Down
CHECKING P2 C AND P1 Left
CHECKING P2 C AND P1 Right
CHECKING P2 C AND P1 B
CHECKING P2 C AND P1 C
MAPPING P2 C TO P1 C
CHECKING P2 A AND P1 Up
CHECKING P2 A AND P1 Down
CHECKING P2 A AND P1 Left
CHECKING P2 A AND P1 Right
CHECKING P2 A AND P1 B
CHECKING P2 A AND P1 C
CHECKING P2 A AND P1 A
MAPPING P2 A TO P1 A
CHECKING P2 Start AND P1 Up
CHECKING P2 Start AND P1 Down
CHECKING P2 Start AND P1 Left
CHECKING P2 Start AND P1 Right
CHECKING P2 Start AND P1 B
CHECKING P2 Start AND P1 C
CHECKING P2 Start AND P1 A
CHECKING P2 Start AND P1 Start
MAPPING P2 Start TO P1 Start
CHECKING P3 Up AND P1 Up
MAPPING P3 Up TO P1 Up
CHECKING P3 Down AND P1 Up
CHECKING P3 Down AND P1 Down
MAPPING P3 Down TO P1 Down
CHECKING P3 Left AND P1 Up
CHECKING P3 Left AND P1 Down
CHECKING P3 Left AND P1 Left
MAPPING P3 Left TO P1 Left
CHECKING P3 Right AND P1 Up
CHECKING P3 Right AND P1 Down
CHECKING P3 Right AND P1 Left
CHECKING P3 Right AND P1 Right
MAPPING P3 Right TO P1 Right
CHECKING P3 B AND P1 Up
CHECKING P3 B AND P1 Down
CHECKING P3 B AND P1 Left
CHECKING P3 B AND P1 Right
CHECKING P3 B AND P1 B
MAPPING P3 B TO P1 B
CHECKING P3 C AND P1 Up
CHECKING P3 C AND P1 Down
CHECKING P3 C AND P1 Left
CHECKING P3 C AND P1 Right
CHECKING P3 C AND P1 B
CHECKING P3 C AND P1 C
MAPPING P3 C TO P1 C
CHECKING P3 A AND P1 Up
CHECKING P3 A AND P1 Down
CHECKING P3 A AND P1 Left
CHECKING P3 A AND P1 Right
CHECKING P3 A AND P1 B
CHECKING P3 A AND P1 C
CHECKING P3 A AND P1 A
MAPPING P3 A TO P1 A
CHECKING P3 Start AND P1 Up
CHECKING P3 Start AND P1 Down
CHECKING P3 Start AND P1 Left
CHECKING P3 Start AND P1 Right
CHECKING P3 Start AND P1 B
CHECKING P3 Start AND P1 C
CHECKING P3 Start AND P1 A
CHECKING P3 Start AND P1 Start
MAPPING P3 Start TO P1 Start
CHECKING P4 Up AND P1 Up
MAPPING P4 Up TO P1 Up
CHECKING P4 Down AND P1 Up
CHECKING P4 Down AND P1 Down
MAPPING P4 Down TO P1 Down
CHECKING P4 Left AND P1 Up
CHECKING P4 Left AND P1 Down
CHECKING P4 Left AND P1 Left
MAPPING P4 Left TO P1 Left
CHECKING P4 Right AND P1 Up
CHECKING P4 Right AND P1 Down
CHECKING P4 Right AND P1 Left
CHECKING P4 Right AND P1 Right
MAPPING P4 Right TO P1 Right
CHECKING P4 B AND P1 Up
CHECKING P4 B AND P1 Down
CHECKING P4 B AND P1 Left
CHECKING P4 B AND P1 Right
CHECKING P4 B AND P1 B
MAPPING P4 B TO P1 B
CHECKING P4 C AND P1 Up
CHECKING P4 C AND P1 Down
CHECKING P4 C AND P1 Left
CHECKING P4 C AND P1 Right
CHECKING P4 C AND P1 B
CHECKING P4 C AND P1 C
MAPPING P4 C TO P1 C
CHECKING P4 A AND P1 Up
CHECKING P4 A AND P1 Down
CHECKING P4 A AND P1 Left
CHECKING P4 A AND P1 Right
CHECKING P4 A AND P1 B
CHECKING P4 A AND P1 C
CHECKING P4 A AND P1 A
MAPPING P4 A TO P1 A
CHECKING P4 Start AND P1 Up
CHECKING P4 Start AND P1 Down
CHECKING P4 Start AND P1 Left
CHECKING P4 Start AND P1 Right
CHECKING P4 Start AND P1 B
CHECKING P4 Start AND P1 C
CHECKING P4 Start AND P1 A
CHECKING P4 Start AND P1 Start
MAPPING P4 Start TO P1 Start
CHECKING P1 Up AND P1 Down
CHECKING P1 Up AND P1 Left
CHECKING P1 Up AND P1 Right
CHECKING P1 Up AND P1 B
CHECKING P1 Up AND P1 C
CHECKING P1 Up AND P1 A
CHECKING P1 Up AND P1 Start
CHECKING P1 Up AND P1 Up
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 Up AND P1 Up
CHECKING P1 Up AND P1 Down
CHECKING P1 Up AND P1 Left
CHECKING P1 Up AND P1 Right
CHECKING P1 Up AND P1 B
CHECKING P1 Up AND P1 C
CHECKING P1 Up AND P1 A
CHECKING P1 Up AND P1 Start
CHECKING P1 Up AND Player 1 Controller
CHECKING P1 Up AND Player 2 Controller
CHECKING P1 Up AND Player 3 Controller (J-Cart)
CHECKING P1 Up AND Player 4 Controller (J-Cart)
CHECKING P1 Down AND P1 Up
CHECKING P1 Down AND P1 Left
CHECKING P1 Down AND P1 Right
CHECKING P1 Down AND P1 B
CHECKING P1 Down AND P1 C
CHECKING P1 Down AND P1 A
CHECKING P1 Down AND P1 Start
CHECKING P1 Down AND P1 Up
CHECKING P1 Down AND P1 Down
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 Down AND P1 Down
CHECKING P1 Down AND P1 Left
CHECKING P1 Down AND P1 Right
CHECKING P1 Down AND P1 B
CHECKING P1 Down AND P1 C
CHECKING P1 Down AND P1 A
CHECKING P1 Down AND P1 Start
CHECKING P1 Down AND Player 1 Controller
CHECKING P1 Down AND Player 2 Controller
CHECKING P1 Down AND Player 3 Controller (J-Cart)
CHECKING P1 Down AND Player 4 Controller (J-Cart)
CHECKING P1 Left AND P1 Up
CHECKING P1 Left AND P1 Down
CHECKING P1 Left AND P1 Right
CHECKING P1 Left AND P1 B
CHECKING P1 Left AND P1 C
CHECKING P1 Left AND P1 A
CHECKING P1 Left AND P1 Start
CHECKING P1 Left AND P1 Up
CHECKING P1 Left AND P1 Down
CHECKING P1 Left AND P1 Left
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 Left AND P1 Left
CHECKING P1 Left AND P1 Right
CHECKING P1 Left AND P1 B
CHECKING P1 Left AND P1 C
CHECKING P1 Left AND P1 A
CHECKING P1 Left AND P1 Start
CHECKING P1 Left AND Player 1 Controller
CHECKING P1 Left AND Player 2 Controller
CHECKING P1 Left AND Player 3 Controller (J-Cart)
CHECKING P1 Left AND Player 4 Controller (J-Cart)
CHECKING P1 Right AND P1 Up
CHECKING P1 Right AND P1 Down
CHECKING P1 Right AND P1 Left
CHECKING P1 Right AND P1 B
CHECKING P1 Right AND P1 C
CHECKING P1 Right AND P1 A
CHECKING P1 Right AND P1 Start
CHECKING P1 Right AND P1 Up
CHECKING P1 Right AND P1 Down
CHECKING P1 Right AND P1 Left
CHECKING P1 Right AND P1 Right
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 Right AND P1 Right
CHECKING P1 Right AND P1 B
CHECKING P1 Right AND P1 C
CHECKING P1 Right AND P1 A
CHECKING P1 Right AND P1 Start
CHECKING P1 Right AND Player 1 Controller
CHECKING P1 Right AND Player 2 Controller
CHECKING P1 Right AND Player 3 Controller (J-Cart)
CHECKING P1 Right AND Player 4 Controller (J-Cart)
CHECKING P1 B AND P1 Up
CHECKING P1 B AND P1 Down
CHECKING P1 B AND P1 Left
CHECKING P1 B AND P1 Right
CHECKING P1 B AND P1 C
CHECKING P1 B AND P1 A
CHECKING P1 B AND P1 Start
CHECKING P1 B AND P1 Up
CHECKING P1 B AND P1 Down
CHECKING P1 B AND P1 Left
CHECKING P1 B AND P1 Right
CHECKING P1 B AND P1 B
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 B AND P1 B
CHECKING P1 B AND P1 C
CHECKING P1 B AND P1 A
CHECKING P1 B AND P1 Start
CHECKING P1 B AND Player 1 Controller
CHECKING P1 B AND Player 2 Controller
CHECKING P1 B AND Player 3 Controller (J-Cart)
CHECKING P1 B AND Player 4 Controller (J-Cart)
CHECKING P1 C AND P1 Up
CHECKING P1 C AND P1 Down
CHECKING P1 C AND P1 Left
CHECKING P1 C AND P1 Right
CHECKING P1 C AND P1 B
CHECKING P1 C AND P1 A
CHECKING P1 C AND P1 Start
CHECKING P1 C AND P1 Up
CHECKING P1 C AND P1 Down
CHECKING P1 C AND P1 Left
CHECKING P1 C AND P1 Right
CHECKING P1 C AND P1 B
CHECKING P1 C AND P1 C
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 C AND P1 C
CHECKING P1 C AND P1 A
CHECKING P1 C AND P1 Start
CHECKING P1 C AND Player 1 Controller
CHECKING P1 C AND Player 2 Controller
CHECKING P1 C AND Player 3 Controller (J-Cart)
CHECKING P1 C AND Player 4 Controller (J-Cart)
CHECKING P1 A AND P1 Up
CHECKING P1 A AND P1 Down
CHECKING P1 A AND P1 Left
CHECKING P1 A AND P1 Right
CHECKING P1 A AND P1 B
CHECKING P1 A AND P1 C
CHECKING P1 A AND P1 Start
CHECKING P1 A AND P1 Up
CHECKING P1 A AND P1 Down
CHECKING P1 A AND P1 Left
CHECKING P1 A AND P1 Right
CHECKING P1 A AND P1 B
CHECKING P1 A AND P1 C
CHECKING P1 A AND P1 A
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 A AND P1 A
CHECKING P1 A AND P1 Start
CHECKING P1 A AND Player 1 Controller
CHECKING P1 A AND Player 2 Controller
CHECKING P1 A AND Player 3 Controller (J-Cart)
CHECKING P1 A AND Player 4 Controller (J-Cart)
CHECKING P1 Start AND P1 Up
CHECKING P1 Start AND P1 Down
CHECKING P1 Start AND P1 Left
CHECKING P1 Start AND P1 Right
CHECKING P1 Start AND P1 B
CHECKING P1 Start AND P1 C
CHECKING P1 Start AND P1 A
CHECKING P1 Start AND P1 Up
CHECKING P1 Start AND P1 Down
CHECKING P1 Start AND P1 Left
CHECKING P1 Start AND P1 Right
CHECKING P1 Start AND P1 B
CHECKING P1 Start AND P1 C
CHECKING P1 Start AND P1 A
CHECKING P1 Start AND P1 Start
UH O, FOUND THE SAME EXACT INPUT FIELDS: P1 Start AND P1 Start
CHECKING P1 Start AND Player 1 Controller
CHECKING P1 Start AND Player 2 Controller
CHECKING P1 Start AND Player 3 Controller (J-Cart)
CHECKING P1 Start AND Player 4 Controller (J-Cart)
CHECKING P1 Z AND P1 Y
CHECKING P1 Z AND P1 X
CHECKING P1 Z AND P1 Mode
CHECKING P1 Z AND P1 Up
CHECKING P1 Z AND P1 Down
CHECKING P1 Z AND P1 Left
CHECKING P1 Z AND P1 Right
CHECKING P1 Z AND P1 B
CHECKING P1 Z AND P1 C
CHECKING P1 Z AND P1 A
CHECKING P1 Z AND P1 Start
CHECKING P1 Z AND P1 Up
CHECKING P1 Z AND P1 Down
CHECKING P1 Z AND P1 Left
CHECKING P1 Z AND P1 Right
CHECKING P1 Z AND P1 B
CHECKING P1 Z AND P1 C
CHECKING P1 Z AND P1 A
CHECKING P1 Z AND P1 Start
CHECKING P1 Z AND Player 1 Controller
CHECKING P1 Z AND Player 2 Controller
CHECKING P1 Z AND Player 3 Controller (J-Cart)
CHECKING P1 Z AND Player 4 Controller (J-Cart)
CHECKING P1 Y AND P1 Z
CHECKING P1 Y AND P1 X
CHECKING P1 Y AND P1 Mode
CHECKING P1 Y AND P1 Up
CHECKING P1 Y AND P1 Down
CHECKING P1 Y AND P1 Left
CHECKING P1 Y AND P1 Right
CHECKING P1 Y AND P1 B
CHECKING P1 Y AND P1 C
CHECKING P1 Y AND P1 A
CHECKING P1 Y AND P1 Start
CHECKING P1 Y AND P1 Up
CHECKING P1 Y AND P1 Down
CHECKING P1 Y AND P1 Left
CHECKING P1 Y AND P1 Right
CHECKING P1 Y AND P1 B
CHECKING P1 Y AND P1 C
CHECKING P1 Y AND P1 A
CHECKING P1 Y AND P1 Start
CHECKING P1 Y AND Player 1 Controller
CHECKING P1 Y AND Player 2 Controller
CHECKING P1 Y AND Player 3 Controller (J-Cart)
CHECKING P1 Y AND Player 4 Controller (J-Cart)
CHECKING P1 X AND P1 Z
CHECKING P1 X AND P1 Y
CHECKING P1 X AND P1 Mode
CHECKING P1 X AND P1 Up
CHECKING P1 X AND P1 Down
CHECKING P1 X AND P1 Left
CHECKING P1 X AND P1 Right
CHECKING P1 X AND P1 B
CHECKING P1 X AND P1 C
CHECKING P1 X AND P1 A
CHECKING P1 X AND P1 Start
CHECKING P1 X AND P1 Up
CHECKING P1 X AND P1 Down
CHECKING P1 X AND P1 Left
CHECKING P1 X AND P1 Right
CHECKING P1 X AND P1 B
CHECKING P1 X AND P1 C
CHECKING P1 X AND P1 A
CHECKING P1 X AND P1 Start
CHECKING P1 X AND Player 1 Controller
CHECKING P1 X AND Player 2 Controller
CHECKING P1 X AND Player 3 Controller (J-Cart)
CHECKING P1 X AND Player 4 Controller (J-Cart)
CHECKING P1 Mode AND P1 Z
CHECKING P1 Mode AND P1 Y
CHECKING P1 Mode AND P1 X
CHECKING P1 Mode AND P1 Up
CHECKING P1 Mode AND P1 Down
CHECKING P1 Mode AND P1 Left
CHECKING P1 Mode AND P1 Right
CHECKING P1 Mode AND P1 B
CHECKING P1 Mode AND P1 C
CHECKING P1 Mode AND P1 A
CHECKING P1 Mode AND P1 Start
CHECKING P1 Mode AND P1 Up
CHECKING P1 Mode AND P1 Down
CHECKING P1 Mode AND P1 Left
CHECKING P1 Mode AND P1 Right
CHECKING P1 Mode AND P1 B
CHECKING P1 Mode AND P1 C
CHECKING P1 Mode AND P1 A
CHECKING P1 Mode AND P1 Start
CHECKING P1 Mode AND Player 1 Controller
CHECKING P1 Mode AND Player 2 Controller
CHECKING P1 Mode AND Player 3 Controller (J-Cart)
CHECKING P1 Mode AND Player 4 Controller (J-Cart)
CHECKING P2 Up AND P1 Z
CHECKING P2 Up AND P1 Y
CHECKING P2 Up AND P1 X
CHECKING P2 Up AND P1 Mode
CHECKING P2 Up AND P1 Up
MAPPING P2 Up TO P1 Up
CHECKING P2 Down AND P1 Z
CHECKING P2 Down AND P1 Y
CHECKING P2 Down AND P1 X
CHECKING P2 Down AND P1 Mode
CHECKING P2 Down AND P1 Up
CHECKING P2 Down AND P1 Down
MAPPING P2 Down TO P1 Down
CHECKING P2 Left AND P1 Z
CHECKING P2 Left AND P1 Y
CHECKING P2 Left AND P1 X
CHECKING P2 Left AND P1 Mode
CHECKING P2 Left AND P1 Up
CHECKING P2 Left AND P1 Down
CHECKING P2 Left AND P1 Left
MAPPING P2 Left TO P1 Left
CHECKING P2 Right AND P1 Z
CHECKING P2 Right AND P1 Y
CHECKING P2 Right AND P1 X
CHECKING P2 Right AND P1 Mode
CHECKING P2 Right AND P1 Up
CHECKING P2 Right AND P1 Down
CHECKING P2 Right AND P1 Left
CHECKING P2 Right AND P1 Right
MAPPING P2 Right TO P1 Right
CHECKING P2 B AND P1 Z
CHECKING P2 B AND P1 Y
CHECKING P2 B AND P1 X
CHECKING P2 B AND P1 Mode
CHECKING P2 B AND P1 Up
CHECKING P2 B AND P1 Down
CHECKING P2 B AND P1 Left
CHECKING P2 B AND P1 Right
CHECKING P2 B AND P1 B
MAPPING P2 B TO P1 B
CHECKING P2 C AND P1 Z
CHECKING P2 C AND P1 Y
CHECKING P2 C AND P1 X
CHECKING P2 C AND P1 Mode
CHECKING P2 C AND P1 Up
CHECKING P2 C AND P1 Down
CHECKING P2 C AND P1 Left
CHECKING P2 C AND P1 Right
CHECKING P2 C AND P1 B
CHECKING P2 C AND P1 C
MAPPING P2 C TO P1 C
CHECKING P2 A AND P1 Z
CHECKING P2 A AND P1 Y
CHECKING P2 A AND P1 X
CHECKING P2 A AND P1 Mode
CHECKING P2 A AND P1 Up
CHECKING P2 A AND P1 Down
CHECKING P2 A AND P1 Left
CHECKING P2 A AND P1 Right
CHECKING P2 A AND P1 B
CHECKING P2 A AND P1 C
CHECKING P2 A AND P1 A
MAPPING P2 A TO P1 A
CHECKING P2 Start AND P1 Z
CHECKING P2 Start AND P1 Y
CHECKING P2 Start AND P1 X
CHECKING P2 Start AND P1 Mode
CHECKING P2 Start AND P1 Up
CHECKING P2 Start AND P1 Down
CHECKING P2 Start AND P1 Left
CHECKING P2 Start AND P1 Right
CHECKING P2 Start AND P1 B
CHECKING P2 Start AND P1 C
CHECKING P2 Start AND P1 A
CHECKING P2 Start AND P1 Start
MAPPING P2 Start TO P1 Start
CHECKING P2 Z AND P1 Z
MAPPING P2 Z TO P1 Z
CHECKING P2 Y AND P1 Z
CHECKING P2 Y AND P1 Y
MAPPING P2 Y TO P1 Y
CHECKING P2 X AND P1 Z
CHECKING P2 X AND P1 Y
CHECKING P2 X AND P1 X
MAPPING P2 X TO P1 X
CHECKING P2 Mode AND P1 Z
CHECKING P2 Mode AND P1 Y
CHECKING P2 Mode AND P1 X
CHECKING P2 Mode AND P1 Mode
MAPPING P2 Mode TO P1 Mode
CHECKING Reset Button AND P1 Z
CHECKING Reset Button AND P1 Y
CHECKING Reset Button AND P1 X
CHECKING Reset Button AND P1 Mode
CHECKING Reset Button AND P1 Up
CHECKING Reset Button AND P1 Down
CHECKING Reset Button AND P1 Left
CHECKING Reset Button AND P1 Right
CHECKING Reset Button AND P1 B
CHECKING Reset Button AND P1 C
CHECKING Reset Button AND P1 A
CHECKING Reset Button AND P1 Start
CHECKING Reset Button AND P1 Up
CHECKING Reset Button AND P1 Down
CHECKING Reset Button AND P1 Left
CHECKING Reset Button AND P1 Right
CHECKING Reset Button AND P1 B
CHECKING Reset Button AND P1 C
CHECKING Reset Button AND P1 A
CHECKING Reset Button AND P1 Start
CHECKING Reset Button AND Player 1 Controller
CHECKING Reset Button AND Player 2 Controller
CHECKING Reset Button AND Player 3 Controller (J-Cart)
CHECKING Reset Button AND Player 4 Controller (J-Cart)
PORT: 6805
Ports used by RakNet:

  1. 6805
    IN CRITICAL SECTION
    SERVER: Sending initial snapshot
    No dirty blocks found
    SOFT RESET FINISHED
    Peer 1 is caught up with 1.899999999999999926
    PLAYER 0 is stale with last input before 1.866666666666666592
    PLAYER 0 is up to date with last input at 1.866666666666666594
    PLAYER 1 is up to date with last input at 1.866666666666666594
    PLAYER 2 is up to date with last input at 1.866666666666666594
    PLAYER 3 is up to date with last input at 1.866666666666666594
    PLAYER 4 is up to date with last input at 1.866666666666666594
    PLAYER 5 is up to date with last input at 1.866666666666666594
    PLAYER 6 is up to date with last input at 1.866666666666666594
    PLAYER 7 is up to date with last input at 1.866666666666666594
    Decreasing base delay from 50 to 50
    Peer 1 is caught up with 2.899999999999999886
    PLAYER 0 is stale with last input before 2.866666666666666552
    PLAYER 0 is up to date with last input at 2.866666666666666554
    PLAYER 1 is up to date with last input at 2.866666666666666554
    PLAYER 2 is up to date with last input at 2.866666666666666554
    PLAYER 3 is up to date with last input at 2.866666666666666554
    PLAYER 4 is up to date with last input at 2.866666666666666554
    PLAYER 5 is up to date with last input at 2.866666666666666554
    PLAYER 6 is up to date with last input at 2.866666666666666554
    PLAYER 7 is up to date with last input at 2.866666666666666554
    Decreasing base delay from 50 to 50
    [VP8:] multi_threaded encoding is enabled with 3 threads

Peer 1 is caught up with 3.666666666666666522
PLAYER 0 is stale with last input before 3.633333333333333188
PLAYER 0 is up to date with last input at 3.633333333333333190
PLAYER 1 is up to date with last input at 3.633333333333333190
PLAYER 2 is up to date with last input at 3.633333333333333190
PLAYER 3 is up to date with last input at 3.633333333333333190
PLAYER 4 is up to date with last input at 3.633333333333333190
PLAYER 5 is up to date with last input at 3.633333333333333190
PLAYER 6 is up to date with last input at 3.633333333333333190
PLAYER 7 is up to date with last input at 3.633333333333333190


Exception at EIP=0000000002BC9CFC (vp8_fast_quantize_b_sse2+0x0018): ACCESS VIOLATION

While attempting to read memory at 0000000000000000

RAX=224F09A000000000 RBX=00000000224F2280 RCX=224E0EC000000000 RDX=224DFF0000000000
RSI=00000000224F2280 RDI=00000000224F0DC8 RBP=0000000026ABF330 RSP=0000000026ABF320
R8=0000000000000020 R9=00000000224F1AA0 R10=00000000224F0DC0 R11=000000000000007F

R12=00000000224F0DC8 R13=00000000224F0DC0 R14=0000000000000000 R15=0000000000000002

Stack crawl:
0000000026ABF318: 0000000002BC9CFC (vp8_fast_quantize_b_sse2+0x0018)
0000000026ABF320: 000000002250D198 (_GLOBAL__sub_I_wlocale_inst.cc+0x1e0aaf88)
0000000026ABF328: 00000000224F0680 (GLOBAL__sub_I_wlocale_inst.cc+0x1e08e470)
0000000026ABF330: 0000000026ABF390 (GLOBAL__sub_I_wlocale_inst.cc+0x2265d180)
0000000026ABF330: 0000000002BA42D1 (vp8_encode_intra4x4block+0x0081)
0000000026ABF390: 0000000002BA42D1 (vp8_encode_intra4x4block+0x0081)
0000000026ABF440: 0000000002B7D458 (pick_intra4x4mby_modes+0x0318)
0000000026ABF4F0: 0000000002B7EAD4 (vp8_pick_intra_mode+0x0264)
0000000026ABF550: 0000000002B8D546 (vp8cx_encode_intra_macro_block+0x0096)
0000000026ABF670: 0000000002B8DE71 (encode_mb_row+0x03b1)
0000000026ABF780: 0000000002B8E725 (vp8_encode_frame+0x0625)
0000000026ABF8A0: 0000000002B55516 (encode_frame_to_data_rate+0x0666)
0000000026ABFA30: 0000000002B57E81 (vp8_get_compressed_data+0x0731)
0000000026ABFBF0: 0000000002B40862 (vp8e_encode+0x03b2)
0000000026ABFC50: 0000000002B46C21 (vpx_codec_encode+0x0081)
0000000026ABFD80: 0000000002B3F3FB (WebMVideoProcessor::operator()()+0x00cb)
0000000026ABFF10: 0000000002A33EC5 (boost::(anonymous namespace)::thread_start_function(void
)+0x00d5)
0000000026ABFF50: 0000000002A31943 (boost::(anonymous namespace)::ThreadProxy(void
)+0x0013)
0000000026ABFF80: 0000000076E6652D (BaseThreadInitThunk+0x000d)
0000000026ABFFD0: 000000007709C521 (RtlUserThreadStart+0x0021)

Chat Features

This is a collection of suggested features made by various people:

  • Ignore player functionality. Either by typing /ignore PlayerName or right-clicking on a name in the list and selecting Ignore/Mute. Using it again on the same player Unignores.
  • Whisper/PM functionality. Either by typing /whisper or /w PlayerName and /reply or /r for autoreply to the last person that messaged you. Right-clicking a name in the list and select Whisper. Whisper also works on people already inside the game (unless blocked*).
  • Private Rooms, open a new tab with a private room when you invite players with /invite PlayerName or right-clicking on a name and selecting Invite. It will make it easier to talk to people and set up games.
    Combined with the new Client-Emulator communication you can use private rooms to set up Closed Games, Wait For All, Assign Players (as mentioned on forum).

Clarification: You do not leave the main chat when when you open a new room, so MAMEHub doesn't end up with an empty lobby (filled room encourages newcomers to stick around longer).

  • Ability to mark players as friends. Now when you are playing (alone) and a friend enters the lobby you are notified inside the emulator. Use /friend PlayerName or Right-click a player and select Friend. Using it again on a friend removes him from your list.
  • *Ability to turn on/off chat messages between client and emulator. For example by putting yourself on QUIET (friend notifications, whispers).
  • A simple Player Info page (stored locally), listing a player's favorite genre, system, coop or competitive, most played game etc. Right-click a name and select Player Info for a small pop up. (by zambr123)

Audit List Glitch: Games are not removed!

In the recent days I have heard several people reported 2 issues with the Audit List:

  1. BIOS ROMs sometimes still show up in the game list.

  2. Ghost entries. Games will remain in your list after deleting them and re-auditing.

Ad 2) To reproduce: I moved my ROMs to another folder and did a Rescan Folders. The only folder in Select Folders was ..\roms. After it finished, my entire list remained unchanged.
I deleted the AuditIndex# and MAMEHubAuditDB# folders and restarted MAMEHub. It recreated the folders and now my list had the correct games in it.

Add 7z support to match MAME's

Just what the title says, I can't audit 7z roms with MAMEHub, but if I try to open them with the included csume64.exe, it works just fine.

MAMEHub members lookup list - enhancing MAMEHub user communication

Feature Request:

In order to help get users online together who like the same type of games, have a user lookup table (available from top menu).

(1) Get users to fill in a questionaire within MAMEHub (top menu option)

(2) Questionnaire to include questions like:
(a) Favourite Game types (tick 2 max):
-> VS Fighter / Puzzle / Shootem'up / Racing / Platform / FPS / Co-op

(b) Favourite consoles (tick 2 max):
-> Atari 2600 / NES / SNES / Master System / Genesis or Megadrive / N64 / PSX

(c) Facebook page URL

(3) Have new top menu option "view MAMEHub members". If selected, shows table with following data:
-> [PM Button] / [FB page] / User Nick / Flag / Last seen / Fav Game Type 1 / Fav Game Type 2 / Fav Console 1 / Fav Console 2

Additional Feature to add later (useful for non FB / G+ account users):

(4) If user clicks on PM button, it sends a pop-up message to user, with a custom message

(5) If user is offline, they will get the pop-up message next time they login

(6) Also have top menu option to ignore pop up messages

Improved cocktail and multi-screen support

copied over from bugzilla

Not sure how difficult it would be to add this, but certain games have special viewing requirements. I suggest that mamehub automatically adjust to accommodate these. With cocktail player 2's screen would automatically be flipped so they would be at the bottom. For multi-screens like hard dunk where players 1-3 look at one screen and 3-6 another, 3-6 would see the second screen automaticly. Ideally this should be tied to control swap, so that players wont have to adjust their orientation mid game.

Default.cfg and "gamename".cfg do not work

"gamename".cfg does not write, for neither mess nor mame. Default.cfg appears to write but not read for mame. and does not write for mess. Meaning that every time one starts a game, they have to map their controls again

Feature Request - Replay recording and playback

This is actually from my forum post, but I decided to repost it here so it can have a ticket.

http://forum.mamehub.info/viewtopic.php?f=8&t=232

I was wondering if it would be possible to add in replay recording to MAMEHub? In Open Kaillera, they had support for recording button inputs and chat log from all the players in a session into a very small file that can be played back. There are benefits to doing this in comparison to recording a video. Any lag that occurred while playing the game online while recording the replay wont show up during playback. The file size, like I said, would be very small (I recorded a session that was 1 hour long for example, and it ended up being 800kb in size uncompressed, and about 30kb compressed). If you would like to render a video from the replay file, then all you'd have to do is use Fraps or MAMEHub's builtin recording while playing the replay back. I don't know how much resources MAMEHub's video recorder takes while playing the game, but creating a replay would use a minimal amount of the computer's resources while recording since it wouldn't be transcoding a video file at the same time as playing your game.

There might be some other things I'm missing at the moment, but these are probably the most beneficial aspects to recording replays.

Also from the thread, MAME/MESS already has built in functionality for recording replays but they don't work correctly with MAMEHub. It also doesn't save chat session logs to sync with the gameplay.

missing DJNativeSwing dependency(?)

Hi,

I'm a bit of a maven n00b, but i know a missing dependency when i see one. What i don't know is how to resolve it, or rather, if this is requires an upstream fix so i can build the jar.

using openjdk-7-jdk:amd64 on Debian/amd64 (testing/unstable),

running:

mvn -e package

getting:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:25.228s
[INFO] Finished at: Mon May 06 15:16:06 PDT 2013
[INFO] Final Memory: 8M/232M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project MAMEHubClient: Could not resolve dependencies for project MAMEHubClient:MAMEHubClient:jar:0.0.1-SNAPSHOT: The following artifacts could not be resolved: chrriis.dj.nativeswing:DJNativeSwing-SWT:jar:0.0.0, chrriis.dj.nativeswing:DJNativeSwing:jar:0.0.0: Could not find artifact chrriis.dj.nativeswing:DJNativeSwing-SWT:jar:0.0.0 in teleal-repo (http://teleal.org/m2) -> [Help 1]

full error output generated with:

mvn -U -X package

at:

http://pastebin.com/CJpjvr8b

Game player swap enhancement - show user info

Game player swap enhancement - display list of nicks (all joined players) and mark current gamer somehow, so everyone knows which user is currently in play.

e.g

  • press "S" to display all joined players / nicks (similar to N for stats)
  • indicator to show which user / nick in play

instant join broken

players cannot join a game in progress if it been longer than a couple of minutes

Games not auditing

some games will not appear after auditing unless you leave the mamehub and rejoin. Jojo's bizarre adventure is an example

under score _ breaks links

Mamehub lobby when dealing with url links that have under scores will italicize the word instead of displaying the link properly

Possible auditor problem

i downloaded the latest version of Mamehub and installed fresh once I log in after a few seconds (10-30) I'm kicked it seems to occur when its auditing Roms although it happens even if the Roms folder is removed from the list. a folder named MameHubauditDB10 appears deleting this allows me to log in for the (10-30) seconds until it beings the audit again. however if I linger on the the hub without clicking OK on the exception window the audit seems to finish attempting to log back in afterward results in an immediate log out. closing everything and starting up again shows this error under the facebook/google login buttons :
java.io.ioexception: the request could not be performed because of an i/o device error

Included Gui_log and images
http://imgur.com/a/YT6f8
http://pastebin.com/DwNKx3za

absence of ../hash/mameROMs.xml.gz causing NPEs (I think).

hi,

having this problem on both Raspbian (ARM6) and Debian (x86_64).

after submitting MAMEhub creds at login screen, getting an error dialog reading:

An exception has occured and has been logged. Returning to login screen

in ErrorLog.txt is the message:

java.io.FileNotFoundException: ../hash/mameROMs.xml.gz (No such file or directory)
com.mamehub.client.audit.GameAuditor.audit(GameAuditor.java:222)
com.mamehub.client.audit.GameAuditor.run(GameAuditor.java:105)
java.lang.Thread.run(Thread.java:679)

And, the exception as seen from the terminal (on Debian/x86_64):

[19:59:15,543  INFO RpcEngine.java:397] executing login request 
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
SERVER RECEIVED: this is a test
[19:59:15,979  INFO UDPReflectionServer.java:68] Shutting down
[19:59:17,679  INFO UDPReflectionServer.java:54] Server shutting down
jar:file:/home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/target/MAMEHubClient-0.0.1-SNAPSHOT.jar!/MAMEHub.png
BUFFERED IMAGE: 248 248
[19:59:18,767  INFO MainFrame.java:392] Adding mainframe window
[19:59:18,785  INFO MainFrame.java:1329] UPDATED WITH 0 (0) VALUES
CHAT STATUS CHANGED: ONLINE
[19:59:19,042  INFO PortOpener.java:89] Remote device updated: D-Link Corporation DNS-343 103
[19:59:19,043  INFO PortOpener.java:89] Remote device updated: D-Link Corporation DNS-343 103
[19:59:19,043  INFO PortOpener.java:89] Remote device updated: D-Link Corporation DNS-343 103
[19:59:19,043  INFO PortOpener.java:89] Remote device updated: D-Link Corporation DNS-343 103
[19:59:19,043  INFO PortOpener.java:89] Remote device updated: D-Link Corporation DNS-343 103
May 8, 2013 7:59:20 PM com.mamehub.client.utility.ClientDatabaseEngine <init>
INFO: CREATING NEW DATABASE ENGINE
May 8, 2013 7:59:20 PM com.mamehub.client.utility.ClientDatabaseEngine <init>
INFO:  db dir: .//MAMEHubAuditDB6 db file.//MAMEHubAuditDB6/db
[19:59:20,939  INFO HashScanner.java:220] Cleaing old reverse-map
[19:59:20,996  INFO HashScanner.java:291] Starting scan..
[19:59:20,997  INFO HashScanner.java:300] Finished reading file headers.
[19:59:20,997  INFO HashScanner.java:319] Finished scanning
[19:59:20,997  INFO HashScanner.java:322] Committed all changes
[19:59:20,997  INFO GameAuditor.java:175] Parsing MAME roms
May 8, 2013 7:59:21 PM com.mamehub.client.utility.ClientDatabaseEngine wipeDatabase
INFO: WIPING OLD DATABASE
May 8, 2013 7:59:21 PM com.mamehub.client.utility.ClientDatabaseEngine wipeDatabase
INFO: ./MAMEHubAuditDB6/db.t
May 8, 2013 7:59:21 PM com.mamehub.client.utility.ClientDatabaseEngine wipeDatabase
INFO: ./MAMEHubAuditDB6/db.d.0
May 8, 2013 7:59:21 PM com.mamehub.client.utility.ClientDatabaseEngine wipeDatabase
INFO: ./MAMEHubAuditDB6/db.i.0
java.io.IOException: java.io.FileNotFoundException: ../hash/mameROMs.xml.gz (No such file or directory)
at com.mamehub.client.audit.GameAuditor.audit(GameAuditor.java:222)
at com.mamehub.client.audit.GameAuditor.run(GameAuditor.java:105)
at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.FileNotFoundException: ../hash/mameROMs.xml.gz (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:137)
at java.io.FileInputStream.<init>(FileInputStream.java:96)
at com.mamehub.client.audit.RomParser.process(RomParser.java:74)
at com.mamehub.client.audit.GameAuditor.audit(GameAuditor.java:176)
... 2 more
java.lang.NullPointerException
at com.mamehub.client.utility.ClientDatabaseEngine.getOrCreateHashMap(ClientDatabaseEngine.java:197)
at com.mamehub.client.audit.GameAuditor.getMameRomInfoMap(GameAuditor.java:331)
at com.mamehub.client.MameHubEngine.getMameRomInfo(MameHubEngine.java:231)
at com.mamehub.client.MainFrame.getGameDescription(MainFrame.java:1335)
at com.mamehub.client.MainFrame.updateJoinGameList(MainFrame.java:1312)
at com.mamehub.client.MainFrame.<init>(MainFrame.java:922)
at com.mamehub.client.login.LoginDialog.loginComplete(LoginDialog.java:374)
at com.mamehub.client.login.LoginDialog$6.actionPerformed(LoginDialog.java:305)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4649)[19:59:21,221  INFO RpcEngine.java:211] RPC ENGINE TERMINATED
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4475)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2587)
at java.awt.Component.dispatchEvent(Component.java:4475)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:675)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:648)
at java.awt.EventQueue$3.run(EventQueue.java:646)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:645)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
[19:59:21,348  INFO UDPReflectionServer.java:29] SERVER: Waiting for packet
[19:59:21,348  INFO LoginDialog.java:89] Adding intro dialog
[19:59:23,800  INFO MainFrame.java:400] Removing mainframe window

Compilation error, package com.apple.eawt does not exist

using openjdk-7-jdk:amd64 on Debian/amd64 (testing/unstable),

running:

mvn -e package

getting:
$ mvn -e package
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MAMEHub Client 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- build-helper-maven-plugin:1.7:add-source (default) @ MAMEHubClient ---
[INFO] Source directory: /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/gen-java added.
[INFO]
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ MAMEHubClient ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 23 resources
[INFO] Copying 257 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ MAMEHubClient ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 37 source files to /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/login/LoginDialog.java:[86,17] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/login/LoginDialog.java:[86,53] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/MainFrame.java:[388,17] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/MainFrame.java:[388,53] package com.apple.eawt does not exist
[INFO] 4 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.374s
[INFO] Finished at: Tue May 07 14:13:48 PDT 2013
[INFO] Final Memory: 16M/240M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project MAMEHubClient: Compilation failure: Compilation failure:
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/login/LoginDialog.java:[86,17] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/login/LoginDialog.java:[86,53] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/MainFrame.java:[388,17] package com.apple.eawt does not exist
[ERROR] /home/mprov/Bombing_Ground/mamehub/MAMEHub/Client/src/com/mamehub/client/MainFrame.java:[388,53] package com.apple.eawt does not exist
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project MAMEHubClient: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

QMC2 feature - log file via TAB & Improve the whole login process

Just like QMC2, have the log file displayed permanently at the bottom right of the screen, ideally a 2nd tab on the user list (see pic).

This will come in very handy indeed, especially when user has issues, such as emulator runs, then quickly stops for no reason (hence look up issue, missing files, etc easily), which happens hell of a lot.

gui_log_tab

This will also become very useful later on when the cmd screens on the login process are finally removed and instead adopt a similar login procedure to MIRC (e.g launch MAMEHub, immediately presented with the GUI, goto top menu option 'login', and whilst all this is happening, the log file is updating in real time via the tab - hence similar in design to QMC2 and MIRC).

PLUS: having option to login via chat edit box would be useful (same feature as MIRC) /login (user) (pass)
and when a user disconnects, time's out, MAMEHub could automatically reconnect the user with a design like this very easily (same way MIRC reconnects timed out users).

PLUS: user would be able to play games offline.

PLUS: if people are idle in hub / away, etc, and server goes down, they get automatically reconnected when its back up, as MAMEHub client will try every XXX seconds to reconnect.

SVN Updates: I like the idea also, where when DG has an SVN update ready, he can kick all users /kick all, and then they automatically reconnect, perform SVN update and then automatically login to hub directly after.

Obviously, any changes to the GUI screen objects / menu's with this model, will require a fresh install of MAMEHub. So such changes would only be added for a major version release.

I cant log in

1-loggin
2-logggin in
3-taskmngr

I cant loggin since I install it the last version ( check images )

//////////////////////////////////////////////////////////////////////////////////////////////////////
MAMEHub_GUI.txt

[22:13:10,257 INFO PortOpener.java:134] Starting Cling...
[22:13:10,334 INFO Server.java:254] jetty-8.1.0.RC5
[22:13:10,447 INFO AbstractConnector.java:333] Started [email protected]:6805
[22:13:10,512 INFO UDPReflectionServer.java:29] SERVER: Waiting for packet
[22:13:10,560 INFO LoginDialog.java:89] Adding intro dialog
[22:13:10,582 INFO PortOpener.java:140] HOST ADDRESS: 192.168.1.67
[22:13:40,968 INFO RpcEngine.java:397] executing login request
[22:13:43,502 INFO UDPReflectionServer.java:68] Shutting down
[22:13:44,531 INFO UDPReflectionServer.java:54] Server shutting down
[22:13:46,275 INFO MainFrame.java:390] Adding mainframe window
[22:13:46,292 INFO MainFrame.java:1416] UPDATED WITH 0 (0) VALUES
[22:15:35,036 INFO RpcEngine.java:397] executing login request
[22:15:38,327 INFO UDPReflectionServer.java:68] Shutting down
[22:15:39,953 INFO MainFrame.java:390] Adding mainframe window
[22:15:39,957 INFO MainFrame.java:1416] UPDATED WITH 0 (0) VALUES
[22:15:57,406 INFO LoginDialog.java:96] Got windowClosed for intro dialog
[22:15:57,409 INFO LoginDialog.java:106] Removing intro dialog
[22:16:13,028 INFO PortOpener.java:84] Remote device available: Microsoft Corporation Windows Media Player Sharing 12.0

Enable scanning 7zip files during audits

It seems like the new versions of MESS and MAME support 7zip files, and eventually every game will be following this format. Based on this it might be something to think about implementing for ease of use.

(i've spent the last three hours unzipping 7zip files and i'm only half done)

(Analog) controls not functioning

When running some games that support analog controls (mouse) as well as arrow/joystick controls, it becomes impossible to move. The controls get stuck, automatically move in one direction or jitters/shakes erratically.

This only happens when the games are started from within the MAMEHub lobby. I ran the same games through command line with CSUME and they worked perfectly.

Example games: Car Polo (Arcade; carpolo.zip), Arcade Classics Super Centipede (Arcade; arcadecl.zip).

default to only showing one machine type at a time, as shown in pic

demo3

Will become very useful when switching over to the large softlists, having seperate list per machine. should default to arcade (MAME).

e.g

text in pop -up selection box - a2600, a2600p, snespal, etc
"on mouse over" full description displayed - Atari 2600 (NTSC), Atari 2600 (PAL), Super Nintendo Entertainment System (PAL), etc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.