Dosbox - dynrec update


M-HT

Very Active Member
Joined
Nov 30, 2007
Messages
664
Location
Bratislava
Website
github.com
Hi,


I updated the dynrec in Dosbox - you can get the patch in the dosbox forums.


I compared the speed of my version (latest svn + my patch) against the old dosbox pnd with following results...


Even without my patch applied, my version was 20% faster than dosbox pnd.


With my patch applied, my version is 80% faster than dosbox pnd - using doom2 timedemo (100% faster using benchmark without graphics output).


(I also tested version by urjaman called winbox, but the speed was roughly the same as dosbox pnd.)


My version was compiled with crosscompiler by Ivanovic.


First I configured dosbox using this script:



Code:
#!/bin/sh


HOST=arm-none-linux-gnueabi

TARGET=arm-none-linux-gnueabi


export HOST

export TARGET


PATH=$PATH:$PNDSDK/bin

export PATH


./configure --prefix=$PNDSDK --with-sdl-exec-prefix=$PNDSDK/usr --host=$HOST --target=$TARGET --build=`uname -m` CPPFLAGS="-I$PNDSDK/include" CXXFLAGS="-O3 -fmerge-all-constants -ffast-math -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=vfpv3 -mfloat-abi=softfp -mthumb-interwork" LDFLAGS="-s -L$PNDSDK/lib" --enable-core-inline

Next I edited config.h and changed the following definitions:



Code:
#define C_DYNREC 1

#define C_TARGETCPU ARMV7LE

#define C_UNALIGNED_MEMORY 1

Then I compiled dosbox.
 
Last edited by a moderator:
Wow, nice one!


Make a pnd and upload to the repo please.


I don't know, if pickle has the time to update his build right now.


Now it only needs your custom filters (and maybe the touchscreenfix) included and it might be the perfect dosbox for armdevices.


Edit: I can offer to prepare the pnd, if you like, including the frontend.


Edit2: Did you use -mfpu=vfpv3 because neon doesn't work with thumbcode?


Edit3: Compiling it right now. There is a nice game, I always wanted to play on the Pandora, but dosbox didn't quite cut it and qemu had a lot of problems with the graphics. Hope it may work now at a reasonable speed. Thanks again!
 
Last edited by a moderator:
I would prefer if the old dosbox pnd was updated, rather than creating another one.


Using my neon scalers in dosbox is not really possible, because dosbox doesn't scale the whole screen every frame. As far as I know, the screen is divided into small tiles and only the tiles that were changed are scaled.


I used -mfpu=vfpv3, because dosbox uses doubles for fpu registers (in dynrec). Which btw is insufficient for some games, because the x86 fpu has 80-bit registers.


Also I'm not using thumb instructions in the armv7 version. I tried making a backend with thumb-2 instructions, but it was only slightly faster and I experienced random crashes, so in the end I only used the backend with arm instructions.
 
I just installed it and run the riddle of master lu at completely playable speed at 900 mhz.


I am very impressed, as the old one was not nearly capable of that.


Thanks for this!
 

Cool pickle! Can you update the dosboxfe from svn? there is a newer and nicer version available.


Also including notaz sdl and touchscreenfix would be really cool!
 
Pandora is a great device, but its community really triples the fun! That's very exciting news!


Thank you for this!
 
Last edited by a moderator:
Sound great, I remember Raptor: Call of the Shadows run just slightly too slow, so this should work nicely.
 
Pandora is a great device, but its community really triples the fun! That's very exciting news!

Here Here.


This is great news, can't wait to try this out.


Many thanks for everyone's work on this.
 
Ok its up on the repo


Edit: M-HT if you have the time could you run your doom test to be sure i didnt mess something up ;-)
 
Last edited by a moderator:
I am following this thread (Settlers II on the Pandora would be awesome). I don't have my Pandora yet and I never built a PND but If I had to guess I would say it's the comma in line 22

 
Last edited by a moderator:
Edit: M-HT if you have the time could you run your doom test to be sure i didnt mess something up ;-)
Your build is about 2% slower than mine, but that could be because of different compiler (or measurement error).


I took a look at you pxml and in your old pxml you used two application ids - "pickle.dosbox" and "pickle.dboxfe".


In your new pxml, both applications have the same id - "dosbox.pickle".


I don't know if that causes the problem, but it's not correct.
 
Edit: M-HT if you have the time could you run your doom test to be sure i didnt mess something up ;-)
Your build is about 2% slower than mine, but that could be because of different compiler (or measurement error).


I took a look at you pxml and in your old pxml you used two application ids - "pickle.dosbox" and "pickle.dboxfe".


In your new pxml, both applications have the same id - "dosbox.pickle".


I don't know if that causes the problem, but it's not correct.

Well thats better than 20% ;-)


Indeed the app ids were and issue, but ive fixed it and all is up on the repo now. Thanks for your work on this.
 
THX for updating Dosbox and finaly puting it on the Repo, I missed it there. :)


Now it's time to play Commander Keen 4 on Pandora... ^^
 
Thanks for this awesome update M-HT, and thank you Pickle for the quick update.


Almost every time I visit these boards someone posts a thing that makes me happy, either Pandora related or otherwise. Today, the honour goes to you guys :)
 
So whats the most recent game playable now? Comparable to faster than the recent qemu?


(and presumably, no directx or ancient 3d APIs map to GLES or even GL on desktop, right?)


jeff
 
Last edited by a moderator:
So whats the most recent game playable now? Comparable to faster than the recent qemu?


(and presumably, no directx or ancient 3d APIs map to GLES or even GL on desktop, right?)


jeff
Good question. How about a speed-comparing between Pandora (DOS) quemu and Pandora DosBox? :)
 
Last edited by a moderator:
Back
Top