Rodimus Primal
New member
I have to admit MarathonMan, every time you post an update I get a little excited that a really great running N64 emulator will be out and playable soon enough. I wish I knew enough about coding to help out.
Now, is said SSE optional? Cause you obviously don't want it on ARM and/or PowerPC since SSE is x86-exclusive (though ARM does have NEON).
That sounds like ps2 emulator level stuff. Pretty sure they have some kind of dynamic recompiler for the systems vector unit. Also sure it's fast now but would hooking it up to the main CPU and RCP slow it down somewhat or are you not worried about that?
0000000000000180 <RSPVMADH>:
180: 89 f2 mov %esi,%edx
182: 89 f0 mov %esi,%eax
184: c5 f9 6f 15 00 00 00 vmovdqa 0x0(%rip),%xmm2 # 18c <RSPVMADH+0xc>
18b: 00
18c: c1 ea 10 shr $0x10,%edx
18f: c1 e8 06 shr $0x6,%eax
192: 83 e2 1f and $0x1f,%edx
195: 83 e0 1f and $0x1f,%eax
198: 48 c1 e2 04 shl $0x4,%rdx
19c: c5 fa 6f 24 17 vmovdqu (%rdi,%rdx,1),%xmm4
1a1: 89 f2 mov %esi,%edx
1a3: c1 ee 0b shr $0xb,%esi
1a6: 83 e6 1f and $0x1f,%esi
1a9: c1 ea 15 shr $0x15,%edx
1ac: 48 c1 e6 04 shl $0x4,%rsi
1b0: 83 e2 0f and $0xf,%edx
1b3: c5 fa 6f 1c 37 vmovdqu (%rdi,%rsi,1),%xmm3
1b8: 48 c1 e2 04 shl $0x4,%rdx
1bc: c4 e2 59 00 a2 00 00 vpshufb 0x0(%rdx),%xmm4,%xmm4
1c3: 00 00
1c5: c5 f9 73 dc 08 vpsrldq $0x8,%xmm4,%xmm0
1ca: c4 e2 79 23 fc vpmovsxwd %xmm4,%xmm7
1cf: c4 e2 61 00 da vpshufb %xmm2,%xmm3,%xmm3
1d4: c4 e2 79 23 cb vpmovsxwd %xmm3,%xmm1
1d9: c5 e1 73 db 08 vpsrldq $0x8,%xmm3,%xmm3
1de: c4 e2 79 23 f3 vpmovsxwd %xmm3,%xmm6
1e3: c4 e2 79 23 c0 vpmovsxwd %xmm0,%xmm0
1e8: 89 c2 mov %eax,%edx
1ea: c4 e2 41 40 c9 vpmulld %xmm1,%xmm7,%xmm1
1ef: c5 fa 6f 9f 00 02 00 vmovdqu 0x200(%rdi),%xmm3
1f6: 00
1f7: 48 c1 e2 04 shl $0x4,%rdx
1fb: c4 e2 79 40 c6 vpmulld %xmm6,%xmm0,%xmm0
200: c5 fa 6f a7 10 02 00 vmovdqu 0x210(%rdi),%xmm4
207: 00
208: c5 d9 61 eb vpunpcklwd %xmm3,%xmm4,%xmm5
20c: c5 d9 69 db vpunpckhwd %xmm3,%xmm4,%xmm3
210: c5 f1 fe cd vpaddd %xmm5,%xmm1,%xmm1
214: c5 f9 fe c3 vpaddd %xmm3,%xmm0,%xmm0
218: c5 f1 6b d8 vpackssdw %xmm0,%xmm1,%xmm3
21c: c4 e2 61 00 d2 vpshufb %xmm2,%xmm3,%xmm2
221: c5 f9 7f 14 17 vmovdqa %xmm2,(%rdi,%rdx,1)
226: c5 f9 7f 8f 10 02 00 vmovdqa %xmm1,0x210(%rdi)
22d: 00
22e: c5 f9 7f 87 00 02 00 vmovdqa %xmm0,0x200(%rdi)
235: 00
236: 89 87 80 02 00 00 mov %eax,0x280(%rdi)
23c: c3 retq
23d: 0f 1f 00 nopl (%rax)
...yeah, you're going to want to make that dynamically available or something, because even Thuban doesn't have anything above SSE3.
...well dang, I won't be able to use this emulator until then. :/ (I'm on an AM3 mobo, NOT AM3+)Not a concern for now. SSE4.1 has been around since Core 2/Penryn on the Intel side of things.
...yeah, you're going to want to make that dynamically available or something, because even Thuban doesn't have anything above SSE3.
Umm... on an unrelated note, would it be too ridiculous to suggest an overclocking function like that in 1964 Ultra Fast?
Just thinking that World Driver Championship seemed to have a variable framerate, so I'd like to take advantage of that in the future. Also Smash Bros. 64 tourney players would probably appreciate it since we can't expect the cartridges and consoles to last forever. (4-player apparently doesn't run at full speed on an N64 and requires an overclocked system for full speed)
But I gotta ask, if it's so easy to implement then why has no other emulator implemented it? Is it a limitation of HLE or something?
That's great news, MarathonMan! :drool:I have a feeling that my cycle-accurate core is faster than PJ64's intepreted core, and continually nearing the recompiler core. Whenever/if I implement dynarec, the performance should be comparable.![]()
After the SSE implementation is done, if someone wants to port it to Altivec (used in PowerPC), these technical docs from Apple might make it easier! :shifty:Now, is said SSE optional? Cause you obviously don't want it on ARM and/or PowerPC since SSE is x86-exclusive (though ARM does have NEON).
h**p://developer.apple.com/legacy/mac/library/documentation/Performance/Conceptual/Accelerate_sse_migration/Accelerate_sse_migration.pdf#page=25
Then... please... stay on topic.It's not a big deal as in being a problem... [...]
Yes, but better late than never!Wow, you joined all the way back in 2006 yet made only one post and then make your second and third 7 years later one after another?
Did someone happen to link you here from another site by any chance?
Yes, you are right!As for Altivec, won't that only be useful once next-gen consoles get homebrew'd? (Wii U is only running homebrew in Wii Mode currently) I don't think the PS360 have enough CPU grunt considering Marcan of Wii homebrew fame claims they have Pentium4-esque IPC.