Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - bsmiles32

Pages: [1]
1
General Discussion / Re: Help new_dynarec
« on: January 06, 2015, 04:33:44 PM »
@littleguy Thanks a lot for this detailled explanation. I'll give this a try later this week.

2
General Discussion / Re: Help new_dynarec
« on: January 06, 2015, 12:32:57 PM »
Quote
I was wondering what tools you're using to debug on linux?

I use GDB.

Quote
Which one which one?

I got a Motorola Moto G (2nd generation).
I still need to setup dev environment for it. Any easy to follow tutorial on that ?

Quote
I will take a closer look at this next week (still on holiday  8)) I also need to check your load_regs_bt fix btw.

Anything new in this area ?

3
General Discussion / Re: Help new_dynarec
« on: December 28, 2014, 09:26:58 PM »
@Gillou:  I ported your fix proposal with some modifications.
See updated pull request on github.

On another note, thanks to Santa Claus, I should receive an ARM device soon :)

4
General Discussion / Re: Help new_dynarec
« on: December 22, 2014, 01:31:13 PM »
@Gillou
Thanks for your response and code snippet. I'll see what I can do with it.

Notes:
I originally went with C versions of the code for the memory handlers because I thought I could reuse them with both the x86 and ARM backend. But it seems the two backends have some differences that might be better handled with the asm approach for now (+ the fact that with ASM you can fine-control your stack/register usage).

I'm also doing to more work in the core to remove the extra indirection involved by the read* arrays of pointers.

On another note, once we have a working solution for both x86 and ARM, I'd like to clean the commit history some more, in order to have every commit buildable/testable (it is the case for now if we don't enable the new_dynarec, but I think it is highly desirable to have every commit buildable).

Again thansk for the continuous help and feedback.

5
General Discussion / Re: Help new_dynarec
« on: December 20, 2014, 08:00:58 AM »
Quote
Which commit should I build from?  Is it this?
https://github.com/bsmiles32/mupen64plus-core/commit/b1160dba638e35d612d622659e07b0d3f0fda098

Yes :)

Additionally, if you encounter an assert error with Super Mario 64 like I did, you can also import this commit :
https://github.com/bsmiles32/mupen64plus-core/commit/3df9973e289f7783f464599f414c717c8bf26360

Thanks for your feedback :)

6
General Discussion / Re: Help new_dynarec
« on: December 19, 2014, 05:48:21 PM »
Updated the pull request to include the work on the x86 backend.

I also pushed separately the "fix" for Super Mario 64 in another pull request.

I'd like to start working fixing the ARM backend, but I'd like pointers on how to setup a suitable dev environemnt:
-arm {cross}compiler
-arm emulator (as I don't have an ARM device)
Otherwise, it will be mostly guess work + external testing :(

Any suggestions?
Thanks

7
General Discussion / Re: Help new_dynarec
« on: December 18, 2014, 04:26:54 AM »
@retroben:

If you want to play with this work, it goes something like this (not verfied) :

* Clone the [1] git repo
* Checkout the refactor_memory branch
* Apply WIP4 patch on top of it
* Compile the core with NEW_DYNAREC=1
* Run mupen64plus --corelib ./_path_to_the_newly_compiled_libmupen64plus --emumode 2 ~/Whatever_Rom_to_test

I don't use the AE version, so no, no APK from me.

I am not aware of any "advanced" debugging features in the current codebase, so no I only run some games to test.

[1] https://github.com/bsmiles32/mupen64plus-core

8
General Discussion / Re: Help new_dynarec
« on: December 17, 2014, 05:24:56 PM »
New WIP version with TLB working in the mailing list.

The method I used to get it working is fragile, and I welome ideas on how I can improve robustness of it.
(I play with the stack pointer value in order to jump to the tlb_exception handler, which disrupt the normal execution flow).

9
General Discussion / Re: Help new_dynarec
« on: December 17, 2014, 09:40:03 AM »
Third version of the patch posted on the mailing list :)

I still need to reimplement the TLB exception handler, but I don't know which game rely on that.
Does anyone know ?

After that, I'm gonna do the same for the arm backend, and we should be good :)

10
General Discussion / Re: Help new_dynarec
« on: December 12, 2014, 08:59:09 PM »
Thanks a lot for your help Gillou :)

I've posted on the mailing list [1] the second version of the patch which fixes many things : I can now run perfect dark, zelda, ... but it's for x86 only.
Furthermore, I haven't implemented TLB exception and Super Mario doesn't go past the first screen...

If you have any idea why it doesn't work for Super Mario, I'm all ears :)

Thanks again.

[1] https://groups.google.com/d/msg/mupen64plus/vlyjzT2Lk5k/bKL9fQ2WWnoJ

11
General Discussion / Re: Help new_dynarec
« on: December 04, 2014, 05:18:16 AM »
Thanks for your offer !

Don't worry, I'm not rushed. I do that in my spare time too :)


Edit: I've setup a 32 bit environment and tested my patch.
The thing compiles and start but crash instantaneously with a corrupted stack.
So I can't use gdb to get a meaningfull backtrace :(

12
General Discussion / Re: Help new_dynarec
« on: December 04, 2014, 04:51:47 AM »
I develop on a x86_64 archlinux machine.
I will try to setup there a 32 bit environment so that I can compile and run the x86 backend.

13
General Discussion / Re: Help new_dynarec
« on: December 04, 2014, 04:42:59 AM »
Thanks for your help and nice welcome :)

Judging by recent activity here, I guess Gillou and Ari64 are the people that know best the new_dynarec.
Maybe if they can look and comment my WIP patch, we can work a solution.

I'll try to get a 32 bit environment in order to at least work on the x86 new_dynarec backend.
Hopefully this will put me in the right direction for the ARM backend.

14
General Discussion / Re: Rice to OpenGL2.1 and OpenGL ES 2
« on: December 04, 2014, 04:36:27 AM »
Yeah, the memory refactoring is huge, but I feel it is badly needed.
And yes, the responsibility for not breaking stuff is mine.
That's why we agreed not to merge the pull request until we are confident that we don't have regressions.

15
General Discussion / Help new_dynarec
« on: December 03, 2014, 02:23:35 PM »
Hi everyone,

I've been trying to refactor the memory module recently, but in doing so I broke the new_dynarec.
More precisely, I changed the way memory handlers are written and I removed some global variables.
Te problem is that the new_dynarec relied on those...
That's why I'm looking for some help.

Please take a look at the original pull request:
https://github.com/mupen64plus/mupen64plus-core/pull/47
and my WIP which try to fix the new_dynarec:
https://groups.google.com/d/msg/mupen64plus/vlyjzT2Lk5k/RnbyCWqvBl4J

As stated in the email to the mailing list, I don't have an ARM device to play with, so I cannot test what I've proposed... which is why external help is required.

Feel free to ask for more informations.

Pages: [1]