[APP] Quake 3 Arena - Windows RT Development and Hacking

All,
Please find the attached binaries for the Windows RT version of ioQuake3 - http://ioquake3.org/
The pak files are not included, so you will need to follow the instructions on the ioQuake3 pages/wiki to install those.
Many thanks to windowsrtc for finding the D3D9 runtime and building the opengl wrapper. All of the necessary runtime binaries are also included in the package. You can also use these runtime files for my ports of Quake and Quake2 to enable much speedier opengl support. Performance in Quake3 is decent at approximately 30 fps on my Surface RT.
Enjoy!
EDIT: so, i ran across this video on youtube -- http://www.youtube.com/watch?v=XXZc0eDydtA -- which pointed out that connecting to internet servers might not be working quite right. I think it should all be fixed now, as I was able to connect to servers on the internet and frag some bots. Please download the 'rel2' binaries if you'd like a fix for this issue. Cheers!
EDIT2: bit of fail on my part, I had improperly named the D3D9 runtime file in the 'rel2' release. Fixed now. Sorry all.

Thanks! Adding to the list.

Anyone struggling to obtain quake 3 pak files, you can buy quake 3 on steam still and use the pak files from there or use OpenArena pak files which are free and a great alternative to the originals.

very nice port.The Quake 3 engine is strong.

I never had doubts that the RT could run ioquake3. Frankly if the raspberry pi could run quake3 then so can the RT. The 5th companion core in the tegra 3 I think is about as powerful as the pi on its own and thats meant to be an underpowered core compared to the main 4. Was just OpenGL standing in the way
I guess the most optimal solution performance wise (not that its needed when you have a nice playable 30fps) would be a directX rewrite of the ioquake3 render code but that would be soooo complicated (was done for the first quake and I think quake 2 though, both DX9 not 11).

I got this error
Point Release files are missing. Please re-install the 1.32 point release.Also check that your Q3 executable is in the correct place and that every file in the baseq3 directory is present and readable. You need to install Quake III Arena in order to play
Any help ???

saarakura said:
I got this error
Point Release files are missing. Please re-install the 1.32 point release.Also check that your Q3 executable is in the correct place and that every file in the baseq3 directory is present and readable. You need to install Quake III Arena in order to play
Any help ???
Click to expand...
Click to collapse
Yea, I'm getting the same error.

saarakura said:
I got this error
Point Release files are missing. Please re-install the 1.32 point release.Also check that your Q3 executable is in the correct place and that every file in the baseq3 directory is present and readable. You need to install Quake III Arena in order to play
Any help ???
Click to expand...
Click to collapse
Did you actually bother putting the quake 3 PAK files in? Because thats what the error means. This is just the game engine, not the content. It is illegal for bjfoster to distribute the content too, you need to provide yourself by buying quake 3 on steam (its still there) or using the OpenArena files.

saarakura said:
I got this error
Point Release files are missing. Please re-install the 1.32 point release.Also check that your Q3 executable is in the correct place and that every file in the baseq3 directory is present and readable. You need to install Quake III Arena in order to play
Any help ???
Click to expand...
Click to collapse
•Copy pak0.pk3 of your Quake3 CD (or from the demo) to the quake3/baseq3 directory.
•Download the Quake3 1.32 point release and copy pak1-pak8.pk3 to quake3/baseq3
that should be all u need to do

bfosterjr said:
•Copy pak0.pk3 of your Quake3 CD (or from the demo) to the quake3/baseq3 directory.
•Download the Quake3 1.32 point release and copy pak1-pak8.pk3 to quake3/baseq3
that should be all u need to do
Click to expand...
Click to collapse
Thanks its working!!!! amazing!

Please attach the source code to comply with the GPL

Samuelgames said:
Please attach the source code to comply with the GPL
Click to expand...
Click to collapse
ioQuake3 Source code available here:
http://ioquake3.org/get-it/source-codes/
It can be built for Windows ARM from original sources without code modification. Very well organized codebase!
GLdirect Source code available here:
http://sourceforge.net/projects/gldirect/
It can also be built for Windows ARM from original sources without code modification.
Feel free to PM me if you need require more information.
Cheers!

bfosterjr said:
ioQuake3 Source code available here:
http://ioquake3.org/get-it/source-codes/
It can be built for Windows ARM from original sources without code modification. Very well organized codebase!
GLdirect Source code available here:
http://sourceforge.net/projects/gldirect/
It can also be built for Windows ARM from original sources without code modification.
Feel free to PM me if you need require more information.
Cheers!
Click to expand...
Click to collapse
Scratch all that..
While it is not necessary to make changes to the code.. it will help keep the code a bit cleaner.. and reduce the amount of pre-processor hacks you need to use. So please head here instead... it'll be much more helpful for you...
https://windowsrtdev.codeplex.com/
I've gone through the ioQuake3 code again and rebuilt/modified it without relying on disgusting pre-processor hacks. Instead I've simply introduced a "WIN32_ARM" pre-processor. Simply look for that to see what I've complied out and changed.
I hope this helps! happy hacking!

bfosterjr said:
Instead I've simply introduced a "WIN32_ARM" pre-processor.
Click to expand...
Click to collapse
Really no need to introduce extra preprocessor defines as there are enough builtin. For example I check for the ARM CPU and desktop family in my #ifdefs. If this is true - then we are on RT.
Can't tell the exact macro as I'm far away from Visual Studio now.

mamaich said:
Really no need to introduce extra preprocessor defines as there are enough builtin. For example I check for the ARM CPU and desktop family in my #ifdefs. If this is true - then we are on RT.
Can't tell the exact macro as I'm far away from Visual Studio now.
Click to expand...
Click to collapse
Yep - i know the preprocessor defines you're referring too.. and sometimes i use those instead. Just depends on what works best in the code for me.
Cheers!

bump.
new binaries to fix issues connecting to servers on the internet -- frag on my friends!

