--- mupen64plus-1.5+dfsg1.orig/debian/mupen64plus-large.xpm +++ mupen64plus-1.5+dfsg1/debian/mupen64plus-large.xpm @@ -0,0 +1,390 @@ +/* XPM */ +static char *mupen__plus_large[] = { +/* columns rows colors chars-per-pixel */ +"128 128 256 2", +" c #000000", +". c #0C0000", +"X c #0C0C0C", +"o c #130505", +"O c #131313", +"+ c #1C1C1C", +"@ c #260000", +"# c #2D0000", +"$ c #3F0000", +"% c #252525", +"& c #2A2A2A", +"* c #333333", +"= c #3A3A3A", +"- c #4D0000", +"; c #4F0808", +": c #530000", +"> c #710000", +", c #1E6516", +"< c #266D1A", +"1 c #226917", +"2 c #2C741D", +"3 c #337C21", +"4 c #3D7838", +"5 c #417D3B", +"6 c #444444", +"7 c #4C4C4C", +"8 c #545454", +"9 c #5B5B5B", +"0 c #636363", +"q c #6C6C6C", +"w c #727272", +"e c #7C7C7C", +"r c #6B4C4C", +"t c #840000", +"y c #8B0000", +"u c #930000", +"i c #9B0000", +"p c #970B0B", +"a c #9E1010", +"s c #9F1F1F", +"d c #A40000", +"f c #AC0000", +"g c #B30000", +"h c #BC0000", +"j c #BD0B0B", +"k c #B40D0D", +"l c #A41010", +"z c #AC1111", +"x c #A41F1F", +"c c #AB1E1E", +"v c #B41111", +"b c #BB1010", +"n c #B41E1E", +"m c #BB1F1F", +"M c #AA2B2B", +"N c #A92323", +"B c #BA3B3B", +"V c #B13333", +"C c #C40000", +"Z c #CC0000", +"A c #C40B0B", +"S c #CB0A0A", +"D c #D30000", +"F c #DC0000", +"G c #D00C0C", +"H c #DE0C0C", +"J c #C41010", +"K c #CA1212", +"L c #C21F1F", +"P c #CB1C1C", +"I c #D41414", +"U c #DB1313", +"Y c #D21C1C", +"T c #DC1C1C", +"R c #E30000", +"E c #EB0000", +"W c #EC0B0B", +"Q c #E20D0D", +"! c #F30000", +"~ c #FD0000", +"^ c #FC0909", +"/ c #F30909", +"( c #EB1313", +") c #E41B1B", +"_ c #E51313", +"` c #F41A1A", +"' c #CB2727", +"] c #D42C2C", +"[ c #DA2727", +"{ c #C53939", +"} c #CC3737", +"| c #D83636", +" . c #EB2424", +".. c #FD2323", +"X. c #F12A2A", +"o. c #E23C3C", +"O. c #E13535", +"+. c #FB3838", +"@. c #B54848", +"#. c #CC4242", +"$. c #C54646", +"%. c #DC4141", +"&. c #DD4A4A", +"*. c #D44848", +"=. c #D45454", +"-. c #DC5252", +";. c #D85C5C", +":. c #E24444", +">. c #E74A4A", +",. c #F74D4D", +"<. c #E35252", +"1. c #EC5151", +"2. c #EB5858", +"3. c #E05A5A", +"4. c #F25151", +"5. c #FB5B5B", +"6. c #C36868", +"7. c #DC6464", +"8. c #DC6A6A", +"9. c #D66666", +"0. c #C47676", +"q. c #D77474", +"w. c #DD7474", +"e. c #DA7B7B", +"r. c #E36666", +"t. c #F96868", +"y. c #E17373", +"u. c #E37B7B", +"i. c #F87878", +"p. c #3B8525", +"a. c #428C29", +"s. c #45902A", +"d. c #49942C", +"f. c #4D982E", +"g. c #48843D", +"h. c #4F9B30", +"j. c #529E31", +"k. c #56A234", +"l. c #59A635", +"z. c #5CA937", +"x. c #5EAB38", +"c. c #61AE39", +"v. c #65B33C", +"b. c #68B73D", +"n. c #6BB93F", +"m. c #4E8B41", +"M. c #6DBC40", +"N. c #70BF41", +"B. c #6A9965", +"V. c #709F68", +"C. c #76A66C", +"Z. c #7EA976", +"A. c #75C444", +"S. c #7ACA47", +"D. c #7CCD48", +"F. c #7FD04A", +"G. c #85B573", +"H. c #83D44B", +"J. c #86D84E", +"K. c #89DB4F", +"L. c #8BDD50", +"P. c #84C75E", +"I. c #8EE052", +"U. c #92E553", +"Y. c #96E956", +"T. c #98EB57", +"R. c #9BEE59", +"E. c #9DF15A", +"W. c #A1F55C", +"Q. c #A6FB5F", +"!. c #AAFF61", +"~. c #B7FF7A", +"^. c #B2FA75", +"/. c #838383", +"(. c #8B8B8B", +"). c #939393", +"_. c #9B9B9B", +"`. c #A4A4A4", +"'. c #ABABAB", +"]. c #B4B4B4", +"[. c #BBBBBB", +"{. c #C98383", +"}. c #DC8383", +"|. c #D48888", +" X c #D88989", +".X c #DA9999", +"XX c #D89696", +"oX c #CD9090", +"OX c #E58484", +"+X c #EA8484", +"@X c #E68C8C", +"#X c #EC8B8B", +"$X c #EB9494", +"%X c #EA9B9B", +"&X c #F09A9A", +"*X c #DCA6A6", +"=X c #EAA3A3", +"-X c #F2A9A9", +";X c #E3B2B2", +":X c #EDB4B4", +">X c #E5BDBD", +",X c #F5B9B9", +".D D D Z Z Z C C C C h J IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g h h h h C C C C Z Z Z :XIXDXAXaXsXpXuXiXyX[.].].'.`.`._.aXnXZ Z u.IX'.X X DXLXj g g g f f f d d JXgXd d f f f g g g j JXHXX `.IXOXZ Z vXAX_._.`.'.].].[.yXiXuXpXsXaXAXDXIXlXD D D Z Z Z Z C C C C h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g h h h h h C C C Z Z Z | IXKXaXpXuXiXyX[.[.].'.`.`._.).)._.IX-.Z Z y.IX].0 IXe.h g g g f f f f d JXgXd f f f f g g g h 8.IXe '.IXu.Z Z %.IX`.).)._.`.`.'.].[.[.yXiXuXpXaXKXIX:.D D D Z Z Z C C C C h h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g g h h h h C C C C Z Z Z :XIXpXuXiXyX[.].'.'.`._._.).(.(./.pXFXZ Z Z 8.IXIXJXA h h g g g f f f d HXxXd f f f g g g h h j GXIXIXu.Z Z Z bXsX/.(.(.)._._.`.'.'.].[.yXyXuXpXIXjXD D D Z Z Z Z C C C C h h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g g h h h h h C C C Z Z Z ] IXDXyX[.].].'.`.`._.).(.(./.e e /.IX3.Z Z Z 7.JX8.h h h g g g f f B bXIXIXbX$.f f g g g h h h ;.JXy.Z Z Z &.IX(.e e /.(.(.)._.`.`.'.].].[.yXSXIXo.D D D Z Z Z C C C C h h h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g g g h h h h C C C C Z Z Z -XIX[.].'.'.`._.).).(././.e w w q yXFXZ Z Z C C C C h h h g g { cXIXPX`._.KXIXbX#.g g h h h h C C C Z Z Z nXuXq q w e /./.(.).)._.`.'.'.].[.IX,XD D D Z Z Z Z C C C C h h h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXm g g g h h h h h C C C Z Z Z ] IXAX'.`._._.).(.(./.e e w q 0 0 q PXr.Z Z Z C C C h h h { lXIXKX`.8 6 6 7 _.KXIXcX#.h h h C C C Z Z Z -.PXw 0 0 q w e e /.(.(.)._._.`.'.aXIXO.D D D Z Z Z C C C C h h h h b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn g g g g h h h h C C C C Z Z Z =XIX'._.).).(./.e e w q q 0 9 9 8 ].HXZ Z Z C C C C #.lXIXKX'.0 8 8 8 8 8 8 9 `.KXIXcX#.h C C C Z Z Z FX[.8 8 9 0 q q w e e /.(.).)._.`.IX:XD D D Z Z Z Z C C C C h h h g b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f g g g h h h h h C C C Z Z Z [ IXaX).(.(./.e w w q 0 9 9 8 7 7 8 PXr.Z Z Z C *.lXIXKX'.q 0 0 0 0 0 0 0 0 0 0 q '.KXIXcX*.C Z Z Z 3.PX9 7 7 8 9 9 0 q w w e /.(.(.).sXIX| D D D Z Z Z Z C C C h h h h g b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f g g g g h h h h C C C C Z Z Z %XIX)./.e e w q 0 0 9 8 8 7 6 6 = `.HXD Z &.lXIXKX].e e e e e e e e e e e e e e e e '.KXIXcX-.Z Z FX].= = 6 7 8 8 9 0 0 q w e e /.).IX-XD D D Z Z Z Z C C C C h h h g g b IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f f g g g h h h h h C C C Z Z Z Y IXaXe w q q 0 9 9 8 7 6 6 = * * = KX+XJXIXKX[.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.].KXIXJX+XPX6 * * = 6 6 7 8 9 9 0 q q w e pXIX[ D D D Z Z Z Z C C C h h h h g g v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f f g g g g h h h h C C C C Z Z Z $XIX/.q 0 0 9 8 7 7 6 = = * & & % `.IXIXIXKXyX_._._._._._._._._._._._._._._._._._._._.yXKXIXIXIX].% % & * = = 6 7 7 8 9 0 0 q e IX-XD D D Z Z Z Z C C C C h h h g g g v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f f f g g g h h h h C C C C Z Z Z Y LXsX0 9 8 8 7 6 6 = * & & % + = AXLX+.i.JXIXPXuX'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.uXKXIXLXi...JXHX6 + % & & * = 6 6 7 8 8 9 0 uXIX[ D D D Z Z Z Z C C C h h h h g g g v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f f f g g g g h h h h C C C C Z Z Z @XIXw 8 7 7 6 = = * & % % + = AXFX+.^ ! ! t.JXIXIXaX[.[.[.[.[.[.[.[.[.[.[.[.sXPXIXJXi.~ ~ ~ ..GXHX6 + % % & * = = 6 7 7 8 q IX=XD D D Z Z Z Z C C C C h h h g g g g v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXn f f f f g g g h h h h C C C C Z Z Z I LXsX7 6 = = * & & % + O = AXFXX.! ^ ! ! ! ! t.JXIXIXAXuXuXuXuXuXuXuXuXAXIXIXJXt.~ ~ ~ ~ ~ ~ ..nXKX6 O + % & & * = = 6 7 uXIX[ D D D Z Z Z Z C C C h h h h g g g g v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc f f f f g g g g h h h h C C C C Z Z Z OXIX0 = * * & % + + O = AXbX .E ! ! ^ ! ! ! ! ! 5.GXIXIXDXaXaXaXaXDXIXIXJX5.~ ~ ~ ~ ~ ~ ~ ~ ~ ` nXKX6 O + + % & * * = 9 IX&XD D D Z Z Z Z C C C C h h h g g g g f v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d f f f f g g g h h h h C C C C Z Z Z I LXsX* & % % + O O = SXbX .E E ! / ^ ! ! ! ! ! ! ! 4.GXIXIXPXKXIXIXGX5.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ` vXKX6 O O + % % & * uXIXT D D D Z Z Z Z C C C h h h h g g g g f v IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d f f f f g g g g h h h h C C C C Z Z Z OXIX8 % + + O X = DXcX .E E / ^ ^ ! ! ! ! ! ! ! ! ! ! ,.nXIXIXGX,.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ` vXKX6 X O + + % 7 IX$XD D D Z Z Z Z C C C C h h h g g g g f f z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d d f f f f g g g h h h h C C C C Z Z Z G JXsX+ O X X = DXcX) R E / / ! ! ! ! ! ! ! ! ! ! ! ! ! ! JXvX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E ( vXLX7 X X O + uXLXT D D D Z Z Z Z C C C h h h h g g g g f f z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d d f f f f g g g g h h h h C C C C Z Z Z u.IX7 X X 6 DXxX) E W W E E E E ! ! ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E ( lXLX7 X = IX#XD D D Z Z Z Z C C C C h h h g g g g f f f z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d d d f f f f g g g h q.} h C C C C Z Z Z G JXsX 6 DXlX) W W R R E E E E ! ! ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E ( zXIX7 uXLXU D D D Z Z Z Z C } e.h h h h g g g g f f f z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d d d f f f f g g g g LXbXh h C C C C Z Z Z y.IX/.KXcX) R F R R R R E E E E ! ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E R R Q zXIXe IX+XD D D Z Z Z Z C C lXIXh h h h g g g f f f f z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc d d d d f f f f g g g IXIX;.h C C C C Z Z Z G JXIXlXU F F F F R R R E E E E ! ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R Q jXIXLXU D D D Z Z Z Z C =.IXIXh h h g g g g f f f d z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc i d d d f f f f g g g IXIXcXh h C C C C Z Z Z %.#XI D F F F F R R R R E E E E ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R F H #X>.D D D D Z Z Z C C cXIXIXh h h g g g f f f f d z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXc i d d d d f f f f g g IXJXLX9.h C C C C Z Z Z Z D D D D F F F F R R R E E E E ! ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R R F F F D D D D Z Z Z Z C ;.IXJXIXh h g g g g f f f d d z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i d d d f f f f g g IXzX,XbXj h C C C C Z Z Z D D D D F F F F R R R R E E E E ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R F F F F D D D D Z Z Z C C bXvXkXIXh h g g g f f f f d d z IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i d d d d f f f f g IXzX:.LX8.h C C C C Z Z Z Z D D D D F F F R R R R E E E E ! ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R R F F F D D D D Z Z Z Z C 7.IX1.kXIXh g g g g f f f d d d l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i i d d d f f f f g IXzXR ,XnXA h C C C C Z Z Z D D D D F F F F R R R R E E E E ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R F F F F D D D D Z Z Z C C nXlXR kXIXh g g g f f f f d d d l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i i d d d d f f f g IXzXR o.LXw.h C C C C Z Z Z Z D D D D F F F R R R R E E E E ! ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R R F F F D D D D Z Z Z Z C 7.IX1.R kXIXg g g g f f f d d d d l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i i i d d d f f f f IXzXR F :XGXA h C C C Z Z Z Z D D D D F F F F R R R R E E E E ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R F F F F D D D D Z Z Z C S GXlXF R kXIXg g g f f f f d d d d l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i i i d d d d f f f IXzXF F O.LXu.C C C C C Z Z Z Z D D D D F F F R R R R E E E E ! ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R R F F F D D D D Z Z Z Z C 8.IX:.F F kXIXg g g f f f d d d d i l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx i i i i i d d d f f f IXzXF F D -XJXK C C C C Z Z Z Z D D D D F F F F R R R R E E E E ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ~ ! ! ! ! E E E E R R R F F F F D D D D Z Z Z C S JXjXD F F kXIXg g f f f f d d d d i l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXx u i i i i d d d d f f IXzXF F D ] LXu.C C C C C Z Z Z Z D D D D F F F Q i._ R E E E E ! ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ! ! ! ! E W i.( R R R R F F F D D D D Z Z Z Z C w.IX%.D F F jXIXg g f f f f d d d i i l IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u i i i i i d d d f f IXzXF D D D -XJXK C C C C Z Z Z Z D D D D F F H zXIX2.R R E E E E ! ! ! ! ! JXzX~ ~ ~ ~ ~ ~ ! ! ! ! E 4.IXvX( R R F F F F D D D D Z Z Z C S JX,XD D D F jXIXg f f f f d d d d i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u i i i i i d d d d f IXlXF D D D ] LXOXC C C C C Z Z Z Z D D D D U lXIXIX2.R R E E E E ! ! ! ! ! JXzX~ ~ ~ ~ ~ ! ! ! ! E E 4.IXIXvX_ R F F F D D D D Z Z Z Z C u.IX| D D D F jXIXg f f f f d d d i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u i i i i i d d d f IXlXF D D Z Z =XJXK C C C C Z Z Z Z D D D U lXIX;XIX2.R R R E E E E ! ! ! ! JXzX~ ~ ~ ~ ~ ! ! ! ! E E 4.IX>XIXvX) F F F D D D D Z Z Z C K JX:XZ Z D D D jXIXf f f f d d d d i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u i i i i i d d d d IXlXD D D Z Z ' LX@XC C C C C Z Z Z Z D I cXIX{.@.IX2.R R R E E E E ! ! ! ! JXzX~ ~ ~ ~ ! ! ! ! E E E 4.IX6.0.IXnX) F F D D D Z Z Z Z C OXIX| Z Z D D D jXIXf f f f d d d i i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u i i i i i d d d IXlXD D Z Z Z C %XJXP C C C C Z Z Z Z I vXIX0.V >XIX2.R R R R E E E E ! ! ! JXzX~ ~ ~ ~ ! ! ! ! E E E 1.IXgXB 6.IXnXT D D D D Z Z Z C K LX:XC Z Z Z D D jXIXf f f d d d d i i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u i i i i i d d d IXlXD D Z Z C C ' LXbX8.S C C C Z Z Y bXIX*X>XIXHXIX<.R R R R E E E E ! ! ! JXzX~ ~ ~ ! ! ! ! E E E E 1.IXDXIXhX.XIXGXT D D Z Z Z S 8.nXIX] C C Z Z D D jXIXf f f d d d i i i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u i i i i i d d IXlXD Z Z Z C C h } :XLXFXw.A C Z Y bXIXIXIXSXw * KX<.F R R R R E E E E ! ! JXzX~ ~ ~ ! ! ! ! E E E E 1.IX= q AXIXIXIXGX[ D Z S y.GXIXfX#.h C C Z Z Z D jXIXf f d d d d i i i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u i i i i i d d IXlXD Z Z C C C h h g { ;XLXFXw.] nXIXIXAXq X % KX<.F R R R R E E E E ! ! JXzX~ ~ ! ! ! ! ! E E E R 1.IX= X 0 aXIXIXGX| u.JXIXfX#.g h u # . . . . . X O . . . . . o : i i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u i i i i d d IXlXZ Z Z C C h h h g g f =XIXKXIXIXAX0 % KX<.F F R R R E E E E E ! JXzX~ ~ ! ! ! ! E E E E R 1.IX= 9 aXIXIXIXIX;Xf g g g . O 0 0 0 0 0 0 0 0 0 0 0 0 = . > i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u i i i i i d IXlXZ Z C C C h h g g g f XIX* yXw UXUX % KX<.F F R R R R E E E E ! JXzX~ ! ! ! ! ! E E E R R 1.IX= UXUX q iX= KX.Xf g g y . '.IXIXIXIXIXIXIXIXIXIXIXIXIX+ # i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u i i i i d IXlXZ Z C C h h h g g g f XIX UXUXUXUX % KX<.F F F R R R E E E E E JXzX~ ! ! ! ! E E E E R R 1.IX= UXUXUXUX KX.Xf f g y . yXVX~.~.~.~.~.~.~.~.~.~.tXIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u i i i i i IXlXZ C C C h h g g g f f |.IX UXUXUXUXUXUX % KX<.F F F R R R R E E E E JXzX! ! ! ! ! E E E R R R 1.IX= UXUXUXUXUXUX KX.Xf f g t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u i i i i IXlXZ C C h h h g g g f f |.IX UXUXUXUXUXUX % KX<.F F F F R R R E E E E JXzX! ! ! ! E E E E R R R 1.IX= UXUXUXUXUXUX KX.Xf f f t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u i i i i IXlXC C C h h g g g f f f |.IX UXUXUXUXUXUX % KX<.D F F F R R R R E E E JXzX! ! ! ! E E E R R R R 1.IX= UXUXUXUXUXUX KX.Xf f f t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u i i i IXlXC C h h h g g g f f d |.IX UXUXUXUXUXUX % KX<.D F F F F R R R E E E JXzX! ! ! E E E E R R R F 1.IX= UXUXUXUXUXUX KX.Xd f f t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u i i i IXlXC C h h h g g f f f d |.IX UXUXUXUXUXUX % KX-.D D F F F R R R R E E JXzX! ! ! E E E R R R R F 1.IX= UXUXUXUXUXUX KX.Xd f f t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u u i i IXlXC h h h g g g f f d d |.IX UXUXUXUXUXUX % KX-.D D F F F F R R R E E JXzX! ! E E E E R R R F F <.IX= UXUXUXUXUXUX KX.Xd d f t . yXVX!.!.!.!.!.!.!.!.!.!.9XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u u i i IXlXC h h h g g f f f d d |.IX UXUXUXUXUXUX % KX-.D D D F F F R R R R E JXzX! ! E E E R R R R F F <.IX= UXUXUXUXUXUX KX.Xd d f t . yXVX!.!.!.!.!.!.!.!.Q.Q.8XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u u u i IXlXh h h g g g f f d d d |.IX UXUXUXUXUXUX % KX-.D D D F F F F R R R E JXzX! E E E E R R R F F F <.IX= UXUXUXUXUXUX KXXXd d d > . yXVX!.!.!.!.!.!.Q.Q.W.W.2XIX& @ i i i a IXw UXUXUXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KXs u u u u u u u u u u i IXlXh h h g g f f f d d i |.IX UXUXUXUXUXUX % KX-.D D D D F F F R R R R JXzX! E E E R R R R F F F <.IX= UXUXUXUX e r - : : $ . yXVX!.!.!.!.Q.Q.W.W.E.R.2XIX& o - - - ; e = UXUXUXUXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX 9 KX0.p u u u u u u u u u u IXlXh h g g g f f d d d M fXIX UXUXUXUXUXUX % KX-.D D D D F F F F R R R JXzXE E E E R R R R F F F <.IX= UXUX yXVX!.!.Q.Q.W.W.E.R.T.Y.1XIX& UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUX X ].KXSX0.p u u u u u u u u IXlXh h g g f f f d V *XIXKXw UXUXUXUXUXUX % KX-.D D D D F F F F R R R JXzXE E E R R R R F F F F <.IX= UX X uXIXIXIXIXIXIXIXIXIXIXIXIXCXQ.Q.W.W.E.R.T.Y.U.U.1XIXIXPXPXPXPXPXPXPXPXPXPXKX7 UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUX * '.KXSX0.a u u u u u u IXlXh g g g f f B ;XIXHX/.O UXUXUXUXUXUXUX % KX-.Z D D D D F F F F R R JXzXE E E R R R R F F F D <.IX= UX & IXZXrXrXrXrXrXrXrXrXrXrXrX^.W.W.E.R.T.Y.U.U.I.L.L.3XqXqXqXqX0X0X7X7X7X7X5XIX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUX * `.KXDX{.a u u u u IXlXh g g f B >XIXDXe X UXUXUXUXUXUXUXUX % KX-.Z D D D D F F F F R R JXzXE E R R R R F F F F D <.IX= UX & IX9X!.!.!.!.!.!.!.!.Q.Q.W.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUX & `.KXHX{.s u u IXlXg g $.fXIXDXw X UXUXUXUXUXUXUXUXUXUXUX % KX-.Z Z D D D D F F F F R JXzXE E R R R R F F F D D <.IX= UX & IX9X!.!.!.!.!.!.Q.Q.W.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % _.KXHXoXs IXlX$.gXIXAXw X UXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.Z Z D D D D F F F F R JXzXE R R R R F F F F D D <.IX= UX & IX9X!.!.!.!.Q.Q.W.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % ).KXKXIXIXIXAXq X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.Z Z Z D D D D F F F F JXzXE R R R R F F F D D D -.IX= UX & IX9X!.!.Q.Q.W.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX + ).IXDX0 UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.Z Z Z D D D D F F F F JXzXR R R R F F F F D D D -.IX= UX & IX9XQ.Q.W.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.Z Z Z Z D D D D F F F JXzXR R R R F F F D D D D -.IX= UX & IX8XW.W.E.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.h.f.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.C Z Z Z D D D D F F F JXzXR R R F F F F D D D Z -.IX= UX & IX8XE.R.T.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.h.f.d.d.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.C Z Z Z Z D D D D F F JXzXR R R F F F D D D D Z -.IX= UX & IX2XT.Y.U.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.h.f.d.d.s.a.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.C C Z Z Z D D D D F F JXzXR R F F F F D D D D Z -.IX= UX & IX2XU.U.I.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.h.f.d.d.s.a.a.p.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.C C Z Z Z Z D D D D F JXzXR R F F F D D D D Z Z -.IX= UX & IX1XI.L.K.J.H.H.F.D.S.A.A.A.N.M.n.b.v.v.c.x.z.l.k.k.j.h.f.d.d.s.a.a.p.p.p.PX_. UXUXUXUXUXUX", +"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX % KX=.C C C Z Z Z D D D D F JXzXR F F F F D D D D Z Z -.IX= UX & IXNXwXwXwXeXeXqXqXqX0X0X0XP.n.b.v.v.c.x.z.l.k.k.j. c #A1A1A1", +", c #E4E4E4", +"' c #7C7C7C", +") c #757575", +"! c #DCDCDC", +"~ c #EEEEEE", +"{ c #E5E5E5", +"] c #E3E3E3", +"^ c #E2E2E2", +"/ c #EBEBEB", +"( c #E8E8E8", +"_ c #BBBBBB", +": c #A7A7A7", +"< c #B7B7B7", +"[ c #CDCDCD", +"} c #EBD6D6", +"| c #EBE5E5", +"1 c #D9D9D9", +"2 c #C2C2C2", +"3 c #B2B2B2", +"4 c #767676", +"5 c #686868", +"6 c #353535", +"7 c #707070", +"8 c #858585", +"9 c #929292", +"0 c #A8A8A8", +"a c #CDC5C5", +"b c #D7ADAD", +"c c #CAA1A1", +"d c #B4B4B4", +"e c #9E9E9E", +"f c #989898", +"g c #646464", +"h c #444444", +"i c #7A7A7A", +"j c #939393", +"k c #717171", +"l c #8B8B8B", +"m c #898989", +"n c #3C3C3C", +"o c #838383", +"p c #565656", +"q c #6D6D6D", +"r c #848484", +"s c #C49595", +"t c #C68D8D", +"u c #A93636", +"v c #B8B0B0", +"w c #797979", +"x c #626262", +"y c #5A5A5A", +"z c #6F6F6F", +"A c #868686", +"B c #8C8C8C", +"C c #4E4E4E", +"D c #827171", +"E c #CFBABA", +"F c #BCBBBB", +"G c #ACACAC", +"H c #E7E5E5", +"I c #796A6A", +"J c #323232", +"K c #494949", +"L c #988F8F", +"M c #B13535", +"N c #9E0000", +"O c #C69595", +"P c #545454", +"Q c #3D3D3D", +"R c #2F2F2F", +"S c #E3DADA", +"T c #D6D6D6", +"U c #BDBDBD", +"V c #ADADAD", +"W c #C7BFBF", +"X c #D0B9B9", +"Y c #786363", +"Z c #BC0808", +"` c #CE3E3E", +" . c #DFC3C3", +".. c #E3DFDF", +"+. c #EDEDED", +"@. c #CFCFCF", +"#. c #DBC5C5", +"$. c #614F4F", +"%. c #242424", +"&. c #BF8787", +"*. c #A90000", +"=. c #C88D8D", +"-. c #A30000", +";. c #B63030", +">. c #8B8181", +",. c #222222", +"'. c #BB9090", +"). c #D0CACA", +"!. c #F1F1F1", +"~. c #E5DBDB", +"{. c #DF9D9D", +"]. c #C90606", +"^. c #B66868", +"/. c #776363", +"(. c #B80808", +"_. c #BF0000", +":. c #C70000", +"<. c #D58F8F", +"[. c #C0C0C0", +"}. c #A9A9A9", +"|. c #B0ACAC", +"1. c #D66060", +"2. c #B8A2A2", +"3. c #BE2E2E", +"4. c #AD0000", +"5. c #CA8F8F", +"6. c #A80000", +"7. c #B20000", +"8. c #C58E8E", +"9. c #C89494", +"0. c #D0A2A2", +"a. c #A0A0A0", +"b. c #CBCBCB", +"c. c #DFCDCD", +"d. c #D52121", +"e. c #CB0000", +"f. c #C20000", +"g. c #B46868", +"h. c #B50808", +"i. c #BA0000", +"j. c #C30000", +"k. c #CF2020", +"l. c #CBB9B9", +"m. c #9B9B9B", +"n. c #BA8F8F", +"o. c #CB1A1A", +"p. c #C11111", +"q. c #BC9292", +"r. c #949090", +"s. c #AA9B9B", +"t. c #C55B5B", +"u. c #C41313", +"v. c #D21F1F", +"w. c #8E8A8A", +"x. c #909090", +"y. c #A6A6A6", +"z. c #D38686", +"A. c #D00000", +"B. c #BE0000", +"C. c #B36868", +"D. c #B10808", +"E. c #B70000", +"F. c #C80000", +"G. c #CE8383", +"H. c #777777", +"I. c #606060", +"J. c #726E6E", +"K. c #E0AEAE", +"L. c #AFA9A9", +"M. c #7F7F7F", +"N. c #D0BFBF", +"O. c #C69D9D", +"P. c #404040", +"Q. c #B8A4A4", +"R. c #D51C1C", +"S. c #B06868", +"T. c #AC0808", +"U. c #B30000", +"V. c #BB0000", +"W. c #CF1B1B", +"X. c #A58F8F", +"Y. c #3B3B3B", +"Z. c #262626", +"`. c #A17070", +" + c #F73434", +".+ c #DCAAAA", +"++ c #CDC7C7", +"@+ c #C5C5C5", +"#+ c #C8C7C7", +"$+ c #D6C2C2", +"%+ c #EF7474", +"&+ c #E65E5E", +"*+ c #564747", +"=+ c #474747", +"-+ c #CE7E7E", +";+ c #B60000", +">+ c #AE6868", +",+ c #766363", +"'+ c #A90808", +")+ c #AF0000", +"!+ c #C87979", +"~+ c #1D1D1D", +"{+ c #A37474", +"]+ c #EC1515", +"^+ c #F30202", +"/+ c #F40000", +"(+ c #F51818", +"_+ c #EFCDCD", +":+ c #F57575", +"<+ c #FE0000", +"[+ c #F70000", +"}+ c #DC5656", +"|+ c #514242", +"1+ c #958080", +"2+ c #D61919", +"3+ c #CC0000", +"4+ c #B10000", +"5+ c #AD6868", +"6+ c #756363", +"7+ c #A50808", +"8+ c #AA0000", +"9+ c #D37777", +"0+ c #C40000", +"a+ c #CE1717", +"b+ c #D2A0A0", +"c+ c #E11212", +"d+ c #E50000", +"e+ c #ED0000", +"f+ c #E88B8B", +"g+ c #FC0000", +"h+ c #F30000", +"i+ c #EA0000", +"j+ c #D85454", +"k+ c #CE7474", +"l+ c #CA0F0F", +"m+ c #CE6262", +"n+ c #AB6868", +"o+ c #A00808", +"p+ c #A60000", +"q+ c #ECC0C0", +"r+ c #C41414", +"s+ c #D80000", +"t+ c #E10000", +"u+ c #E90000", +"v+ c #F20000", +"w+ c #E98B8B", +"x+ c #EF0000", +"y+ c #E60000", +"z+ c #DD0000", +"A+ c #D50000", +"B+ c #CA5F5F", +"C+ c #CD7676", +"D+ c #A96868", +"E+ c #9D0808", +"F+ c #A20000", +"G+ c #AB0000", +"H+ c #E19191", +"I+ c #CE5E5E", +"J+ c #CD0000", +"K+ c #D40000", +"L+ c #E20000", +"M+ c #D90000", +"N+ c #CB1414", +"O+ c #E25353", +"P+ c #C97373", +"Q+ c #A50000", +"R+ c #A86868", +"S+ c #990808", +"T+ c #9F0000", +"U+ c #DE8F8F", +"V+ c #DB4949", +"W+ c #C71515", +"X+ c #D82C2C", +"Y+ c #E07676", +"Z+ c #F80000", +"`+ c #F00B0B", +" @ c #EA9797", +".@ c #DD0101", +"+@ c #D66666", +"@@ c #D50303", +"#@ c #C87373", +"$@ c #A00000", +"%@ c #A66868", +"&@ c #950808", +"*@ c #9A0000", +"=@ c #DC8F8F", +"-@ c #C90101", +";@ c #DA7373", +">@ c #C81818", +",@ c #CF3030", +"'@ c #E0B4B4", +")@ c #CA7272", +"!@ c #EE0000", +"~@ c #EC1010", +"{@ c #D8B5B5", +"]@ c #E19090", +"^@ c #D00202", +"/@ c #CF4747", +"(@ c #D44C4C", +"_@ c #CF0000", +":@ c #C67373", +"<@ c #9C0000", +"[@ c #960000", +"}@ c #DA8F8F", +"|@ c #B70404", +"1@ c #B87F7F", +"2@ c #AF8C8C", +"3@ c #1E1C1C", +"4@ c #AD5C5C", +"5@ c #E81010", +"6@ c #6F5A5A", +"7@ c #766565", +"8@ c #BA9494", +"9@ c #C34040", +"0@ c #704E42", +"a@ c #94A179", +"b@ c #93A67D", +"c@ c #98A183", +"d@ c #620303", +"e@ c #920000", +"f@ c #9B0000", +"g@ c #D78F8F", +"h@ c #BD0000", +"i@ c #B00000", +"j@ c #9A6060", +"k@ c #AB5C5C", +"l@ c #E78B8B", +"m@ c #EB0000", +"n@ c #E41010", +"o@ c #776060", +"p@ c #4F4A4A", +"q@ c #B72828", +"r@ c #8E886F", +"s@ c #AAFF61", +"t@ c #B6E58E", +"u@ c #570808", +"v@ c #976060", +"w@ c #A95C5C", +"x@ c #E58B8B", +"y@ c #E70000", +"z@ c #E01010", +"A@ c #B22828", +"B@ c #B4E38C", +"C@ c #504646", +"D@ c #A66060", +"E@ c #960909", +"F@ c #D38F8F", +"G@ c #B13E3E", +"H@ c #886868", +"I@ c #A85C5C", +"J@ c #DE0000", +"K@ c #E48B8B", +"L@ c #DC1010", +"M@ c #766060", +"N@ c #5C6554", +"O@ c #889879", +"P@ c #8F9B7B", +"Q@ c #AFC19C", +"R@ c #A6FB5F", +"S@ c #9CF059", +"T@ c #A6DA7E", +"U@ c #879076", +"V@ c #859278", +"W@ c #82917A", +"X@ c #161616", +"Y@ c #7C6161", +"Z@ c #9F5656", +"`@ c #D9AAAA", +" # c #996A6A", +".# c #463E3E", +"+# c #A75C5C", +"@# c #D10000", +"## c #E28B8B", +"$# c #D81010", +"%# c #8FA27D", +"&# c #92E454", +"*# c #88D94E", +"=# c #7ECE49", +"-# c #74C344", +";# c #6AB83E", +"># c #80BB63", +",# c #111111", +"'# c #423F3F", +")# c #A55C5C", +"!# c #E08B8B", +"~# c #E30000", +"{# c #DA0000", +"]# c #D41010", +"^# c #756060", +"/# c #8DA17D", +"(# c #5FAD39", +"_# c #55A233", +":# c #71AB5B", +"<# c #A35C5C", +"[# c #C90000", +"}# c #DF8B8B", +"|# c #D60000", +"1# c #D01010", +"2# c #88967D", +"3# c #A3CA86", +"4# c #9EC584", +"5# c #98C37D", +"6# c #67A94A", +"7# c #85AA76", +"8# c #80A573", +"9# c #96B18E", +"0# c #383838", +"a# c #A25C5C", +"b# c #C50000", +"c# c #CE0000", +"d# c #DD8B8B", +"e# c #CC1010", +"f# c #736060", +"g# c #798672", +"h# c #4B972E", +"i# c #7CA66E", +"j# c #0C0C0C", +"k# c #685151", +"l# c #AF6363", +"m# c #CB1616", +"n# c #DB8B8B", +"o# c #D60101", +"p# c #CB4B4B", +"q# c #2E2828", +"r# c #798673", +"s# c #418C28", +"t# c #378023", +"u# c #719968", +"v# c #705959", +"w# c #CFA2A2", +"x# c #9E6E6E", +"y# c #373232", +"z# c #788375", +"A# c #65945B", +"B# c #5F8D58", +"C# c #8FA98D", +"D# c #2B2B2B", +"E# c #272727", +" ", +" . + ", +" @ # $ % & * ", +" = - ; ; ; > , ' ", +" ) ! ~ { ] ^ / ( _ ", +" : < [ , } | 1 2 3 4 ", +" 5 ) 6 7 8 9 0 a b c d e # f g ) h ", +" i j k 5 l m n o p q r s t u v w x y z 7 9 4 5 A B C ", +" D E F G G d - H I J K L M t N O P Q R S T U V G 3 W X ", +" Y Z ` ...+.{ @.#.$.%.&.*.=.-.;.>.,.'.).1 !., ~.{.].^. ", +" /.(._.:.<.T [.}.|.1.2.3.4.5.6.7.8.9.0.a.d b.c.d.e.f.g. ", +" /.h.i.j.k.l.m.8 z n.o.p.q.r.s.t.u.v.w.w x.y.z.A.:.B.C. ", +" /.D.E._.F.G.H.I.K J.K.L.% M.M.9 N.O.P.P $ Q.R.e.j.i.S. ", +" /.T.U.V.j.W.X.Y.Z.`. +.+++@+#+$+%+&+*+R =+-+A.:.B.;+>+ ", +" ,+'+)+E._.F.!+~+{+]+^+/+(+_+:+<+<+[+}+|+1+2+3+j.i.4+5+ ", +" 6+7+8+U.9+0+a+b+c+d+e+/+/+f+<+<+g+h+i+j+k+A.l+m+;+4.n+ ", +" 6+o+p+)+q+r+F.A.s+t+u+v+/+w+<+<+[+x+y+z+A+3+B+C+7.*.D+ ", +" 6+E+F+G+H+I+0+J+K+z+y+e+/+w+<+g+h+i+L+M+A.N+O+P+4.Q+R+ ", +" 6+S+T+p+U+V+W+F.A.X+Y+u+v+w+<+Z+`+ @.@A+3++@@@#@*.$@%@ ", +" 6+&@*@F+=@-@;@>@,@'@)@y+!@w+g+h+~@{@]@^@/@(@_@:@Q+<@%@ ", +" 6+&@[@T+}@j.|@1@2@3@4@L+u+f+Z+x+5@6@7@8@9@0@a@b@c@d@%@ ", +" 6+&@e@f@g@h@i@j@ k@z+y+l@/+m@n@o@ p@q@r@s@s@t@u@%@ ", +" 6+&@e@[@<.E.8+v@ w@M+L+x@x+y@z@o@ p@A@r@s@s@B@u@%@ ", +" C@D@E@e@F@4+G@H@ I@A+J@K@m@L+L@M@N@O@P@Q@R@S@T@U@V@W@ ", +" X@Y@Z@`@ #.# +#@#M+##y@J@$#M@%#s@R@S@&#*#=#-#;#>#P. ", +" ,#'# )#J+A+!#~#{#]#^#/#S@&#*#=#-#;#(#_#:#P. ", +" <#[#@#}#J@|#1#^#2#3#4#5#;#(#6#7#8#9#0# ", +" a#b#c#d#{#@#e#f# g#_#h#i#j# ", +" k#l#m#n#o#p#`.q# r#s#t#u# ", +" v#w#x#y# z#A#B#C# ", +" D#D#E# ", +" "}; --- mupen64plus-1.5+dfsg1.orig/debian/gbp.conf +++ mupen64plus-1.5+dfsg1/debian/gbp.conf @@ -0,0 +1,4 @@ +[DEFAULT] +pristine-tar = True +sign-tags = True + --- mupen64plus-1.5+dfsg1.orig/debian/README.Debian-source +++ mupen64plus-1.5+dfsg1/debian/README.Debian-source @@ -0,0 +1,8 @@ +The tarball distributed by Debian is a modified version of the tarball +provided by upstream, where the files in glN64/, config/glN64.conf, +and glide64/icons/ have been removed because they don't have a +DFSG-compliant license. roms/mupen64plus.v64.gz has been removed because +it should recreated by the included source files. + +A script to automatically perform these removals is provided in +debian/prune-tarball.sh --- mupen64plus-1.5+dfsg1.orig/debian/copyright +++ mupen64plus-1.5+dfsg1/debian/copyright @@ -0,0 +1,920 @@ +Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=54 +Name: mupen64plus +Contact: Richard 'Richard42' Goedeken +Source: http://code.google.com/p/mupen64plus/ + +Files: * +Copyright: 2002, Hacktarux + 2002, davFr + 2002, Zilmar + 2002, Gregor 'Blight' Anich + 2003, Juha 'JttL' Luotio (JttL) + 2007-2008, James 'Ebenblues' Hood + 2007-2008, Scott 'Tillin9' Knauert + 2007-2008, Richard 'Richard42' Goedeken + 2008, John 'NMN' Chadwick + 2008, Scott 'okaygo' Gorman + 2008, Jesse 'DarkJezter' Dean + 2008, Louai 'slougi' Al-Khanji + 2008, HyperHacker + 2008, ZZT32 + 2008, wahrhaft + 2008, Guido Berhoerster + Dave2001 + Bob 'orbitaldecay' Forder + Jason 'hasone' Espinosa +License: GPL-2+ + +Files: blight_input/SDL_ttf.* +Copyright: 1997-2004, Sam Lantinga +License: LGPL-2+ + +Files: glide64/* +Copyright: 2002, Dave2001 + 2002, Gregor 'Blight' Anich + 2002-2004, Gonetz + 2003, MaxSt + 2005-2006, Hacktarux + 2008, Günther + 2008, Louai 'slougi' Al-Khanji + Gugaman + Josh + Mats Byggmastar + Ziggy +License: GPL-2+ + +Files: glide64/wrapper/3dfx.h glide64/wrapper/g3ext.h glide64/wrapper/glide* + glide64/wrapper/sst1vid.h +Copyright: 1999, 3DFX INTERACTIVE, INC. +License: other + 3DFX GLIDE Source Code General Public License + + + 1. PREAMBLE + + This license is for software that provides a 3D graphics application + program interface (API).The license is intended to offer terms similar + to some standard General Public Licenses designed to foster open + standards and unrestricted accessibility to source code. Some of these + licenses require that, as a condition of the license of the software, + any derivative works (that is, new software which is a work containing + the original program or a portion of it) must be available for general + use, without restriction other than for a minor transfer fee, and that + the source code for such derivative works must likewise be made + available. The only restriction is that such derivative works must be + subject to the same General Public License terms as the original work. + + This 3dfx GLIDE Source Code General Public License differs from the + standard licenses of this type in that it does not require the entire + derivative work to be made available under the terms of this license + nor is the recipient required to make available the source code for + the entire derivative work. Rather, the license is limited to only the + identifiable portion of the derivative work that is derived from the + licensed software. The precise terms and conditions for copying, + distribution and modification follow. + + + 2. DEFINITIONS + + 2.1 This License applies to any program (or other "work") which + contains a notice placed by the copyright holder saying it may be + distributed under the terms of this 3dfx GLIDE Source Code General + Public License. + + 2.2 The term "Program" as used in this Agreement refers to 3DFX's + GLIDE source code and object code and any Derivative Work. + + 2.3 "Derivative Work" means, for the purpose of the License, that + portion of any work that contains the Program or the identifiable + portion of a work that is derived from the Program, either verbatim or + with modifications and/or translated into another language, and that + performs 3D graphics API operations. It does not include any other + portions of a work. + + 2.4 "Modifications of the Program" means any work, which includes a + Derivative Work, and includes the whole of such work. + + 2.5 "License" means this 3dfx GLIDE Source Code General Public License. + + 2.6 The "Source Code" for a work means the preferred form of the work + for making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, any + associated interface definition files, and the scripts used to control + compilation and installation of the executable work. + + 2.7 "3dfx" means 3dfx Interactive, Inc. + + + 3. LICENSED ACTIVITIES + + 3.1 COPYING - You may copy and distribute verbatim copies of the + Program's Source Code as you receive it, in any medium, subject to the + provision of section 3.3 and provided also that: + + (a) you conspicuously and appropriately publish on each copy + an appropriate copyright notice (3dfx Interactive, Inc. 1999), a notice + that recipients who wish to copy, distribute or modify the Program can + only do so subject to this License, and a disclaimer of warranty as + set forth in section 5; + + (b) keep intact all the notices that refer to this License and + to the absence of any warranty; and + + (c) do not make any use of the GLIDE trademark without the prior + written permission of 3dfx, and + + (d) give all recipients of the Program a copy of this License + along with the Program or instructions on how to easily receive a copy + of this License. + + + 3.2 MODIFICATION OF THE PROGRAM/DERIVATIVE WORKS - You may modify your + copy or copies of the Program or any portion of it, and copy and + distribute such modifications subject to the provisions of section 3.3 + and provided that you also meet all of the following conditions: + + (a) you conspicuously and appropriately publish on each copy + of a Derivative Work an appropriate copyright notice, a notice that + recipients who wish to copy, distribute or modify the Derivative Work + can only do so subject to this License, and a disclaimer of warranty + as set forth in section 5; + + (b) keep intact all the notices that refer to this License and + to the absence of any warranty; and + + (c) give all recipients of the Derivative Work a copy of this + License along with the Derivative Work or instructions on how to easily + receive a copy of this License. + + (d) You must cause the modified files of the Derivative Work + to carry prominent notices stating that you changed the files and the + date of any change. + + (e) You must cause any Derivative Work that you distribute or + publish to be licensed at no charge to all third parties under the + terms of this License. + + (f) You do not make any use of the GLIDE trademark without the + prior written permission of 3dfx. + + (g) If the Derivative Work normally reads commands + interactively when run, you must cause it, when started running for + such interactive use, to print or display an announcement as follows: + + "COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED THIS + SOFTWARE IS FREE AND PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, + EITHER EXPRESSED OR IMPLIED. THERE IS NO RIGHT TO USE THE GLIDE + TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX INTERACTIVE, + INC. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A FULL TEXT OF THE + DISTRIBUTION AND NON-WARRANTY PROVISIONS (REQUEST COPY FROM + INFO@3DFX.COM)." + + (h) The requirements of this section 3.2 do not apply to the + modified work as a whole but only to the Derivative Work. It is not + the intent of this License to claim rights or contest your rights to + work written entirely by you; rather, the intent is to exercise the + right to control the distribution of Derivative Works. + + + 3.3 DISTRIBUTION + + (a) All copies of the Program or Derivative Works which are + distributed must include in the file headers the following language + verbatim: + + "THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED + ONLY PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO + RIGHT TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF + 3DFX INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM + THE DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC (info@3dfx.com). + THIS PROGRAM. IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A + FULL TEXT OF THE NON-WARRANTY PROVISIONS. + + USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO + RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS + IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, + AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR + SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF + THE UNITED STATES. + + COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED" + + (b) You may distribute the Program or a Derivative Work in + object code or executable form under the terms of Sections 3.1 and 3.2 + provided that you also do one of the following: + + (1) Accompany it with the complete corresponding + machine-readable source code, which must be distributed under the + terms of Sections 3.1 and 3.2; or, + + (2) Accompany it with a written offer, valid for at + least three years, to give any third party, for a charge no more than + your cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 3.1 and 3.2 on a medium + customarily used for software interchange; or, + + (3) Accompany it with the information you received as + to the offer to distribute corresponding source code. (This alternative + is allowed only for noncommercial distribution and only if you received + the program in object code or executable form with such an offer, in + accord with Subsection 3.3(b)(2) above.) + + (c) The source code distributed need not include anything + that is normally distributed (in either source or binary form) with + the major components (compiler, kernel, and so on) of the operating + system on which the executable runs, unless that component itself + accompanies the executable code. + + (d) If distribution of executable code or object code is made + by offering access to copy from a designated place, then offering + equivalent access to copy the source code from the same place counts + as distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + (e) Each time you redistribute the Program or any Derivative + Work, the recipient automatically receives a license from 3dfx and + successor licensors to copy, distribute or modify the Program and + Derivative Works subject to the terms and conditions of the License. + You may not impose any further restrictions on the recipients' + exercise of the rights granted herein. You are not responsible for + enforcing compliance by third parties to this License. + + (f) You may not make any use of the GLIDE trademark without + the prior written permission of 3dfx. + + (g) You may not copy, modify, sublicense, or distribute the + Program or any Derivative Works except as expressly provided under + this License. Any attempt otherwise to copy, modify, sublicense or + distribute the Program or any Derivative Works is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. + + + 4. MISCELLANEOUS + + 4.1 Acceptance of this License is voluntary. By using, modifying or + distributing the Program or any Derivative Work, you indicate your + acceptance of this License to do so, and all its terms and conditions + for copying, distributing or modifying the Program or works based on + it. Nothing else grants you permission to modify or distribute the + Program or Derivative Works and doing so without acceptance of this + License is in violation of the U.S. and international copyright laws. + + 4.2 If the distribution and/or use of the Program or Derivative Works + is restricted in certain countries either by patents or by copyrighted + interfaces, the original copyright holder who places the Program under + this License may add an explicit geographical distribution limitation + excluding those countries, so that distribution is permitted only in + or among countries not thus excluded. In such case, this License + incorporates the limitation as if written in the body of this License. + + 4.3 This License is to be construed according to the laws of the + State of California and you consent to personal jurisdiction in the + State of California in the event it is necessary to enforce the + provisions of this License. + + + 5. NO WARRANTIES + + 5.1 TO THE EXTENT PERMITTED BY APPLICABLE LAW, THERE IS NO WARRANTY + FOR THE PROGRAM. OR DERIVATIVE WORKS THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE PROGRAM AND ANY DERIVATIVE WORKS"AS IS" + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY + AND PERFORMANCE OF THE PROGRAM AND ANY DERIVATIVE WORK IS WITH YOU. + SHOULD THE PROGRAM OR ANY DERIVATIVE WORK PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 5.2 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL 3DFX + INTERACTIVE, INC., OR ANY OTHER COPYRIGHT HOLDER, OR ANY OTHER PARTY + WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM OR DERIVATIVE WORKS AS + PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, + SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR + INABILITY TO USE THE PROGRAM OR DERIVATIVE WORKS (INCLUDING BUT NOT + LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES + SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM OR + DERIVATIVE WORKS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH + HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + +Files: icons/applications-utilities.png icons/preferences-* icons/*/*.png +Copyright: 2007, David Vignoni + 2007, Johann Ollivier Lapeyre + 2007, Kenneth Wimer + 2007, Nuno Fernades Pinheiro + 2007, Riccardo Iaconelli + 2007, David Miller +License: CC-BY-SA-3.0 or LGPL-2+ + +Files: icons/*/mupen64plus.* icons/*/mupen64cart.* icons/mupen64cart.png + icons/mupen64plus-large.png icons/australia.png icons/europe.png + icons/france.png icons/germany.png icons/italy.png icons/japan.png + icons/japanusa.png icons/spain.png icons/usa.png +Copyright: 2008, Scott 'Tillin9' Knauert +License: CC-BY-SA-3.0 + +Files: icons/mupen64logo.* +Copyright: 2008, Scott 'Tillin9' Knauert + 2008, Marshallh +License: CC-BY-SA-3.0 + +Files: rice_video/* +Copyright: 2002-2005, Rice1964 + 2008, Scott 'Tillin9' Knauert + Mudlord +License: GPL-2+ + +Files: rice_video/TextureFilters_hq* +Copyright: 2003, MaxSt +License: GPL-2+ + +Files: rice_video/gui_gtk2/messagebox_gtk2* +Copyright: 2002, Gregor 'Blight' Anich +License: GPL-2+ + +Files: rice_video/messagebox* +Copyright: 2002, Gregor 'Blight' Anich + 2008, Scott 'Tillin9' Knauert +License: GPL-2+ + +Files: rice_video/Graphics_1.3.h +Copyright: 2002, Zilmar +License: GPL-2+ + +Files: rice_video/liblinux/deflate.* rice_video/liblinux/trees.* + rice_video/liblinux/zconf.h rice_video/liblinux/zutil.* +Copyright: 1995-2002, Jean-loup Gailly +License: ZLIB + +Files: rice_video/liblinux/zlib.h +Copyright: 1995-2002, Jean-loup Gailly + 1995-2002, Mark Adler +License: ZLIB + +Files: roms/mupen64plus/* +Copyright: 2008, Marshallh +License: GPL-2+ + +Files: roms/mupen64plus/assets/* +Copyright: 2008, Marshallh +License: CC-BY-SA-3.0 + +Files: roms/mupen64plus/assets/LOGO_ENV.H roms/mupen64plus/assets/*.h +Copyright: 2008, Marshallh +License: GPL-2+ + +Files: opengl/OGLFT* +Copyright: 2002, lignum Computing, Inc. +License: LGPL-2.1+ + +Files: main/zip/* +Copyright: 1998-2005 Gilles Vollant +License: ZLIB + +Files: main/lzma/* +Copyright: 1999-2005, Igor Pavlov + 2005, Lasse Collin +License: LGPL-2.1+ + +Files: main/7zip/* +Copyright: 1999-2007, Igor Pavlov + 2008, Scott 'Tillin9' Knauert +License: GPL-2+ + +Files: main/adler32.c rice_video/liblinux/adler32.c + rice_video/liblinux/crc32.c rice_video/liblinux/inf* +Copyright: 1995-2003, Mark Adler +License: ZLIB + +Files: rice_video/liblinux/png* +Copyright: 1995, 1996, Guy Eric Schalnat + 1996, 1997, Andreas Dilger + 1998-2002, Glenn Randers-Pehrson +License: ZLIB + +Files: rice_video/liblinux/BMG* rice_video/liblinux/bmp.c + rice_video/liblinux/jpegrw.c rice_video/liblinux/pngrw.* + rice_video/liblinux/tiffrw.h +Copyright: 2000-2001, Michael Scott Heiman +License: others + You may use the software for any purpose you see fit. You may modify + it, incorporate it in a commercial application, use it for school, + even turn it in as homework. You must keep the Copyright in the + header and source files. This software is not in the "Public Domain". + You may use this software at your own risk. I have made a reasonable + effort to verify that this software works in the manner I expect it to; + however,... + + THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" AND + WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING + WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A + PARTICULAR PURPOSE. IN NO EVENT SHALL MICHAEL S. HEIMAN BE LIABLE TO + YOU OR ANYONE ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING + WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, + OR THE CLAIMS OF THIRD PARTIES, WHETHER OR NOT MICHAEL S. HEIMAN HAS + BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. + +Files: main/md5.* +Copyright: 1999, 2000, 2002 Aladdin Enterprises +License: ZLIB + +Files: main/bzip2/* +Copyright: 1996-2007, Julian Seward +License: other + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + + 3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: main/gui_gtk/debugger/ui_clist_edit.* +Copyright: 2002, John Ellis +License: GPL-2+ + +Files: main/gui_gtk/debugger/ui_disasm_list.* +Copyright: 2004, Tim-Philipp Muller + 2008, Jesse 'DarkJezter' Dean +License: GPL-2+ + +Files: blight_input/font/arial.ttf fonts/font.ttf +Copyright: 2003 Bitstream, Inc. +License: other + Copyright (C) 2003 Bitstream, Inc. + All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of the fonts accompanying this license ("Fonts") and associated + documentation files (the "Font Software"), to reproduce and distribute + the Font Software, including without limitation the rights to use, copy, + merge, publish, distribute, and/or sell copies of the Font Software, and + to permit persons to whom the Font Software is furnished to do so, + subject to the following conditions: + + The above copyright and trademark notices and this permission notice + shall be included in all copies of one or more of the Font Software + typefaces. + + The Font Software may be modified, altered, or added to, and in + particular the designs of glyphs or characters in the Fonts may be + modified and additional glyphs or characters may be added to the Fonts, + only if the fonts are renamed to names not containing either the words + "Bitstream" or the word "Vera". + + This License becomes null and void to the extent applicable to Fonts or + Font Software that has been modified and is distributed under the + "Bitstream Vera" names. + + The Font Software may be sold as part of a larger software package but + no copy of one or more of the Font Software typefaces may be sold by + itself. + + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL + BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT + SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + + Except as contained in this notice, the names of Gnome, the Gnome + Foundation, and Bitstream Inc., shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this Font + Software without prior written authorization from the Gnome Foundation + or Bitstream Inc., respectively. For further information, contact: + . + +Files: Makefile +Copyright: 2007-2008, Jesse 'DarkJezter' Dean + 2007-2008, Scott 'Tillin9' Knauert + 2007-2008, Richard 'Richard42' Goedeken +License: GPL-2+ + +Files: debian/* +Copyright: 2009, Félix Arreola Rodríguez + 2009, Sven Eckelmann + 2009, Tobias Loose +License: GPL-2+ + +License: GPL-2+ + On Debian systems the full text of the GNU General Public License can be found + in the `/usr/share/common-licenses/GPL-2' file. + +License: LGPL-2+ + On Debian systems the full text of the GNU Library General Public License, + version 2 or later, can be found in the `/usr/share/common-licenses/LGPL-2' + file. + +License: LGPL-2.1+ + On Debian systems the full text of the GNU Lesser General Public License, + version 2.1 or later, can be found in the `/usr/share/common-licenses/LGPL-2.1' + file. + +License: ZLIB + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + This code is a modified version of crypting code in Infozip distribution + +License: CC-BY-SA-3.0 + Creative Commons + + Creative Commons Legal Code + + Attribution-ShareAlike 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION + ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE + INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + ITS USE. + + License + + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE + COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY + COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS + AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE + TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY + BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS + CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND + CONDITIONS. + + 1. Definitions + +  a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may be + recast, transformed, or adapted including in any form recognizably + derived from the original, except that a work that constitutes a + Collection will not be considered an Adaptation for the purpose of + this License. For the avoidance of doubt, where the Work is a musical + work, performance or phonogram, the synchronization of the Work in + timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. +  b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed + in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, in + which the Work is included in its entirety in unmodified form along + with one or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into a + collective whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined below) for the purposes of this + License. +  c. "Creative Commons Compatible License" means a license that is listed + at http://creativecommons.org/compatiblelicenses that has been + approved by Creative Commons as being essentially equivalent to this + License, including, at a minimum, because that license: (i) contains + terms that have the same purpose, meaning and effect as the License + Elements of this License; and, (ii) explicitly permits the relicensing + of adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same + License Elements as this License. +  d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or + other transfer of ownership. +  e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. +  f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. +  g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work + or if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. +  h. "Work" means the literary and/or artistic work offered under the terms + of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, + pamphlet and other writing; a lecture, address, sermon or other work + of the same nature; a dramatic or dramatico-musical work; a + choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which are + assimilated works expressed by a process analogous to cinematography; + a work of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the + extent it is protected as a copyrightable work; or a work performed by + a variety or circus performer to the extent it is not otherwise + considered a literary or artistic work. +  i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. +  j. "Publicly Perform" means to perform public recitations of the Work and + to communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a + place individually chosen by them; to perform the Work to the public + by any means or process and the communication to the public of the + performances of the Work, including by public digital performance; to + broadcast and rebroadcast the Work by any means including signs, + sounds or images. +  k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + +  a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; +  b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to + clearly label, demarcate or otherwise identify that changes were made + to the original Work. For example, a translation could be marked "The + original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; +  c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, +  d. to Distribute and Publicly Perform Adaptations. +  e. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme cannot be waived, the Licensor + reserves the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives + the exclusive right to collect such royalties for any exercise by + You of the rights granted under this License; and, + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event that + the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, from + any exercise by You of the rights granted under this License. + + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make + such modifications as are technically necessary to exercise the rights in + other media and formats. Subject to Section 8(f), all rights not expressly + granted by Licensor are hereby reserved. + + 4. Restrictions. The license granted in Section 3 above is expressly made + subject to and limited by the following restrictions: + +  a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms + on the Work that restrict the terms of this License or the ability of + the recipient of the Work to exercise the rights granted to that + recipient under the terms of the License. You may not sublicense the + Work. You must keep intact all notices that refer to this License and + to the disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of the + Work from You to exercise the rights granted to that recipient under + the terms of the License. This Section 4(a) applies to the Work as + incorporated in a Collection, but this does not require the Collection + apart from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit + as required by Section 4(c), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(c), as requested. +  b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You + Distribute or Publicly Perform; (II) You may not offer or impose any + terms on the Adaptation that restrict the terms of the Applicable + License or the ability of the recipient of the Adaptation to exercise + the rights granted to that recipient under the terms of the Applicable + License; (III) You must keep intact all notices that refer to the + Applicable License and to the disclaimer of warranties with every copy + of the Work as included in the Adaptation You Distribute or Publicly + Perform; (IV) when You Distribute or Publicly Perform the Adaptation, + You may not impose any effective technological measures on the + Adaptation that restrict the ability of a recipient of the Adaptation + from You to exercise the rights granted to that recipient under the + terms of the Applicable License. This Section 4(b) applies to the + Adaptation as incorporated in a Collection, but this does not require + the Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. +  c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party + or parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party + or parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the Work; + and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the Adaptation + (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable + manner; provided, however, that in the case of a Adaptation or + Collection, at a minimum such credit will appear, if a credit for all + contributing authors of the Adaptation or Collection appears, then as + part of these credits and in a manner at least as prominent as the + credits for the other contributing authors. For the avoidance of + doubt, You may only use the credit required by this Section for the + purpose of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or explicitly + assert or imply any connection with, sponsorship or endorsement by the + Original Author, Licensor and/or Attribution Parties, as appropriate, + of You or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or Attribution + Parties. +  d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any + Adaptations or Collections, You must not distort, mutilate, modify or + take other derogatory action in relation to the Work which would be + prejudicial to the Original Author's honor or reputation. Licensor + agrees that in those jurisdictions (e.g. Japan), in which any exercise + of the right granted in Section 3(b) of this License (the right to + make Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not assert, + as appropriate, this Section, to the fullest extent permitted by the + applicable national law, to enable You to reasonably exercise Your + right under Section 3(b) of this License (right to make Adaptations) + but not otherwise. + + 5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF + LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, + WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION + OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR + ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES + ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS + BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 7. Termination + +  a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. +  b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + + 8. Miscellaneous + +  a. Each time You Distribute or Publicly Perform the Work or a Collection, + the Licensor offers to the recipient a license to the Work on the same + terms and conditions as the license granted to You under this License. +  b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same + terms and conditions as the license granted to You under this License. +  c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. +  d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. +  e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that + may appear in any communication from You. This License may not be + modified without the mutual written agreement of the Licensor and You. +  f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 + and the Universal Copyright Convention (as revised on July 24, 1971). + These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights under + applicable law. + + Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the Work + is licensed under the CCPL, Creative Commons does not authorize the use + by either party of the trademark "Creative Commons" or any related + trademark or logo of Creative Commons without the prior written consent + of Creative Commons. Any permitted use will be in compliance with + Creative Commons' then-current trademark usage guidelines, as may be + published on its website or otherwise made available upon request from + time to time. For the avoidance of doubt, this trademark restriction + does not form part of the License. --- mupen64plus-1.5+dfsg1.orig/debian/compat +++ mupen64plus-1.5+dfsg1/debian/compat @@ -0,0 +1 @@ +7 --- mupen64plus-1.5+dfsg1.orig/debian/watch +++ mupen64plus-1.5+dfsg1/debian/watch @@ -0,0 +1,6 @@ +version=3 + +opts="uversionmangle=s/-/./,dversionmangle=s/\+dfsg\d+$//" \ +http://code.google.com/p/mupen64plus/downloads/list \ + http://mupen64plus.googlecode.com/files/Mupen64Plus-(.*).src\.tar.gz \ + debian debian/prune-tarball.sh --- mupen64plus-1.5+dfsg1.orig/debian/NEWS +++ mupen64plus-1.5+dfsg1/debian/NEWS @@ -0,0 +1,26 @@ +mupen64plus (1.5+dfsg1-2) unstable; urgency=low + + The used paths in which mupen64plus saves its data for every user was + changed to be compliant to the XDG Base Directory Specification[1]. + + To use the previously generated configuration and data files, they must be + moved to the new directories. mupen64plus.conf has to be adjusted slightly + to point to find the new directory to save the rombrowser cache. + This can be done in some simple steps, but be sure that you have a backup + of the files inside $HOME/.mupen64plus + + # mkdir -p "$HOME"/.config/mupen64plus/ + # mkdir -p "$HOME"/.local/share/mupen64plus/ + # mkdir -p "$HOME"/.cache/mupen64plus/ + # mv "$HOME"/.mupen64plus/*.conf "$HOME"/.mupen64plus/*.cfg \ + "$HOME"/.mupen64plus/*.ini "$HOME"/.config/mupen64plus/ + # mv "$HOME"/.mupen64plus/save "$HOME"/.mupen64plus/screenshots \ + "$HOME"/.mupen64plus/hires_texture "$HOME"/.mupen64plus/texture_dump \ + "$HOME"/.local/share/mupen64plus/ + # mv "$HOME"/.mupen64plus/rombrowser.cache "$HOME"/.cache/mupen64plus/ + # sed -i "s/.*RomCacheFile\\s*=.*//" \ + "$HOME"/.config/mupen64plus/mupen64plus.conf + + [1] http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html + + -- Sven Eckelmann Tue, 01 Sep 2009 00:18:45 +0200 --- mupen64plus-1.5+dfsg1.orig/debian/changelog +++ mupen64plus-1.5+dfsg1/debian/changelog @@ -0,0 +1,79 @@ +mupen64plus (1.5+dfsg1-4) unstable; urgency=low + + * debian/patches; + - Update 119-debian-archs.patch, Correct detection of armel cpu endianness + (Closes: #545463) + - Add 120-ftbfs-glibc210, Fix FTBFS using g++-4.4 and glibc 2.10 due to + missing const keywords (Closes: #545462) + - Add 121-version-string.patch, remove misleading "-development" in version + string + - Add 122-default-optimisations.patch, Don't override optimisations set by + debian build environment + + -- Sven Eckelmann Tue, 08 Sep 2009 22:17:00 +0200 + +mupen64plus (1.5+dfsg1-3) unstable; urgency=low + + * debian/rules: + - Set host architecture to support build of i386 running on x86_64 kernel + (Closes: #544670) + - Don't set NO_ASM parameter anymore as it is handled by + 119-debian-archs.patch + * debian/patches: + - Add 119-debian-archs.patch, Define wordsize and endianness of + architectures supported by debian (Closes: #544673) + - Update 118-ftbfs-debugger.patch, define dummy functions to decompile + recompiled code on non-x86 architectures (Closes: #544662) + + -- Sven Eckelmann Wed, 02 Sep 2009 23:18:11 +0200 + +mupen64plus (1.5+dfsg1-2) unstable; urgency=low + + * debian/patches + - Add 114-fix-7z-subfolder.patch, fix crash in romcache when reading 7zip + archive with subfolders + - Add 115-xdg-basedir.patch, Use "XDG Base Directory" compliant directories + for files for each user (Closes: #544428) + - Add 116-ftbfs-dynarec.patch, Don't try to compile dynarec on architectures + without support (Closes: #544548) + - Add 117-ftbfs-kfreebsd.patch, Don't stop compilation due to unknown OS + kFreeBSD (Closes: #544550) + - Add 118-ftbfs-debugger.patch, Define CHECK_MEM for non-x86 systems to + prevent FTBFS due to dynarec checks (Closes: #544549) + * debian/control: + - Depend on libxdg-basedir-dev and pkg-config to support xdg-basedir + specification + * debian/rules: + - Disable assembler optimized parts on unsupported architectures + * Add README.source with informations about patch management + * Add NEWS.Debian with information about migration of old data and + configuration to new xdg compliant directories + + -- Sven Eckelmann Tue, 01 Sep 2009 20:40:30 +0200 + +mupen64plus (1.5+dfsg1-1) unstable; urgency=low + + * Initial release (Closes: #513322) + * debian/patches: + - Add 100-fix-desktop-file.patch, fix desktop file + - Add 101-destdir.patch, fix usage of DESTDIR in install target + - Add 102-plugin-searchpath.patch, add search path for plugins + - Add 103-dejavu-font.patch, use font from ttf-dejavu-core package + - Add 104-as-needed.patch, allow --as-needed to reduce number of linked + libraries + - Add 105-system-libpng.patch, use libpng from debian instead of buildin + - Add 106-system-zlib.patch, use zlib from debian instead of buildin + - Add 107-system-libbz2.patch, use libbz2 from debian instead of buildin + - Add 108-remove-gln64.patch, don't try to build glN64 removed from dfsg tar + - Add 109-remove-nondfsg-icons.patch, don't include non-dfsg icons which are + removed from dfsg tarball + - Add 110-glide64-noasm.patch, don't use x86-asm on non-x86 plattforms + in glide64 + - Add 111-rice-texturepack-crash.patch, Fix crash when loading textures + from texturepacks with rice_video + - Add 112-rice-screenflickering.patch, Reduce screenflickering in some games + when using rice_video + - Add 113-static-binutils-libs.patch, Link static against binutils libraries + with unstable abi + + -- Sven Eckelmann Mon, 17 Aug 2009 10:18:49 +0200 --- mupen64plus-1.5+dfsg1.orig/debian/prune-tarball.sh +++ mupen64plus-1.5+dfsg1/debian/prune-tarball.sh @@ -0,0 +1,40 @@ +#! /bin/sh +set -e + +if [ "x$1" != x--upstream-version ]; then + exit 1 +fi + +version="$2" +filename="$3" +dversion="$version+dfsg1" +dfilename=`echo $filename|sed "s/$version/$dversion/"` + +if [ -z "$version" -o ! -r "$filename" ]; then + echo >&2 "E: need an existing tarball as the second argument." + exit 1 +fi + +TMP="`mktemp -d -t`" +MANIFEST="`mktemp -t`" +TMP_TAR="`mktemp -t`" +TARBALL="`basename $filename`" +trap "rm -rf $TMP; rm -f $TMP_TAR; rm -f $TM_TAR.gz; rm -f $MANIFEST" 0 + +tar pxCf "$TMP" "$filename" +( + # filter non dfsg files + tar tf "$filename"|sed 's/^\.*\/*//' \ + |egrep -v "^[^/]+/glN64(/.*)?$" \ + |egrep -v "^[^/]+/config/glN64.conf$" \ + |egrep -v "^[^/]+/glide64/icons(/.*)?$" \ + |egrep -v "^[^/]+/roms/mupen64plus.v64.gz$" \ + > "$MANIFEST" + + cd "$TMP" + tar cf "$TMP_TAR" --owner 0 --group 0 --numeric-owner --files-from "$MANIFEST" --no-recursion + gzip -n -m -f "$TMP_TAR" +) +mv "$TMP_TAR".gz "$dfilename" +echo "Pruned $dfilename" + --- mupen64plus-1.5+dfsg1.orig/debian/rules +++ mupen64plus-1.5+dfsg1/debian/rules @@ -0,0 +1,32 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) + +%: + dh --with quilt $@ + +get-orig-source: + uscan --verbose --force-download + +clean: + mkdir -p "$(CURDIR)/glN64" + cp "$(CURDIR)/debian/Makefile.glN64" "$(CURDIR)/glN64/Makefile" + dh --with quilt $@ + rm -rf "$(CURDIR)/glN64" + rm -rf "$(CURDIR)/plugins" + +override_dh_auto_build: + mkdir -p $(CURDIR)/plugins + LDFLAGS='-Wl,--as-needed' $(MAKE) UNAME='$(DEB_HOST_GNU_CPU)' DBGSYM=1 DBG=1 all + +override_dh_auto_install: + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp PREFIX=/usr/ LIBDIR=/usr/lib/mupen64plus/ BINDIR=/usr/games/ install + mkdir -p $(CURDIR)/debian/tmp/usr/share/man/man1/ + zcat $(CURDIR)/debian/tmp/usr/man/man1/mupen64plus.1.gz|gzip -9 -n > \ + $(CURDIR)/debian/tmp/usr/share/man/man1/mupen64plus.1.gz + +override_dh_strip: + dh_strip -a --dbg-package=mupen64plus-dbg + +.PHONY: clean get-orig-source --- mupen64plus-1.5+dfsg1.orig/debian/README.source +++ mupen64plus-1.5+dfsg1/debian/README.source @@ -0,0 +1,8 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. Please see: + + /usr/share/doc/quilt/README.source + +for more information on how to apply the patches, modify patches, or +remove a patch. --- mupen64plus-1.5+dfsg1.orig/debian/control +++ mupen64plus-1.5+dfsg1/debian/control @@ -0,0 +1,49 @@ +Source: mupen64plus +Section: games +Priority: optional +Maintainer: Tobias Loose +Uploaders: Sven Eckelmann +Homepage: http://code.google.com/p/mupen64plus/ +Standards-Version: 3.8.3 +Vcs-Browser: http://git.debian.org/?p=collab-maint/mupen64plus.git +Vcs-Git: git://git.debian.org/git/collab-maint/mupen64plus.git +Build-Depends: debhelper (>= 7.0.50), quilt (>= 0.46-7), libsdl1.2-dev, + libsdl-ttf2.0-dev, libfreetype6-dev, libglib2.0-dev, libgtk2.0-dev, + libsamplerate0-dev, libpng12-dev | libpng-dev, libbz2-dev, + zlib1g-dev | libz-dev, libgl1-mesa-dev | libgl-dev, + libglu1-mesa-dev | libglu-dev, binutils-dev, pkg-config, libxdg-basedir-dev + +Package: mupen64plus +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ttf-dejavu-core +Description: plugin-based Nintendo 64 emulator + N64 Emulator for Linux that works with many ROMs that are publically available. + It has the following features: + * loading of compressed roms + * cheat system + * exchangeable plugins for graphics, sound and input emulation + * multiple save states + * fullscreen support + * high quality texture filter for many graphic plugins + * support for external hi-res texture packs + * integrated graphical debugger for development + +Package: mupen64plus-dbg +Section: debug +Priority: extra +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, + mupen64plus (= ${binary:Version}) +Description: mupen64plus debug symbols package + N64 Emulator for Linux that works with many ROMs that are publically available. + It has the following features: + * loading of compressed roms + * cheat system + * exchangeable plugins for graphics, sound and input emulation + * multiple save states + * fullscreen support + * high quality texture filter for many graphic plugins + * support for external hi-res texture packs + * integrated graphical debugger for development + . + This package contains the debug files. --- mupen64plus-1.5+dfsg1.orig/debian/patches/116-ftbfs-dynarec.patch +++ mupen64plus-1.5+dfsg1/debian/patches/116-ftbfs-dynarec.patch @@ -0,0 +1,60 @@ +From 312a8ee05deb0716aac8dec6695a28542b0ba92c Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 1 Sep 2009 14:14:53 +0200 +Subject: [PATCH] Don't try to compile dynarec with not unknown dynarec architecture + +If we cannot find a valid architecture for dynarec we shouldn't try +to build the needed object files which are architecture dependend. + +Signed-off-by: Sven Eckelmann +--- + Makefile | 32 +++++++++++++++++--------------- + 1 files changed, 17 insertions(+), 15 deletions(-) + +diff --git a/Makefile b/Makefile +index dac741e..01493e6 100644 +--- a/Makefile ++++ b/Makefile +@@ -157,22 +157,24 @@ ifneq ($(NO_ASM), 1) + DYNAREC = x86 + endif + endif ++endif ++ifneq ($(DYNAREC), ) + OBJ_DYNAREC = \ +- r4300/$(DYNAREC)/assemble.o \ +- r4300/$(DYNAREC)/debug.o \ +- r4300/$(DYNAREC)/gbc.o \ +- r4300/$(DYNAREC)/gcop0.o \ +- r4300/$(DYNAREC)/gcop1.o \ +- r4300/$(DYNAREC)/gcop1_d.o \ +- r4300/$(DYNAREC)/gcop1_l.o \ +- r4300/$(DYNAREC)/gcop1_s.o \ +- r4300/$(DYNAREC)/gcop1_w.o \ +- r4300/$(DYNAREC)/gr4300.o \ +- r4300/$(DYNAREC)/gregimm.o \ +- r4300/$(DYNAREC)/gspecial.o \ +- r4300/$(DYNAREC)/gtlb.o \ +- r4300/$(DYNAREC)/regcache.o \ +- r4300/$(DYNAREC)/rjump.o ++ r4300/$(DYNAREC)/assemble.o \ ++ r4300/$(DYNAREC)/debug.o \ ++ r4300/$(DYNAREC)/gbc.o \ ++ r4300/$(DYNAREC)/gcop0.o \ ++ r4300/$(DYNAREC)/gcop1.o \ ++ r4300/$(DYNAREC)/gcop1_d.o \ ++ r4300/$(DYNAREC)/gcop1_l.o \ ++ r4300/$(DYNAREC)/gcop1_s.o \ ++ r4300/$(DYNAREC)/gcop1_w.o \ ++ r4300/$(DYNAREC)/gr4300.o \ ++ r4300/$(DYNAREC)/gregimm.o \ ++ r4300/$(DYNAREC)/gspecial.o \ ++ r4300/$(DYNAREC)/gtlb.o \ ++ r4300/$(DYNAREC)/regcache.o \ ++ r4300/$(DYNAREC)/rjump.o + else + OBJ_DYNAREC = r4300/empty_dynarec.o + endif +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/111-rice-texturepack-crash.patch +++ mupen64plus-1.5+dfsg1/debian/patches/111-rice-texturepack-crash.patch @@ -0,0 +1,27 @@ +From 56290ed050d7639578fa0ec3bf84fa3ac90e2749 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Thu, 18 Jun 2009 19:09:31 +0200 +Subject: [PATCH] Fix segfault in rice_video using TexturePack + + +Signed-off-by: Sven Eckelmann +--- + rice_video/TextureFilters.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/rice_video/TextureFilters.cpp b/rice_video/TextureFilters.cpp +index 59eb85c..e59f797 100644 +--- a/rice_video/TextureFilters.cpp ++++ b/rice_video/TextureFilters.cpp +@@ -891,7 +891,7 @@ typedef struct { + int pal_crc32; + char *foldername; + //char name[40]; +- char RGBNameTail[20]; ++ char RGBNameTail[23]; + char AlphaNameTail[20]; + TextureType type; + bool bSeparatedAlpha; +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/105-system-libpng.patch +++ mupen64plus-1.5+dfsg1/debian/patches/105-system-libpng.patch @@ -0,0 +1,74 @@ +From 71c93737566b9124e484f00a180179b2ea49b63e Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 2 Jun 2009 21:40:28 +0200 +Subject: [PATCH] Use libpng from system instead of buildin one + + +Signed-off-by: Sven Eckelmann +--- + rice_video/Makefile | 16 +--------------- + rice_video/liblinux/pngrw.c | 3 +-- + 2 files changed, 2 insertions(+), 17 deletions(-) + +diff --git a/rice_video/Makefile b/rice_video/Makefile +index 3de7316..02c9ad4 100644 +--- a/rice_video/Makefile ++++ b/rice_video/Makefile +@@ -76,26 +76,12 @@ OBJECTS = OGLGraphicsContext.o \ + DecodedMux.o \ + RenderTexture.o \ + liblinux/BMGUtils.o \ +- liblinux/pngread.o \ +- liblinux/png.o \ +- liblinux/pngget.o \ +- liblinux/pngrtran.o \ +- liblinux/pngtrans.o \ +- liblinux/pngwrite.o \ +- liblinux/pngset.o \ +- liblinux/pngmem.o \ + OGLDecodedMux.o \ + CNvTNTCombiner.o \ + GeneralCombiner.o \ + DirectXDecodedMux.o \ +- liblinux/pngerror.o \ + liblinux/inflate.o \ +- liblinux/pngrio.o \ +- liblinux/pngrutil.o \ + liblinux/crc32.o \ +- liblinux/pngwutil.o \ +- liblinux/pngwio.o \ +- liblinux/pngwtran.o \ + liblinux/deflate.o \ + CombinerTable.o \ + liblinux/infblock.o \ +@@ -131,7 +117,7 @@ targets: + all: version.h ricevideo.so + + ricevideo.so: $(OBJECTS) +- $(LD) $(OBJECTS) $(LDFLAGS) $(GTK_LIBS) -o $@ ++ $(LD) $(OBJECTS) $(LDFLAGS) $(CORE_LDFLAGS) $(GTK_LIBS) -o $@ + $(STRIP) $@ + + clean: +diff --git a/rice_video/liblinux/pngrw.c b/rice_video/liblinux/pngrw.c +index 039cb98..673741a 100644 +--- a/rice_video/liblinux/pngrw.c ++++ b/rice_video/liblinux/pngrw.c +@@ -29,13 +29,12 @@ + #include + #include + #include +-#include + #ifdef _BMG_LIBPNG_STANDALONE + #include "BMGLibPNG.h" + #else + #include "pngrw.h" + #endif +-#include "png.h" ++#include + + #ifndef png_jmpbuf + # define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/115-xdg-basedir.patch +++ mupen64plus-1.5+dfsg1/debian/patches/115-xdg-basedir.patch @@ -0,0 +1,988 @@ +From 2492ef7700bb2f1fb787c24d2c54c07d18d92eb5 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 31 Aug 2009 23:29:24 +0200 +Subject: [PATCH] Use XDG Base Directory compliant directories + +The freedesktop standard for basedir[1] defines three different types of +user directories which mupen64plus uses. They are defined by environment +variables and in the case if they are absend by well defined standard +paths. + + * Data directory ($XDG_DATA_HOME); default: $HOME/.local/share/ + - save, screenshots, hires_texture, texture_dump + * Config directory ($XDG_CONFIG_HOME); default: $HOME/.config/ + - mupen64plus.conf, configuration files of plugins + * Cache directory ($XDG_DATA_HOME); default: $HOME/.cache/ + - rombrowser.cache and all other files which could be deleted + without loosing essential data + +Specific directories for each tool should be created below that base +directories. libxdg-basedir can be used to find the correct paths +without caring much about the actual specification. + +The current config dir has to be splitted in these three different +directories. That also means that plugins have to be informed about that +dirs. New functions SetDataDir and SetCacheDir have been specified +inside the API headers and implemented were the plugin would benefit +from it. This is the case in rice_video for texture_dump and +hires_texture. + +The user can also override the data and cache directories by the new +commandline options --datadir and --cachedir. + +As there is no real specification for Windows available the behavior on +that platform was not changed. + +[1] http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html + +Signed-off-by: Sven Eckelmann +--- + Makefile | 3 +- + blight_input/Input_1.1.h | 22 +++++++ + doc/Audio_1.1.h | 22 +++++++ + doc/Audio_1.2.h | 22 +++++++ + doc/Graphics_1.3.h | 22 +++++++ + doc/Input_1.1.h | 22 +++++++ + dummy_audio/Audio_1.1.h | 22 +++++++ + dummy_input/Input_1.1.h | 22 +++++++ + dummy_video/Graphics_1.3.h | 22 +++++++ + glide64/Gfx1.3.h | 22 +++++++ + jttl_audio/Audio_1.2.h | 22 +++++++ + main/main.c | 123 ++++++++++++++++++++++++++++++++++------ + main/main.h | 2 + + main/plugin.c | 12 ++++- + main/plugin.h | 2 +- + main/romcache.c | 2 +- + pre.mk | 9 +++ + rice_video/Graphics_1.3.h | 22 +++++++ + rice_video/TextureFilters.cpp | 8 +- + rice_video/Video.cpp | 80 +++++++++++++++++++++++++- + rsp_hle/Audio_1.1.h | 22 +++++++ + 21 files changed, 474 insertions(+), 31 deletions(-) + +diff --git a/Makefile b/Makefile +index be81163..dac741e 100644 +--- a/Makefile ++++ b/Makefile +@@ -237,8 +237,9 @@ SHARE = $(shell grep CONFIG_PATH config.h | cut -d '"' -f 2) + # set primary objects and libraries for all outputs + ALL = mupen64plus $(PLUGINS) + OBJECTS = $(OBJ_CORE) $(OBJ_DYNAREC) $(OBJ_OPENGL) +-LIBS = $(SDL_LIBS) $(LIBGL_LIBS) -lbz2 ++LIBS = $(SDL_LIBS) $(LIBGL_LIBS) $(XDGBASEDIR_LIBS) -lbz2 + STATIC_LIBS = ++CFLAGS+= $(XDGBASEDIR_FLAGS) + + # add extra objects and libraries for selected options + ifeq ($(DBG), 1) +diff --git a/blight_input/Input_1.1.h b/blight_input/Input_1.1.h +index c2ae4a6..1a22c4b 100644 +--- a/blight_input/Input_1.1.h ++++ b/blight_input/Input_1.1.h +@@ -251,6 +251,28 @@ EXPORT void CALL WM_KeyUp( WPARAM wParam, LPARAM lParam ); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +diff --git a/doc/Audio_1.1.h b/doc/Audio_1.1.h +index ea46b2d..7a6f68b 100644 +--- a/doc/Audio_1.1.h ++++ b/doc/Audio_1.1.h +@@ -224,6 +224,28 @@ EXPORT void CALL RomClosed (void); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +diff --git a/doc/Audio_1.2.h b/doc/Audio_1.2.h +index 0decf07..43045c2 100644 +--- a/doc/Audio_1.2.h ++++ b/doc/Audio_1.2.h +@@ -239,6 +239,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: VolumeUp + Purpose: To increase the audio volume + input: none +diff --git a/doc/Graphics_1.3.h b/doc/Graphics_1.3.h +index 0f7843d..ed933b3 100644 +--- a/doc/Graphics_1.3.h ++++ b/doc/Graphics_1.3.h +@@ -306,6 +306,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: SetRenderingCallback + Purpose: Allows emulator to register a callback function that will + be called by the graphics plugin just before the the +diff --git a/doc/Input_1.1.h b/doc/Input_1.1.h +index c2ae4a6..1a22c4b 100644 +--- a/doc/Input_1.1.h ++++ b/doc/Input_1.1.h +@@ -251,6 +251,28 @@ EXPORT void CALL WM_KeyUp( WPARAM wParam, LPARAM lParam ); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +diff --git a/dummy_audio/Audio_1.1.h b/dummy_audio/Audio_1.1.h +index ea46b2d..7a6f68b 100644 +--- a/dummy_audio/Audio_1.1.h ++++ b/dummy_audio/Audio_1.1.h +@@ -224,6 +224,28 @@ EXPORT void CALL RomClosed (void); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +diff --git a/dummy_input/Input_1.1.h b/dummy_input/Input_1.1.h +index c2ae4a6..1a22c4b 100644 +--- a/dummy_input/Input_1.1.h ++++ b/dummy_input/Input_1.1.h +@@ -251,6 +251,28 @@ EXPORT void CALL WM_KeyUp( WPARAM wParam, LPARAM lParam ); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +diff --git a/dummy_video/Graphics_1.3.h b/dummy_video/Graphics_1.3.h +index 0f7843d..ed933b3 100644 +--- a/dummy_video/Graphics_1.3.h ++++ b/dummy_video/Graphics_1.3.h +@@ -306,6 +306,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: SetRenderingCallback + Purpose: Allows emulator to register a callback function that will + be called by the graphics plugin just before the the +diff --git a/glide64/Gfx1.3.h b/glide64/Gfx1.3.h +index b34c1b4..91bd0e6 100644 +--- a/glide64/Gfx1.3.h ++++ b/glide64/Gfx1.3.h +@@ -754,6 +754,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: SetRenderingCallback + Purpose: Allows emulator to register a callback function that will + be called by the graphics plugin just before the the +diff --git a/jttl_audio/Audio_1.2.h b/jttl_audio/Audio_1.2.h +index 0decf07..43045c2 100644 +--- a/jttl_audio/Audio_1.2.h ++++ b/jttl_audio/Audio_1.2.h +@@ -239,6 +239,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: VolumeUp + Purpose: To increase the audio volume + input: none +diff --git a/main/main.c b/main/main.c +index d57bafd..3c88498 100644 +--- a/main/main.c ++++ b/main/main.c +@@ -34,6 +34,8 @@ + #ifndef __WIN32__ + # include // extra signal types (for portability) + # include // basename, dirname ++# include // xdg(Init|Wipe)Handle, xdg(Config|Data|Cache)Home ++# include // xdgMakePath + #endif + + #include +@@ -152,6 +154,8 @@ static int l_GuiEnabled = 1; // GUI enabled? + #endif + + static char l_ConfigDir[PATH_MAX] = {'\0'}; ++static char l_DataDir[PATH_MAX] = {'\0'}; ++static char l_CacheDir[PATH_MAX] = {'\0'}; + static char l_InstallDir[PATH_MAX] = {'\0'}; + + static int l_EmuMode = 0; // emumode specified at commandline? +@@ -173,6 +177,16 @@ char *get_configpath() + return l_ConfigDir; + } + ++char *get_datapath() ++{ ++ return l_DataDir; ++} ++ ++char *get_cachepath() ++{ ++ return l_CacheDir; ++} ++ + char *get_installpath() + { + return l_InstallDir; +@@ -181,7 +195,7 @@ char *get_installpath() + char *get_savespath() + { + static char path[PATH_MAX]; +- strncpy(path, get_configpath(), PATH_MAX-5); ++ strncpy(path, get_datapath(), PATH_MAX-5); + strcat(path, "save/"); + return path; + } +@@ -1075,6 +1089,8 @@ void parseCommandLine(int argc, char **argv) + OPT_EMUMODE, + OPT_SSHOTDIR, + OPT_CONFIGDIR, ++ OPT_DATADIR, ++ OPT_CACHEDIR, + OPT_INSTALLDIR, + #ifdef DBG + OPT_DEBUGGER, +@@ -1096,6 +1112,8 @@ void parseCommandLine(int argc, char **argv) + {"emumode", required_argument, NULL, OPT_EMUMODE}, + {"sshotdir", required_argument, NULL, OPT_SSHOTDIR}, + {"configdir", required_argument, NULL, OPT_CONFIGDIR}, ++ {"datadir", required_argument, NULL, OPT_DATADIR}, ++ {"cachedir", required_argument, NULL, OPT_CACHEDIR}, + {"installdir", required_argument, NULL, OPT_INSTALLDIR}, + #ifdef DBG + {"debugger", no_argument, NULL, OPT_DEBUGGER}, +@@ -1180,6 +1198,18 @@ void parseCommandLine(int argc, char **argv) + else + printf("***Warning: Config directory '%s' is not accessible or not a directory.\n", optarg); + break; ++ case OPT_DATADIR: ++ if(isdir(optarg)) ++ strncpy(l_CacheDir, optarg, PATH_MAX); ++ else ++ printf("***Warning: Cache directory '%s' is not accessible or not a directory.\n", optarg); ++ break; ++ case OPT_CACHEDIR: ++ if(isdir(optarg)) ++ strncpy(l_CacheDir, optarg, PATH_MAX); ++ else ++ printf("***Warning: Cache directory '%s' is not accessible or not a directory.\n", optarg); ++ break; + case OPT_INSTALLDIR: + if(isdir(optarg)) + strncpy(l_InstallDir, optarg, PATH_MAX); +@@ -1249,49 +1279,79 @@ void parseCommandLine(int argc, char **argv) + + /** setPaths + * setup paths to config/install/screenshot directories. The config dir is the dir where all +- * user config information is stored, e.g. mupen64plus.conf, save files, and plugin conf files. ++ * user config information is stored, e.g. mupen64plus.conf, and plugin conf files. + * The install dir is where mupen64plus looks for common files, e.g. plugins, icons, language + * translation files. ++ * The cache dir is where mupen64plus looks for rombrowser and similar caches. ++ * The data dir is where mupen64plus looks for savegames, hires-textures and saves screenshots. + */ + static void setPaths(void) + { + #ifdef __WIN32__ + strncpy(l_ConfigDir, "./", PATH_MAX); ++ strncpy(l_DataDir, "./", PATH_MAX); ++ strncpy(l_CacheDir, "./", PATH_MAX); + strncpy(l_InstallDir, "./", PATH_MAX); + return; + #else + char buf[PATH_MAX], buf2[PATH_MAX]; ++ xdgHandle xdgbasedirs; ++ ++ xdgInitHandle(&xdgbasedirs); + +- // if the config dir was not specified at the commandline, look for ~/.mupen64plus dir ++ // if the config dir was not specified at the commandline, look for ~/.config/mupen64plus dir + if (strlen(l_ConfigDir) == 0) + { +- strncpy(l_ConfigDir, getenv("HOME"), PATH_MAX); +- strncat(l_ConfigDir, "/.mupen64plus", PATH_MAX - strlen(l_ConfigDir)); ++ strncpy(l_ConfigDir, xdgConfigHome(&xdgbasedirs), PATH_MAX); ++ strncat(l_ConfigDir, "/mupen64plus", PATH_MAX - strlen(l_ConfigDir)); + +- // if ~/.mupen64plus dir is not found, create it ++ // if ~/.config/mupen64plus is not found, create it + if(!isdir(l_ConfigDir)) + { +- printf("Creating %s to store user data\n", l_ConfigDir); +- if(mkdir(l_ConfigDir, (mode_t)0755) != 0) ++ printf("Creating %s to store user config\n", l_ConfigDir); ++ if(xdgMakePath(l_ConfigDir, (mode_t)0755) != 0) + { + printf("Error: Could not create %s: ", l_ConfigDir); + perror(NULL); + exit(errno); + } ++ } ++ } ++ ++ // make sure config dir has a '/' on the end. ++ if(l_ConfigDir[strlen(l_ConfigDir)-1] != '/') ++ strncat(l_ConfigDir, "/", PATH_MAX - strlen(l_ConfigDir)); ++ ++ // if the data dir was not specified at the commandline, look for ~/.local/share/mupen64plus dir ++ if (strlen(l_DataDir) == 0) ++ { ++ strncpy(l_DataDir, xdgDataHome(&xdgbasedirs), PATH_MAX); ++ strncat(l_DataDir, "/mupen64plus", PATH_MAX - strlen(l_DataDir)); ++ ++ // if ~/.local/share/mupen64plus dir is not found, create it ++ if(!isdir(l_DataDir)) ++ { ++ printf("Creating %s to store user data\n", l_DataDir); ++ if(xdgMakePath(l_DataDir, (mode_t)0755) != 0) ++ { ++ printf("Error: Could not create %s: ", l_DataDir); ++ perror(NULL); ++ exit(errno); ++ } + + // create save subdir +- strncpy(buf, l_ConfigDir, PATH_MAX); ++ strncpy(buf, l_DataDir, PATH_MAX); + strncat(buf, "/save", PATH_MAX - strlen(buf)); +- if(mkdir(buf, (mode_t)0755) != 0) ++ if(xdgMakePath(buf, (mode_t)0755) != 0) + { + // report error, but don't exit + printf("Warning: Could not create %s: %s", buf, strerror(errno)); + } + + // create screenshots subdir +- strncpy(buf, l_ConfigDir, PATH_MAX); ++ strncpy(buf, l_DataDir, PATH_MAX); + strncat(buf, "/screenshots", PATH_MAX - strlen(buf)); +- if(mkdir(buf, (mode_t)0755) != 0) ++ if(xdgMakePath(buf, (mode_t)0755) != 0) + { + // report error, but don't exit + printf("Warning: Could not create %s: %s", buf, strerror(errno)); +@@ -1299,9 +1359,34 @@ static void setPaths(void) + } + } + +- // make sure config dir has a '/' on the end. +- if(l_ConfigDir[strlen(l_ConfigDir)-1] != '/') +- strncat(l_ConfigDir, "/", PATH_MAX - strlen(l_ConfigDir)); ++ // make sure data dir has a '/' on the end. ++ if(l_DataDir[strlen(l_DataDir)-1] != '/') ++ strncat(l_DataDir, "/", PATH_MAX - strlen(l_DataDir)); ++ ++ // if the cache dir was not specified at the commandline, look for ~/.cache/mupen64plus dir ++ if (strlen(l_CacheDir) == 0) ++ { ++ strncpy(l_CacheDir, xdgCacheHome(&xdgbasedirs), PATH_MAX); ++ strncat(l_CacheDir, "/mupen64plus", PATH_MAX - strlen(l_CacheDir)); ++ ++ // if ~/.cache/mupen64plus dir is not found, create it ++ if(!isdir(l_CacheDir)) ++ { ++ printf("Creating %s to store user cache\n", l_CacheDir); ++ if(xdgMakePath(l_CacheDir, (mode_t)0755) != 0) ++ { ++ printf("Error: Could not create %s: ", l_CacheDir); ++ perror(NULL); ++ exit(errno); ++ } ++ } ++ } ++ ++ // make sure cache dir has a '/' on the end. ++ if(l_CacheDir[strlen(l_CacheDir)-1] != '/') ++ strncat(l_CacheDir, "/", PATH_MAX - strlen(l_CacheDir)); ++ ++ xdgWipeHandle(&xdgbasedirs); + + // if install dir was not specified at the commandline, look for it in the executable's directory + if (strlen(l_InstallDir) == 0) +@@ -1400,7 +1485,7 @@ static void setPaths(void) + if (!ValidScreenshotDir()) + { + char chDefaultDir[PATH_MAX + 1]; +- snprintf(chDefaultDir, PATH_MAX, "%sscreenshots/", l_ConfigDir); ++ snprintf(chDefaultDir, PATH_MAX, "%sscreenshots/", l_DataDir); + SetScreenshotDir(chDefaultDir); + } + #endif /* __WIN32__ */ +@@ -1481,7 +1566,7 @@ int main(int argc, char *argv[]) + } + // scan the plugin directory and set the config dir for the plugins + plugin_scan_directory(dirpath); +- plugin_set_dirs(l_ConfigDir, l_InstallDir); ++ plugin_set_dirs(l_ConfigDir, l_DataDir, l_CacheDir, l_InstallDir); + + #ifndef NO_GUI + if(l_GuiEnabled) +@@ -1500,8 +1585,8 @@ int main(int argc, char *argv[]) + config_put_number("CurrentSaveSlot",0); + } + +- main_message(1, 0, 0, 0, tr("Config Dir: %s\nInstall Dir: %s\nPlugin Dir: %s\n"), l_ConfigDir, l_InstallDir, dirpath); +- main_message(0, 1, 0, 0, tr("Config Dir: \"%s\", Install Dir: \"%s\", Plugin Dir: \"%s\""), l_ConfigDir, l_InstallDir, dirpath); ++ main_message(1, 0, 0, 0, tr("Config Dir: %s\nData Dir: %s\nCache Dir: %s\nInstall Dir: %s\nPlugin Dir: %s\n"), l_ConfigDir, l_DataDir, l_CacheDir, l_InstallDir, dirpath); ++ main_message(0, 1, 0, 0, tr("Config Dir: \"%s\", Data Dir: \"%s\", Cache Dir: \"%s\", Install Dir: \"%s\", Plugin Dir: \"%s\""), l_ConfigDir, l_DataDir, l_CacheDir, l_InstallDir, dirpath); + + //The database needs to be opened regardless of GUI mode. + romdatabase_open(); +diff --git a/main/main.h b/main/main.h +index e597ad2..7cec0e0 100644 +--- a/main/main.h ++++ b/main/main.h +@@ -40,6 +40,8 @@ extern char* g_InputPlugin; + extern char* g_RspPlugin; + + char* get_configpath(void); ++char* get_datapath(void); ++char* get_cachepath(void); + char* get_installpath(void); + char* get_savespath(void); + char* get_iconspath(void); +diff --git a/main/plugin.c b/main/plugin.c +index 92752be..b377ff0 100644 +--- a/main/plugin.c ++++ b/main/plugin.c +@@ -66,6 +66,8 @@ static void dummy_readController(int Control, BYTE *Command) {} + static void dummy_keyDown(WPARAM wParam, LPARAM lParam) {} + static void dummy_keyUp(WPARAM wParam, LPARAM lParam) {} + static void dummy_setConfigDir(char *configDir) {} ++static void dummy_setDataDir(char *dataDir) {} ++static void dummy_setCacheDir(char *cacheDir) {} + static void dummy_setInstallDir(char *installDir) {} + static unsigned int dummy; + static DWORD dummy_doRspCycles(DWORD Cycles) { return Cycles; }; +@@ -115,6 +117,8 @@ void (*romOpen_input)() = dummy_void; + void (*keyDown)(WPARAM wParam, LPARAM lParam) = dummy_keyDown; + void (*keyUp)(WPARAM wParam, LPARAM lParam) = dummy_keyUp; + void (*setConfigDir)(char *configDir) = dummy_setConfigDir; ++void (*setDataDir)(char *dataDir) = dummy_setDataDir; ++void (*setCacheDir)(char *cacheDir) = dummy_setCacheDir; + void (*setInstallDir)(char *installDir) = dummy_setInstallDir; + + void (*closeDLL_RSP)() = dummy_void; +@@ -271,7 +275,7 @@ void plugin_scan_directory(const char *plugindir) + /* plugin_set_configdir + * Sets config dir of all plugins that support the SetConfigDir API call to the given dir. + */ +-void plugin_set_dirs(char* configdir, char* installdir) ++void plugin_set_dirs(char* configdir, char* datadir, char* cachedir, char* installdir) + { + plugin* p = NULL; + list_node_t* node; +@@ -286,6 +290,12 @@ void plugin_set_dirs(char* configdir, char* installdir) + setConfigDir = dlsym(p->handle, "SetConfigDir"); + if(setConfigDir) + setConfigDir(configdir); ++ setDataDir = dlsym(p->handle, "SetDataDir"); ++ if(setDataDir) ++ setDataDir(datadir); ++ setCacheDir = dlsym(p->handle, "SetCacheDir"); ++ if(setCacheDir) ++ setCacheDir(cachedir); + setInstallDir = dlsym(p->handle, "SetInstallDir"); + if(setInstallDir) + setInstallDir(installdir); +diff --git a/main/plugin.h b/main/plugin.h +index 35f4f43..4b6264a 100644 +--- a/main/plugin.h ++++ b/main/plugin.h +@@ -38,7 +38,7 @@ extern list_t g_PluginList; + + int plugin_scan_file(const char *filepath, WORD PluginType); + void plugin_scan_directory(const char *plugindir); +-void plugin_set_dirs(char* configdir, char* installdir); ++void plugin_set_dirs(char* configdir, char* datadir, char* cachedir, char* installdir); + void plugin_load_plugins(const char *gfx_name, + const char *audio_name, + const char *input_name, +diff --git a/main/romcache.c b/main/romcache.c +index 5f31cc8..5ec3f40 100644 +--- a/main/romcache.c ++++ b/main/romcache.c +@@ -258,7 +258,7 @@ int rom_cache_system(void* _arg) + if(buffer==NULL) + { + buffer = (char*)malloc(PATH_MAX*sizeof(char)); +- snprintf(buffer, PATH_MAX, "%s%s", get_configpath(), "rombrowser.cache"); ++ snprintf(buffer, PATH_MAX, "%s%s", get_cachepath(), "rombrowser.cache"); + config_put_string("RomCacheFile", buffer); + } + +diff --git a/pre.mk b/pre.mk +index d2eb261..5c7b73c 100644 +--- a/pre.mk ++++ b/pre.mk +@@ -101,6 +101,15 @@ GTK_FLAGS = $(shell pkg-config gtk+-2.0 --cflags) + GTK_LIBS = $(shell pkg-config gtk+-2.0 --libs) + GTHREAD_LIBS = $(shell pkg-config gthread-2.0 --libs) + ++# test for presence of libxdg-basedir ++ifeq ("$(shell pkg-config libxdg-basedir --modversion )", "") ++ $(error No libxdg-basedir development libraries found!) ++endif ++ ++# set libxdg-basedir flags and libraries ++XDGBASEDIR_FLAGS = $(shell pkg-config libxdg-basedir --cflags) ++XDGBASEDIR_LIBS = $(shell pkg-config libxdg-basedir --libs) ++ + # set Qt flags and libraries + # some distros append -qt4 to the binaries so look for those first + ifeq ($(GUI), QT4) +diff --git a/rice_video/Graphics_1.3.h b/rice_video/Graphics_1.3.h +index 0f7843d..ed933b3 100644 +--- a/rice_video/Graphics_1.3.h ++++ b/rice_video/Graphics_1.3.h +@@ -306,6 +306,28 @@ EXPORT void CALL SetConfigDir( char *configDir ); + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: SetRenderingCallback + Purpose: Allows emulator to register a callback function that will + be called by the graphics plugin just before the the +diff --git a/rice_video/TextureFilters.cpp b/rice_video/TextureFilters.cpp +index e59f797..f8341fe 100644 +--- a/rice_video/TextureFilters.cpp ++++ b/rice_video/TextureFilters.cpp +@@ -901,7 +901,7 @@ typedef struct { + CSortedList gTxtrDumpInfos; + CSortedList gHiresTxtrInfos; + +-extern void GetPluginDir( char * Directory ); ++extern void GetDataDir( char * Directory ); + extern char * right(char * src, int nchars); + + BOOL PathIsDirectory(char* name) +@@ -1238,7 +1238,7 @@ const char *subfolders[] = { + void FindAllDumpedTextures(void) + { + char foldername[PATH_MAX]; +- GetPluginDir(foldername); ++ GetDataDir(foldername); + if(foldername[strlen(foldername) - 1] != '/') strcat(foldername, "/"); + strcat(foldername,"texture_dump/"); + +@@ -1279,7 +1279,7 @@ void FindAllDumpedTextures(void) + void FindAllHiResTextures(void) + { + char foldername[PATH_MAX]; +- GetPluginDir(foldername); ++ GetDataDir(foldername); + if(foldername[strlen(foldername) - 1] != '/') strcat(foldername, "/"); + strcat(foldername,"hires_texture/"); + CheckAndCreateFolder(foldername); +@@ -1448,7 +1448,7 @@ void DumpCachedTexture( TxtrCacheEntry &entry ) + char filename2[PATH_MAX]; + char filename3[PATH_MAX]; + char gamefolder[PATH_MAX]; +- GetPluginDir(gamefolder); ++ GetDataDir(gamefolder); + + strcat(gamefolder,"texture_dump/"); + strcat(gamefolder,(const char*)g_curRomInfo.szGameName); +diff --git a/rice_video/Video.cpp b/rice_video/Video.cpp +index 3f3cc05..75e3ad8 100644 +--- a/rice_video/Video.cpp ++++ b/rice_video/Video.cpp +@@ -41,6 +41,8 @@ unsigned char *g_pRDRAMu8 = NULL; + + static char g_ConfigDir[PATH_MAX] = {0}; + ++static char g_DataDir[PATH_MAX] = {0}; ++ + CCritSect g_CritialSection; + + ///#define USING_THREAD +@@ -68,7 +70,7 @@ std::vector frameWriteRecord; + + //--------------------------------------------------------------------------------------- + +-void GetPluginDir( char * Directory ) ++void GetPluginDir( char * Directory ) + { + if(strlen(g_ConfigDir) > 0) + { +@@ -86,7 +88,7 @@ void GetPluginDir( char * Directory ) + { + char path2[PATH_MAX]; + int i; +- ++ + path[n] = '\0'; + strcpy(path2, path); + for (i=strlen(path2)-1; i>0; i--) +@@ -99,7 +101,63 @@ void GetPluginDir( char * Directory ) + DIR *dir; + struct dirent *entry; + int gooddir = 0; +- ++ ++ path2[i+1] = '\0'; ++ dir = opendir(path2); ++ while((entry = readdir(dir)) != NULL) ++ { ++ if(!strcmp(entry->d_name, "plugins")) ++ gooddir = 1; ++ } ++ closedir(dir); ++ if(!gooddir) strcpy(path, "./"); ++ } ++ } ++ int i; ++ for(i=strlen(path)-1; i>0; i--) ++ { ++ if(path[i] == '/') break; ++ } ++ path[i+1] = '\0'; ++ strcat(path, "plugins/"); ++ strcpy(Directory, path); ++ } ++} ++ ++//--------------------------------------------------------------------------------------- ++ ++void GetDataDir( char * Directory ) ++{ ++ if(strlen(g_DataDir) > 0) ++ { ++ strncpy(Directory, g_DataDir, PATH_MAX); ++ // make sure there's a trailing '/' ++ if(Directory[strlen(Directory)-1] != '/') ++ strncat(Directory, "/", PATH_MAX - strlen(Directory)); ++ } ++ else ++ { ++ char path[PATH_MAX]; ++ int n = readlink("/proc/self/exe", path, PATH_MAX); ++ if(n == -1) strcpy(path, "./"); ++ else ++ { ++ char path2[PATH_MAX]; ++ int i; ++ ++ path[n] = '\0'; ++ strcpy(path2, path); ++ for (i=strlen(path2)-1; i>0; i--) ++ { ++ if(path2[i] == '/') break; ++ } ++ if(i == 0) strcpy(path, "./"); ++ else ++ { ++ DIR *dir; ++ struct dirent *entry; ++ int gooddir = 0; ++ + path2[i+1] = '\0'; + dir = opendir(path2); + while((entry = readdir(dir)) != NULL) +@@ -1084,7 +1142,7 @@ EXPORT void CALL ReadScreen(void **dest, int *width, int *height) + GL_RGB, GL_UNSIGNED_BYTE, *dest ); + glReadBuffer( oldMode ); + } +- ++ + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC +@@ -1102,6 +1160,20 @@ EXPORT void CALL SetConfigDir(char *configDir) + /****************************************************************** + NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE + ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir(char *dataDir) ++{ ++ strncpy(g_DataDir, dataDir, PATH_MAX); ++} ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC + Function: SetRenderingCallback + Purpose: Allows emulator to register a callback function that will + be called by the graphics plugin just before the the +diff --git a/rsp_hle/Audio_1.1.h b/rsp_hle/Audio_1.1.h +index ea46b2d..7a6f68b 100644 +--- a/rsp_hle/Audio_1.1.h ++++ b/rsp_hle/Audio_1.1.h +@@ -224,6 +224,28 @@ EXPORT void CALL RomClosed (void); + *******************************************************************/ + EXPORT void CALL SetConfigDir( char *configDir ); + ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetDataDir ++ Purpose: To pass the location where data files should be read/ ++ written to. ++ input: path to data directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetDataDir( char *dataDir ); ++ ++/****************************************************************** ++ NOTE: THIS HAS BEEN ADDED FOR MUPEN64PLUS AND IS NOT PART OF THE ++ ORIGINAL SPEC ++ Function: SetCacheDir ++ Purpose: To pass the location where cache files should be read/ ++ written to. ++ input: path to cache directory ++ output: none ++*******************************************************************/ ++EXPORT void CALL SetCacheDir( char *cacheDir ); ++ + #if defined(__cplusplus) + } + #endif +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/100-fix-desktop-file.patch +++ mupen64plus-1.5+dfsg1/debian/patches/100-fix-desktop-file.patch @@ -0,0 +1,29 @@ +From 3595dd9313514debb665d7bb258b73586eead50b Mon Sep 17 00:00:00 2001 +From: Félix Arreola Rodríguez +Date: Mon, 1 Jun 2009 13:36:40 +0200 +Subject: [PATCH] Fix desktop file +--- + mupen64plus.desktop.in | 5 ++--- + 1 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/mupen64plus.desktop.in b/mupen64plus.desktop.in +index c532dce..e21d512 100644 +--- a/mupen64plus.desktop.in ++++ b/mupen64plus.desktop.in +@@ -1,11 +1,10 @@ + [Desktop Entry] +-Encoding=UTF-8 + Type=Application + TryExec=mupen64plus + Exec=mupen64plus +-Icon=SHARE_DIR/icons/mupen64plus-large.png ++Icon=mupen64plus-large.xpm + Comment=Mupen64Plus Nintendo 64 Emulator + Terminal=false + Name=Mupen64Plus + GenericName=Nintendo 64 Emulator +-Categories=Qt;Game; ++Categories=Application;Game; +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/113-static-binutils-libs.patch +++ mupen64plus-1.5+dfsg1/debian/patches/113-static-binutils-libs.patch @@ -0,0 +1,41 @@ +From ff9d00b51fa348a5ddca5fa74f1d15b310aa7142 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Sat, 15 Aug 2009 13:00:52 +0200 +Subject: [PATCH] Link binutils libraries with unstable abi as static library + + +Signed-off-by: Sven Eckelmann +--- + Makefile | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 4926931..be81163 100644 +--- a/Makefile ++++ b/Makefile +@@ -238,11 +238,12 @@ SHARE = $(shell grep CONFIG_PATH config.h | cut -d '"' -f 2) + ALL = mupen64plus $(PLUGINS) + OBJECTS = $(OBJ_CORE) $(OBJ_DYNAREC) $(OBJ_OPENGL) + LIBS = $(SDL_LIBS) $(LIBGL_LIBS) -lbz2 ++STATIC_LIBS = + + # add extra objects and libraries for selected options + ifeq ($(DBG), 1) + OBJECTS += $(OBJ_DBG) $(OBJ_GTK_DBG_GUI) +- LIBS += -lopcodes -lbfd ++ STATIC_LIBS += /usr/lib/libopcodes.a + endif + ifeq ($(LIRC), 1) + OBJECTS += $(OBJ_LIRC) +@@ -305,7 +306,7 @@ targets: + all: version.h $(ALL) + + mupen64plus: $(MISC_DEPS) version.h $(OBJECTS) +- $(CXX) $(OBJECTS) $(LDFLAGS) $(CORE_LDFLAGS) $(LIBS) -o $@ ++ $(CXX) $(OBJECTS) $(LDFLAGS) $(CORE_LDFLAGS) $(LIBS) -o $@ $(STATIC_LIBS) + ifneq ($(OS), WINDOWS) + $(STRIP) $@ + endif +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/117-ftbfs-kfreebsd.patch +++ mupen64plus-1.5+dfsg1/debian/patches/117-ftbfs-kfreebsd.patch @@ -0,0 +1,41 @@ +From 6e07ea1d674c961fe49d33bfcacbdbcac027dd24 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 1 Sep 2009 17:55:59 +0200 +Subject: [PATCH] Don't stop build of kFreeBSD due to unknown OS + + +Signed-off-by: Sven Eckelmann +--- + glide64/Ini.cpp | 2 +- + glide64/wrapper/glidesys.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/glide64/Ini.cpp b/glide64/Ini.cpp +index bc4faee..23bacf1 100644 +--- a/glide64/Ini.cpp ++++ b/glide64/Ini.cpp +@@ -74,7 +74,7 @@ BOOL INI_Open () + #ifdef _WIN32 + GetModuleFileName (hInstance, path, PATH_MAX); + #else // _WIN32 +-# ifdef __FreeBSD__ ++# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + int n = readlink("/proc/curproc/files", path, PATH_MAX); + #else + int n = readlink("/proc/self/exe", path, PATH_MAX); +diff --git a/glide64/wrapper/glidesys.h b/glide64/wrapper/glidesys.h +index c9716b9..d9138a4 100644 +--- a/glide64/wrapper/glidesys.h ++++ b/glide64/wrapper/glidesys.h +@@ -111,7 +111,7 @@ n** ----------------------------------------------------------------------- + /* Check for OS */ + #if defined(__IRIX__) || defined(__sparc__) || defined(__linux__) || \ + defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ +- defined(__APPLE__) ++ defined(__APPLE__) || defined(__FreeBSD_kernel__) + # define GLIDE_OS GLIDE_OS_UNIX + #elif defined(__DOS__) + # define GLIDE_OS GLIDE_OS_DOS32 +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/series +++ mupen64plus-1.5+dfsg1/debian/patches/series @@ -0,0 +1,23 @@ +100-fix-desktop-file.patch +101-destdir.patch +102-plugin-searchpath.patch +103-dejavu-font.patch +104-as-needed.patch +105-system-libpng.patch +106-system-zlib.patch +107-system-libbz2.patch +108-remove-gln64.patch +109-remove-nondfsg-icons.patch +110-glide64-noasm.patch +111-rice-texturepack-crash.patch +112-rice-screenflickering.patch +113-static-binutils-libs.patch +114-fix-7z-subfolder.patch +115-xdg-basedir.patch +116-ftbfs-dynarec.patch +117-ftbfs-kfreebsd.patch +118-ftbfs-debugger.patch +119-debian-archs.patch +120-ftbfs-glibc210.patch +121-version-string.patch +122-default-optimisations.patch --- mupen64plus-1.5+dfsg1.orig/debian/patches/118-ftbfs-debugger.patch +++ mupen64plus-1.5+dfsg1/debian/patches/118-ftbfs-debugger.patch @@ -0,0 +1,59 @@ +From 31b68cb3414b52a3ac9cb75f80784a55cbcadcb2 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 1 Sep 2009 18:05:02 +0200 +Subject: [PATCH] Define dynarec debugger functions for non-x86 systems + +The debugger checks for valid memory for dynarec. In case of architectures +without dynarec support it should skip this check. The needed macro +is not defined, but can be replaced with an empty check. +Also functions to decode recompiled code have to be implemented as dummy +functions. + +Signed-off-by: Sven Eckelmann +--- + debugger/memory.c | 22 ++++++++++++++++++++++ + 1 files changed, 22 insertions(+), 0 deletions(-) + +diff --git a/debugger/memory.c b/debugger/memory.c +index d6c049d..7598cc6 100644 +--- a/debugger/memory.c ++++ b/debugger/memory.c +@@ -210,6 +210,8 @@ int get_has_recompiled(uint32 addr) + + #else + ++#define CHECK_MEM(address) ++ + char* get_recompiled(uint32 addr, int index) + { + return NULL; +@@ -220,6 +222,26 @@ int get_num_recompiled(uint32 addr) + return 0; + } + ++char* get_recompiled_opcode(uint32 addr, int index) ++{ ++ return NULL; ++} ++ ++char* get_recompiled_args(uint32 addr, int index) ++{ ++ return NULL; ++} ++ ++void * get_recompiled_addr(uint32 addr, int index) ++{ ++ return 0; ++} ++ ++int get_has_recompiled(uint32 addr) ++{ ++ return 0; ++} ++ + void init_host_disassembler(void) + { + +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/103-dejavu-font.patch +++ mupen64plus-1.5+dfsg1/debian/patches/103-dejavu-font.patch @@ -0,0 +1,44 @@ +From d48a9c0fc7e3b2aaa192d550cf70dda4141aa594 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 2 Jun 2009 14:01:51 +0200 +Subject: [PATCH] Use font from ttf-dejavu-core + + +Signed-off-by: Sven Eckelmann +--- + opengl/osd.cpp | 9 +++------ + 1 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/opengl/osd.cpp b/opengl/osd.cpp +index ff55864..43e9bfc 100644 +--- a/opengl/osd.cpp ++++ b/opengl/osd.cpp +@@ -31,7 +31,7 @@ extern "C" { + #include "../main/util.h" + } + +-#define FONT_FILENAME "font.ttf" ++#define FONT_FILENAME "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf" + + #ifdef __WIN32__ + # warning This hack should be fixed at some point +@@ -206,14 +206,11 @@ static float get_message_offset(osd_message_t *msg, float fLinePos) + extern "C" + void osd_init(int width, int height) + { +- char fontpath[PATH_MAX]; +- +- snprintf(fontpath, PATH_MAX, "%sfonts/%s", get_installpath(), FONT_FILENAME); +- l_font = new OGLFT::Monochrome(fontpath, height / 35); // make font size proportional to screen height ++ l_font = new OGLFT::Monochrome(FONT_FILENAME, height / 35); // make font size proportional to screen height + + if(!l_font || !l_font->isValid()) + { +- printf("Could not construct face from %s\n", fontpath); ++ printf("Could not construct face from %s\n", FONT_FILENAME); + return; + } + +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/101-destdir.patch +++ mupen64plus-1.5+dfsg1/debian/patches/101-destdir.patch @@ -0,0 +1,27 @@ +From 40ebfd0c9a145adce94349fc6cd94bcdae1896b4 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 1 Jun 2009 15:20:49 +0200 +Subject: [PATCH] Use DESTDIR during installation + + +Signed-off-by: Sven Eckelmann +--- + Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Makefile b/Makefile +index 0fefdee..aa95eb5 100644 +--- a/Makefile ++++ b/Makefile +@@ -95,7 +95,7 @@ ifeq ($(APPLICATIONSDIR),) + APPLICATIONSDIR := $(PREFIX)/share/applications + endif + +-INSTALLOPTS := $(PREFIX) $(SHAREDIR) $(BINDIR) $(LIBDIR) $(MANDIR) $(APPLICATIONSDIR) ++INSTALLOPTS := "$(DESTDIR)$(PREFIX)" "$(DESTDIR)$(SHAREDIR)" "$(DESTDIR)$(BINDIR)" "$(DESTDIR)$(LIBDIR)" "$(DESTDIR)$(MANDIR)" "$(DESTDIR)$(APPLICATIONSDIR)" + + # list of object files to generate + OBJ_CORE = \ +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/110-glide64-noasm.patch +++ mupen64plus-1.5+dfsg1/debian/patches/110-glide64-noasm.patch @@ -0,0 +1,35 @@ +From 43c4edc94a685737426cb8483b588b07589e36b2 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Wed, 10 Jun 2009 00:10:03 +0200 +Subject: [PATCH] Don't include x86-asm in non-x86 plattforms + + +Signed-off-by: Sven Eckelmann +--- + glide64/rdp.cpp | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/glide64/rdp.cpp b/glide64/rdp.cpp +index eec21d3..d2aa4b6 100644 +--- a/glide64/rdp.cpp ++++ b/glide64/rdp.cpp +@@ -60,8 +60,14 @@ DWORD frame_count; // frame counter + BOOL ucode_error_report = TRUE; + int wrong_tile = -1; + +-#define BYTESWAP1(s1) asm volatile (" bswap %0; " : "+r" (s1) : :); +-#define BYTESWAP2(s1,s2) asm volatile (" bswap %0; bswap %1; " : "+r" (s1), "+r" (s2) : :); ++#if defined(NO_ASM) ++ #define BYTESWAP1(s1) s1 = ((s1 & 0xff) << 24) | ((s1 & 0xff00) << 8) | ((s1 & 0xff0000) >> 8) | ((s1 & 0xff000000) >> 24); ++ #define BYTESWAP2(s1,s2) s1 = ((s1 & 0xff) << 24) | ((s1 & 0xff00) << 8) | ((s1 & 0xff0000) >> 8) | ((s1 & 0xff000000) >> 24); \ ++ s2 = ((s2 & 0xff) << 24) | ((s2 & 0xff00) << 8) | ((s2 & 0xff0000) >> 8) | ((s2 & 0xff000000) >> 24); ++#else ++ #define BYTESWAP1(s1) asm volatile (" bswap %0; " : "+r" (s1) : :); ++ #define BYTESWAP2(s1,s2) asm volatile (" bswap %0; bswap %1; " : "+r" (s1), "+r" (s2) : :); ++#endif + + // global strings + const char *ACmp[4] = { "NONE", "THRESHOLD", "UNKNOWN", "DITHER" }; +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/114-fix-7z-subfolder.patch +++ mupen64plus-1.5+dfsg1/debian/patches/114-fix-7z-subfolder.patch @@ -0,0 +1,26 @@ +From d47c2f2289468f2a1588c572171854d95469177f Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Wed, 26 Aug 2009 23:48:26 +0200 +Subject: [PATCH] Don't segfault when caching 7z archive with subfolders + +Signed-off-by: Sven Eckelmann +--- + main/rom.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/main/rom.c b/main/rom.c +index 74c9643..2772545 100644 +--- a/main/rom.c ++++ b/main/rom.c +@@ -415,6 +415,8 @@ unsigned char* load_archive_rom(const char* filename, int* romsize, unsigned cha + printf("7zip Error# %d\n", status); + break; + } ++ if (outSizeProcessed < 4) ++ break; + if(is_valid_rom(*outBuffer+offset)) + { + *romsize=f->Size; +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/107-system-libbz2.patch +++ mupen64plus-1.5+dfsg1/debian/patches/107-system-libbz2.patch @@ -0,0 +1,64 @@ +From 5dfc86e38d28c5b2058830617c6c9cede38581fc Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 2 Jun 2009 22:02:13 +0200 +Subject: [PATCH] Use libbz2 from system instead of buildin one + + +Signed-off-by: Sven Eckelmann +--- + Makefile | 11 ++--------- + main/rom.c | 2 +- + 2 files changed, 3 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index 3e46873..5f7abac 100644 +--- a/Makefile ++++ b/Makefile +@@ -110,13 +110,6 @@ OBJ_CORE = \ + main/savestates.o \ + main/zip/ioapi.o \ + main/zip/unzip.o \ +- main/bzip2/bzlib.o \ +- main/bzip2/crctable.o \ +- main/bzip2/decompress.o \ +- main/bzip2/compress.o \ +- main/bzip2/randtable.o \ +- main/bzip2/huffman.o \ +- main/bzip2/blocksort.o \ + main/lzma/buffer.o \ + main/lzma/io.o \ + main/lzma/main.o \ +@@ -245,7 +238,7 @@ SHARE = $(shell grep CONFIG_PATH config.h | cut -d '"' -f 2) + # set primary objects and libraries for all outputs + ALL = mupen64plus $(PLUGINS) + OBJECTS = $(OBJ_CORE) $(OBJ_DYNAREC) $(OBJ_OPENGL) +-LIBS = $(SDL_LIBS) $(LIBGL_LIBS) ++LIBS = $(SDL_LIBS) $(LIBGL_LIBS) -lbz2 + + # add extra objects and libraries for selected options + ifeq ($(DBG), 1) +@@ -342,7 +335,7 @@ endif + clean-core: + ifneq ($(OS), WINDOWS) + $(RM_F) ./r4300/*.o ./r4300/x86/*.o ./r4300/x86_64/*.o ./memory/*.o ./debugger/*.o ./opengl/*.o +- $(RM_F) ./main/*.o ./main/version.h ./main/zip/*.o ./main/bzip2/*.o ./main/lzma/*.o ./main/7zip/*.o ./main/gui_gtk/*.o ./main/gui_gtk/debugger/*.o ++ $(RM_F) ./main/*.o ./main/version.h ./main/zip/*.o ./main/lzma/*.o ./main/7zip/*.o ./main/gui_gtk/*.o ./main/gui_gtk/debugger/*.o + $(RM_F) mupen64plus mupen64plus.desktop + $(RM_F) main/gui_qt4/moc_* main/gui_qt4/ui_*.h main/gui_qt4/*.o main/gui_qt4/*.a main/gui_qt4/Makefile + $(RM_F) translations/*.qm +diff --git a/main/rom.c b/main/rom.c +index 8654517..74c9643 100644 +--- a/main/rom.c ++++ b/main/rom.c +@@ -28,7 +28,7 @@ + #include + + #include "zip/unzip.h" +-#include "bzip2/bzlib.h" ++#include + #include "lzma/lzmadec.h" + #include "7zip/7zExtract.h" + #include "7zip/7zCrc.h" +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/102-plugin-searchpath.patch +++ mupen64plus-1.5+dfsg1/debian/patches/102-plugin-searchpath.patch @@ -0,0 +1,28 @@ +From 16f3acaa60b0abb641e1097ffc919439be5dc63a Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 1 Jun 2009 15:46:01 +0200 +Subject: [PATCH] Use /usr/lib/mupen64plus as plugin searchpath + + +Signed-off-by: Sven Eckelmann +--- + main/main.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/main/main.c b/main/main.c +index e355091..d57bafd 100644 +--- a/main/main.c ++++ b/main/main.c +@@ -1476,8 +1476,7 @@ int main(int argc, char *argv[]) + // if it's not set in the config file, use the /plugins/ sub-folder of the installation directory + if (strlen(dirpath) < 2) + { +- strncpy(dirpath, l_InstallDir, PATH_MAX); +- strncat(dirpath, "plugins/", PATH_MAX - strlen(dirpath)); ++ strncpy(dirpath, "/usr/lib/mupen64plus/", PATH_MAX); + dirpath[PATH_MAX-1] = '\0'; + } + // scan the plugin directory and set the config dir for the plugins +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/120-ftbfs-glibc210.patch +++ mupen64plus-1.5+dfsg1/debian/patches/120-ftbfs-glibc210.patch @@ -0,0 +1,45 @@ +From c58fdbeeb23185c58471ed9578671cc404f62857 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 7 Sep 2009 12:33:16 +0200 +Subject: [PATCH] Fix FTBFS using g++-4.4 and libc 2.10 due to missing const keywords + +G++ 4.4 checks correctly if a pointer is converted from const to +non-const without an explicit cast. As glibc 2.10 provides a more +strict declaration of strstr and mupen64plus doesn't use const in +that places, it will fail hard. + +Signed-off-by: Sven Eckelmann +--- + glide64/Combine.cpp | 2 +- + glide64/Main.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/glide64/Combine.cpp b/glide64/Combine.cpp +index 7033f60..a7cbba6 100644 +--- a/glide64/Combine.cpp ++++ b/glide64/Combine.cpp +@@ -11873,7 +11873,7 @@ void InitCombine () + LOG ("InitCombine() "); + memset(&cmb, 0, sizeof(cmb)); + const char *extensions = grGetString (GR_EXTENSION); +- if (char * extstr = strstr(extensions, "COMBINE")) { ++ if (const char * extstr = strstr(extensions, "COMBINE")) { + if (!strncmp(extstr, "COMBINE", 7)) { + LOG ("extensions "); + cmb.grColorCombineExt = (GRCOLORCOMBINEEXT) grGetProcAddress("grColorCombineExt"); +diff --git a/glide64/Main.cpp b/glide64/Main.cpp +index eb96438..d013f1d 100644 +--- a/glide64/Main.cpp ++++ b/glide64/Main.cpp +@@ -784,7 +784,7 @@ BOOL InitGfx (BOOL evoodoo_using_window) + printf("bebefore2\n"); + if (settings.fb_hires) + { +- if (char * extstr = strstr(extensions, "TEXTUREBUFFER")) ++ if (const char * extstr = strstr(extensions, "TEXTUREBUFFER")) + { + if (!strncmp(extstr, "TEXTUREBUFFER", 13)) + { +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/106-system-zlib.patch +++ mupen64plus-1.5+dfsg1/debian/patches/106-system-zlib.patch @@ -0,0 +1,92 @@ +From d549715de09a055384229c7de3950a6928399be6 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 2 Jun 2009 21:12:27 +0200 +Subject: [PATCH] Use zlib from system instead of buildin one + + +Signed-off-by: Sven Eckelmann +--- + Makefile | 1 - + main/zip/ioapi.c | 2 +- + main/zip/unzip.c | 2 +- + main/zip/unzip.h | 2 +- + rice_video/Makefile | 11 ----------- + 5 files changed, 3 insertions(+), 15 deletions(-) + +diff --git a/Makefile b/Makefile +index aa95eb5..3e46873 100644 +--- a/Makefile ++++ b/Makefile +@@ -104,7 +104,6 @@ OBJ_CORE = \ + main/util.o \ + main/cheat.o \ + main/config.o \ +- main/adler32.o \ + main/md5.o \ + main/plugin.o \ + main/rom.o \ +diff --git a/main/zip/ioapi.c b/main/zip/ioapi.c +index 0df3ab1..7e55286 100644 +--- a/main/zip/ioapi.c ++++ b/main/zip/ioapi.c +@@ -22,7 +22,7 @@ + #include + #include + +-#include "zlib.h" ++#include + #include "ioapi.h" + + +diff --git a/main/zip/unzip.c b/main/zip/unzip.c +index 7644ac6..0d9234d 100644 +--- a/main/zip/unzip.c ++++ b/main/zip/unzip.c +@@ -48,7 +48,7 @@ woven in by Terry Thorsen 1/2003. + #include + #include + #include +-#include "zlib.h" ++#include + #include "unzip.h" + + #ifdef STDC +diff --git a/main/zip/unzip.h b/main/zip/unzip.h +index ec7c1ee..faa23af 100644 +--- a/main/zip/unzip.h ++++ b/main/zip/unzip.h +@@ -50,7 +50,7 @@ extern "C" { + #endif + + #ifndef _ZLIB_H +-#include "zlib.h" ++#include + #endif + + #ifndef _ZLIBIOAPI_H +diff --git a/rice_video/Makefile b/rice_video/Makefile +index 02c9ad4..2784bcd 100644 +--- a/rice_video/Makefile ++++ b/rice_video/Makefile +@@ -80,18 +80,7 @@ OBJECTS = OGLGraphicsContext.o \ + CNvTNTCombiner.o \ + GeneralCombiner.o \ + DirectXDecodedMux.o \ +- liblinux/inflate.o \ +- liblinux/crc32.o \ +- liblinux/deflate.o \ + CombinerTable.o \ +- liblinux/infblock.o \ +- liblinux/zutil.o \ +- liblinux/adler32.o \ +- liblinux/trees.o \ +- liblinux/infcodes.o \ +- liblinux/infutil.o \ +- liblinux/inftrees.o \ +- liblinux/inffast.o \ + OGLRenderExt.o + + GTKOBJECTS = \ +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/122-default-optimisations.patch +++ mupen64plus-1.5+dfsg1/debian/patches/122-default-optimisations.patch @@ -0,0 +1,47 @@ +From 23d1fb825ba2dee370046f318ad91e9471b70479 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 8 Sep 2009 21:27:01 +0200 +Subject: [PATCH] Don't override optimisations set by build environment + + +Signed-off-by: Sven Eckelmann +--- + pre.mk | 11 +++-------- + 1 files changed, 3 insertions(+), 8 deletions(-) + +diff --git a/pre.mk b/pre.mk +index 2c74ef5..d208340 100644 +--- a/pre.mk ++++ b/pre.mk +@@ -305,15 +305,13 @@ else + endif + + # set base CFLAGS and LDFLAGS +-CFLAGS += -pipe -O3 -ffast-math -funroll-loops -fexpensive-optimizations -fno-strict-aliasing ++CFLAGS += -fno-strict-aliasing + CORE_LDFLAGS += -lz -lm -lpng -lfreetype -ldl + + # set special flags per-system + ifeq ($(CPU), X86) +- ifeq ($(ARCH), 64BITS) +- CFLAGS += -march=athlon64 +- else +- CFLAGS += -march=i686 -mtune=pentium-m -mmmx -msse ++ ifneq ($(ARCH), 64BITS) ++ CFLAGS += -mmmx -msse + ifneq ($(PROFILE), 1) + CFLAGS += -fomit-frame-pointer + endif +@@ -324,9 +322,6 @@ ifeq ($(CPU), X86) + LDFLAGS += -m32 -m elf_i386 + endif + endif +-ifeq ($(CPU), PPC) +- CFLAGS += -mcpu=powerpc +-endif + ifeq ($(CPU_ENDIANNESS), BIG) + CFLAGS += -D_BIG_ENDIAN + endif +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/109-remove-nondfsg-icons.patch +++ mupen64plus-1.5+dfsg1/debian/patches/109-remove-nondfsg-icons.patch @@ -0,0 +1,101 @@ +From 6a14e09d62dc9bfc62637392da56fb9e43b8ae74 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Wed, 3 Jun 2009 16:38:09 +0200 +Subject: [PATCH] Remove non-dfsg clean icons from build + + +Signed-off-by: Sven Eckelmann +--- + glide64/messagebox_gtk2.c | 26 -------------------------- + glide64/messagebox_qt4.cpp | 24 ------------------------ + 2 files changed, 0 insertions(+), 50 deletions(-) + +diff --git a/glide64/messagebox_gtk2.c b/glide64/messagebox_gtk2.c +index 349666e..28acfd9 100644 +--- a/glide64/messagebox_gtk2.c ++++ b/glide64/messagebox_gtk2.c +@@ -23,12 +23,6 @@ + #include + #include + +-// include icons +-#include "icons/messagebox-error.xpm" +-#include "icons/messagebox-info.xpm" +-#include "icons/messagebox-quest.xpm" +-#include "icons/messagebox-warn.xpm" +- + static gint delete_question_event(GtkWidget *widget, GdkEvent *event, gpointer data) + { + return TRUE; // undeleteable +@@ -127,26 +121,6 @@ messagebox( const char *title, int flags, const char *fmt, ... ) + gtk_box_pack_start( GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 0 ); + gtk_widget_show( hbox ); + +- // icon +- switch( flags & 0x00000F00 ) +- { +- case MB_ICONWARNING: +- icon = create_pixmap_d( dialog, messagebox_warn_xpm ); +- break; +- +- case MB_ICONINFORMATION: +- icon = create_pixmap_d( dialog, messagebox_info_xpm ); +- break; +- +- case MB_ICONQUESTION: +- icon = create_pixmap_d( dialog, messagebox_quest_xpm ); +- break; +- +- case MB_ICONERROR: +- icon = create_pixmap_d( dialog, messagebox_error_xpm ); +- break; +- } +- + if( icon ) + { + gtk_box_pack_start( GTK_BOX(hbox), icon, FALSE, FALSE, 0 ); +diff --git a/glide64/messagebox_qt4.cpp b/glide64/messagebox_qt4.cpp +index e8ffc3b..9bddd86 100644 +--- a/glide64/messagebox_qt4.cpp ++++ b/glide64/messagebox_qt4.cpp +@@ -30,11 +30,6 @@ + #include + #include + +-#include "icons/messagebox-error.xpm" +-#include "icons/messagebox-info.xpm" +-#include "icons/messagebox-quest.xpm" +-#include "icons/messagebox-warn.xpm" +- + #include "Gfx1.3.h" + #include "messagebox.h" + +@@ -75,25 +70,6 @@ int messagebox(const char *title, int flags, const char *fmt, ...) + QWaitCondition w; + e->waitCondition = &w; + +- switch( flags & 0x00000F00 ) +- { +- case MB_ICONWARNING: +- e->image = QImage(messagebox_warn_xpm); +- break; +- +- case MB_ICONINFORMATION: +- e->image = QImage(messagebox_info_xpm); +- break; +- +- case MB_ICONQUESTION: +- e->image = QImage(messagebox_quest_xpm); +- break; +- +- case MB_ICONERROR: +- e->image = QImage(messagebox_error_xpm); +- break; +- } +- + QObject* target = 0; + foreach (QWidget* w, qApp->topLevelWidgets()) { + if (w->inherits("MainWindow")) { +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/108-remove-gln64.patch +++ mupen64plus-1.5+dfsg1/debian/patches/108-remove-gln64.patch @@ -0,0 +1,89 @@ +From 2c67cfabe955f3e02c36f374396adcfdbcf7fe1a Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Wed, 3 Jun 2009 16:29:19 +0200 +Subject: [PATCH] Remove non-dfsg clean glN64 from build + + +Signed-off-by: Sven Eckelmann +--- + Makefile | 8 +------- + tools/regtests/daily-tests.cfg | 1 - + tools/regtests/regression-video.py | 4 ++-- + 3 files changed, 3 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index 5f7abac..4926931 100644 +--- a/Makefile ++++ b/Makefile +@@ -226,7 +226,6 @@ OBJ_QT4_GUI = main/gui_qt4/libgui_qt4.a + PLUGINS = plugins/blight_input.$(SO_EXTENSION) \ + plugins/dummyaudio.$(SO_EXTENSION) \ + plugins/dummyvideo.$(SO_EXTENSION) \ +- plugins/glN64.$(SO_EXTENSION) \ + plugins/ricevideo.$(SO_EXTENSION) \ + plugins/glide64.$(SO_EXTENSION) \ + plugins/jttl_audio.$(SO_EXTENSION) \ +@@ -322,14 +321,13 @@ ifneq ($(OS), WINDOWS) + $(MAKE) -C blight_input clean + $(MAKE) -C dummy_audio clean + $(MAKE) -C dummy_video clean +- $(MAKE) -C glN64 clean + $(MAKE) -C rice_video clean + $(MAKE) -C glide64 clean + $(MAKE) -C jttl_audio clean + $(MAKE) -C rsp_hle clean + $(MAKE) -C mupen64_input clean + $(RM_F) plugins/mupen64_input.$(SO_EXTENSION) blight_input/arial.ttf.c blight_input/ttftoh plugins/blight_input.$(SO_EXTENSION) plugins/mupen64_hle_rsp_azimer.$(SO_EXTENSION) +- $(RM_F) plugins/dummyaudio.$(SO_EXTENSION) plugins/dummyvideo.$(SO_EXTENSION) plugins/jttl_audio.$(SO_EXTENSION) plugins/glN64.$(SO_EXTENSION) plugins/ricevideo.$(SO_EXTENSION) plugins/glide64.$(SO_EXTENSION) ++ $(RM_F) plugins/dummyaudio.$(SO_EXTENSION) plugins/dummyvideo.$(SO_EXTENSION) plugins/jttl_audio.$(SO_EXTENSION) plugins/ricevideo.$(SO_EXTENSION) plugins/glide64.$(SO_EXTENSION) + endif + + clean-core: +@@ -407,10 +405,6 @@ else + copy dummy_video\dummyvideo.dll plugins + endif + +-plugins/glN64.$(SO_EXTENSION): FORCE +- $(MAKE) -C glN64 all +- @$(CP) ./glN64/glN64.$(SO_EXTENSION) ./plugins/glN64.$(SO_EXTENSION) +- + plugins/ricevideo.$(SO_EXTENSION): FORCE + $(MAKE) -C rice_video all + @$(CP) ./rice_video/ricevideo.$(SO_EXTENSION) ./plugins/ricevideo.$(SO_EXTENSION) +diff --git a/tools/regtests/daily-tests.cfg b/tools/regtests/daily-tests.cfg +index fdee13b..001f961 100644 +--- a/tools/regtests/daily-tests.cfg ++++ b/tools/regtests/daily-tests.cfg +@@ -79,7 +79,6 @@ screenshots = 27, 527 + + [Gauntlet Legends.v64] + screenshots = 31, 503, 792, 929, 1038, 1228, 1284, 1412, 1589 +-skipvideo = glN64 + + [Iggy's Reckin' Balls.z64] + screenshots = 142, 493, 531, 726, 824 +diff --git a/tools/regtests/regression-video.py b/tools/regtests/regression-video.py +index 5b2fad0..34e9d6f 100755 +--- a/tools/regtests/regression-video.py ++++ b/tools/regtests/regression-video.py +@@ -137,7 +137,7 @@ def BuildSource(srcdir, buildname, buildmake, istest): + return False + # check for program files + binfiles = [ "mupen64plus" ] +- libfiles = [ "blight_input.so", "dummyaudio.so", "dummyvideo.so", "glN64.so", "glide64.so", "ricevideo.so", ++ libfiles = [ "blight_input.so", "dummyaudio.so", "dummyvideo.so", "glide64.so", "ricevideo.so", + "mupen64_hle_rsp_azimer.so", "jttl_audio.so" ] + filelist = [ os.path.join(srcdir, filename) for filename in binfiles ] + filelist += [ os.path.join(srcdir, "plugins", filename) for filename in libfiles ] +@@ -164,7 +164,7 @@ class RegTester: + self.libdir = os.path.join(bindir, "plugins") + self.generalParams = { } + self.gamesAndParams = { } +- self.videoplugins = [ "glN64.so", "glide64.so", "ricevideo.so" ] ++ self.videoplugins = [ "glide64.so", "ricevideo.so" ] + self.thisdate = str(date.today()) + + def LoadConfig(self, filename): +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/112-rice-screenflickering.patch +++ mupen64plus-1.5+dfsg1/debian/patches/112-rice-screenflickering.patch @@ -0,0 +1,125 @@ +From d9b5a0bfedde0115013d309ae94a17ef3a2e8773 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 10 Mar 2009 02:46:01 +0000 +Subject: [PATCH] Fix screenflickering in some games with rice_video + + +Signed-off-by: Sven Eckelmann +--- + config/RiceVideoLinux.ini | 40 +++++++++++++++++++++++++++++++++++++++- + 1 files changed, 39 insertions(+), 1 deletions(-) + +diff --git a/config/RiceVideoLinux.ini b/config/RiceVideoLinux.ini +index e2a476a..92fc73a 100644 +--- a/config/RiceVideoLinux.ini ++++ b/config/RiceVideoLinux.ini +@@ -253,6 +253,7 @@ Name=SIM CITY 2000 + {325e9b7280d928b7-45} + Name=GAUNTLET LEGENDS + FrameBufferEmulation=1 ++ScreenUpdateSetting=1 + + {0d4302e49dfcfcd2-45} + Name=Diddy Kong Racing +@@ -263,6 +264,7 @@ Name=TONY HAWK PRO SKATER + {b2bb524c6b0fabce-45} + Name=ARMYMENAIRCOMBAT + IncTexRectEdge ++ScreenUpdateSetting=1 + + {b6ce09347a51c8ce-45} + Name=SMASH BROTHERS +@@ -476,6 +478,7 @@ Name=WORMS N64 + {9bbfc5f3e2330f16-45} + Name=Rayman 2 + FastTextureCRC=1 ++ScreenUpdateSetting=1 + + {118a08497e959464-45} + Name=Turok 2: Seeds of Ev +@@ -508,7 +511,7 @@ Name=THPS3 + Name=VIGILANTE 8 + FullTMEM=2 + RenderToTexture=3 +-ScreenUpdateSetting=3 ++ScreenUpdateSetting=1 + + {e7dda46ae7f4e2e3-45} + Name=BATTLETANX +@@ -1001,6 +1004,7 @@ PrimaryDepthHack + + {b6730fb234fc7529-45} + Name=ARMYMEN SARGE 2 ++ScreenUpdateSetting=1 + + {1cfb9046446dd54c-45} + Name=GOLDEN NUGGET 64 +@@ -1071,6 +1075,7 @@ Name=NFL QBC 2000 + + {6960bfac62e1beea-45} + Name=CHOPPER_ATTACK ++ScreenUpdateSetting=1 + + {707ae874d4ae9362-50} + Name=ROADSTERS TROPHY +@@ -1120,6 +1125,7 @@ Name=WILD CHOPPERS + + {57062c866d89fd8d-45} + Name=Army Men Sarge ++ScreenUpdateSetting=1 + + {a18efce89183739f-45} + Name=CyberTiger +@@ -1190,6 +1196,7 @@ Name=TETRIS64 + + {c45db2418667721b-45} + Name=Lamborghini 64 ++ScreenUpdateSetting=1 + + {5007706bfe21d629-45} + Name=MACE +@@ -1292,6 +1299,7 @@ Name=PGA European Tour Go + + {94ad4c21243b1abe-45} + Name=CHOPPER_ATTACK ++ScreenUpdateSetting=1 + + {4716b67578bfda7a-45} + Name=MAGICAL TETRIS +@@ -1541,3 +1549,33 @@ Name=Cruis'n USA + {9723feeb34da74ff-45} + Name=SPACE INVADERS + ++{0e4016ac1a075dcf-45} ++Name=CAL SPEED ++ ++{e8960e1e6b82284e-45} ++Name=CHARLIE BLAST'S ++ ++{a00b78ba34db210f-45} ++Name=STARFOX64 ++ ++{e740d45311b01975-45} ++Name=Diddy Kong Racing ++ ++{134c3f03a7e79e31-45} ++Name=TWINE ++ScreenUpdateSetting=1 ++ ++{ccffc42d215affc8-50} ++Name=AIDYN_CHRONICLES ++ScreenUpdateSetting=1 ++ ++{91e285e16d76504e-45} ++Name=ALL STAR TENNIS '99 ++ ++{df1850253aaed657-45} ++Name=Lode Runner 3D ++ScreenUpdateSetting=1 ++ ++{71458cfac0f9e7bb-45} ++Name=MICKEY USA ++ +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/121-version-string.patch +++ mupen64plus-1.5+dfsg1/debian/patches/121-version-string.patch @@ -0,0 +1,29 @@ +From 714af372e48e2350509e725cc4454409378be379 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 8 Sep 2009 21:18:02 +0200 +Subject: [PATCH] Remove misleading -development in version string + + +Signed-off-by: Sven Eckelmann +--- + pre.mk | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pre.mk b/pre.mk +index c128cf7..2c74ef5 100644 +--- a/pre.mk ++++ b/pre.mk +@@ -293,8 +293,8 @@ ifneq ($(RELEASE),) + PLUGIN_VERSION = $(VER) + else + ifeq ($(shell svn info ./ 2>/dev/null),) +- MUPEN_VERSION = $(MUPEN_RELEASE)-development +- PLUGIN_VERSION = $(MUPEN_RELEASE)-development ++ MUPEN_VERSION = $(MUPEN_RELEASE) ++ PLUGIN_VERSION = $(MUPEN_RELEASE) + else + SVN_REVISION = $(shell svn info ./ 2>/dev/null | sed -n '/^Revision: /s/^Revision: //p') + SVN_BRANCH = $(shell svn info ./ 2>/dev/null | sed -n '/^URL: /s/.*mupen64plus.//1p') +-- +1.6.3.3 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/104-as-needed.patch +++ mupen64plus-1.5+dfsg1/debian/patches/104-as-needed.patch @@ -0,0 +1,42 @@ +From e69243f16e4b6df32c7e9c1f814a79742a0ab7f9 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Tue, 2 Jun 2009 17:37:41 +0200 +Subject: [PATCH] Allow compilation using -Wl,--as-needed + + +Signed-off-by: Sven Eckelmann +--- + blight_input/Makefile | 2 +- + glN64/Makefile | 2 +- + rice_video/Makefile | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/blight_input/Makefile b/blight_input/Makefile +index 1948b0e..139cc25 100644 +--- a/blight_input/Makefile ++++ b/blight_input/Makefile +@@ -48,7 +48,7 @@ clean: + $(CC) -o $@ $(CFLAGS) $(SDL_FLAGS) $(FREETYPE_FLAGS) -c $< + + blight_input.$(SO_EXTENSION): $(OBJ_BLIGHT) +- $(CC) -o $@ -shared $(LDFLAGS) $(PLUGIN_LDFLAGS) $(SDL_LIBS) $(SDLTTF_LIBS) $(FREETYPE_LIBS) $^ ++ $(CC) -o $@ -shared $(LDFLAGS) $(PLUGIN_LDFLAGS) $^ $(SDL_LIBS) $(SDLTTF_LIBS) $(FREETYPE_LIBS) + ifneq ($(OS), WINDOWS) + $(STRIP) $@ + endif +diff --git a/rice_video/Makefile b/rice_video/Makefile +index 62131bf..3de7316 100644 +--- a/rice_video/Makefile ++++ b/rice_video/Makefile +@@ -131,7 +131,7 @@ targets: + all: version.h ricevideo.so + + ricevideo.so: $(OBJECTS) +- $(LD) $(OBJECTS) $(GTK_LIBS) $(LDFLAGS) -o $@ ++ $(LD) $(OBJECTS) $(LDFLAGS) $(GTK_LIBS) -o $@ + $(STRIP) $@ + + clean: +-- +1.6.3.1 + --- mupen64plus-1.5+dfsg1.orig/debian/patches/119-debian-archs.patch +++ mupen64plus-1.5+dfsg1/debian/patches/119-debian-archs.patch @@ -0,0 +1,194 @@ +From d5bcb98e1b2a0556a2a26d72dc1eee9e0ac301a3 Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Wed, 2 Sep 2009 12:26:37 +0200 +Subject: [PATCH] Define new cpu architectures + +mupen64plus must exactly know for which architectures it is build and +which word size and endianness it has. Most architectures supported +by debian weren't listed here. That means that the build would +probably fail or generate unusable binaries. +To better support unknown architectures NO_ASM must be enabled by +default and known good architectures can then override this value. The +user can still force to change that behavior by NO_ASM=0 or NO_ASM=1 +on the commandline. + +Signed-off-by: Sven Eckelmann +--- + pre.mk | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- + 1 files changed, 130 insertions(+), 16 deletions(-) + +diff --git a/pre.mk b/pre.mk +index 5c7b73c..3a2e537 100644 +--- a/pre.mk ++++ b/pre.mk +@@ -19,29 +19,140 @@ + # * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +-# detect system architecture: i386, x86_64, or PPC/PPC64 ++# detect system architecture: i386, x86_64, PPC/PPC64, ALPHA, ARM, AVR32, HPPA, ++# IA64, M32R, M68K, MIPS, S390, SH3, SH4, SPARC + UNAME = $(shell uname -m) ++NO_ASM ?= 1 + ifeq ("$(UNAME)","x86_64") +- CPU = X86 ++ CPU := X86 + ifeq ("$(BITS)", "32") +- ARCH = 64BITS_32 ++ ARCH := 64BITS_32 + else +- ARCH = 64BITS ++ ARCH := 64BITS + endif ++ NO_ASM := 0 ++ CPU_ENDIANNESS := LITTLE + endif +-ifneq ("$(filter i%86,$(UNAME))","") +- CPU = X86 +- ARCH = 32BITS ++ifneq ("$(filter pentium i%86,$(UNAME))","") ++ CPU := X86 ++ ARCH := 32BITS ++ NO_ASM := 0 ++ CPU_ENDIANNESS := LITTLE + endif +-ifeq ("$(UNAME)","ppc") +- CPU = PPC +- ARCH = 32BITS +- NO_ASM = 1 ++ifneq ("$(filter ppc powerpc,$(UNAME))","") ++ CPU := PPC ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG + endif +-ifeq ("$(UNAME)","ppc64") +- CPU = PPC +- ARCH = 64BITS +- NO_ASM = 1 ++ifneq ("$(filter ppc64 powerpc64,$(UNAME))","") ++ CPU := PPC ++ ARCH := 64BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifneq ("$(filter alpha%,$(UNAME))","") ++ CPU := ALPHA ++ ARCH := 64BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++ifneq ("$(filter arm%b,$(UNAME))","") ++ CPU := ARM ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++else ++ifneq ("$(filter arm%,$(UNAME))","") ++ CPU := ARM ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++endif ++ifneq ("$(filter hppa%b,$(UNAME))","") ++ CPU := HPPA ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","ia64") ++ CPU := IA64 ++ ARCH := 64BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++ifeq ("$(UNAME)","avr32") ++ CPU := AVR32 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","m32r") ++ CPU := M32R ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","m68k") ++ CPU := M68K ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifneq ("$(filter mips mipseb,$(UNAME))","") ++ CPU := MIPS ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","mipsel") ++ CPU := MIPS ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++ifeq ("$(UNAME)","s390") ++ CPU := S390 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","s390x") ++ CPU := S390 ++ ARCH := 64BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","sh3") ++ CPU := SH3 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++ifeq ("$(UNAME)","sh3eb") ++ CPU := SH3 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","sh4") ++ CPU := SH4 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := LITTLE ++endif ++ifeq ("$(UNAME)","sh4eb") ++ CPU := SH4 ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG ++endif ++ifeq ("$(UNAME)","sparc") ++ CPU := SPARC ++ ARCH := 32BITS ++ NO_ASM := 1 ++ CPU_ENDIANNESS := BIG + endif + + # detect operation system. Currently just linux and OSX. +@@ -214,7 +325,10 @@ ifeq ($(CPU), X86) + endif + endif + ifeq ($(CPU), PPC) +- CFLAGS += -mcpu=powerpc -D_BIG_ENDIAN ++ CFLAGS += -mcpu=powerpc ++endif ++ifeq ($(CPU_ENDIANNESS), BIG) ++ CFLAGS += -D_BIG_ENDIAN + endif + + # set CFLAGS, LIBS, and LDFLAGS for external dependencies +-- +1.6.3.3 +