Coder Social home page Coder Social logo

maidxr_fork's Introduction

MaiDXR

Open Source VR Arcade Simulator

QQ Group: 261946477

Discord: Discord

Chinese 中文 README

About this project

  • This project is an update of https://github.com/xiaopeng12138/MaiMai-VR.
  • Support DX version or above
  • The model is almost 1:1 to DX cabinet/framework
  • Using native touch input and light outupt
  • 90hz or 120hz capture (Bitblt) (Thanks @Thalesalex for the recommendation)
  • Customizable haptic feedback
  • 3rd person camera and smooth camera
  • 3 customizable buttons

Preview

Inspired by

Used repository

Special thanks to @V17AMax for the beautiful logo and designs

Build requirements

  • Current Unity version: 2021.3.8f1

Supported platform

  • All SteamVR device (Index,HTC,Oculus)
  • All Oculus device (Oculus Desktop App)
  • Tested on Quest 2 through Oculus link (Native and via SteamVR) and ALVR (via SteamVR). The Hand Balls position is by default adjusted for the Quest 2 controller.

Declaimer

  • This project is non-profit and some resources came from Internet!
  • Although this is under the MIT license, do not use this in commercial/profitable scenarios!
  • Please support your local arcade if you can!

Changelog

Please see Changes.md

How to use

  • Get game somehow and make sure it will run properly. (DO NOT ASK ANYTHING THAT IS DIRECTLY RELATED TO THE GAME IT SELF)
  • Download latest version of MaiDXR
  • Download and install com0com
  • Configure com0com to bind COM3 and COM5 (it must be these two ports), COM4 and COM6 is optional (bind them will make your startup process faster).
  • You must enable the enable buffer option in com0com on both ports of all pairs. Otherwise, your MaiDXR will crash after the logo.
  • Disable DummyTouchPanel in mai2.ini.
  • If you need button light, pls bind COM21 to COM51 (it must be these two ports)(Do not disable DummyLED!).
  • Run the game in window mode by adding Unity Standalone Player command line arguments in xxxxx.bat and make sure there is no black bar. Recommend setting for 1080p display: "xxxxxx.exe -screen-fullscreen 0 -screen-width 1170 -screen-height 1050"
  • Start MaiDXR first then start the game.
  • If your touch is not working, try to enable somehow Test mod then exit Test mode.

Configuration

The green button on the bottom of the cabinet is lock button. Long press it will disable all unnecessary buttons, controller pointer, and the config panel.

You can adjust all settings in the config panel or via config.json. The changes of config.json will only apply after the MaiDXR reboot.

If you want to adjust the settings, please take a step back. The controller pointer will automatically be disabled when the controller are too close to the cabinet.

Some configs in config.json are only the index of the dropdown.

You can use the pointer to point the third-person camera and grab it to the position where you want to be.

Multiplayer Configuration

All the settings related to multiplayer are inside config.json.

  • HostIP: IP address of the host to be connected by the client, supports IPV4/6. IPV6 format: HostIP: "[fe80::1145:1400:1919:8100]"
  • HostPort: the port of the host, also the port to which the client will connect. The protocol is UDP.
  • If you need to forward the port on top of the router, you only need to forward one of the above UDP ports.

EncoderSetting:

  • bitRate: bit rate (unit: bit; default: 196608)
  • frameRate: frame rate (in FPS; default: 24)
  • maxFrameSize: maximum single frame size (unit: bit; default: 8192)
  • ResolutionDivider: Reduce the encoding resolution, i.e. the input window screen resolution. Does not affect the local display. Inputting 2 will divide the window's width and height by 2. (default: 2)

Too high bit rate and resolution will cause all kinds of lag and issues, it is recommended to divide the resolution by 3 and adjust the frame rate to less than 20 fps, which can solve the problem of compression mosaic and encoding lag to some extent.

ToDo

  • √ Add user-adjustable settings (controller position etc.)
  • √ Add non-VR window and camera smooth
  • √ Add button light
  • √ Add button vibration
  • √ Add 3rd person camera
  • √ Add 2p
  • √ Add custom button
  • √ Support 1p only capture
  • √ Add in game setting panel
  • Add Multiplay
  • Add visual touch and button feedback

Huge thanks to HelloKS, derole1, hecomi, V17AMax, and every one in BSAH

If you want to add any function pls commit PR, I will accept it as soon as possible and make a new build/release.

maidxr_fork's People

Contributors

fkiliver avatar wangw571 avatar xiaopeng12138 avatar yuangezhizao avatar

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.