I'm really interested by this port, but i dont know where and how can i find the files for the game?
Is it possible with the demo files ? and where i can find a demo ? on french repository no thinks works ...
thank's

Alias84270 said:
I'm really interested by this port, but i dont know where and how can i find the files for the game?
Is it possible with the demo files ? and where i can find a demo ? on french repository no thinks works ...
thank's
Click to expand...
Click to collapse
You can buy the game on steam if you want the datafiles for the full version.
I googled "quake 3 demo" and got a few good hits. All in english but I don't think there was a french localised version, the game language doesnt matter so much though because the only real text are the menu buttons and settings screen. Your english seems reasonably good so I presume you should be able to tweak the settings to your liking (or with the aid of google translate or similar). The demo files will work though.
The final option is OpenArena: http://www.openarena.ws/smfnews.php
They have made an open source clone game of quake 3 arena, doesnt utilise any copyrighted content from the base game. Very fun and of course free. Download button is on the left side of the page somewhere. You should be able to copy the baseoa folder from the OpenArena download and stick it next to the baseq3 folder in this ioQuake3 port.

SixSixSevenSeven said:
You can buy the game on steam if you want the datafiles for the full version.
I googled "quake 3 demo" and got a few good hits. All in english but I don't think there was a french localised version, the game language doesnt matter so much though because the only real text are the menu buttons and settings screen. Your english seems reasonably good so I presume you should be able to tweak the settings to your liking (or with the aid of google translate or similar). The demo files will work though.
The final option is OpenArena: http://www.openarena.ws/smfnews.php
They have made an open source clone game of quake 3 arena, doesnt utilise any copyrighted content from the base game. Very fun and of course free. Download button is on the left side of the page somewhere. You should be able to copy the baseoa folder from the OpenArena download and stick it next to the baseq3 folder in this ioQuake3 port.
Click to expand...
Click to collapse
Well, i think the best idea is to buy it, becaus i dont think it's really expansive on steam ?
No i dont have any probleme with game in english, it's just that i wanted to find the game demo and i got only french answer on google.
Thank's i will see to buy it on steam ?
Is the game work online ? it will be fine during boring afternoon at school.

Alias84270 said:
Well, i think the best idea is to buy it, becaus i dont think it's really expansive on steam ?
No i dont have any probleme with game in english, it's just that i wanted to find the game demo and i got only french answer on google.
Thank's i will see to buy it on steam ?
Is the game work online ? it will be fine during boring afternoon at school.
Click to expand...
Click to collapse
its £13.99 on steam in the UK which is quite alot considering its an old game. But when I fired up steam to check the price it turns out that the demo is also available on steam.
Being an old game it doesnt have matchmaking or dedicated servers hosted by the developers. It does still have multiplayer though. One PC can act as a non dedicated host (or there is a dedicated server tool available), then other PC's on the same local network can see and join the game. Over the internet you will have to start dealing with port forwarding for the host and manually type in IP addresses for the client.
Its certainly a fun multiplayer game for a boring school afternoon. Used to play it in my school, 14 player LAN was chaos (I came 2nd )
EDIT:
The quake collection is 16.99 on steam. That includes quakes 1, 2 and 3 plus all the extra mission packs. I think the engines for either quake 1 or 2 were ported somewhere, not brilliant performance if I recall but might be worth considering.
EDIT2:
http://forum.xda-developers.com/showthread.php?t=2092348
Both quake 1 and 2 are in there

Related

[GAME][2.1+/3.1+] MAME4droid Reloaded- MAME 0.134u4 port for Android

