English Amiga Board


Go Back   English Amiga Board > Requests > request.UAE Wishlist

 
 
Thread Tools
Old 29 January 2010, 00:01   #21
kolla
Banned
 
Join Date: Nov 2007
Location: Trondheim, Norway
Posts: 1,893
For this it would make sense for m68k emulator devs to do a joint effort; aranym, uae and basilisk.
kolla is offline  
Old 29 January 2010, 17:47   #22
turrican3
Moon 1969 = amiga 1985
 
turrican3's Avatar
 
Join Date: Apr 2007
Location: belgium
Age: 48
Posts: 3,913
not a beta 64 bits yet Toni ?
do you work on it ?
turrican3 is offline  
Old 30 January 2010, 06:48   #23
AmigaBoy
Registered User
 
Join Date: Aug 2004
Location: 19 Jump Street
Posts: 238
I'm not a 64-bit Windows user so I have no need for a 64-bit WinUAE, and I don't really see the point of it unless you want to address more than 4gb of memory. Speedwise it won't be much quicker, if at all. Those of you wanting a 64-bit version really don't need it. Regardless, I would like to see some progress in the area, if only to clean up the JIT code and take WinUAE closer to portability.

Converting x86 opcodes to instructions is a fairly simple problem to solve.

Looking at the WinUAE source, specifically codegen_x86.c in the jit folder, I see:

Code:
LOWFUNC(NONE,WRITE,2,raw_mov_w_mi,(MEMW d, IMM s))
{
    emit_byte(0x66);
    emit_byte(0xc7);
    emit_byte(0x05);
    emit_long(d);
    emit_word(s);
}
LENDFUNC(NONE,WRITE,2,raw_mov_w_mi,(MEMW d, IMM s))
This would equate to something like:

Code:
66C705 00112233 4455   MOV WORD PTR DS:[33221100],5544
Where the bytes 00112233 equate to 'd' and 5544 equate to 's'.
Now that we know what the opcodes map to, we can easily create a mov_w_mi () function which, when called, will dynamically convert to the assembly required by the architecture.

Now take the following:

Code:
LOWFUNC(NONE,WRITE,1,raw_push_l_r,(R4 r))
{
	emit_byte(0x50+r);
}
LENDFUNC(NONE,WRITE,1,raw_push_l_r,(R4 r))
This equates to PUSH EAX, however that 'r' complicates things a little and could lead to some messy code if implemented badly. It's clear why it was done. Adding 1 to 0x50 gives 0x51 which is PUSH ECX, 0x52 is PUSH EDX, etc. Will the converted code test each case individually? Still not a problem if portability is key, it just leads to some messy code.

The ultimate problem is that it's extremely time consuming if you don't have adequate x86 knowledge. Want proof? The process, as I see it, is as follows:

- Get OllyDBG
- Drag in any Windows executable so you have something to edit
- Left click on the first line, then right click and go to Follow In Dump -> Selection. The memory window should now be pointing to the memory area of that line.
- Click on the first byte in the memory window and begin typing the opcode. In the case of the MOV line, I would type 66 then press OK. Click on the next byte and begin typing the next opcode, C7. Do the same with the final one, 05.
- Look at the disassembly and you will see that the line has changed to reflect the instruction. eg.

66:C705 28994900 E8D3 MOV WORD PTR DS:[499928],0D3E8

It's simple, but considering codegen_x86.c is so long, it'll take much more time than it's worth. Only someone really bored should tackle it.

With all that said, if Toni was talking about something else entirely, forgot this post
AmigaBoy is offline  
Old 30 January 2010, 06:51   #24
AmigaBoy
Registered User
 
Join Date: Aug 2004
Location: 19 Jump Street
Posts: 238
Actually, ignore that post entirely. I just reread the thread. Basilisk II almost does what we want, so it's a matter of implementing the remaining code into its JIT implementation, but I have no idea how difficult that is. I assume Toni's already looked into it before, and if it's not already done, it's doubtful that it's an easy task.
AmigaBoy is offline  
Old 30 January 2010, 08:53   #25
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
I don't want to touch any intel assembly (x86 or x64)

I can merge the BasiliskII JIT _IF_ there is someone who knows how to implement the exception handler. (which is extremely confusing in x86 version..)
Toni Wilen is online now  
Old 30 January 2010, 21:56   #26
Ian
Global Moderator
 
