From 9912f7b963142669716dee38a07d7dfdba791a90 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 10 Jan 2024 12:01:03 +0100 Subject: [PATCH] TEST: trying to build origina untouched manifest --- .github/workflows/build_mame.yml | 7 +-- floppy.patch | 41 ++++++++++++++ mame.ini | 38 +++++++++++++ mame128x128.png | Bin 0 -> 12847 bytes mame16x16.png | Bin 0 -> 1482 bytes mame24x24.png | Bin 0 -> 2179 bytes mame256x256.png | Bin 0 -> 28901 bytes mame32x32.png | Bin 0 -> 2895 bytes mame48x48.png | Bin 0 -> 4673 bytes mame64x64.png | Bin 0 -> 5743 bytes org.mamedev.MAME.desktop | 8 +++ org.mamedev.MAME.metainfo.xml | 57 ++++++++++++++++++++ org.mamedev.MAME.yaml | 89 +++++++++++++++++++++++++++++++ sound.patch | 28 ++++++++++ ym3802.patch | 13 +++++ 15 files changed, 276 insertions(+), 5 deletions(-) create mode 100644 floppy.patch create mode 100644 mame.ini create mode 100644 mame128x128.png create mode 100644 mame16x16.png create mode 100644 mame24x24.png create mode 100644 mame256x256.png create mode 100644 mame32x32.png create mode 100644 mame48x48.png create mode 100644 mame64x64.png create mode 100644 org.mamedev.MAME.desktop create mode 100644 org.mamedev.MAME.metainfo.xml create mode 100644 org.mamedev.MAME.yaml create mode 100644 sound.patch create mode 100644 ym3802.patch diff --git a/.github/workflows/build_mame.yml b/.github/workflows/build_mame.yml index 0da223d..6477bdf 100644 --- a/.github/workflows/build_mame.yml +++ b/.github/workflows/build_mame.yml @@ -25,11 +25,8 @@ jobs: - name: "Install dependencies" run: "automation_tools/install_dependencies.sh" - - name: "Creating MAME manifest" - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/update_mame_manifest.sh" - - name: "[DEBUG] Outputting manifest" - run: cat net.retrodeck.mame.yml + run: cat org.mamedev.MAME.yaml - name: "Build flatpak" id: "flatpak-download" @@ -39,7 +36,7 @@ jobs: --install-deps-from=flathub-beta \ --repo=${GITHUB_WORKSPACE}/mame-repo \ "${GITHUB_WORKSPACE}"/mame-build-dir \ - net.retrodeck.mame.yml + org.mamedev.MAME.yaml - name: Create Artifact for RetroDECK run: | diff --git a/floppy.patch b/floppy.patch new file mode 100644 index 0000000..b80d0a2 --- /dev/null +++ b/floppy.patch @@ -0,0 +1,41 @@ +diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp +index 3c00336d..cda94d92 100644 +--- a/src/devices/imagedev/floppy.cpp ++++ b/src/devices/imagedev/floppy.cpp +@@ -1707,9 +1707,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + { + idx = m_spin_playback_sample; + sampleend = m_sample[idx].data.size(); +- out = m_sample[idx].data[m_spin_samplepos++]; +- +- if (m_spin_samplepos >= sampleend) ++ m_spin_samplepos++; ++ if (m_spin_samplepos < sampleend) ++ out = m_sample[idx].data[m_spin_samplepos]; ++ else + { + // Motor sample has completed + switch (m_spin_playback_sample) +@@ -1763,7 +1764,8 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + idx = m_step_base + m_seek_playback_sample; + sampleend = m_sample[idx].data.size(); + // Mix it into the stream value +- out += m_sample[idx].data[(int)m_seek_samplepos]; ++ if (m_seek_samplepos < sampleend) ++ out += m_sample[idx].data[(int)m_seek_samplepos]; + // By adding different values than 1, we can change the playback speed + // This will be used to adjust the seek sound + m_seek_samplepos += m_seek_pitch; +@@ -1781,8 +1783,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + sampleend = m_sample[idx].data.size(); + + // Mix it into the stream value +- out += m_sample[idx].data[m_step_samplepos++]; +- if (m_step_samplepos >= sampleend) ++ m_step_samplepos++; ++ if (m_step_samplepos < sampleend) ++ out += m_sample[idx].data[m_step_samplepos]; ++ else + { + // Step sample done + m_step_samplepos = 0; diff --git a/mame.ini b/mame.ini new file mode 100644 index 0000000..354f5e8 --- /dev/null +++ b/mame.ini @@ -0,0 +1,38 @@ +# +# CORE SEARCH PATH OPTIONS +# +homepath $HOME/.mame +rompath /app/share/mame/roms +hashpath /app/share/mame/hash +samplepath /app/share/mame/samples +artpath /app/share/mame/artwork +ctrlrpath /app/share/mame/ctrlr +inipath $HOME/.mame;/app/share/mame/ini +fontpath /app/bin/ +cheatpath /app/share/mame/cheat +crosshairpath /app/share/mame/crosshair +pluginspath /app/share/mame/plugins +languagepath /app/share/mame/language +swpath /app/share/mame/software + +# +# CORE OUTPUT DIRECTORY OPTIONS +# +cfg_directory $HOME/.mame/cfg +nvram_directory $HOME/.mame/nvram +input_directory $HOME/.mame/inp +state_directory $HOME/.mame/sta +snapshot_directory $HOME/.mame/snap +diff_directory $HOME/.mame/diff +comment_directory $HOME/.mame/comments +share_directory $HOME/.mame/share + +# +# OSD VIDEO OPTIONS +# +video opengl + +# +# BGFX POST-PROCESSING OPTIONS +# +bgfx_path /app/share/mame/bgfx diff --git a/mame128x128.png b/mame128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..38d6e001234ebcc56df18f4eadaf69ea5c6e6c35 GIT binary patch literal 12847 zcmd6OWl-Er@aAvX;F{pFK!D(`3A(}E-Q6v~;<5>n-~Z8I( z0H}^ee>6e-cc(OyR#gB1Z`yxyK>%?7pZp#Gz}Nxcz!(7dlL3IxIjvbm@ZSTHshpJf zKm0fD#99LW0jjgKj_W@({@?4&PIThm0ohGPK>~RPg#z^zXHxO`KPLNujQB@&&*kG) z4|M{m2fnk@)r7TDN{B?h3^F1qeZyi)zat(#DT?N7Z6M1CM<$R!sx+Ser?W|^D*530i(lt!%ew7k)p9FgUXKb1lq)0Tq-sl;f^L28(DY5 zfl3XdU9efa-NNFrd47&%nMKd1B1%NEo2IoxLRT+m2FRW6_I)iaI-%eb%jg=i9z*JQ zGCr5Xl=RJp{r*zzZ@w=h=UbIK0=7rL*r|9ohJG@&Rn}qK!V~S$A2;XxQ$>8g8}*ic zH)_tvOt&%ZVf*9Ol+jIELrq)DMAgK>zUBYs!29>6`_rb-=tYz0onh9`_F&r%rc z{SdANYqu6Lpd&0&^Txx#dvA6&>9e>QMRY%fUdIZloaP7@mql*LWoAwE30B+L$A{0n zO+Qs2NM_X)tnhU6m&n+uA=h~EzGT}ionG0L>G%)}?Q!I-JpzBdep8N5fu{#+@KHOw zUK*{}LIf=L{%#*0UU8~d7x*8`7srMDT(z2dM?!m5Fcs>z_b^O>$KuW=DN^)jGKp;= z^X@cF&)@S~!bh8jZVM+vwu^XmS%dsi#U=d=?k7pQiQ3I)+jdt=^;d5=%5&8S+xS)I zuhU#C`_{r#Hf!d3t~2&3A;#f%MhzL8gtUfqvHm_%r)QIDA=FV8lJC-G@xC5t^(VEl zvV5op;QqRs{rAiP(6ON2@J=C?Z9q~%2*2tKzbBL;A1gSj!Y zHi^PN0EQ|~B(JiFxNuOF5hbQ2fqNA30KimNz73=+PvS-%@x)j{9Y&y|E!phoLC8tI zEa?Ti4o&trF2}*nwwdtMj=D(d5N|(&U+DB-pmIFS*;DZz@lBcDu7|i?j?V<}+-zSb8*2`? z>JTYRl9?6RZOQ9_03YE1p@FN&BpeyO^?mpEC-J96i@V;9fsXP&erK#)&s8$e>K@x< zU$j=CuFoJYQ<4EiAB3{60jeNQ#(&3j91KuR7RM|aC80?C^-etR|Gr z2FU%UOh8bN=0$e|ye1(BsFSa=gG50W+2h@nz&`51ED9X?F!&?%xH(G5K(Ej7p3F&_zezOu0ML6=B#!r_c@R# zJ?znWKi+hN+oe>d6zoQ?m&kq98#^c3b0ByI9cq!^iOiEp(cTe2zJaAp$s#99krn32{-!(N( zha8b{nezY{N!7F5+i_6zdnyUFWYHEyWCGmf&BydXTPOk&^MJiEvps0<+aQ7>a1`W9 zg$-ZI%BaGJrVMJ#;z5g@CAE<#!EE2b@V7>@_*w4>{s|{jqltro!7MR7fL`J$=op9% z0?FeVL;4~m#Nf;2>Gw@r?G0|^#DbN_38-fMtbaB8G(1)|c4~>thD7uCMhr+^Fyf|; z2PDg!{cX=v51DVn7Qg74U?Cq^-Qmgl3_Fb&fONko;ziIDL2-3?GB=gef5Tu<2b<72 ztO<>^LrEtte*0Wg4>Qd&$vi_LKR*XoqRvR+0IwYG0h zOQ*C)tnTpdyz7e(YTR)ps{eTX0TTt{t@b$p7#KMz9&Rsnk^=sN{F4icwOdo9w|vK1 zj*OQK-r9ROt426Xa(GGEp-9%BHGx<3+2WCvE!mi?B8)c7(`{{+F&ECJP6MlR#c$c< z2p{k(M_GmwQuB;)_Tyf`c~&=u%!{&ABfkT?97(%B%YbI>T2Sy}$r9Z{>1 zjeQ5R{s#&DJI%g1w?p`U-zq;?srXz;3`&l$C*(TM8$lUaa+DLKHWjiJa>rT7+)Ae= ze(Uqj4ojKtKz0e}Ekc$V0~uNj9cuWEP-~ z1}oHoprC06OrSIC_U=&cW$@eRwunx+`d3@>DaYDTjdmro7|CN^$d4~9#x~aS_ik|& zAmG3^^20Y<|Hh7&lLfJx<6-%*95kOY<#;;6Qv66PecHcF5A+J4y<}BB&E*z6ufQ`FH$69R`QLNhtCh zQ28820zstD0-Q-otr5O!|KuG85px857r5>Hw#1u4Xxm1m3$9*_7&bMzDK zzx;gva!CzrS~`Sxs~ITj;{Po4EDvSj6Hs?b+=QHx?c;qY#sK4prPC9^iDH%Z$JKFL znIBe00?XSk?f3mm^n*VM2xRgTs4S7lcyD5Kb33Snyovv32rVa|{>x0H<({{vHi@N9 zID1+Dp=o?%+jZ-fhnicUftbacY8X#1ha+Qylhyy{MQe2CI`gHU+~E;pfaYT>z2{s) zSpK{FzUt3X47!U&X_%cMUR{KlzQ{*HCmYR4IyqmJoF$r6OJDXMuiVP(wnfHSWrjUQ z4xP3lEoPIN0rn8cfv@*-rmgl}f<(T^;CP=v2ByF^|BblpQCn|IPmU&j*+^3&dC7Nx zm^%v*N|9LQE#=i414Y|lbf2~aY@|EI;4DxoIj}ajoG22UC~>p~#B5bu26Vb44#|QV z!nQdPJLhZoFo2cL;be?X>?2w^KpfJ$LURjWmP*TL!5Abus;kV`IqdwjJfqNYd=y*d z*Lup@Pn1i0TDtyngwk15Hx^tKUZGHym z)>xtI2090JTw>+vip`EY7YmGE>ojfe5WiOSQ{jF`<=+49oY4$aA&Z?YSbt}17v@rY zbQ$Yv7i^%(X*xmsI=q&DlE0f`5hqVi_y@%OnaLFy`d+M>XQFW>r42ohCs{;2sRmQ*XyjqCj_x-dn=7q;$q7Tz6FDP^TQk*?FQ8#$he z(q=X&N%t2xlcX`2Ltdzf(jDMlH&D?;Dh z#gu0>JRz%1A~TE!JKgn{A6T92`LGVuhKk?@cf)JnfdOHzubX1KScZPRS{7egxuEDl zvL>_u#ba1H#bD6^u^i^f-Z$26Rh>LLugZZ7_jwL-$u%=7c?AbD&G~h_>W>CW3yP;9 zws`rIsQg%2SfU%xywPkp)-WY3p*r)1^ss*Gr~CV{L^h4mNvxS`oBiRCZ?xeBAh&2q z)UTjL)4js+>SKJd^#;Bxm&9lz35G?H8wz) zY)T6Fu4O-WE?bSdU~WB792(ichJ1ZnW{-mWvA-1P`_0hH9oJ{x)6QC=9&rE;vRQEy z^b?5oIrVV20^gj+H>+cRAh~HytD5ua(@mdnH-960c)4ZR3vBn30iAe9vh5$mgP2sT zqBPAzYQcK64f_r?F;pA{A&8BoXg5Ct&P$#ST!9d)FKp4#Hbf2!Yd$);g{69_nQk?1 zk=HJ<_OXqcOW4N3h~FumJrnPVe7Hq{pA6WV8O6y3Cr+6wdzw(m-dbIygLm995-Ha7 z*Aygzn!mzR7b6{jFow*Fc74CYd59{pnYo9=WmXqsAS%W7VmDb zN8=_o5`QeAxlqv?$5X`8dR?@`-eSJtL)!>dcnX2z^b=O}9u+Gfk1NUk9Q62-^Q@$F zHB^(pl+oIBzacwQl{}k^nnY3d!&b|axAe}A2_~}G4HgDwzHrD3D`!w`Q6U>wGlwUD znn}kR=Nq(E=LhEm%$y7U{t0htDRshxsO}t#IQ*)(woCJy&B3^}E-NP_sb71tobGPt zj^fD^gDG^_GX?Zvbxvk!Y&8jEave83DBAn7HTWO1?+Pyb%plA|-WJ+Q0*&VHY=NN| zHjxNM2*g{!%`}F5m;c=OvVhw?wvly#mdM~IAMvP=&;GGpObHlid2@AmP*k*-m+b>R zDI!6a>Q(=Q9h{zGNiQbSqJ@RX`AhQF#p*BzKej_pRQlWn_KyIpf{JUD`43DtJ*NOKJ6PfMXP6BeX)h+TdEzV1?CyWa43?aT_za__E!qsEm%gIJ>U zF~dO?2LfQ-oh1qRj>esZN*P-58!hHiP{MP{=z`niMyChY?umz7sdej;TNwNAMzVBKlt4sJ;$;67ZWqv-Z|Tstx&cYJw`ks zSDqMuKa8DnF0&%t_fPO=TmYp+7MzKXfjgE}bR+KIR}sTB2@k3P;l$(Vq-(dAGulN~ zxlWby8Ca9p$)GGer?Z`rxdmaT$vue%*uC|WZJx=h$2NPU*8SA|1DL0;mgdJBC19cY zYXgEYj^9}4Ek>GY)l-!mxEzolb)h}3;WhSU26WDTW2%2YN&HID(gfk>;7l#!UmwZ^~Hn@aY5 z2`hlRnD+G!^TWsUbRS0LFJa}5%^VYExIIE1FtjrU?J4i4Wy>2R+wIJ=oU6?9z8wGq zK~J`yrrDt3);e##m-;4l+oMA3*OlPBjI8QkB65FwF`G(Vg?h&?(i9p+jU{`w-d?% zoI;jSwY74nklTzl?%9$0v5iR&HOEy4r1<4C@vuLTUyq2Qc7q`x9?4qgd(^s7Ix+Tp~@#_9BbgsPnnbceF_ zR+whph?Y0wFOw?J%{DhM8mRR-7f!8NI*HTKJWo3VN!DED16m!MK5o&1^{{F^AD1lZ zI*)6f=^VsvbteV=>~d{vC>E?}fs*_MBu!xJF}igjmIx_0Um;N9?Y zy=xVx(USlES7S4ic*BIeS8R$WCsn~;nUkEf{F1_CQvNLT=Vz3>X8#H2@CvX!rDjbg zC{SOH>5$Y5so~tP&G(r09WN`H@m^+4zq_t$Ia35f$Gzj~ggffN1lkc{$) z7`N#!7AxMgeUsA+RvC4j5-K1WmBOWe0NepWc#RPw@(X_){3T0XlN@A>Lb~Wr`D@qk zOED5;?{NxoY3Vuu-(dasXGh$b6H7cjsl$ffrkf)QGktvTo@nGiX#+@Q{aV<*x1Ha_ z^g@1$^f~N_w%*gnR;SE+ju+Ahc47k4jjjw7YN0OiAoh@VwMbR)U*^#OO29#KM|{a; zNeHJowcg+2fnL8QrCN=scCvd)CP(YMhr_s``dC|qRh^^M1)<7lTa-(v)jR~wSeN~j zK}HN$@7)AJ`E1yZU+p3JcVPhw>xxuH`RR)Y#%z|RXq_RoFniLhjzyOijono*-oA`w z;R$NY6v?YwH0!E{kLm(rX#Me#9o@vyprA=c1!7t7LY6 zW2zwTdV*qX2FRJfuA1x=`|%*El$m)G3*^S;TH228H@-HdewQ-z5iUvMPDCPYe zl9Qi!U97K{YDk{c8ZCZxeM?%!X}rw8z<|br-yfg*a+mnz^IVMubrKIJ$juRonys}@ zA#7r5XuP($9XFIbv7HvbJ8ArUiiO-Na<*Ra-7<2L5DZ$T>Sc-sDh)DeMO5-yJ^6S0 zBkZP_2+(YX1H*Ls?%A!PobQ4VG(}QjmMZpG$|qXWxt@Gk-%5zIOu}&gvu78)U&_Xf zZ~ak@sOX?bLrTwCb!Npj!?M~^gYFn3?sowl!k<32eDpkQAgw^-3Rjr?uVj^pI{?cP z^+uy#&~hxc4#)M3aD5-C1mSpGh?yP}dh9D;cOvCABx6}?uDE{Z5A3{gDUxZRz`S&c^~Y8ur=7NCPw1bcEUR@vh=@vQoljT(qZT9G z@6e1g?C0e2m)Zjb9#@7KU(nLWIja((7>$vtwQ(dJ!p$D;Pv8t`$%t-P`&3P;Cr`(9ZPmWO5WdP7Wtj z9ylo>9Nh7pa=X+Q8n%s$RUoD7Z`(Q?7#>{@me@F62Jr(}n|}mIYxvJn zP3R>NhChhn<|7R5#l~O!y&ox@;Bi`O<_);o8D_FrkEgXltVY@C^e3N36jR192=cFk zs}?~KjloO0_6T8Y+l?cH!yZ<{6dpc#H|C+|!Tb<1NB$=16dAF++`f->$V;cbF3wQE z4haQI7B|20d-msCi+tE)>?tfq-d>)sIZQm|&)e8jpqcR%N;tsX>%|-(B|P`pNtNe= zWDi4T1%kzHnBZDaeh59EmauwIcEvI%orRy(@*|Hwi#7~7K=aA0XUSxOFXWC4_otkq zw5rzkqC)G2y<|Bi5*d;_5cG4dwo0IH>8`T*WDqT-Vw_{_+L#k{dKp!bTbi$2jiM#B z-lqcpyS|)y?NuHmg((mSfd3&efbLciFo9&!M#XosM(0+I_e^HbRd%To4>M*~SfxId z3)Vg6wekU3T>{g3U6>j0KazdF!p@NpE7fAH1nDFhN2v}G% zDBrZ9Uii%xaJ?~dHv)m5v|C<^F$(4$XmC$BdU5cMTLuk~XTmTQ-t}KFxFAE5nVT5d zK=KiIt4M>FO2q1?VYWk}I`1iuR1G!CkU8ziqowUrr%!AKuL-qCz6vXLRltjWBFByv zdMKt6Y$Ka@VJdOp0RBclZ&_W6#K6XFRo_^U!~DlhR^)b#zDarjxnNQok4__%eO=-CjY3W(U_OWa1@57F(t^bg1ar=Dr*Cs1Paxg zko{8dI>z+|3gtKV8Kf-c%Bn|&7c04Nyd}PxXemdH)I3-D+xxRq69uI#)0-RffGqtv z>NwG@w_1BU-j-iZL+;v@`btzaiXD!C@A_{T_K)L3`s-5v0P2(8x;lYKnmKP0px2g! z=Ss1vGJ&m9v7axbz0UDI!lLGZbfbAUwJSy~He8*h-?ZG>L;ilL&Bs!g9YHL0aXV_y>PNNEnZ z4HlWmq)1;?&m;p-N#wOllbDj5rVxWgv_XLquhP@Ed~vxjmD9O>%|uXz)@n}oN@~gb z)vEMNa*B)Na#`E_<`fvdlay<}IIe^XfFneRjRfp4+9Cm?&^%NyrvSj1 zmns0jNvLfDI+^>pK+svmSu{YLrS~nE>gxJJ9SS$7Vp({@)mK}Cr}w93YV6YW!w z9OOc%I3PH~@wIqs(B`YDwxG5N54y|_a%Zn?>)WJMkBQ8E&m#V>G=hB!`UB2`T^rwG zZwZv~btjP~Llw+K0EtRhgqrZ-hkPObyq7am`Ni7KL#0ZxAJ@xNvl=VqYK`OC(Dccu zIWYUR(28#2V3I>xe1o3KZl_}-?lx7Zh`x%E4#}H--HV=eo>jolKkaw4gVjjSYvYWn|`x{yf>F9X; zaGSvf611r~r;CIHEtrU7Hri z#dqWlV8$d7u3HmTUs0keHpIxnG=_mMLz^UEgc3F+JN%Qm#hN)xLh2FPSVdwH^M_tH zTL7#5m@;7zn=%e-0}Jlj6yyTfdP-x1%6bvfkj}`oRFIU>9$zC*@1U?j zgS~L**Z`8Zq*!pj<)>>U{)1=TJby{2hP7N+UDAfp5#ajSDC>gEdyV zC`K%^Ek>E*b^J2Ac{>LwhNRT&z&+FKYs$>x0F`9VpubRuDT9dIh&WRCeUPbG{dg(#*lk!CGxmv=P>?(QnZHqL3eKdBwuc378Z%(i_Etiz76 z9$FYVV7#6kIEa`_Z5CFZ`BgPt~%1>q%R~xSqCNzO{^w6t+l>udG+f zmkz&eCquB{^;eL4@EsGU=roe_`0hi#fsD`*1_=m!@Jbo-yCeo~h6k0YLx&3(4vccHBgy{r+!jAg%Ox!Vn9QsfdAFLYN2af(eEWgK2kT7 z<=GvLvI>Ww+agIdecU|Rg!gm209CQ@oTLW4mHMoh|IDX4SQ`li7cU{9@U!~N-w|x8 z*i^ylR(n5TR`ci5JtM4uQ~x^eH%u>^5``teObDtxsELy37~Y*(6Kh1l@Zm}J>EmtF zmDdNQuSO7Oulcm#KD)}TO0C34jwdyqpPIG1voDu+BAhmolqi7xMpr9HHG4=DMfrkT zgiD0|!>Ph0+gf+0fcw97`d)KB9=vgV)a1v#lB(e1 zxGfsmYOW&^s6@x9ZJCZAO$-#NYCOmOd(4W&W9{E4aROqxYGs|gH*F`o;iZK~jv{*< z2rrv=!ksc?V4D4!`wJa3x@$ZB=qtrO#kn(fWuktG-gGpQxJhQF-GfY3LO+)l-;#r& zISd*VD)_m%ObCD(NDvCt;5DF(03{NK)~tZoeW)dn_iprcH%JvX$NClYO$z-La*-;^ z>t+OXMvOdT_(gFN4xn6c7P)~rDfjl<0XUx76P*C~z~m5*4_|)sOT+szsK3E$t-Ae^ zFL7RPohEnxX0m0)yHU@QgY&vJVE(!d0w4bi2d}^L)cb(tn6StzFyFd>p^zI}Cgg3o zsU9RrYPugU8DKU>?Zn|7C7@4^U*Z(YZyFkTdn@75ktsweb2xo*sd8zTK)YJAE}vg3 zd>i`s^rg{E_zbxy$Qy0!vuUGXqE*srRVVcfLmT^+Wb1Jl9rbn8T|1rM*m~AXK!ooV zU@eNxUvxlJ(!Fbz8d@?PUiw`1wT$>M-qna(%U3at$b?0R=J4Hdv;VJcx|s}jJO(@A zbPb_c>70=!Kw8y;wkBry-gW}Uy4TB^SvfV+Io0WUQ9bk7EQ!10N7CODm#222!OJ4kE|B6UqT5m)*VsudG%&8#Z7a?$e-{l|She8cN5VSt|4_R~8oBc{f)wiTJdw-&bNmrKqzmJ>1u<()_V_9oDJm z`-Mlf+Nvu`o7JVBW%F5}xPuw;AZcNozX@(}Un# zs};-zCB5d3A^r2AlmLxWhj#YQLS)Kee1l@-F(SNX61s8Sm~0*4E8c}J1zS_~wabN~ z1j5B+q_>yje`|IrtUX_gC;xS?Ijqb)Yy3QM&`mK0cvE?zTSBM4=_io&(D|W76fzICrCeS^CXw1gc7DHXLJOA`F9@&@2i8+p zbTtQwa#X@UWRa%?xbonSe~!QI1TDY+tpHK(}@s7#0f#M3l;-> zsQIavF(}0rDa#Pg(5}VfK-OXRGrE9(-dlS3aInS1a5RVk_jG@qIN6zY>Poctht%8e zKc;(1rfjXaM1JP6ETTk6Fho(4wuqnKWf%7qN3TbCo^PGR=n3SyP}~X?`_;MJac9f6GQ?{48zmzz#l8?%obOO?@f5?=FkpVMf6jN3n_zhvy`IsIQTWGrfGb zpQu8O-n;=L0J5?r_Q>3crvgRKR|XRHCtYRn!$ds@0AdOa%x5#6Le-nh7Tx_S}{hC!GHJ9 z7v%BMApmm`feolg0f`3rUlhCsTqr+i0Ok@AYrvLbLOf>Y7c>S;IO+DZ8hlw9?H95% z&7){3Xv`ce(DNMTRF>qqdL!K8o!m14a#XM{P&91hrd0EBTeEtM*#9cCC8Uoh^zf=T zHE52fqGN9$|K5!GP1!IB857zF*4SG9qPQjkE}60-{%o)t$kT)zhG6~SZi*V18T#=B zK%>P@0VW;73f$SpIKAE9FCD8~ZF&)6WeAaQUe@2K%u&p-`g(74^tmm5oU*tPi*g-y zVk6&iXH%R|7_%W8BR?eDt2tfKnEAW_naI?bebE*s5OJ?e_8MZ*w~}Jft93$J8Rjn< z)f_YZT$jl|#SH{0`_k+GON>J6#Yy1}3|frHfCN{qLQRyQaJp3z@1}NN5sN;!JB)84Jf3|A}!&{Yo{h4{NmBS`bR$rN#p1|4tqZ=1w4!A?%c2 z7S9D;&_ae^ov|q7lLN<8?}R|?p&_bl@MSa9>(6Y&Dj$xAh$RfoWi-E|Z_up1IdE$B z=d%9nNFkMdS=fNilVyO{vlXjW!&gK8jzuD=_sv}7R9=G;9h5KNWReTgZ-matvUJ{l z^?697FC#&=_)6FR_RDq8=CBdI0De6=zmyx)O`eSHD52bW2|ia{Tv3jiQhf&O4?B!yglfHs!)7`f;*jG7Pt(|?}_ z<0(F?lfoH;C%xg#T?Dj1u&NLzGLCG4`732MT{&04SE|_@JV})zUJJ|?$i4wxVPa;{ z!_%ab`nyzZOJZ|43pjgQ)dCe16&Cc11qRpaZ62@c55o{R>&NkY>pLrHU$=4)p4ah} z_FT3W-b`g9idfdk7|DFXgK7l{u}kUk2Dbr=_M=v=pfYn-ZImkd-WqD4p<0`l5Y8tM zZiiz+2J2CqWw>W;)QfWM4ih|9i%d)rbbf3>WC>95Z7Fikb}x}?U3#L96XLR@vG;jz zwu`xOJ$q?|PcgQhC_Rg(E|?q(yG6)gfOtyF700@C?|T%uNbCHpe#S*V9YeXMf9Y?Y|!toliI$-O_D?R2mA*;baM^{lR6k9 z=2zS-Ta$mXSKUC2tAbTo+;RjRgQ~u#_j3SpOWeFf#+U3rj*+WU9C~Hp!L@SsLU23` zlO#}t2`4j1n@Qfv40L2!eMH{rT@71A?8ItWk_C{zOLreKZ{|Fx=i+Z>;KRQwV)+nx8QL--8ng%#9u!_8`R>q0 zVyMEr!~Zz+|S;B4vmyx_f$2n@hBw?y_IBxQENC&T3? zsZE!)yj8E?LR6QZcJ7_}*M(c2>=u$XpTjDj6*>b_yiBy7_DNeG$0`IIU0EX_Rf?6HAj2sX zTV2cjuiZB!_oBPtS%s@PL>OC4GgyT@Q5`AUx2-A{;Y~;*NA?ehLjMyYoD5sDyk8Dbf!Ji;5=PBmrgWWow#xZ5O59AO%X&p?-vJnLc$3 z%9uu4n40X8Sng=DISs?tTmRTr4!=JH3;u-dJ zv$X?fT=WMuEbKJ1zWV&7=@5Wmiq9IA5}m;lixPd}yzW3+>0gZ#UMr9lsLKwHZ^P4K z%>BH2S=pbL*UK_0nCy1{>7XiC3C5csZf^7#pZ}5Uw(_#l3q7l)L+8&R_{P<(V9r*p z^hqfHbNnV^gQ)=gvJSipG=F}-jJ?5}XhH~oa6_d7 zX?GGa+J6cb+wXsKxNxE0qUED{5VRxAv+m33GG+4|G4cOJ_5Xhz2)C7IF96ru0(tog zjH!Q(5bxY1wB5{2+${LbTrBT(=yfP9V|2Tk*grazb IsPUKo1$pCU7ytkO literal 0 HcmV?d00001 diff --git a/mame16x16.png b/mame16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b62b71dc7f0ff6322bd6194398a793ac538d36 GIT binary patch literal 1482 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 literal 0 HcmV?d00001 diff --git a/mame256x256.png b/mame256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..09e4a262bd9ca4056c68f3a6f1e7e903d257c46d GIT binary patch literal 28901 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 + + org.mamedev.MAME + CC0-1.0 + GPL-2.0-or-later + MAME + + MAME is a multi-purpose emulation framework. + + +

