Inside: SereneScreen Fan Forum

Inside: SereneScreen Fan Forum (https://www.feldoncentral.com/forums/index.php)
-   Marine Aquarium 3 for Windows (https://www.feldoncentral.com/forums/forumdisplay.php?f=46)
-   -   Extending MA3's capabilities? (https://www.feldoncentral.com/forums/showthread.php?t=15276)

Ralph 07-25-2012 10:24 AM

Quote:

Originally Posted by cjmaddy (Post 142224)
This version doesn't work at all for me. It just reverts back to the desktop.

Same with me.. It "looks" like it wants to start, gives me the splash screen then an error message.

jimkraz 07-25-2012 12:04 PM

I have just tested this and it runs fine on my rig, I am running a HP Pavilion Slimline 10 months old with on-board graphics chip and am running Windows 8, runs just as well as original, and, I too would like the "doctors" surgery, well done on your experimenting. Jim

flipper 07-27-2012 11:00 AM

2 Attachment(s)
jleslie, I'm sorry about that. But there's nothing I can do here beyond what I'm already doing to ensure everything is malware free on my end.

cjmdaddy and Ralph, I read up on multi-monitor support and I think I found out some of what I was doing wrong. The attached version has some changes for multi-monitor use that may fix the crashing. But I'm pretty sure I still don't have it all correct.

To all, thanks for the feedback. I do consider the room model and tank as part of the background as well. I'm willing to do any work that has no possibility of breaking the illusion Mr. Sachs has created. I'm adding stuff in stages to give those with less powerful pcs a chance to see at least some of it without completely bogging down their MA3 animations.

Attached is a new version that uses a cpu driven water surface with a fake reflection of the background room, which is represented at this time by a simple pic. I pulled in the back of the tank frame to show more of the room. This is the version that has the best chance to work on older and slower pcs, although it still requires some power in the cpu and a reasonable fill rate in the gpu. If all goes well it should look like the attached pic.

In following posts I'll attach some more high quality pics you can use as backgrounds. See the readme.txt file in the bkgnd folder for the easy steps to do this.

flipper 07-27-2012 11:11 AM

4 Attachment(s)
Here's a couple more backgrounds you can use with the above version of the app.

flipper 07-27-2012 11:19 AM

2 Attachment(s)
Here's another background you can use with the above version of the app.

patscarr 07-27-2012 02:32 PM

OK. Now THAT looks cool! I have one suggestion though. There is too much water surface showing and it is angled too much. Decrease the angle so that only a half inch of water surface shows, instead of the one and a half inch that shows now. Anybody else agree?

Ralph 07-27-2012 03:31 PM

Quote:

Originally Posted by flipper (Post 142326)
cjmdaddy and Ralph, I read up on multi-monitor support and I think I found out some of what I was doing wrong. The attached version has some changes for multi-monitor use that may fix the crashing. But I'm pretty sure I still don't have it all correct.

You fixed the problem for me.. all of your new backgrounds now work spread across two monitors, or on a single one.:TU:

Jim Sachs 07-27-2012 11:03 PM

I'm back home for a couple of days, so I finally got a chance to download and run this.

flipper - You're bumping into all the problems I did when I explored having a background pic, ten years ago. At that time I decided to use a background wash mostly to save clock cycles. After a few years computers got faster, so that became a moot point. But the other problems remain - The inclusion of a giant hi-res bitmap for the background texture (greatly increasing the size of the program), the mismatch of the perspective between the tank and the background, and the necessity of showing the underside of the water surface, which is just never going to look real.

I'm still interested in seeing the bending of camera angles which made that first picture you posted so tantalizing. (And I'm still mystified as to how you are accomplishing any of this without the source code.)

feldon34 07-28-2012 04:32 AM

Quote:

Originally Posted by Jim Sachs (Post 142359)
(And I'm still mystified as to how you are accomplishing any of this without the source code.)

The DirectX models (*.x files) and textures (*.dds) files arent that hard to tweak.

In mother Russia, children are hacking before they can walk. ;)

cjmaddy 07-28-2012 04:47 AM

Quote:

Originally Posted by flipper (Post 142326)
cjmdaddy and Ralph, I read up on multi-monitor support and I think I found out some of what I was doing wrong. The attached version has some changes for multi-monitor use that may fix the crashing. But I'm pretty sure I still don't have it all correct.

Yes, it's fixed for me also. The background is now spread nicely across both monitors....:TU: - But, I agree, I think there is too much water surface showing, and I don't like the degree of detail shown in the reflection. - In my opinion it's too distracting and looks unnatural.

The perspective between the tank and the background seems to work for me, across the two screens, but I think the type of background chosen needs to be carefully thought about if the focus of attention, is to remain with the aquarium and its contents.

All in all, it's a very clever idea, and very well executed.... But is it what MA3 really needs?
After a period of experimentation, it's something of a relief to return to a nice dark blue/green graded background. With nothing distracting from the intended underwater coral scene.

... Perhaps the answer, is to have a distant extended underwater coral background? ..... Or none at all?

phil 07-28-2012 08:32 AM

Quote:

Originally Posted by patscarr (Post 142334)
OK. Now THAT looks cool! I have one suggestion though. There is too much water surface showing and it is angled too much. Decrease the angle so that only a half inch of water surface shows, instead of the one and a half inch that shows now. Anybody else agree?

i agree, too much water showing at the top, looks good ;)