Ian's Avatar
 
Join Date: May 2001
Location: Derby, UK
Age: 46
Posts: 2,287
people always talk about the "addressing 4gb" thing but there is obviously more to it than that as mame is significantly faster in x64 builds than x86
Ian is offline  
Old 30 January 2010, 22:35   #27
djmartins
 
Posts: n/a
Quote:
Originally Posted by Toni Wilen View Post
I don't want to touch any intel assembly (x86 or x64)

I can merge the BasiliskII JIT _IF_ there is someone who knows how to implement the exception handler. (which is extremely confusing in x86 version..)
Well said and should end the discussion until someone comes forward to
do this.
WinUAE is the cat's meow and totally usable on a 64 bit machine so -I-
couldn't ask for more!
How much faster does one need to run an emulated Amiga?


regards,
DJ
 
Old 30 January 2010, 23:37   #28
AmigaBoy
Registered User
 
Join Date: Aug 2004
Location: 19 Jump Street
Posts: 238
Quote:
Originally Posted by Ian
people always talk about the "addressing 4gb" thing but there is obviously more to it than that as mame is significantly faster in x64 builds than x86
The thing is, it's entirely true. The only false statement that I made is the addressing 4gb memory thing, when it's more like 3.2gb in Windows (due to addressing I/O). 4gb is the theoretical maximum (ie. a perfect world).

The reason why MAME x64 is faster than x86 is because running a 32-bit application on a 64-bit OS will have an inherent slowdown. This is due to a 64-bit OS spending time manipulating numbers/strings/whatever from 32-bit to 64-bit. This takes time, so that's why MAME seems significantly faster to you. Theoretically it'll be 2 times faster than the 32-bit, however realistically, it will be under 2 times (I can't say by how much without seeing or performing actual benchmarks).

I stand by my statement. WinUAE doesn't need to be made 64-bit since the speed increases you will see are marginal. You can't just run an x86 application under x64 and say x64 rocks your world. It's just not possible.
AmigaBoy is offline  
Old 30 January 2010, 23:59   #29
gilgamesh
Linux snob
 
gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
I don't think the problem is 32bit vs 64bit. The JIT is becoming sort of a black hole. It ties WinUAE inevitably to one dated platform, while even Toni says that he doesn't want to touch it. It is extremely confusing code. It seems practically unmaintainable, and therefore I think a complete overhaul would be a good idea.

But then, it works very well, and nobody seems to be a) competent and b) willing to change it in the moment.
gilgamesh is offline  
Old 31 January 2010, 13:22   #30
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Here is quickly compiled 64-bit winuae: http://www.winuae.net/files/b/winuae64.zip (same optimization options as 32-bit build)

