Ferazel's Wand

About SheepShaver, a PPC Mac emulator for Windows, MacOS X, and Linux that can run System 7.5.3 to MacOS 9.0.4.

Moderators: Cat_7, Ronald P. Regensburg, ClockWise

Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

FerazelX, you try and communicating with Ben Spees? I might have another go, if you haven't already gone for it.
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

You can go first.

BTW, I think the problem is a lack of an internal SCSI or ATI drive.

Also, anyone know of a good disassembler?
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Anyone?
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Dunno, but I sent Ben a message, no reply yet.
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Thanks for writing. It is always heartwarming to hear that people are still interested in my old games. If I knew what to change in Ferazel to make it work in SheepShaver, I would! I obviously am not in a position to port it to any modern platform as the code is truly ancient (I started working on it it in 1999.) If someone can point me in the direction of a minor change to make, and if I can still get the code to compile on my old OS 9 machine, I could possibly make a new executable that might work.

Also, in case you are interested, I am currently doing iPhone development, and have two games up on the App Store, TxtFighter and Tiny Toots. I am very keen on doing a side scroller for iOS which would be a conceptual sequel to Ferazel, but of course for legal reasons can't be titled that. Hopefully I will be able to work on that soon and I think any Ferazel fans would be into it. I am truly grateful for everybody's support of the game.

-Ben
So, anyone want to figure it out for sure? :D
User avatar
Cat_7
Expert User
Posts: 5380
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: Ferazel's Wand

Post by Cat_7 »

You might want to suggest to him to run it in SheepShaver and see what happens. He must have the debugging tools available to see where things go wrong.

Best,
Cat_7
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Cat_7 wrote:You might want to suggest to him to run it in SheepShaver and see what happens. He must have the debugging tools available to see where things go wrong.

Best,
Cat_7
Is there any already set up versions of SheepShaver that are legal to distribute, that I could send him?
User avatar
Ronald P. Regensburg
Expert User
Posts: 6781
Joined: Thu Feb 09, 2006 10:24 pm
Location: Amsterdam, Netherlands

Re: Ferazel's Wand

Post by Ronald P. Regensburg »

Jon God wrote:Is there any already set up versions of SheepShaver that are legal to distribute, that I could send him?
None. A ready set up SheepShaver contains a ROM file and installed system. Both cannot be distributed legally.

But you can set up a SheepShaver VM yourself. SheepShaver VMs are portable. See for more information:

http://www.emaculation.com/forum/viewto ... ned#p30402

http://www.emaculation.com/forum/viewto ... al+machine
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Any updates?

Also, I am still looking for a good disassembler.
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Replied to Ben, waiting reply.
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Any reply yet?
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Nope, though it took a few days last time too, though.
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Reply yet?
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

No, I will post here as soon as I hear anything, trust me.
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Nothing yet?
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Nope, though I read that he is on a trip somewhere, so it might be better to keep trying to figure things out until I can get a reply. :)
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Having a good disassembler or even a decompiler would help.
Jon God
Inquisitive Elf
Posts: 28
Joined: Fri Aug 05, 2011 6:18 am

Re: Ferazel's Wand

Post by Jon God »

Try asking at the macintosh garden perhaps, someone there might be able to point you in the right direction.
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

Still nothing?

Also, I keep forgetting to mention that Ferazel's Wand uses 53k of memory before it crashes. This was discovered using RAM Charger.
emendelson
Forum All-Star
Posts: 1284
Joined: Tue Oct 14, 2008 12:12 am

Re: Ferazel's Wand

Post by emendelson »

Content removed by poster.
Last edited by emendelson on Mon Mar 19, 2012 10:38 pm, edited 1 time in total.
springheeledjak
Space Cadet
Posts: 1
Joined: Mon Mar 19, 2012 7:01 am

Re: Ferazel's Wand

Post by springheeledjak »

After obtaining a Mac Mini, installing Classic on it, and running Ferazel's Wand only to discover that it runs at about 2 FPS, I found this forum thread (I tried the SheepShaver route first, of course, but unsurprisingly ran into the same issues). I have to say that I'm incredibly glad I'm not the only one who loves this game enough to try this hard to play it; it's been one of my favorite games since it came out, and I was very sad to see the death of Ben's ill-fated Refazel project.

If Jon can reach Ben again, and it really is just a bit of validation code that he can remove, that would be great. Obviously, I'd be ecstatic if Ben felt like releasing the source, and I'd be more than happy to help hack on it, but I have no idea what the legal issues surrounding that might be.

