RetroDECK
RetroDECK copied to clipboard
Add: MAME - Standalone
TODO:
- [x] Complete https://github.com/XargonWan/RetroDECK/issues/506
- [x] Add emulator to the manifest
- [x] Check if the System is present in
es-configs/es_find_rules.xml
and enable it - [x] Enable system/emulator on ES-DE
es-configs/es_systems.xml
- [x] Add open emulator entry in
tools/configurator.sh
- [ ] Test the emulator
- [x] Configure the emulator
- [x] edit or symlink the saves folders
- [x] Include emulator configurations
- [ ] Add emulator preparation\reset into
functions/prepare_emulator.sh
- [x] Add emulator reset entry in
tools/configurator.sh
- [ ] Expose mods/textures folders
- [ ] Add the inputs and map them to the CUP
MAME specific:
We need to initialize the dir in the init script
mkdir -p /var/config/mame
NOTE: emu-config/mame
is /var/config/mame
This would add the following systems that is not supported by the LibreRetro Core: arcadia - Emerson Arcadia 2001 apple2 - Apple II bbcmicro - Acorn Computers BBC Micro crvision - VTech CreatiVision gamecom - Tiger Electronics Game.com gmaster - Hartung Game Master pv1000 - Casio PV-1000 scv - Epoch Super Cassette Vision ti99 - Texas Instruments TI-99 vsmile - VTech V.Smile
Bulding mame increases the compilation time at 4h+, we should consider to install the binary instead. https://launchpad.net/~c.falco/+archive/mame/+files/mame_0.258+dfsg.1-0ubuntu1~ppa1~lunar1_amd64.deb
I created a repo for it but we're still in a full stop because it's not buildable even there.
Asked for MAME Team support: https://github.com/orgs/mamedev/discussions/85
Add the plugin folder as a symlink to mods/mame-sa/plugins
As we don't know what the users want to add and we can make it easy.
All the current pathing needs to be fixed to all under app/share/mame and /home/user/.mame
Outline Folder structure
Things might change and variables need to be added.
- config/mame/
- This holds all config files for input, settings and things. - data/mame/
- This holds top level data like cheats, plugins, hashes and the assets folder. - data/mame/assets/
- This holds all art and metadata asset folders. This also make it easier in the future if users want a easier access we can just symlink the assets folder.
mame.ini
#
# CORE SEARCH PATH OPTIONS
#
homepath .var/app/net.retrodeck.retrodeck/data/mame/plugin-data
rompath retrodeck/roms/mame/
hashpath .var/app/net.retrodeck.retrodeck/data/mame/hash
samplepath .var/app/net.retrodeck.retrodeck/data/mame/assets/samples
artpath .var/app/net.retrodeck.retrodeck/data/mame/assets/artwork
ctrlrpath .var/app/net.retrodeck.retrodeck/config/ctrlr
inipath .var/app/net.retrodeck.retrodeck/config/mame/ini
fontpath .var/app/net.retrodeck.retrodeck/data/mame/assets/fonts
cheatpath .var/app/net.retrodeck.retrodeck/data/mame/cheat
crosshairpath .var/app/net.retrodeck.retrodeck/data/mame/assets/crosshair
pluginspath .var/app/net.retrodeck.retrodeck/data/mame/plugins
languagepath .var/app/net.retrodeck.retrodeck/data/mame/assets/language
swpath .var/app/net.retrodeck.retrodeck/data/mame/assets/software
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory .var/app/net.retrodeck.retrodeck/config/mame/cfg
nvram_directory retrodeck/saves/mame-sa/nvram
input_directory .var/app/net.retrodeck.retrodeck/config/mame/inp
state_directory retrodeck/states/mame-sa
snapshot_directory retrodeck/screenshots/mame-sa
diff_directory retrodeck/saves/mame-sa/diff
comment_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/comments
share_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/share
Rompath should be ; separated for each folder mame should target. Arcade, bbcmicro, mame etc... all will need to be added.
ui.ini
#
# UI SEARCH PATH OPTIONS
#
historypath .var/app/net.retrodeck.retrodeck/data/mame/dats
categorypath .var/app/net.retrodeck.retrodeck/data/mame/folders
cabinets_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/cabinets
cpanels_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/cpanel
pcbs_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/pcb
flyers_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/flyers
titles_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/titles
ends_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/ends
marquees_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/marquees
artwork_preview_directory.var/app/net.retrodeck.retrodeck/data/mame/assets/artwork-preview
bosses_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/bosses
logos_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/logo
scores_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/scores
versus_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/versus
gameover_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/gameover
howto_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/howto
select_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/select
icons_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/icons
covers_directory .var/app/net.retrodeck.retrodeck/data/mame/assets/covers
ui_path .var/app/net.retrodeck.retrodeck/data/mame/assets/ui
Maybe this should move up one level and not be under assets
comment_directory .var/app/net.retrodeck.retrodeck/data/mame/comments
share_directory .var/app/net.retrodeck.retrodeck/data/mame/share