Archive for the ‘Uncategorized’ Category

Resuming work on nullDC ! — also, donations needed :|

Sunday, September 5th, 2010

Well, sometimes you just can’t get free from your projects as easily as you want to. So, seeing as there wasn’t much interest in nulldc’s source I started to work at it again ! (And yes, of course it will remain open source).

So, I’m officially again working on nullDC! There’s a bank of ideas on the wiki on what I plan to do. We’re also planning to get the project side back up and stuff. :)

Leaving that aside, I’d also like to ask for donations. The project hasn’t really asked for donations so far (except specific cases, like the Pandora port that required hardware to be brought). As I’m running quite low on money I’ll open up donations for the project.

Donated money will be used for: Getting a ps3, porting/working on nullDC/pcsx2 for ps3, getting a jtag’d xbox to port stuff to it, and finally to pay for server/misc hardware fees.

[Update]
Wow, various sites really didn’t read this carefully. To clarify:
Work on these ports has _not_ started yet. I need a ps3 to realistically do anything, and to be able to release we need a public sdk with some at-least-decent access to the RSX.

(or simply send to skmp@emudev.org if the link doesn’t work …)

Some habits are too hard to break, huh

Saturday, August 28th, 2010

After a few hours of working on nullDC Dynarec instrumentation/profiling …

Shenmue: Ingame
mov:32 25.07% 37931888
mov:64 0.61% 929370
readm:8 0.14% 215023
readm:16 0.88% 1325655
readm:32 21.96% 33223344
46.25% 15364458 to mem
0.00% 300 to route
53.75% 17858586 to inline
27.54% 9150191 static
18.71% 6214567 fmem
readm:64 0.54% 817860
90.76% 742252 to mem
0.00% 0 to route
9.24% 75608 to inline
8.65% 70780 static
82.10% 671472 fmem
writem:32 3.02% 4563780
98.73% 4505665 to mem
0.06% 2880 to route
1.21% 55235 to inline
0.00% 0 static
98.79% 4508545 fmem
writem:64 0.11% 168904
100.00% 168904 to mem
0.00% 0 to route
0.00% 0 to inline
0.00% 0 static
100.00% 168904 fmem
cmp:32 9.04% 13672121
test:32 2.98% 4502301
SaveT:32 13.33% 20163008
LoadT:32 1.95% 2943077
not:32 0.20% 302600
and:32 0.33% 500402
or:32 0.28% 429952
xor:32 0.14% 212814
shl:32 0.74% 1125146
shr:32 0.12% 182725
rcl:32 0.26% 398469
movex:8 0.19% 288026
add:32 10.19% 15414719
sub:32 2.02% 3055821
fadd:32 0.13% 192646
fsub:32 1.05% 1582237
fmul:32 1.30% 1969777
fdiv:32 0.17% 250172
fneg:32 0.11% 167815
fmac:32 0.30% 447457
ifb:8 0.41% 627217
ftrv:32 0.25% 377367
fipr:32 0.25% 376035
floatfpul:32 0.25% 382908
ftrc:32 0.25% 378803
fcmp:32 0.58% 880835
pref:32 0.46% 701954
rest(18 ops) 0.38% 578451
Total 151.28M

Profiling games sure is fun :D

These are IL opcode counts, per dreamcast second. Sadly its not very practical to get execution time, so execution count will have to do for now … It’s interesting to note that most games archive between 120 and 200 MIPS (With most 30 fps rps on the low side, and DOA2LE getting constantly around 202 MIPS ingame :p)

mov32, readm32, writem32, cmp32, tst32, SaveT, LoadT, add32, sub32 make up for 90% of the opcodes executed. Out of these, readm32, SaveT and LoadT could be optimized, and maybe something can be done for movs aswell.

Memory:
readm:32 21.96% 33,223,344
46.25% 15,364,458 to mem
0.00% 300 to route
53.75% 17,858,586 to inline
27.54% 9,150,191 static
18.71% 6,214,567 fmem
writem:32 3.02% 4563780
98.73% 4,505,665 to mem
0.06% 2,880 to route
1.21% 55,235 to inline
0.00% 0 static
98.79% 4,508,545 fmem

Reads are 7x more common than reads. Array/Pointers access is pretty much the same between writes and reads (6.2M vs 4.5M — in other spots/games the difference is smaller). Whats interesting is static accesses — predicted static + inline — are over 27M for reads, but just 55K for writes. This verifies that sh4 really sucks at loading constants — so pretty much all of the constants are loaded as mem-reads — and also raises some questions about the generated code quality. Also, register reads+writes were REALLY low (10 mmr reads/frame , 96 mmr writes/frame).. Interesting huh ?

Anyway, these numbers and other statistics i plan to gather the following days will help to better optimize nullDC !

Whee ?

Sunday, May 17th, 2009

Wii hacked (using bannerbomb) ! This is actually old news, but my laptop’s hdd died so it got delayed :p.
Also, i recieved the beagleboard from ZeZu and got Ångström working nicely.

So expect wii and arm updates soon ;)

Finaly some progress !

Monday, May 4th, 2009

After many many many many many months of inactivity i finaly started some real work on the dynarec.It now features a basic IL with a working decoder frontend and backends for x86/arm/mips-allegrex.Work is currently done to port the code to Wii/ps3/ps2 ( only if libstdc++ worked …)/xbox.Anyway i don’t feel like writing atm maby i’l edit this post later

*edit #1*

Note that the arm videos are much older than the psp, the arm rec misses MANY opcodes at that point.When ZeZu brings arm on par/i get the beagleboard he mailed speeds should be ~ 3x of what psp gets :)

*edit #2*

To give some PSP numbers, bios (menu) is up from ~ 1.5 fps to ~9, Doa2 ingame from ~0.8 to ~4.5 , PoP3d from ~ 1.2 to ~9.Only 4x more to get PoP fullspeed :p

*edit #3*
Added more PSP videos !

Q: What the heck is a “beagle board”?
A: “The BeagleBoard is an ultra-low cost, high performance, low power OMAP3 based platform”.Its a ‘devkit’ for omap3(Arm Cortex-A8, PowerVR SGX) and it is/will be very similar with next generation of non intel based mobile devices.More on http://beagleboard.org.Pandora is a very similar target to BeagleBoard (and will be mostly compatible).
Results :

*edit #4*
Forgot to say, if someone could donate a copy of The Legend of Zelda: Twilight Princess (PAL) i’l be really happy.I spent all of this month’s money to buy the wii and developing with dolphin sucks ><.Anyone interested can email me (drkiiraziel@gmail.com) or come over on #nullDC @EFnet.Keep in mind that i live in Greece and shipping to here can be quite expensive from outside EU.
PSP 
(videos by PSPdemon)

Bios:

Power Stone:

Shenmue:

Crazy Taxi:

BeagleBoard
(videos by ZeZu — he’s the one working on the omap front atm)

Bios

Prince Of Persia

First Post !

Saturday, June 23rd, 2007

So after a long time i got around setting up a blog.I’l post coding related stuff mostly, usualy about emulators/compilers :) .Lets see how this turns out…