Hi, I'm the MAME4droid developer.
I have released a new MAME port called MAME4droid Reloaded that is based on MAME 134u4. It has savestates
This MAME4droid version is targeted to Dual-Core devices (1GHz and 512MB RAM minimum), because it is based on a high specs 2009 PC MAME build.
Anyway don't expect arcade games of the 90 to work at full speed. With some games that are really bad optimized (like outrun or mk series) you will
need at least a 1.5 ghz dual-core device. This is related to MAME build used, since it is targeted to high specs PC's as i said before.
This version doesn't have an uml back end ARM dynamic recompiler, which means drivers based on high specs arcade CPUs won't be playable
(it has not sense since this games will be slow in any case).
Said that, with a low end device, use at your own risk. I suggest you use MAME4droid (0.37b5) instead.
Remember that games that can be emulated on both MAME4droid versions will run much faster on MAME4droid (0.37b5) than on MAME4droid Reloaded (0.134),
and will drain less battery.
This version emulates over 8000 different romsets.
Please, try to understand that that with that amount of games, some will run better than others and some might not even run with MAME4droid Reloaded.
Please, don't email me asking for a specific game to run.
Tips to help performance: use lower quality sound or switch it off. Disable stick and buttons animations and disable smooth scaling also.
After installing, place your MAME-titled zipped roms in /sdcard/ROMs/MAME4droid/roms folder.
MAME4droid Reloaded uses only '0.134u4' romset.
Features
------------
Save States
Support for 2.1 and upper Android devices.
Native support for Android Honeycomb tablets.
Autorotate.
HW Keys remapping.
Touch Controller can be shown/hidden.
Smooth image.
Overlay Filters, scalines, CRT..
Digital or Analog touch selectable.
Animated touch stick or DPAD.
Button Layout customizable control.
iON's iCade and iCP (as iCade mode) external controllers supported.
Wiimote support using WiiCrotroller Market app.
Tilt Sensor as left/right.
1 to 6 buttons optionally shown.
Options for video aspect ratio, scaling, rotate.
I haven't published to market yet, as this is an early release and I'm waiting for comments and (hopefully very few) bug reports.
As a new user I'm not allowed to post links, so to download the apk, search for iMAME4all at google code site.
Maybe this is of interest to you or any of you friends.
Mod edit: Here's the link.
Just tried it. Very good. Thanks a lot! Keep up the good works
I would test it but I can't find roms with that romset
Will give it a shot when I get home.
What does this set add over the current Mame4droid set? Do we have support for CPS2 roms yet?
Hi! Thanks for the hardwork!!!!
Will this emu have uni_bios support etc¿¿¿
Sent from my SPH-D710 using XDA App
from where to download roms for this....??
This version supports very current mame romset and many games work smooth on samsung galaxy S, it supports neogeo cps1/2 i tried cps3 but somehow cant get proper version/romset.
It supports MK1/2/3 but that would require 2 cores.
Many games work smoother when you set frame skip to 6 instead of auto and when you set video render to GL.
Its great ! basically like MAME on PC.
People would be definitely happy cause its really nice to have such new romset on portable device
For roms try to search some internetz i dont think anyone would give you links here cause its forbidden on some forums.
http://code.google.com/p/imame4all/
Oh finally Double Dragon on my android! Great work! thanks
Just tried NOCD SFIII and it recognized the game and loaded it but then on 100 % i was dropped out of the emu , similar situation is with PGM game Martial Masters and a couple others.But im not sure if its rom version mismatch or what.
Im not SFIII fan so i didnt did research about its rom sizes and names.
thanks a lot for the great release!!
can anyone provide MAME 0.134u4 DAT file for cmpro?
never mind, found it.
if anyone needed it, i'm attaching it to this post.
thank you soooooooooooo much
i hate tiger mame
now you have save stats
bu pleae , where isw the rom
i've searched romhustler , emuparadise .... none oif the not works , it says that the rom is not compatible
please help
mehdi.moha said:
bu pleae , where isw the rom
i've searched romhustler , emuparadise .... none oif the not works , it says that the rom is not compatible
Click to expand...
Click to collapse
find the latest MAME ROM set (0.145), then rebuild it with cmp and 0.134u4 DAT file i provided before.
then try MAME Rollback ROM set (0.145) for fills.
thank you man
which tools can help me to rebuilt that ?
i'm press thanks button again
mehdi.moha said:
please , jut giv a link to me pleaseeeeee
Click to expand...
Click to collapse
such links are not allowed here. search internet for "pleasuredome".
thank you man
how can i rebuilt that , i have .145 rom and .dat file , can you please help me to find a re builder tools ?
i'll press thank button again
mehdi.moha said:
which tools can help me to rebuilt that ?
Click to expand...
Click to collapse
search internet for "clrmamepro" (i can't post links since i don't have enough posts).
send me a PM mate
i'l thank you enough
===================
ok i've download clemamepro and load the .dat , but how can i load mame roms to combin with .dat file ?!
thank you for you kindly help
---------- Post added at 11:28 AM ---------- Previous post was at 10:48 AM ----------
guys please
where can i download the .134u4 roms ?
is there any hope to help ?!?
mehdi.moha said:
where can i download the .134u4 roms ?
Click to expand...
Click to collapse
you was already told that, you won't find complete 0.134u4 set anywhere. do these steps to get it:
1. register on pleasuredome.
2. download [FREE] MAME 0.145 ROMs torrent.
3. get cmpro 4.03a.
4. get MAME4droid Reloaded 1.0 WIP.dat from my post above.
5. put this dat file to datfiles directory of cmpro.
6. load it with default settings.
7. go to Rebuilder.
8. define source folder with MAME 0.145 ROMs and any new folder for rebuilt ROMs.
9. press Rebuild.
10. after rebuild is done, get [FREE] MAME - Rollback ROMs (v0.145) torrent.
11. go to Settings/ROM-Paths in cmpro.
12. define folder with recently rebuilt ROMs.
13. go to Settings/Add-Paths in cmpro.
14. define folder with MAME - Rollback ROMs (v0.145) here.
15. go to Scanner, uncheck Samples and CHDs and press New scan.
16. check all squares in Fix column.
17. cmpro should scan your rebuilt ROM set and add missing files from rollback set.
Very nice write up!

Quake 2 on Windows RT

