Recommended Posts

9 minutes ago, TAZMINATOR said:

Can you compile both 32 and 64 in app and the installation will detect then install the right version based on user's OS? (or user choose at the installation for that matter)

 

Or you can compile 32bit then next day 64bit ....   you can update either of those whenever you can.  You don't have to leave 32 bit app out.

 

I can stay 32 bit for stability. Once  64 bit gets stability down the road, then I will replace it.  Or I could use both ... for example, 32 bit on this one and 64 bit on other laptop..   something like that.

 

Up to you.

No that's not possible. It has 2 be 2 installers. And the configuration to package a 64 bit installer is different than a 32 bit installer. The code of the application remains the same, it's maintaining 2 packages which is cumbersome. And I'd also need to a add a distinction between 32 bit and 64 bit packages in the update checker. So it's a bit more changes than I want to apply right now. But I'll probably happen gradually.

3 minutes ago, Raphaël G. said:

No that's not possible. It has 2 be 2 installers. And the configuration to package a 64 bit installer is different than a 32 bit installer.

But it is possible, there are a lot of companies doing a dual installer depending on what version of Windows you're running, it'll either install the x32 to C:\Program Files (x86) or the x64 to C:\Program Files.

7 minutes ago, Raphaël G. said:

No that's not possible. It has 2 be 2 installers. And the configuration to package a 64 bit installer is different than a 32 bit installer. The code of the application remains the same, it's maintaining 2 packages which is cumbersome. And I'd also need to a add a distinction between 32 bit and 64 bit packages in the update checker. So it's a bit more changes than I want to apply right now. But I'll probably happen gradually.

Like what Thomas said.  It's possible.  If you don't know how to do it, someone can help you out on how to do that.

 

You can do either dual installer, or separated apps which I mentioned in my previous post.

 

 

It might not be possible with the standard windows installer, it's probably not something that's as easy as it sounds. Generally apps like chrome that include both versions in the install have some sort of custom installer solution.

Edited by ViperAFK
3 hours ago, Raphaël G. said:

No that's not possible. It has 2 be 2 installers. And the configuration to package a 64 bit installer is different than a 32 bit installer. The code of the application remains the same, it's maintaining 2 packages which is cumbersome. And I'd also need to a add a distinction between 32 bit and 64 bit packages in the update checker. So it's a bit more changes than I want to apply right now. But I'll probably happen gradually.

If I install the x64 bit over my current install, should all my current albums be in my collection? I wouldn't think it would change much of anything

Today, the only devices with low memory is low-end tablets and phones.  This RAM thing is funny as hell, it's not like we're in the days of 640K and running QEMM to free up more memory!!!

 

Anybody THAT worried about RAM usage should just upgrade...

 

Go 64Bit! :D

 

Wow lots of replies! Thanks guys.

 

MSI installers don't support mixed installations. But indeed, with a custom installer, it's possible. However, that means quite some extra work: manual finding the right programs location, create a start menu item, set registry keys for file associations, asking for elevation, adding item to add remove programs, make sure windows knows when the next installer is from a previous version of the same software, and perform and upgrade or a new version. All these things are managed wonderfully by the Windows Installer (Let's ignore that it's configuration is a PITA :)).

 

However there seems to be a lot of interest for a 64 bit version. So I think I'll have to speed that up :) I'll see what I can do with the time I have the next few days. Keeping in mind the above: 2 different installers it'll be.

 

I'm glad you don't care too much about RAM reservation. There's a lot of other people out there (still keeping up the mentality of a few years ago), putting on a tinfoil hat as soon as software uses more than 100 MB (of even less :cry:).

 

Out of interest: considering it doesn't give you any performance benefit, for what reason would you like a 64 bit version?

 

Edit:

 

I forgot to answer this. Indeed, if you install the 64 bit version over the 32 bit, you don't lose your collection. The collection is saved in your user folder. That is a common location.

The 64 bit version even cleanly removes the Dopamine directory from c:\Program Files (x86) and adds it to c:\Program Files. You don't have to worry about a thing.

 

 

 

 

 

 

 

  • Like 1

Looking forward to a 64bit edition. I always go for 64bit software whenever possible like with Chrome and WinRAR for instance. So that Dopamine comes to that list sounds great to me.

 

I do have one question with regards to translation and that is that while Dopamine is in its largest window the strings for Maximize, Minimize and Close are not found (or could be a oversight on my part) Does Windows take care of that by default?

35 minutes ago, allan.nyholm said:

Looking forward to a 64bit edition. I always go for 64bit software whenever possible like with Chrome and WinRAR for instance. So that Dopamine comes to that list sounds great to me.

 