Jim Sachs 07-28-2012 08:32 AM

Morgan - True, the existing DirectX models and textures aren't hard to tweak (and it's been done many times), but these are additional models, textures, and code to run them. Even with the source code, adding a new object is a major job. The C++ objects have to be created, instantiated, initialized, and released at the proper time or memory leaks will occur. The algorithm to 'run' the object (like the moving water surface) has to be called. The object has to be displayed at exactly the right instant within the critical Render() loop for each monitor.

My hat is off to Flipper for being able to accomplish all that.

feldon34 07-28-2012 02:58 PM

Good point Jim. Mostly I was trying to be subtle about saying I'm in St. Petersburg Russia ;)

Jim Sachs 07-28-2012 03:59 PM

Neat! It's probably a good time to visit Europe, while everyone else is in London :)

Ralph 08-02-2012 06:35 AM

Quote:

Originally Posted by Jim Sachs (Post 142359)
(And I'm still mystified as to how you are accomplishing any of this without the source code.)

While I was unable to sleep this AM ... amazing what you can solve:D My take on how flipper may have done this.

I think the door flipper found was in your settings panel where we can change the background. This call would be easy to find. He then changed the code to call his MA3Ex.dll that does at least 2 things.. a) confirm a registration key exists.. if not > exit (:)) b) insert loft.dxt3 in place of your background and run program.

But.. many of my early morning solution to problems turn out to be wrong..:D

Jim Sachs 08-02-2012 02:36 PM

There is no background picture or object in my code. It's just a smooth wash of colors.

flipper 08-02-2012 03:22 PM

I've been busy trying to get a perspectively correct mirrored background image onto the water surface while maintaining the original MA3 projection matrix or I would have responded earlier. Sorry about that.

The techniques used have been around for decades. MS uses them in their app shim and compatibility layer code, for instance. They're also used a lot in game mods and other types of malware.

In a nutshell, but a bit techy, MA3Ex.exe starts MA3.scr but suspended. It then adds MA3Ex.dll into MA3.scr's process address space, tweaks the process' starting point to call MA3Ex.dll's entry point instead, resumes MA3.scr's execution and then quits.

When MA3.scr starts running again it gives control to MA3Ex.dll, which then uses "api hook"ing to cause the creation of D3D devices to be rerouted to its code. That code allows the call to go through to D3D, and upon a successful creation, adds the device to its good devices list and, using "code hook"ing, causes several of the D3D devices methods to be rerouted to its code. Methods such as BeginScene, DrawPrimitive, SetTexture, SetTransform, etc. So at that point MA3Ex.dll essentially has as much control of MA3.scr's interfaces with D3D as it wants. The same technique could be used for other app->OS api interfaces as well.

It also uses a similar but different hooking technique to take control of the keyboard and mouse.

Regarding the different camera viewpoint I use in my own version of this, if you're willing to allow me to make it public, I'll start working on getting that code into this version. As it's proven to be very difficult to get a correct looking mirrored scene onto the water surface while mucking with two different fields of view (I think as you indicated above.)

Jim Sachs 08-02-2012 11:01 PM

Amazing (and horrifying).

feldon34 08-07-2012 07:45 AM

Jim,

It's been 11 1/2 years. You've indicated that income from it is nearly minimal which discourages further effort. What is the likelihood that there will be another update to the Aquarium?

Your strength is as an artist and animator. What is the harm in seeing what someone else can do? I think there are programmers out there that respect the artistic integrity of what you are doing and would love to help.

Jim Sachs 08-07-2012 08:41 AM

And then I can split my $9 per hour with them.


All times are GMT -6. The time now is 03:45 PM.

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.