Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: UXME (mame fork) 0.171 (2016-03-03)  (Read 7232 times)

0 Members and 1 Guest are viewing this topic.

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
UXME (mame fork) 0.171 (2016-03-03)
« on: July 07, 2015, 01:34:18 am »
I spent quite a long time trying all the MAME flavors available, but nothing quite met my needs. So I decided to roll my own.

Unofficial eXtended Machine Emulator

Unique features (or bugs...)
  • Auto load machine specific LUA script on start
  • UI screen white border toggle (render_border=0)
  • Faststart option for running machine as fast as possible for a specific interval. Useful for skipping machine boot.
  • GLSL path option (glslpath=glsl). Useful on OS X and Linux. No more putting the full path to each GLSL file. Just drop your shaders in the glsl folder.
  • Change working directory on startup argument, -chdir.
  • Fully mute sound with an assignable input (default: LCONTROL + M)
  • Full screen SDL UI (no more 4:3 on 16:9 monitor). SDL UI looks the same as Windows now.
Features from other sources
  • High score support** (MKCHAMP)
  • Message skipping** (MKCHAMP)
  • Generic background layouts (Mr. Do!)
  • No sprite buffering (??)
  • OSD mouse wheel support
  • In-game clock (mameuifx)
Emulation hacks
  • Mechanical systems (pinball) not compiled
  • Optional single joystick control for Defender, Stargate, and Battlezone

Source code: https://github.com/h0tw1r3/uxme
Automated: https://build.btolab.com/bot/builders
Builds: https://build.btolab.com/project/uxme/

The main INI file is named 'uxme.ini' so it won't clobber your existing setup.
I have a bunch of things on my list to merge and/or code. Comments, suggestions, welcome.

* mamedev accepted patch
** Minor modifications
« Last Edit: May 13, 2016, 03:31:34 am by h0tw1r3 »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:April 22, 2024, 01:51:33 pm
Re: UXME (my mame fork)
« Reply #1 on: July 07, 2015, 11:29:47 am »
What do you mean with "code cleanup"? Something that could speed up some "heavy" game?

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (my mame fork)
« Reply #2 on: July 07, 2015, 05:26:32 pm »
What do you mean with "code cleanup"? Something that could speed up some "heavy" game?

No (at least not yet).

Things like - today I cleaned up the cross compile support so it works out-of-the-box. Allows me to build windows binaries on my linux box.

nitrogen_widget

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1746
  • Last login:March 30, 2024, 09:10:09 am
  • I want to build my own arcade controls!
Re: UXME (my mame fork)
« Reply #3 on: July 08, 2015, 01:55:15 pm »
What do you mean with "code cleanup"? Something that could speed up some "heavy" game?

No (at least not yet).

Things like - today I cleaned up the cross compile support so it works out-of-the-box. Allows me to build windows binaries on my linux box.

what about linux binaries on your linux box?

Fursphere

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1207
  • Last login:Today at 12:36:10 am
Re: UXME (my mame fork)
« Reply #4 on: July 09, 2015, 09:41:16 am »
Wouldn't it make sense to try and get these added as part of the mamedev source?   Instead of forking?

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (my mame fork)
« Reply #5 on: July 09, 2015, 10:30:20 am »
Official Mame will not accept most of these changes.

However I do intend to submit the build changes and lua api extensions.
« Last Edit: August 31, 2015, 05:40:48 am by h0tw1r3 »

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork)
« Reply #6 on: August 31, 2015, 05:54:57 am »
Lots of new features added to first post.

Two big changes:
  • Mac OS X builds are now automated.  Intel universal static binaries with all the tools (chdman, etc) cross compiled on my server just like the windows builds.  Should support 10.6+.
  • MEWUI is built in.

Next up is to do a proper archive with all the goodies (filters, artwork, etc) like a standard Mame release.

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork)
« Reply #7 on: January 06, 2016, 07:59:55 pm »
As of 0.169 Mac OS X builds are 10.7+ only. Mamedev moved to C++14 which is not supported on 10.6. Sorry!

Extended the crap out of the LUA api:
  • New hooks: start, exit, pause, resume
  • Exposed video, ui, osd, and render managers with support for many functions
  • Access config parameters
  • Refactored ioports global into machine object
  • Luabridge code in git

I was motivated to extend the lua api because I'm developing a little system to automatically generate attract videos and title/scoreboard snapshots. Idea is to regenerate the snapshots (or videos) after playing a game so the "real" last scoreboard shows up on the frontend. With a little more coding, it will run "headless" after exiting the game.

Also started building full sdlmame releases for OSX and Windows. Packaged exactly as like official releases.
https://build.btolab.com/project/sdlmame/
« Last Edit: May 13, 2016, 03:34:33 am by h0tw1r3 »

lamprey

  • Trade Count: (+3)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 636
  • Last login:January 17, 2019, 07:03:11 pm
Re: UXME (mame fork)
« Reply #8 on: January 08, 2016, 02:14:56 am »
Thanks for putting this together!

I was testing out 0169-5 x64 on windows and noticed a couple of things:

1. To get the Fast startup for unthrottled emulation to work, what is the proper ini setting? I have "faststart" set to "auto" and tried setting "faststart_skip" to "1" and "0" but that doesn't seem to skip/unthrottle anything..?

2. It looks like the message skipping is working, but it still displays the "Initializing..." message box. I wasn't sure if this was supposed to be disabled or not. I think the high-score/no-nag patch for main-line mame removes that message box and get rid of the border (the white line around the edge of the screen) when mame is launching. I don't know if you can either way, but it's nice to have nothing appear when launching a game (at least for me). :)