My concern, though, is about the MMU discussion -- FerazelX, how sure are you that it's not the MMU? Needing to use paged memory doesn't make a ton of sense in an old game, but old Mac games can be rather quirky. Also, have you tried Resorcerer or Machonist? It looks like Machonist geared specifically towards Obj-C apps, and it only does static disassembly, but it may be better than nothing. If only FW had been written in the era of GDB and modern disassemblers, or even just ported to Carbon...
FerazelX
Tinkerer
Posts: 71
Joined: Sun Jan 20, 2008 11:38 am

Re: Ferazel's Wand

Post by FerazelX »

I have tried ReSorcerer, but it doesn't support the data fork. As for Machonist, I am pretty sure that is OS X only. Also, I am pretty sure the MMU is not the problem, as Harry the Handsome Executive runs fine. Also, Ferazel's Wand needed to be installed off a CD to a hard drive, unlike most Ambrosia products.
kataetheweirdo
Apple Corer
Posts: 290
Joined: Sun Feb 01, 2009 4:55 pm

Re: Ferazel's Wand

Post by kataetheweirdo »

Have you tried hex editing a drive and see if it then recognizes the disk as a hard disk (as opposed to a floppy disk)? I suppose this is because of how the disks created are made floppy disks, to make booting up easier or a result of using an architecture similar to that of early 68k Macs. I haven't really studied the older Macs' architecture, although I really should.
Elyus
Tinkerer
Posts: 90
Joined: Wed Mar 21, 2012 12:35 am

Re: Ferazel's Wand

Post by Elyus »

I've been experimenting with Ferazel in HexEdit for the past couple of days and thought I'd share my findings.

Unfortunately, I haven't found a debugger that is compatible with SheepShaver; the program crashes whenever one attempts to run. So to trace the code to where Ferazel was quitting I employed a crude method of inserting infinite loops at certain points in the data. Following this procedure, I have traced the problem to the Monitor_Tool.

Note, I am using the demo version of Ferazel's Wand, so the addresses in the data will likely differ from what the full game's data looks like, but the demo has the same problems as the full version.

Image

In the image above from HexEdit, the program branches to the MT_Open subroutine when register 31 contains a non-zero value. By tracing the execution of Ferazel's Wand on a Mac that runs it, I discovered that the MT_Open subroutine was never called in normal execution. If I omit that call in SheepShaver, an error message about the Monitor_Tool is displayed, along with the erroneous value that was in r31 (it was -7004 for me). To find where this number was set, I looked in the functions above this point and found the important one to be PlatformOpen.

Image

I don't know much PPC assembly, so I can't say what this loop is supposed to be doing. However, in normal execution, the loop did not seem to run even once because r31 still contained zero later in the program. What I especially don't understand is how SheepShaver is getting -7004 in r31 when it starts at 0 and can only add 1 with each loop.

To get around this issue, I manually loaded 0 into r31, hoping it was just a bug in SheepShaver involving that one value. The program got a little farther, into the SetScreenClut subroutine, only to crash again at MT_Close. After getting through that, it crashed at MT_FindMonitor, and after that, it was MT_FadeToColor. Suffice it to say, all of the problems seem to be stemming from the Monitor_Tool, and I doubt it is something that can be fixed by hacking Ferazel's code.

After researching the problem, I saw that EV Nova crashes in SheepShaver with an error about its Monitor Tool. As Cat_7 pointed out in this thread, Build 143 of BasiliskII patches this bug by adding gamma correction. I think it's plausible that the same issue is what's keeping Ferazel from launching. Ferazel is just a little less informative when it crashes, but as I said, you can get an error about the Monitor_Tool if you skip the MT_Open subroutine, which appears to be more for debugging purposes than anything else.

SheepShaver seems to offer gamma correction, but this must be different than changing the gamma ramp values since the BasiliskII patch for EV Nova seems to work while SheepShaver does not. Sadly, this is all outside my realm of knowledge. Unless we can figure out what values are being erroneously set in initialization, at which point it might be possible to fix by hacking the program, we need to determine what the game is expecting from SheepShaver that it's not supplying. I'd love to mess around in SheepShaver's source, but compiling from source is something I'm not very good at. At best, the program I get from the compilation doesn't run.

Sorry for the absurdly long and overly-informative post. Hopefully someone here has an idea on how to move forward.
User avatar
Cat_7
Expert User
Posts: 5380
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: Ferazel's Wand

Post by Cat_7 »

Hi,

If you want help in the compiling department, we might be able to provide it.

Perhaps not related, but:
A few day ago, I experimented with the game and the inputsprockets extensions it uses. I came across a timing warning when the game was launched. "RmvTime () Descriptor not found". (from timer.cpp)

Best,
Cat_7
Post Reply