I do have one question with regards to translation and that is that while Dopamine is in its largest window the strings for Maximize, Minimize and Close are not found (or could be a oversight on my part) Does Windows take care of that by default?

You mean that they are not translated? That's my fault. It's on my task list since forever and I keep ignoring it :blush:

4 hours ago, Raphaël G. said:

Out of interest: considering it doesn't give you any performance benefit, for what reason would you like a 64 bit version?

 

 

Well, from my experience, 64bit apps usually are more stable and do run a bit faster.  Maybe some optimisation will be required for Dopamine to benefit from the 64bit...!

I'd rather stick with 32-bit if the only difference is RAM usage. A music player should be light on resources and I can't imagine what benefits 64-bit would be expected to bring.

 

As an aside, I've been a Firefox user for over 13 years. It recently went 64-bit to much celebration, and you know how much difference it has made to my browsing experience? None whatsoever.

1 hour ago, PabUK said:

I'd rather stick with 32-bit if the only difference is RAM usage. A music player should be light on resources and I can't imagine what benefits 64-bit would be expected to bring.

 

As an aside, I've been a Firefox user for over 13 years. It recently went 64-bit to much celebration, and you know how much difference it has made to my browsing experience? None whatsoever.

You experience is accurate. There is quite some misinformation concerning 64 bit applications.

 

And I've been doing a lot more reading yesterday and today concerning targeting different platforms with .NET applications, because this is a new topic for me.

 

Dopamine has been compiled using the "Any CPU" setting since the beginning. That means that the generated exe's and dll's are platform independent. These exe's and dll's are made of platform independent "Intermediate language" or "IL". This IL is compiled on your system by the .NET Just In Time (JIT) compiler (which was installed on your system when installing .NET), based on the architecture of your system. If you are running a 32 bit system, Dopamine will be 32 bit, if your running a 64 bit system, Dopamine will by 64 bit. So that means you guys have had a 64 bit version all along :).

I could compile explicitly in 32 and 64 bit instead of using "Any CPU"; but that is only meaningful if Dopamine uses external dll's which can only be accessed by a 32 or 64 bit application. In my case, Dopamine uses external .NET components which are by themselves "Any CPU".

 

The only thing that makes Dopamine seem 32 bit on a 64 bit system and that causes confusion, is that it gets installed in the c:\Program Files (x86) folder. That's is a limitation of the installer when not explicitly forcing 64 bit. Maybe I can work around that by reading some more.

 

Also, the memory consumption I saw last time is not clear to me. I don't see why it would consume more on my 64 bit machine when it is compiled as 64 bit instead of any CPU. To be investigated.

 

11 minutes ago, Raphaël G. said:

You experience is accurate. There is quite some misinformation concerning 64 bit applications.

 

And I've been doing a lot more reading yesterday and today concerning targeting different platforms with .NET applications, because this is a new topic for me.

 

Dopamine has been compiled using the "Any CPU" setting since the beginning. That means that the generated exe's and dll's are platform independent. These exe's and dll's are made of platform independent "Intermediate language" or "IL". This IL is compiled on your system by the .NET Just In Time (JIT) compiler (which was installed on your system when installing .NET), based on the architecture of your system. If you are running a 32 bit system, Dopamine will be 32 bit, if your running a 64 bit system, Dopamine will by 64 bit. So that means you guys have had a 64 bit version all along :).

I could compile explicitly in 32 and 64 bit instead of using "Any CPU"; but that is only meaningful if Dopamine uses external dll's which can only be accessed by a 32 or 64 bit application. In my case, Dopamine uses external .NET components which are by themselves "Any CPU".

 

The only thing that make Dopamine seem 32 bit on a 64 bit system, is that it gets installed in the c:\Program Files (x86) folder. That's is a limitation of the installer. Maybe I can work around that by reading some more.

 

Also, the memory consumption I saw last time is not clear to me. I don't see why it would consume more on my 64 bit machine when it is compiled as 64 bit instead of any CPU. To be investigated.

 

 

Some of the links - I manage to find (Lets hope, it could be possible for all people benefit) [Personally I am in favour of custom installer, with runtime check during installation to install relevant Dopamine as per processor architecture and OS]:

 

https://dblock.github.io/dotnetinstaller/

 

https://stackoverflow.com/questions/3724956/single-msi-to-install-correct-32-or-64-bit-c-sharp-application

 

http://www.mindquake.com.br/examples/platform

3 minutes ago, Zlip792 said:

 

Some of the links - I manage to find (Lets hope, it could be possible for all people benefit) [Personally I am in favour of custom installer, with runtime check during installation to install relevant Dopamine as per processor architecture and OS]:

 

https://dblock.github.io/dotnetinstaller/

 

https://stackoverflow.com/questions/3724956/single-msi-to-install-correct-32-or-64-bit-c-sharp-application

 