Cheers!

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork)
« Reply #9 on: January 08, 2016, 06:27:11 pm »
1. To get the Fast startup for unthrottled emulation to work, what is the proper ini setting? I have "faststart" set to "auto" and tried setting "faststart_skip" to "1" and "0" but that doesn't seem to skip/unthrottle anything..?

It's not you :) I looked at the code again and tried to set it up myself. Not very intuitive.
I just pushed a new build that improves faststart (see next post for ini options).

faststart.dat is formatted exactly the same as hiscore.dat and will be loaded from datpath (see uxme.ini) if it exists.

framecounter.lua. It is very useful for determining the frame number to faststart up to.

For games that initialize nvram or hard drives, you must completely boot the machine at least once so it initializes the defaults. This default init process effects the frame counter. After the first time, you should be good to go with a consistent frame number.

Here's how I add a new game to faststart.

  • Start the game from the command prompt, make sure to boot all the way into attract mode.
    uxme gauntdl 
  • Start the game with the framecounter script. Watch the frame counter and remember the number you want to faststart to. If it goes too fast, try adding -speed 0.5 to the command. Press ESCAPE (or whatever you have mapped to exit). The lua script will print out the frame number.
    uxme gauntdl -autoboot_delay 0 -autoboot_script framecounter.lua

    Stopped at frame    1041   

    Average speed: 93.64% (17 seconds)
  • Open faststart.dat and add a entry with the frame number (or a little less) from the previous step.
    gauntdl:
    980

2. It looks like the message skipping is working, but it still displays the "Initializing..." message box. I wasn't sure if this was supposed to be disabled or not. I think the high-score/no-nag patch for main-line mame removes that message box and get rid of the border (the white line around the edge of the screen) when mame is launching. I don't know if you can either way, but it's nice to have nothing appear when launching a game (at least for me). :)

I'll take a look at removing the init message and border.
« Last Edit: January 28, 2016, 11:59:28 am by h0tw1r3 »

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork) 0.169-17 (2016-01-16)
« Reply #10 on: January 17, 2016, 12:57:29 pm »
* Added config option, render_border (defaults to off), which properly removes the white border around OSD UI message screens. This means you can leave "skip_loading" off to see the pre-boot messages without the annoying white border around the screen.
* Removed borders around all UI messages and menus.
* Add type() method to LUA. Returns raster, vector, etc...  manager:machine().screens[":screen"]:type()
* Extended faststart to support a two values. See docs below.

If you prefer to add faststart to your own builds, I have created a patch that should apply to mame 0169.
http://playground.btolab.com/sandbox/kb/arcade/emulation/mame/patches/


Automatically fast forward through machine boot sequence.

* Configuration *

    faststart:
        0 = disable
        1 = enable; use first value from faststart.dat
        2 = *enable; use second value from faststart.dat
                     (fallback to first)

    faststart_skip:
        0 = disable
        1 = enable; do not render frames or audio during faststart

* DAT *

    Download sample from:
    build.btolab.com/project/uxme/faststart.dat

    Format is one value per line. Romname:, frames, *frames.
    Multiple rom names may be specified (one per line) before the frame
    skip value(s).

    ** Example **

        1941:
        1040

        pacman:
        puckman:
        mspacman:
        mspacpls:
        294

        sfex2:
        600
        1900

        strhoop:
        710
        1000

* Intended for skipping more than just the boot sequence.
« Last Edit: May 13, 2016, 03:33:53 am by h0tw1r3 »

artyfarty

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:February 24, 2024, 03:35:15 am
  • I want to build my own arcade controls!
Re: UXME (mame fork) 0.170 (2016-01-28)
« Reply #11 on: February 12, 2016, 02:30:19 am »
Hi h0tw1r3,

Trying to use your patch for MAME 0.169 to get faststart working.

I can apply the patch and mame compiles OK, but I don't seem to be able to get it to work. I downloaded faststart.dat and put it in my dat directory. I'm using galaga as my test case, and it works fine with UXME.

I've added "faststart 1" and "faststart_skip 1" to my mame.ini, as well as trying "-faststart_skip -faststart 1" on the mame command line, but:
Code: [Select]
uxme64 galaga -faststart_skip -faststart 1works, and:
Code: [Select]
mame64 galaga -faststart_skip -faststart 1doesn't.

The faststart code is there - I don't get errors about the command line options, and mame64 -showusage includes faststart

Any clues about what I might have wrong?

Thanks,

Martin

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork) 0.171 (2016-03-03)
« Reply #12 on: March 03, 2016, 08:59:59 pm »
Merged mame 0.171 release. Source pushed to github and builds should be finished in the next hour or so.

Good news, most of my LUA and cross build modifications were merged into mame 0.171!  :applaud:

h0tw1r3

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:May 19, 2023, 09:50:54 pm
  • Git-R-Done
Re: UXME (mame fork) 0.170 (2016-01-28)
« Reply #13 on: March 03, 2016, 09:01:50 pm »
I can apply the patch and mame compiles OK, but I don't seem to be able to get it to work. I downloaded faststart.dat and put it in my dat directory. I'm using galaga as my test case, and it works fine with UXME.

The faststart code is there - I don't get errors about the command line options, and mame64 -showusage includes faststart

Any clues about what I might have wrong?

Not really, but I will update the patch for 0.171 and test with plain mame. Are you applying any other patches?

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:April 22, 2024, 01:51:33 pm
Re: UXME (mame fork) 0.171 (2016-03-03)
« Reply #14 on: March 04, 2016, 12:47:57 am »


Good news, most of my LUA and cross build modifications were merged into mame 0.171!  :applaud:
This really is! Congrats!