+ MAME's purpose is to preserve decades of software history. As electronic technology continues to rush + forward, MAME prevents this important "vintage" software from being lost and forgotten. This is + achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. + The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else + can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple + Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a + wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video + games that were its initial focus. +

+
+ + Game + ArcadeGame + Emulator + + https://www.mamedev.org + org.mamedev.MAME.desktop + + + + + + + + + + + + + + + + + + + + + mame + + + + + https://upload.wikimedia.org/wikipedia/commons/6/6f/NewMAME.png + + +
diff --git a/org.mamedev.MAME.yaml b/org.mamedev.MAME.yaml new file mode 100644 index 0000000..4a922a7 --- /dev/null +++ b/org.mamedev.MAME.yaml @@ -0,0 +1,89 @@ +id: org.mamedev.MAME +runtime: org.kde.Platform +runtime-version: 5.15-23.08 +sdk: org.kde.Sdk +command: mame +separate-locales: false +finish-args: + - --device=all + - --persist=.mame + - --filesystem=home + - --filesystem=host:ro + - --share=network + - --share=ipc + - --socket=x11 + - --socket=fallback-x11 + - --socket=pulseaudio + - --socket=wayland + - --allow=bluetooth +modules: + - name: mame + buildsystem: simple + build-options: + no-debuginfo: true + strip: true + build-commands: + - make + -j ${FLATPAK_BUILDER_N_JOBS} + CFLAGS+=-Wno-error=restrict + USE_WAYLAND=1 + USE_SYSTEM_LIB_FLAC=1 + SDL_INI_PATH='$$HOME/.APP_NAME;/app/share/APP_NAME/ini' + LDOPTS=-Wl,-s + - install -Dm 0755 mame ${FLATPAK_DEST}/bin/mame + - install -Dm 0644 ${FLATPAK_ID}.desktop ${FLATPAK_DEST}/share/applications/${FLATPAK_ID}.desktop + - install -Dm 0644 ${FLATPAK_ID}.metainfo.xml ${FLATPAK_DEST}/share/metainfo/${FLATPAK_ID}.metainfo.xml + - install -Dm 0644 mame16x16.png ${FLATPAK_DEST}/share/icons/hicolor/16x16/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame24x24.png ${FLATPAK_DEST}/share/icons/hicolor/24x24/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame32x32.png ${FLATPAK_DEST}/share/icons/hicolor/32x32/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame48x48.png ${FLATPAK_DEST}/share/icons/hicolor/48x48/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame64x64.png ${FLATPAK_DEST}/share/icons/hicolor/64x64/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame128x128.png ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/${FLATPAK_ID}.png + - install -Dm 0644 mame256x256.png ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps/${FLATPAK_ID}.png + - cp COPYING ${FLATPAK_DEST}/bin/ + - cp uismall.bdf ${FLATPAK_DEST}/bin/ + - mkdir -p ${FLATPAK_DEST}/share/mame/ + - cp -r artwork/ ${FLATPAK_DEST}/share/mame/ + - cp -r bgfx/ ${FLATPAK_DEST}/share/mame/ + - cp -r ctrlr/ ${FLATPAK_DEST}/share/mame/ + - mkdir -p ${FLATPAK_DEST}/share/mame/docs/ + - cp -r docs/legal/ ${FLATPAK_DEST}/share/mame/docs/ + - cp -r docs/man/ ${FLATPAK_DEST}/share/mame/docs + - cp -r hash/ ${FLATPAK_DEST}/share/mame/ + - cp -r hlsl/ ${FLATPAK_DEST}/share/mame/ + - cp -r ini/ ${FLATPAK_DEST}/share/mame/ + - install -Dm 0644 mame.ini ${FLATPAK_DEST}/share/mame/ini/mame.ini + - cp -r language/ ${FLATPAK_DEST}/share/mame/ + - cp -r plugins/ ${FLATPAK_DEST}/share/mame/ + - cp -r roms/ ${FLATPAK_DEST}/share/mame/ + - cp -r samples/ ${FLATPAK_DEST}/share/mame/ + sources: + - type: archive + url: https://github.com/mamedev/mame/archive/refs/tags/mame0261.tar.gz + sha256: 51d5ce1563897709ceb7a924c31a70cc5ff2bec466aab8d0cc9ff3cc72b38899 + - type: file + path: mame16x16.png + - type: file + path: mame24x24.png + - type: file + path: mame32x32.png + - type: file + path: mame48x48.png + - type: file + path: mame64x64.png + - type: file + path: mame128x128.png + - type: file + path: mame256x256.png + - type: file + path: org.mamedev.MAME.desktop + - type: file + path: org.mamedev.MAME.metainfo.xml + - type: file + path: mame.ini + - type: patch + path: floppy.patch + - type: patch + path: sound.patch + - type: patch + path: ym3802.patch diff --git a/sound.patch b/sound.patch new file mode 100644 index 0000000..066c35c --- /dev/null +++ b/sound.patch @@ -0,0 +1,28 @@ +diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp +index a0293063..c4989abb 100644 +--- a/src/emu/sound.cpp ++++ b/src/emu/sound.cpp +@@ -761,6 +761,9 @@ read_stream_view sound_stream::update_view(attotime start, attotime end, u32 out + } + g_profiler.stop(); + ++ if (!m_output_view[outputnum].valid()) ++ m_output_view[outputnum] = empty_view(start, end); ++ + // return the requested view + return read_stream_view(m_output_view[outputnum], start); + } +diff --git a/src/emu/sound.h b/src/emu/sound.h +index 15f6a574..bfa45c45 100644 +--- a/src/emu/sound.h ++++ b/src/emu/sound.h +@@ -284,6 +284,9 @@ public: + return *this; + } + ++ // check basic constraints ++ bool valid() const { return m_buffer != nullptr; } ++ + // return the local gain + sample_t gain() const { return m_gain; } + diff --git a/ym3802.patch b/ym3802.patch new file mode 100644 index 0000000..265bee3 --- /dev/null +++ b/ym3802.patch @@ -0,0 +1,13 @@ +diff --git a/src/devices/machine/ym3802.cpp b/src/devices/machine/ym3802.cpp +index 4a8f6a7ffae..d1bf2b961f6 100644 +--- a/src/devices/machine/ym3802.cpp ++++ b/src/devices/machine/ym3802.cpp +@@ -45,7 +45,7 @@ void ym3802_device::device_start() + + void ym3802_device::device_reset() + { +- m_reg.clear(); ++ m_reg.assign(REG_MAX, 0); + reset_irq(0xff); + transmit_register_reset(); + receive_register_reset();