http://www.mindquake.com.br/examples/platform

Thanks for the links. However I don't see the benefit right now. Knowing that the code runs in "bitness" of you OS. The only difference would be where it is getting installed. Am I missing something?

1 minute ago, Raphaël G. said:

Thanks for the links. However I don't see the benefit right now. Knowing that the code runs in "bitness" of you OS. The only difference would be where it is getting installed. Am I missing something?

Indeed!! But it will satisfy people mentally.. You know!!! hahaha! :-)

34 minutes ago, Zlip792 said:

Indeed!! But it will satisfy people mentally.. You know!!! hahaha! :-)

Oh ok! :) Yeha in worst case I can create 2 installers, once for each platform, and targeting the correct install directory by default. But the installers will install the same code :rofl:

56 minutes ago, Raphaël G. said:

Dopamine has been compiled using the "Any CPU" setting since the beginning. That means that the generated exe's and dll's are platform independent. These exe's and dll's are made of platform independent "Intermediate language" or "IL". This IL is compiled on your system by the .NET Just In Time (JIT) compiler (which was installed on your system when installing .NET), based on the architecture of your system. If you are running a 32 bit system, Dopamine will be 32 bit, if your running a 64 bit system, Dopamine will by 64 bit. So that means you guys have had a 64 bit version all along :).

I could compile explicitly in 32 and 64 bit instead of using "Any CPU"; but that is only meaningful if Dopamine uses external dll's which can only be accessed by a 32 or 64 bit application. In my case, Dopamine uses external .NET components which are by themselves "Any CPU".

 

This is Dopamine running on a x64 system, notice the *32, that means it's a x32 app running on an x64 system:

 

Capture.thumb.PNG.91c384f6dd52487bfe005c

 

If it was just Dopamine.exe, that would mean it is a native x64 app.  For comparison's sake, here is the x64 WinRAR app running, notice it doesn't have *32, that's because it's a native x64 app:

 

Capture1.thumb.PNG.5494f32247dba5681e572

  • Like 1
13 minutes ago, Thomas the Tank Engine said:

 

This is Dopamine running on a x64 system, notice the *32, that means it's a x32 app running on an x64 system:

 

Capture.thumb.PNG.91c384f6dd52487bfe005c

 

If it was just Dopamine.exe, that would mean it is a native x64 app.  For comparison's sake, here is the x64 WinRAR app running, notice it doesn't have *32, that's because it's a native x64 app:

 

Capture1.thumb.PNG.5494f32247dba5681e572

Good catch! You're on to something here. I'm reading more.

 

Edit: found it!

 

Since .NET 4.5 (it didn't exist in 4.0) there is an extra option under "Any CPU". The articles I read until now seemed to contain info from before .NET 4.5.This is the meaning (for those interested in the details).

 

  • If the process runs on a 32-bit Windows system, it runs as a 32-bit process. IL is compiled to x86 machine code.
  • If the process runs on a 64-bit Windows system, it runs as a 32-bit process. IL is compiled to x86 machine code.

 

If I disable the "prefer 32 bit" flag, this should happen:

 

  • If the process runs on a 32-bit Windows system, it runs as a 32-bit process. IL is compiled to x86 machine code.
  • If the process runs on a 64-bit Windows system, it runs as a 64-bit process. IL is compiled to x64 machine code.

 

So if I disable that flag, Dopamine should run in 64 bit on a 64 bit system. Did I learn a lot these few days... Thanks for helping and not taking my answers for granted! :rofl::)

 

 

any cpu.png

10 hours ago, Raphaël G. said:

Wow lots of replies! Thanks guys.

 

MSI installers don't support mixed installations. But indeed, with a custom installer, it's possible. However, that means quite some extra work: manual finding the right programs location, create a start menu item, set registry keys for file associations, asking for elevation, adding item to add remove programs, make sure windows knows when the next installer is from a previous version of the same software, and perform and upgrade or a new version. All these things are managed wonderfully by the Windows Installer (Let's ignore that it's configuration is a PITA :)).

 

However there seems to be a lot of interest for a 64 bit version. So I think I'll have to speed that up :) I'll see what I can do with the time I have the next few days. Keeping in mind the above: 2 different installers it'll be.

 

I'm glad you don't care too much about RAM reservation. There's a lot of other people out there (still keeping up the mentality of a few years ago), putting on a tinfoil hat as soon as software uses more than 100 MB (of even less :cry:).

 

Out of interest: considering it doesn't give you any performance benefit, for what reason would you like a 64 bit version?

 

Edit:

 

I forgot to answer this. Indeed, if you install the 64 bit version over the 32 bit, you don't lose your collection. The collection is saved in your user folder. That is a common location.