Only created my account today, so I don't have enough posts to put this in the developer section. Maybe someone can help me out.
I managed to get the Quake2 source from Ids ftp server to build (with a lot of warnings) for ARM in Visual Studio 2012.
I've attached a screen shot and the binaries to this post.
All you need to do is drop the pak0.pak and players folder into baseq2.
Enjoy!
EDIT: should also mention that this is a native port (not .net or winrt) -- props to XDA guys for the hack!
EDIT2: for those with errors, keep in mind you need the pak files and players folder from the quake2 install for this to work (or you can grab them from the demo). Google is your friend! . If you encounter the famous "water crash" then run "sw_waterwarp 0" in the quake console.
EDIT3: For a joke. I've added the OpenGL Quake2 renderer and a software based OpenGL implementation (built from an older version of Mesa3D) as attachments. Given that Windows RT doesn't have support for OpenGL this is probably as good as its going to get without a port that has Direct3D support. While the OpenGL version looks much better, be warned.. it runs __very__ slow. If you want to give it a try, just go into video options and change the 'driver' option to "default opengl". Enjoy!
EDIT4: So.. in an effort to clean up some of the bugs, I stumbled upon KMQuakeII which has an 'unofficial' 3.23 patch for the Quake 2 source. I've managed to compile that version of the source for ARM. I was hoping this would fix the full screen issues, but it didn't. Regardless, there are probably worthwhile bug fixes anyway.. so I'm posting it here. There are also extra video modes in this version (very easy to add btw!) however the 1366x768 mode didn't work correctly on my Surface.
Well done! Link added to the list. Much appreciated...
bfosterjr said:
Only created my account today, so I don't have enough posts to put this in the developer section. Maybe someone can help me out.
I managed to get the Quake2 source from Ids ftp server to build (with a lot of warnings) for ARM in Visual Studio 2012.
I've attached a screen shot and the binaries to this post.
All you need to do is drop the pak0.pak and players folder into baseq2.
Enjoy!
EDIT: should also mention that this is a native port (not .net or winrt) -- props to XDA guys for the hack!
Click to expand...
Click to collapse
cool, seems to run nicely, -just using one core.
At first : Thanks for the work!
But i get an Error :"Couldn't load pics/colormap.pcx
(on Surface Jailbrocken)
I can't manage to open it. It says there is an error.
Another question... I want to do it for Bluestacks. Do you know anyone that could've done this? Thank you.
save_jeff said:
At first : Thanks for the work!
But i get an Error :"Couldn't load pics/colormap.pcx
(on Surface Jailbrocken)
Click to expand...
Click to collapse
Make sure you have the pak files and players folder from your quake2 install in the baseq2 folder. If you don't own quake2 then you can grab these files from the quake2 demo install (google for it). Good luck!
Awesome job!
I got mine working smoothly
There is some issues that often when I load saves the game crashed (quake2.exe has stopped working)
I have no idea. Save game works perfectly and start new game works as well.
Looks like this guy back in 2005 have the same problem (except he is using... Amiga?): ht tp://eab.abime.net/showthread.php?t=17808
Tanks i did not know that ;]
I Will get a Demo right now ans try ist.
Does it work with any Version of quake II ?
---------- Post added at 10:54 PM ---------- Previous post was at 10:29 PM ----------
Okay now it works like a charm! Realy impressiv
shog7n said:
Awesome job!
I got mine working smoothly
There is some issues that often when I load saves the game crashed (quake2.exe has stopped working)
I have no idea. Save game works perfectly and start new game works as well.
Looks like this guy back in 2005 have the same problem (except he is using... Amiga?): ht tp://eab.abime.net/showthread.php?t=17808
Click to expand...
Click to collapse
Yeah, there could be several bugs in it. This is built straight from iD's source. There are many other 'ports' of quake2 that have encountered and (in some cases) fixed various bugs. Still, its extremely playable even with a few annoying bugs!
I cant get mine to go to full screen.... is this usual behaviour?
advancedservers said:
I cant get mine to go to full screen.... is this usual behaviour?
Click to expand...
Click to collapse
Yep. The pure Quake2 source has known issues with full screen on "odd" resolutions. Given the time frame for when Quake2 was developed.. the 1366 x 786 resolution that is common today doesn't make any sense that's why its "not supported". There were some unofficial patches added to Quake2 many years ago to add wide screen support and more resolutions. A lot of people also fixed the problem by just using the OpenGL version (which I could also provide binaries for.. but its _dog_ slow). What I've ported here is the 'software render' which got very little attention once the '3d boom' hit. If I get bored, I may see if I can get full screen working in the software renderer.
Joystick or Xbox Controller?
App is cool and runs well with mouse or keyboard but I have tried joystick and Xbox controller (both recognised by WinRT) and app ignores both. I have turned on Joystick under options.
I didnt get any bugs yet.
But Fullscreen would be nice
Woww this game bring me so many good memories nice work!!!
advancedservers said:
I cant get mine to go to full screen.... is this usual behaviour?
Click to expand...
Click to collapse
Same here. 800x600 is the best resolution to me..
Btw can you load your saves after close the game and restart it?
For what its worth, I've updated the original post with 'newer' binaries and software based OpenGL support. The fullscreen thing is also bothering me so I'll put some effort into that over the next couple days -- hopefully its been fixed in a different Quake2 port and I just need to migrate the code over. Cheers!
If you don't mind me asking where did you get the source files from? I would have done this two days ago but I couldn't open the project files from id's github. I then tried quake 3 and doom 3 but getting those working is a different problem entirely. Those games have inline assembly in them that I don't have the skill to replace.
johnnyfives12 said:
If you don't mind me asking where did you get the source files from? I would have done this two days ago but I couldn't open the project files from id's github. I then tried quake 3 and doom 3 but getting those working is a different problem entirely. Those games have inline assembly in them that I don't have the skill to replace.
Click to expand...
Click to collapse
The source came straight from ftp.idsoftware.com. There is a lot of pain in getting a working vs2012 solution file and convincing the source that Win32 does not imply x86! Many issues with libs and older CRT functions too. Just takes time, patience and good experience with VS & C code.
You're absolutely right about Q3 or Doom3. They will require an overhaul and will need to be ported to Direct3D10+. Sadly I don't have the spare time to get _that_ involved -- though I'm happy to help if someone wants to lead the charge.
Cheers
Game crashes sometimes when I try to load a saved game. Also performance is far from what I expected. I remember playing it on my Nokia n95 with software renderer and it was fluid, on surface higher resolutions cause serious performance degradation. The more I use desktop apps ported to Windows RT(quake, dosbox) the more I think that tegra 3 suck.
bartekxyz said:
Game crashes sometimes when I try to load a saved game. Also performance is far from what I expected. I remember playing it on my Nokia n95 with software renderer and it was fluid, on surface higher resolutions cause serious performance degradation. The more I use desktop apps ported to Windows RT(quake, dosbox) the more I think that tegra 3 suck.
Click to expand...
Click to collapse
Same loading problem here...
But it runs pretty fluid on my Surface...

Quake 1 (w/OpenGL) on Windows RT