- No JIT. Anyone asking about this will get his/her head examined.
- No tablet support (wintab appears to be 32-bit only)
- No prowizard (didn't bother to recompile, possibly not 64-bit safe anyway)
- No hq2x software filters (x86 assembly only)
- Something else missing? I wouldn't care less.
Toni Wilen is online now  
Old 31 January 2010, 18:19   #31
flunky
Registered User
 
Join Date: Jun 2006
Location: hannover/germany
Age: 57
Posts: 28
No capsimg.dll support.
flunky is offline  
Old 13 February 2010, 19:45   #32
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Updated and uploaded to working site: http://files.winuae.net/beta/winuae64.zip

(Quiet here, I guess the main point was finally understood that 64-bit WinUAE is totally useless)
Toni Wilen is online now  
Old 14 February 2010, 00:39   #33
PowerPie5000
Miggy Ate My Hamster!
 
PowerPie5000's Avatar
 
Join Date: Nov 2008
Location: Lancashire, UK
Posts: 1,566
I personally don't see the need for 64-bit Winuae at the moment. The 32-bit version runs perfectly fine within a 64-bit OS and i doubt there will be a huge difference in performnce even if there was a 64-bit Winuae I mean how much more performance do you need from an Amiga emulator running on a current high end machine?
PowerPie5000 is offline  
Old 15 February 2010, 00:10   #34
Interceptor
Registered User
 
Interceptor's Avatar
 
Join Date: May 2002
Location: Essex, UK
Posts: 414
Quote:
Originally Posted by flunky View Post
No capsimg.dll support.
yes it does support capsimg.dll, you just need a 64bit version.

it's working here, there should be a 64bit download on the webpage in a day or so, i'll post here once its up there is just a couple of things to check.
Interceptor is offline  
Old 15 February 2010, 10:25   #35
Ian
Global Moderator
 
Ian's Avatar
 
Join Date: May 2001
Location: Derby, UK
Age: 46
Posts: 2,287
Well, rather than make baseless assumptions I decided to actually test the x64 build

I ran some tests, first with P96Speed, which was not even a quarter of the speed of the x86 build, then I ran sysspeed in a virgin classicwb install with the results seen in the attached image (Unamed in the second column is from the x86 test with the same options/config used - config also attached) - I know benchmarks can be misleading but you can tell it's far slower in normal operation even getting sysspeed to start.

It seems as though the CPU speed is not being allowed to "run free" in Fastest Possible mode in the x64 build, but that is just from an end user point of view I have no clue what is causing the problem from a technical standpoint.

Anyway, unless it's an easy fix this build should be dropped in my opinion.

Edit: I was going to test if it was usable in cycle exact mode but that is a non starter, it will not even display the "insert disk" animation while booting.

Edit2: Used builds marked beta 11 for both tests.
Attached Thumbnails
Click image for larger version

Name:	001.png
Views:	409
Size:	71.0 KB
ID:	24282  
Attached Files
File Type: uae ClassicWB-test.uae (17.3 KB, 189 views)

Last edited by Ian; 15 February 2010 at 10:38.
Ian is offline  
Old 15 February 2010, 11:00   #36
gilgamesh
Linux snob
 
gilgamesh's Avatar
 
Join Date: Sep 2008
Location: Monkey Island
Posts: 997
Did you compare non-JIT to non-JIT?
gilgamesh is offline  
Old 15 February 2010, 11:11   #37
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by Ian View Post
Well, rather than make baseless assumptions I decided to actually test the x64 build
More information (at least logs) because x64 = minimal priority. Even replying to this post is going over my allocated x64 energy quota

Quote:
Did you compare non-JIT to non-JIT?
It is obviously non-JIT test if you check the attached config file. At least I hope so
Toni Wilen is online now  
Old 15 February 2010, 11:18   #38
Ian
Global Moderator
 
Ian's Avatar
 
Join Date: May 2001
Location: Derby, UK
Age: 46
Posts: 2,287
I will run some tests and attach the logs.

Of course I tested none JIT modes. Maybe I'll do a jit enabled test for reference of speed loss
Ian is offline  
Old 15 February 2010, 11:41   #39
Ian
Global Moderator
 
Ian's Avatar
 
Join Date: May 2001
Location: Derby, UK
Age: 46
Posts: 2,287
Here are the logs, hope there is something useful in them.
Attached Files
File Type: txt winuaebootlog-x64.txt (16.4 KB, 206 views)
File Type: txt winuaebootlog-x86.txt (16.6 KB, 191 views)
File Type: txt winuaelog-x64.txt (10.2 KB, 237 views)
File Type: txt winuaelog-x86.txt (10.0 KB, 209 views)
Ian is offline  
Old 15 February 2010, 14:13   #40
Interceptor
Registered User
 
Interceptor's Avatar
 
Join Date: May 2002
Location: Essex, UK
Posts: 414
Quote:
Originally Posted by Interceptor View Post
yes it does support capsimg.dll, you just need a 64bit version.

it's working here, there should be a 64bit download on the webpage in a day or so, i'll post here once its up there is just a couple of things to check.
windows x64 plugin can be downloaded from the website now

http://www.softpres.org/download
Interceptor is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
64 bit winuae and JIT pjhutch support.WinUAE 1 25 September 2011 01:29
Winuae on Windows 7 Ultimate 64 bit ? weasel_ch support.WinUAE 6 02 September 2011 18:07
REQ: 17-Bit Artwork 2 (1988-04)(17-Bit Software) Sea7 request.Demos 5 13 May 2011 01:07
8 bit to optimized 6 bit palette histogram improvements needed NovaCoder Coders. General 0 14 April 2011 02:13
64-bit WinUAE? Jim request.UAE Wishlist 31 13 April 2006 15:24

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 15:07.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.13949 seconds with 14 queries