The 64 bit version even cleanly removes the Dopamine directory from c:\Program Files (x86) and adds it to c:\Program Files. You don't have to worry about a thing.

 

 

 

 

 

 

 

Theoretically speaking, couldn't a 32 bit system install a 64 bit software? I remember having a 16 bit windows 95/98 back in the day and installed a new 32 bit software and it functioned fine. or would we now get an error message.

 

I do know 32 bit(who uses 32 bit anymore?) can only recognize up to 2-4 GB of ram if my memory serves. but I think it should still work. serveimage?url=http:%2F%2Fdiabetesdad.or

13 minutes ago, TruckWEB said:

Question : Is it in the plan for Dopamine to support .CUE file?  I've got a couple of CD's in one big FLAC with .CUE file.

 

Foobar can handle it, so, I was wondering....!

 

Probably. I've just created a feature request.

  • Like 2
33 minutes ago, chrisj1968 said:

Theoretically speaking, couldn't a 32 bit system install a 64 bit software? I remember having a 16 bit windows 95/98 back in the day and installed a new 32 bit software and it functioned fine. or would we now get an error message.

 

I do know 32 bit(who uses 32 bit anymore?) can only recognize up to 2-4 GB of ram if my memory serves. but I think it should still work. serveimage?url=http:%2F%2Fdiabetesdad.or

No. Windows 95 was 32 bits. That's why you could run 16 bits and 32 bits applications side by side.

32 bits applications can indeed only address a theoretical amount of 4 GB of RAM. Usually it is a bit less than that.

31 minutes ago, Raphaël G. said:

No. Windows 95 was 32 bits. That's why you could run 16 bits and 32 bits applications side by side.

Windows 95 was actually a hybrid 16/32-bit system. It was pretty much a hack in a similar way to Win32s allowing 32-bit apps to run on the 16-bit Windows 3.x via thunks. Most of the UI in Windows 95 was still 16-bit however the kernel was 32-bit. 

 

Anyway just to answer the question of why it uses a bit more RAM in 64-bit over 32-bit - this comes down to how much memory is allocated for certain data types and stack memory. As you have said when you compile you program you compile it to MSIL which is then run via the .NET Framework and the JIT will produce optimised machine code on the end users system. The same was true back in the switch from 16 to 32-bit. I remember people bemoaning why the new version of some program needed 4 MB memory when 1 MB was more than enough for the last version! This article http://www.viva64.com/en/b/0069/ is a good read :yes:

 

As for the benefits of going 64-bit for Dopamine they are probably minimal to nothing. However that doesn't mean you should shy away from going 64-bit. The reality is the future is 64-bit (and will be for a while as we are not going to hit the practical limits of 64-bit any time soon!). No software I have started in the past 3 years has been 32-bit. If the user is still on a 32-bit system they can use something else as far as I am concerned :p However I work in C and C++ and I am using strict 64-bit data types where needed so making a 32-bit version isn't quite as simple as just ticking a box in the compile options. 

 

Nice application btw, I don't do any .NET stuff but I probably should look into it now it is going to be properly available on non-Windows platforms as well.  

 

 

2 hours ago, Raphaël G. said:

You experience is accurate. There is quite some misinformation concerning 64 bit applications.

 

And I've been doing a lot more reading yesterday and today concerning targeting different platforms with .NET applications, because this is a new topic for me.

 

Dopamine has been compiled using the "Any CPU" setting since the beginning. That means that the generated exe's and dll's are platform independent. These exe's and dll's are made of platform independent "Intermediate language" or "IL". This IL is compiled on your system by the .NET Just In Time (JIT) compiler (which was installed on your system when installing .NET), based on the architecture of your system. If you are running a 32 bit system, Dopamine will be 32 bit, if your running a 64 bit system, Dopamine will by 64 bit. So that means you guys have had a 64 bit version all along :).

I could compile explicitly in 32 and 64 bit instead of using "Any CPU"; but that is only meaningful if Dopamine uses external dll's which can only be accessed by a 32 or 64 bit application. In my case, Dopamine uses external .NET components which are by themselves "Any CPU".

 

The only thing that makes Dopamine seem 32 bit on a 64 bit system and that causes confusion, is that it gets installed in the c:\Program Files (x86) folder. That's is a limitation of the installer when not explicitly forcing 64 bit. Maybe I can work around that by reading some more.

 

Also, the memory consumption I saw last time is not clear to me. I don't see why it would consume more on my 64 bit machine when it is compiled as 64 bit instead of any CPU. To be investigated.

 

Raph, I was reading through this last page and before I got to your post here I was about to recommend doing this exact implementation lol I know a few other programs such as VMWare that work similarly, they always install like a 32bit program but then run in the appropriate mode based on windows install :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now