Sorry for the 'general post' .. but again, I don't have enough posts to have access to the developer section.
Hopefully this will make someone happy.
After playing with Quake 2..
http://forum.xda-developers.com/showthread.php?t=2097092
I took a stab at Quake 1. Code was only slightly harder to port because of the old MGL lib. Anyway.. here it is.. Quake 1 (with optional software OpenGL support --- VERY SLOW)
Game runs very well (non-opengl) and full screen support works nicely.
Because its difficult to extract, I've included the PAK file from the _demo_. If anyone has any issues with that, please contact me and I'll replace it with a binary package. As is, you should be able to just extract it and run WinQuake.exe (or glquake.exe if you'd prefer a slower experience!)
Enjoy all!
I just had to register to say: I love you, man. :good:
Awesome! Really thank you for your work!:good: I just finished the first episode without bug.
Btw, what files do I need to replace if I have the full version of Quake 1? Just pak0.pak or the entire id1 folder (except the saves)?
Nice. Played Q1 opengl online a long time
Sent from my LG-P990 using xda app-developers app
shog7n said:
Awesome! Really thank you for your work!:good: I just finished the first episode without bug.
Btw, what files do I need to replace if I have the full version of Quake 1? Just pak0.pak or the entire id1 folder (except the saves)?
Click to expand...
Click to collapse
You should be able to just copy the entire ID1 folder from the Quake install. I'm not sure if the saves will work or not.. I haven't tried.
Enjoy!
That's AWESOME.
I remember playing Q1 so much on business trips on my crappy laptop so many years ago.
I'll have to try this out with my surface.
thanks!
Awesome! This is really great. I'm also trying to get enough posts to be able to participate in the discussion / porting of stuff to Windows RT. It's great to see such a thriving development / porting community arise so quickly!
Superb
This runs incredibly, I thought it would be fiddly, but it just works. I just need to enable mouselook and I am all set. I am also keen to get my ten posts up and engage on the dev thread. I have several things that I think will port over quite nicely.
I can't control the window that it opened in. Can't maximize (running in small window) and most importantly, can't close the game. All the buttons in the upper right of the window wont work.
Please help. Thanks.
(Post Deleted)
does it work with controller (xbox)
has anyone tried using the d3d wrapper as described in http://forum.xda-developers.com/showpost.php?p=42277354&postcount=29 ?
I don't have a surface, but i've been quite interested in getting one as the prices are < $200 now.
If the surface only had STEAM support I would have gotten it day 1.

Microsoft Surface RT - Mame Port

Dear all.
I have built the latest version of Mame for hacked Surface RTs.
First of all, I'm aware that this post should be on this http://forum.xda-developers.com/showthread.php?t=2092348 thread but I don't have enough posts. Perhaps someone could x-link...
There were some very basic changes to the source to enable it to build, most particularly around the lack of dinput on the Surface (keyboard and mouse still work fine nonetheless). Most of the work was building the compilation environment. Broadly:
(a) I followed the instructions at http://forum.xda-developers.com/showthread.php?t=2096820 to make a basic VS environment to cross-compile for the Surface target. Note that you will not need to go into the VS IDE for anything, the build is done entirely on the command line (but we are not ready for that just yet). Note also that I cannot remember whether had to change c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h so that the line:
#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 0
read
#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1
but good to check nonetheless. It is, however, necessary to pull the dlls from a Surface and convert them to libs as described in that page. Also, I worked on a Windows 7 machine and that was OK (so Windows 8 for a build machine is not necessary).
(b) the most recent versions of Mame already come with options to build from Visual Studio, I followed the instructions at http://mamedev.org/tools/ - the easy way - to install mingw64-32 (this page describes building Mame using mingw - we are not doing this, we are just getting this part of the toolchain in place). I then followed the instructions at http://mamedev.org/devwiki/index.php?title=Building_MAME_using_Microsoft_Visual_Studio_compilers but the relevant configuration (for ARM cross-compilation) is: c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86_arm and not as stated on that page.
(c) Unfortunately, we can not just get the sources, patch them and make as Mame builds a number of tools in order to process various source files. These must run on the build machine (x86) and not the target machine (arm). The Mame makefile already has an option to do build these tools "make buildtools" so this must be run first to create the build tools natively. What results is not quite what is needed. Firstly, Mame builds the buildtools into a "obj/windows" folder whereas for a VS compile the tools need to be in a "obj/vwindows" folder. Secondly, it builds some tools that should be linked into the ARM executable rather than x86 compiled. This can be sorted by just copying all files in "obj/vwindows/build" to a new folder "obj/vwindows/build".
(d) As stated above, there are a couple of files that need minor patching. I have included these in the src folder in zip file linked below. These should be extracted in the same folder as the Mame source code 0.148 (which is available at http://www.mamedev.org/oldrel.html) such that it overwrites the relevant Mame sources (from Explorer you will probably have to change the default extract folder). The zip file includes the patched Mame sources so you don't need to download the sources or patch.
(e) To make the ARM executable the make recipe is as follows: "make MSVC_BUILD=1 CROSS_BUILD=1 NOWERROR=1 SUBTARGET=tiny". Note that the build does not like to operate from a folder that has a space in the path. Best to compile from "c:\surfacemame" or the like rather than "...My Documents".
To make this easier for everyone, I have prepared a batch file such that if you: (i) follow (a) and (b) above to create the build environment (mingw must be installed to "C:\mingw64-w32" and the relevant binaries should be in "C:\mingw64-w32\bin"); (ii) get and extract the Mame sources (from the zip or from mamedev.org); (iii) (if sources are downloaded from mamedev.org) patch the sources with the files in the zip "src" folder, you can then just double click go.bat (which must be in the same folder as the Mame makefile). Build takes about 20-30 mins on my machine.
The result will be a vmametiny.exe which can be copied to the surface to a folder with a "roms" folder in it with your roms. To get the mouse to work, vmametiny.exe will have to be run with the -mouse option. The easiest way to do this is (on the Surface) create a shortcut to the exe, then edit the properties of the shortcut to add " -mouse" (without quotes but with a space after vmametiny.exe).
To make this even easier, I have included the executable in the zip. To comply with the Mame licence, I have to include the patched sources as well (which is why the file is so large).
There is a catch. Try as I might I could not get the full Mame build to work - the Mame build process programatically creates a file driverlist.c which is then compiled and linked into the executable. For some reason this did not work for me (I tried a lot of different approaches). The tiny build of Mame does not fully use this process and so works. The catch is that the tiny build only supports a very limited subset of games, I have built on this substantially by editing the relevant files tiny.lst and tiny.mak to include loads of popular games but it is a slow process as the dependencies have to be worked on a game by game basis (note that some of the dependencies may not have been fully worked out so Mame could throw an error (somtimes with blank dialog boxes) so just click OK until the boxes disappear and the game runs). I will update the zip at some point so that it runs (say) the top 250 games. I would love it if someone would help with this tiny build problem...
Zip file is here ... EDIT: this version now outdated, see link later in thread
Finally, the speed of most of the games I tried was excellent (eg rtypeleo and smashruns at 100%). The big disappointment was Atari vector games that only run at 50% speed. I don't know why this is the case but perhaps someone could help with that too...
Have fun all.
BBUK
That looks great, do you have a list of compatable games and which version so i can test this?
Howdy
thereaperman said:
That looks great, do you have a list of compatable games and which version so i can test this?
Click to expand...
Click to collapse
The mame version is 0.148. The list of games is listed in src\mame\tiny.lst
Note that even though a game is listed there - and the rom is of the correct version, this version of Mame may complain that the rom is not correct. This is because there are multiple versions of the same game with different roms and I made an incorrect assumption as to how tiny.lst would work - as a result whether a correct rom will operate is a bit hit and miss.
I know, however, what's wrong and I will work on this.
BBUK said:
Howdy
The mame version is 0.148. The list of games is listed in src\mame\tiny.lst
Note that even though a game is listed there - and the rom is of the correct version, this version of Mame may complain that the rom is not correct. This is because there are multiple versions of the same game with different roms and I made an incorrect assumption as to how tiny.lst would work - as a result whether a correct rom will operate is a bit hit and miss.
I know, however, what's wrong and I will work on this.
Click to expand...
Click to collapse
Thanks I will get hold of some roms and give it a test
thanks
Thanks for your interest but I would hang fire on testing for a few hours until I have tested, packaged and uploaded a new version. I think I have solved the problem with the tiny build so I can now build the full version of Mame with the only problems I can see being:
(a) depressingly slow performance on Atari vector games (I will look at this next unless someone else volunteers); and
(b) the non-inclusion of 10 or so games from Electronic Devices and a few from Konami (the relevant CPU would not build as ARM).
(Background - the problem I was having had nothing to do with how Mame builds and everything to do with me stupidly putting a comment in the middle of a line).
A final note for someone contemplating a build, the executable will now be called vmame.exe (i.e. not vmametiny.exe as stated above), the make recipe should have SUBTARGET=mame rather than SUBTARGET=tiny and the build does not like running over multiple cores very much - just be aware of this if you are thinking of including a -jx on the make command line.
Rgds
Hi all.
Updated version now uploaded - this is now the full version of Mame. I have not tested it much but seems to be OK.
Link: http://www.mediafire.com/download.php?di5nm1zdhydld2c Edit: I had better performance from the version linked below but I have left this here in case anyone wold rather run Mame 0.148 rather than 0.145.
Enjoy - I would be grateful for any feedback on how well this works for you.
very good.all gamesI play get full fps.and its interesting to play 1944x by mouse.I tried the onscreen joystick written by netham45 but it doesnt work.
windowsrtc said:
very good.all gamesI play get full fps.and its interesting to play 1944x by mouse.I tried the onscreen joystick written by netham45 but it doesnt work.
Click to expand...
Click to collapse
why is it so difficult to port xinput on mame or FBA??? it would be awsome to play with xbox 360 pad
it is just a question.
thanks
pumaa said:
why is it so difficult to port xinput on mame or FBA??? it would be awsome to play with xbox 360 pad
it is just a question.
thanks
Click to expand...
Click to collapse
I think its easy for the game developers to port xinput.but I am not a programmer so its so difficult for me.
Hi all.
I have now got an acceptable level of performance from the Atari vector games through a combination of compiler optimisations, use of an earlier version of Mame and a Mame command line switch (-mt). The attached link is now based on Mame 0.145.
I have taken this as far as I am going to now I think. I have managed to get my joystick (a Nintendo Wavebird/Arduino Leonardo combo) working with the Surface and Mame and so I have achieved all I really need to...
Link:http://www.mediafire.com/download.php?xqc3co7p0xqqbzv
Have fun
BTW: If anyone is looking to get a non-Xbox controller working with the Surface, consider presenting the device as an absolute mouse - it worked for me (both in Mame and in the Desktop). In Mame, an absolute mouse appears as a lightgun.
pumaa said:
why is it so difficult to port xinput on mame or FBA??? it would be awsome to play with xbox 360 pad
it is just a question.
thanks
Click to expand...
Click to collapse
because XInput is for .NET and MAME isnt a .NET application maybe. Probably a way of doing it but seeming as xbox controllers also work on DirectInput fine it doesnt matter.
thanks for the answer!!!
but how do you make it work, the controller 360 on surface rt???
the program doesn't reconize it!!
thanks for the good job
Hi there
pumaa said:
thanks for the answer!!!
but how do you make it work, the controller 360 on surface rt???
the program doesn't reconize it!!
thanks for the good job
Click to expand...
Click to collapse
If the joystick is recognised by the RT, I see no reason why it should not work in MAME.
Have you configured MAME to recognise the joystick? If not, read the documentation but broadly you will need to put "-joystick" or (possibly) "-lightgun" on the command line and once in MAME in the settings "Configure General Inputs", select the joystick as the analog input device (select "Player 1 controls" scroll down to "AD Stick Analog X", press enter and move the joystick left and right, do the same for "AD Stick Analog Y" - but move the joystick up and down). If that works you can do the same with the joystick buttons.
As I don't have an XBOX controller to try this with, please post back if this works for you.
BBUK
Hi thanks for the answer.
Can you be more specific. I read the instructions but in wich files do i need to write the command line.
In the default.cfg files ??
can you explain me more please.
Thanks
See the first post about creating a shortcut. After "-mouse" add "-joystick -lightgun" (without quotes).
This is detailed in the Mame documentation which is included in my zipfiles.
ok i will try right now
thanks
edit:
so i try to add -mouse - joystick and the other but it doesn't do anything . my xbox 360 and also my logitech are mot recognize
Did you also go into MAME and "Configure General Inputs" as I asked?
PLEASE read the MAME documentation - all this is in there.
yes i did it but doesn't seems to work.
its a pity because its a really good program.
i also read the config. anyway i hope one day it will be more simple to add controller
thanks
I think xbox360 joystick works only in xinput mode.but the current mame rt only works in rawinput (any hid device)mode.so it may not work.
ok thanks for the answer
so i will not use this program. i really want to use my xbox cntroller.

[APP] AVP Classic

I've attached the Windows RT binaries for Aliens vs Predator 'Classic'.
http://en.wikipedia.org/wiki/Aliens_versus_Predator_(video_game)
This port was based on the source modification that stumbled across here:
http://homepage.eircom.net/~duncandsl/avp/
I also had to port OGG/Vorbis and some other libs to get this working.
The game plays at a very nice and smooth ~50 fps.. entirely in the Direct3D9 pipeline. Xbox controllers and raw input are supported, though I haven't tried either of them.
So, how do you play it?
Well, the demo won't work.. I tried that and the demo game files are not compatible with this version of the code.
So what you need is
1) the "Gold Edition" or the 'Classic' edition that you can buy on Steam for a few dollars.
2) Copy the entire game folder over to your WindowsRT tablet
3) Unzip the attached binaries
4) Start 'MyAvp.exe'.
Hopefully you guys enjoy this! The atmosphere of this game is pretty intense. Certainly bringing back great memories for me... its been 10 years since I've played it.
I've also put these binaries up on the SVN repo.
Cheers!
EDIT: adding a new "MyAvp.exe" binary to attempt to address resolution bug. Please try and report back! Thanks!
thanks.
can you help to complie Lugaru?I am not able to compile it because I dont have opengl environment.
game info:http://en.wikipedia.org/wiki/List_of_commercial_video_games_with_later_released_source_code
Excellent! Did you need to do anything tricky for the Ogg or Theora codecs? Remember that widely-used libraries are often as valuable as the apps... can I safely say that those libs have been ported now (and are expected to work with other apps)?
GoodDayToDie said:
Excellent! Did you need to do anything tricky for the Ogg or Theora codecs? Remember that widely-used libraries are often as valuable as the apps... can I safely say that those libs have been ported now (and are expected to work with other apps)?
Click to expand...
Click to collapse
It was a clean build. VS is supported by those libs natively.. so i don't expect any issues using them elsewhere.
Cheers!
windowsrtc said:
thanks.
can you help to complie Lugaru?I am not able to compile it because I dont have opengl environment.
game info:http://en.wikipedia.org/wiki/List_of_commercial_video_games_with_later_released_source_code
Click to expand...
Click to collapse
Not really a game I'm interested in, but I took a quick look at the Lugaru source anyway.
Most of the required changes are grunt work to fix the solution file. All the libs you need should already be ported, see here: https://github.com/bfosterjr/windowsrtdev/tree/master/libs
The only hurdle you might encounter is the use of GLUT. I've been getting around those issues by replacing the required GLUT functions to just use native opengl. You can leverage the MESA source or google for inspiration. Again, not difficult, just grunt work.
Good luck!
Could you provide some further instructions? The game does not run. I'm pretty sure that's because the location of the "Gold" files are incorrect.
lambstone said:
Could you provide some further instructions? The game does not run. I'm pretty sure that's because the location of the "Gold" files are incorrect.
Click to expand...
Click to collapse
did you unzip the avp folder inside the folder with the game files or just dump the 2 wherever?
Copy original AVP to RT.
Find the folder with the original AVP.exe (or whatever its called, I dont have AVP)
Unzip the ARM port into that folder. Done.
Incredible!
I played this game so many time ago, and i still love it.
Incredible work
If you could port Sing (an Half Life Compatible Engine) to Windows RT you'll be a god , since we could play Half Life on the Surface RT
There is the link:
*****://code.google.com/p/sing-engine/
EDIT:
I copied the ARM binaries to the 'Classic' Alien vs Predater bought from Steam and it's says 'Couldn't create a Direct3D device. See dx_log.txt for details'
EDIT 2:
I saw the problem. Game is unable to start in Fullscreen so you have to force it to run on Windowed Mode, i passed the -w parameter to the MyAvp.exe binary and my game it's working now
comandospi said:
I played this game so many time ago, and i still love it.
Incredible work
If you could port Sing (an Half Life Compatible Engine) to Windows RT you'll be a god , since we could play Half Life on the Surface RT
There is the link:
*****://code.google.com/p/sing-engine/
EDIT:
I copied the ARM binaries to the 'Classic' Alien vs Predater bought from Steam and it's says 'Couldn't create a Direct3D device. See dx_log.txt for details'
EDIT 2:
I saw the problem. Game is unable to start in Fullscreen so you have to force it to run on Windowed Mode, i passed the -w parameter to the MyAvp.exe binary and my game it's working now
Click to expand...
Click to collapse
I havent tried but there was a load of info online about forcing an altered copy of half life to run under the quake engine (half life actually used a modified quake engine). The quake engine is available on RT already (1, 2 and 3) so that might be worth looking into.
SixSixSevenSeven said:
I havent tried but there was a load of info online about forcing an altered copy of half life to run under the quake engine (half life actually used a modified quake engine). The quake engine is available on RT already (1, 2 and 3) so that might be worth looking into.
Click to expand...
Click to collapse
I knew that GoldSrc is a modified quake engine but i didn't know that half life could run on Quake Engine directly... i will take a look. Thanks!
comandospi said:
I knew that GoldSrc is a modified quake engine but i didn't know that half life could run on Quake Engine directly... i will take a look. Thanks!
Click to expand...
Click to collapse
I havent tried it and I think the files need modifying (GoldSrc was forked from Quake 1 but has some features that werent introduced by IdTech until Quake 2). But it should be plausible to try on RT, saw something about someone doing it on QI4A (quake 1 for android).
comandospi said:
I saw the problem. Game is unable to start in Fullscreen so you have to force it to run on Windowed Mode, i passed the -w parameter to the MyAvp.exe binary and my game it's working now
Click to expand...
Click to collapse
Strange, I didn't have this problem. I can play fullscreen, however I actually own the gold edition cd of the game... so my game files didn't come from Steam. I only used the -w option (which I fixed BTW.. it was broken in the build) to take a screenshot.
If anyone wants to gift a copy of AVP Classic to me on Steam.. I'd be happy to work on fixing any issues like this.
Cheers!
comandospi said:
If you could port Sing (an Half Life Compatible Engine) to Windows RT you'll be a god , since we could play Half Life on the Surface RT
There is the link:
*****://code.google.com/p/sing-engine/
Click to expand...
Click to collapse
This is a fork of xash3d, which I've already looked at.
The build relies on old X86 libs from the HL SDK. There is no source code for these. Now there has been an attempted port to Linux, and even android, but the effort in converting to windows rt is not something I'm up for
Cheers!
I have the same problem but i don't understand how you do to playing
'Couldn't create a Direct3D device. See dx_log.txt for details'
What's "-w option" ? Explain me how you do
I have a version CD of AVP Classic.
My log is :
Line 165 of avp\win95\win_proj.cpp:
WM_ACTIVATEAPP msg: bActive = 1
Line 170 of avp\win95\win_proj.cpp:
?&@#! no lpDDSPrimary surface
Line 171 of avp\win95\win_proj.cpp:
?&@#! no lpDDSBack surface
Line 172 of avp\win95\win_proj.cpp:
?&@#! no lpZBuffer surface
Line 174 of avp\win95\win_proj.cpp:
?&@#! no lpDDBackdrop surface
Matth37 said:
I have the same problem but i don't understand how you do to playing
'Couldn't create a Direct3D device. See dx_log.txt for details'
What's "-w option" ? Explain me how you do
I have a version CD of AVP Classic.
My log is :
Line 165 of avp\win95\win_proj.cpp:
WM_ACTIVATEAPP msg: bActive = 1
Line 170 of avp\win95\win_proj.cpp:
?&@#! no lpDDSPrimary surface
Line 171 of avp\win95\win_proj.cpp:
?&@#! no lpDDSBack surface
Line 172 of avp\win95\win_proj.cpp:
?&@#! no lpZBuffer surface
Line 174 of avp\win95\win_proj.cpp:
?&@#! no lpDDBackdrop surface
Click to expand...
Click to collapse
-w, its a command line argument. Normally you would add " -w" minus the quotes to the end of the command when launching the program from the command line, but guessing you dont want to do that. Simple alternative, happens to be that windows shortcuts are essentially valid commands. Right click MyAVP.exe > Create Shortcut. Right click the shortcut > Properties. Near the top will be a text box called target with something like:
C:\Users\SixSixSevenSeven\Programs\FTB_Launcher.exe
Click to expand...
Click to collapse
I just randomly chose FTB_Launcher.exe here which is in a programs folder in my user space. Also my computer login is not SixSixSevenSeven, you just don't need to know my real one.
I would change target to:
C:\Users\SixSixSevenSeven\Programs\FTB_Launcher.exe -w
Click to expand...
Click to collapse
alternately, if you open the windows cmd, you can just type C:\Users\SixSixSevenSeven\Programs\FTB_Launcher.exe then it will also launch it . Steam on x86 systems if you go into your library, right click a game, properties, launch options. The text box there would be the last section for extra arguments to pass into the program, so in this case you would stick -w on the end. Or I have to use them with Red Alert 3 Uprising where I have "-xres 1366 -yres 768" because for some reason switching resolutions crashes it on windows 8 and bizarrely it doesnt support my laptops native res, throwing those extra arguments at it forces the game to run at 1366*768 which it does without issue.
Useful things. Fixes AVP on windows RT. Fixes red alert 3 on windows 8 or unsupported screens.
Matth37 said:
I have the same problem but i don't understand how you do to playing
'Couldn't create a Direct3D device. See dx_log.txt for details'
What's "-w option" ? Explain me how you do
I have a version CD of AVP Classic.
Click to expand...
Click to collapse
Interesting. You have the "Gold" edition?
Thanks, i can play :good:
I have the standard version (no gold) on CD.
I would like know how play the game in french ? I use the solution english.txt because it doesn't work but my game in french become a version in english :crying: What can i do ?
And is there a way to have the game with fullscreen ?
"Couldn't create a Direct3D device"
the game menu is 640*480 and the newer video driver doesnt suppout this mode so you will get error when you go into fullscreen mode.
you can rollback to driver 9.17.13.653(9/12/2012) for more screen mode
and where i can find these old driver ? And can i use these drivers only for this game ?
Updated Binary
windowsrtc said:
"Couldn't create a Direct3D device"
the game menu is 640*480 and the newer video driver doesnt suppout this mode so you will get error when you go into fullscreen mode.
you can rollback to driver 9.17.13.653(9/12/2012) for more screen mode
Click to expand...
Click to collapse
All,
See the original post. I've updated the binary to support a 1024x768 default resolution (also the minimum supported now). I've also adjusted the game scaling so that the HUD overlay graphics should be much more crisp. Once in the game, you can increase the resolution if you so choose.
Please try the new binary and let me know if it fixes your issues.
Cheers!

Categories

Resources