• 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 11
Win Win32 x64 XBMC x64 port - work in progress
#61
Don't you overclock RAM/CPU too much?
"CURL& url", "CURL & url", "CURL &url" and even
Code:
CURL              &       url
are identical for compiler.
Reply
#62
Okidiko,

likely a problem on my side Big Grin
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#63
I need help with the DynamicDll.h
The code for Windows is assembly en we have to get a 16 byte alligned stack. Has somebody a solution for that problem?

Thanks!
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#64
Update:
It is a problem in cpluff,I get a access violation in thread_windows.c line 203 set_event(mutex->os_cond_lock);
When a comment this line out, then I get an access violation in dirent.c line 45 _findfirst(dir->name, &dir->info))

I suspect an invalid pointer, but I cannot find it...Undecided
Maybe somebody want to look in the code of cpluff?

Thanks!
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#65
Yups, found the nasty, nasty bug:

diff --git a/xbmc/cores/DllLoader/Win32DllLoader.cpp b/xbmc/cores/DllLoader/Win32DllLoader.cpp
index de84d4d..16d5e78 100644
--- a/xbmc/cores/DllLoader/Win32DllLoader.cpp
+++ b/xbmc/cores/DllLoader/Win32DllLoader.cpp
@@ -303,13 +303,17 @@ void Win32DllLoader::OverrideImports(const CStdString &dll)
DWORD old_prot = 0;

// change to protection settings so we can write to memory area
- VirtualProtect((PVOID)&first_thunk[j].u1.Function, 4, PAGE_EXECUTE_READWRITE, &old_prot);
+ VirtualProtect((PVOID)&first_thunk[j].u1.Function, sizeof(first_thunk[j].u1.Function), PAGE_EXECUTE_READWRITE, &old_prot);

// patch the address of function to point to our overridden version
+#ifdef _WIN64
+ first_thunk[j].u1.Function = (DWORD_PTR)fixup;
+#else
first_thunk[j].u1.Function = (DWORD)fixup;
+#endif

// reset to old settings
- VirtualProtect((PVOID)&first_thunk[j].u1.Function, 4, old_prot, &old_prot);
+ VirtualProtect((PVOID)&first_thunk[j].u1.Function, sizeof(first_thunk[j].u1.Function), old_prot, &old_prot);
}
}
}
@@ -363,12 +367,12 @@ void Win32DllLoader::RestoreImports()

// change to protection settings so we can write to memory area
DWORD old_prot = 0;
- VirtualProtect(import.table, 4, PAGE_EXECUTE_READWRITE, &old_prot);
+ VirtualProtect(import.table, sizeof(import.table), PAGE_EXECUTE_READWRITE, &old_prot);

*(DWORD *)import.table = import.function;

// reset to old settings
- VirtualProtect(import.table, 4, old_prot, &old_prot);
+ VirtualProtect(import.table, sizeof(import.table), old_prot, &old_prot);
}
}

Only I am not sure what to do with *(DWORD *)import.table = import.function; , the table is 8 bytes long and the function is only four bytes long...

I think that class Import in Win32DllLoader.h the DWORD function should be void *
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#66
DynamicDll.h

http://msdn.microsoft.com/en-us/library/..._pdllclass

Seriously?
Look at the date Big Grin

P.S.
A problem with passing a pointer, the pointer is only four bytes....
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#67
Update:
Why do I think that I am talking to myself Big Grin

XBMC is starting in x64 modus and I can play music, there are a lot of things that are not working, but hey, it is a start Wink

I have seen a lot of code of XBMC and IMHO the overall code is very good!
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#68
Well its some sort of entertainment to just read without commenting - well i guess there are some of us just reading your monologs Wink
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#69
Tsssssss Wink
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#70
Question @Memphiz,
Somebody have think about the naming convention for the x64 implementation?
Should it be lib64 or should it be lib32 for the x86 and lib for the x64?
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#71
I am osx dev - here it is i386 and x86_64 ... But that is up to WiSo (the win dev)
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#72
I vote for lib64. Nice work in general but ...
I see this as proof of concept as it shows how difficult it is to get a working 64bit XBMC and I assume maintaining it afterwards will be hard as well (different bugs 32bit vs. 64bit, new third party libs without 64bit upstream, etc).
As long as I'm the "only" platform dev for windows this won't be merged as I can't take care of it.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#73
Can you read my mind about proof of concept Wink
The libs are almost build from scratch with a bash script so we can decided which platform it is. (I do not want to depend on someone who compiles for us)

I was thinking to do the next structure:
Dependencies:
->I386
->X86_64
------------------>System
------------------>Webserver
------------------>Dvdplayer
------------------>Etc.

And create a batch file to copy it to the real location when building 32 or 64 bit.
Is that an idea?

Edit:
I can't use tabs...
Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
Reply
#74
Btw if you find bugs don't wait until this is ready. Make a pr for master and done.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#75
and to the upstream libs if possible (and still maintained) Smile
as WiSo said he's the "only" win dev so he could really use some help
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
  • 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 11

Logout Mark Read Team Forum Stats Members Help
Win32 x64 XBMC x64 port - work in progress5