Re: Fantavision 2.1? [message #396399] |
Fri, 03 July 2020 06:59 |
|
Originally posted by: sigurd.lerstad
mandag 21. april 2008 17.14.32 UTC+2 skrev limtc følgende:
> Hi
>
> Found a new version 2.1 here: http://www.whatisthe2gs.apple2.org.za/the_ring/application_p ages/fantavision.html
>
> Does anybody know the difference? It looks the same to me (I have the
> original version in 1987).
Is this group still alive ?
I'm trying to run FantaVision, unsuccesfully. I've tried gplus,gsport, both ROM 1 & 3, and a couple different FantaVision versions. The online version has the mouse as described, it erases the background. But on my PC, there's no mouse at all! I would actually be fine with an erasing mouse, but I need to be able to save a FantaVision movie file as I want to reverse engineer the format. (Can I save a local file from the online emulator version ?)
Thank you
Sigurd
|
|
|
Re: Fantavision 2.1? [message #396404 is a reply to message #396399] |
Fri, 03 July 2020 10:26 |
|
Originally posted by: kegs
In article <c06a829a-5fc6-4292-b481-895d794e8444o@googlegroups.com>,
<sigurd.lerstad@gmail.com> wrote:
> mandag 21. april 2008 17.14.32 UTC+2 skrev limtc følgende:
>> Hi
>>
>> Found a new version 2.1 here:
> http://www.whatisthe2gs.apple2.org.za/the_ring/application_p ages/fantavision.html
>>
>> Does anybody know the difference? It looks the same to me (I have the
>> original version in 1987).
>
> Is this group still alive ?
>
> I'm trying to run FantaVision, unsuccesfully. I've tried gplus,gsport,
> both ROM 1 & 3, and a couple different FantaVision versions. The online
> version has the mouse as described, it erases the background. But on my
> PC, there's no mouse at all! I would actually be fine with an erasing
> mouse, but I need to be able to save a FantaVision movie file as I want
> to reverse engineer the format. (Can I save a local file from the online
> emulator version ?)
>
> Thank you
> Sigurd
Fantavision hangs when it starts on KEGS-based emulators (which includes
GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction.
Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then
does a WAI instruction. This hangs KEGS since it expects an actual interrupt
to end the WAI, but there won't be one since interrupts are masked. I never
realized this was a valid WAI use case.
The fix is easy. In instable.h, change:
instcb_SYM /* WAI */
g_wait_pending = 1;
CYCLES_FINISH
(There may be some stale #ifdef ASM code, just ignore that) to:
instcb_SYM /* WAI */
if(g_irq_pending) {
g_wait_pending = 0;
INC_KPC_1;
} else {
g_wait_pending = 1;
}
Kent
|
|
|
|
|
Re: Fantavision 2.1? [message #396412 is a reply to message #396404] |
Fri, 03 July 2020 16:27 |
|
Originally posted by: sigurd.lerstad
>> Is this group still alive ?
>>
>> I'm trying to run FantaVision, unsuccesfully. I've tried gplus,gsport,
>> both ROM 1 & 3, and a couple different FantaVision versions. The online
>> version has the mouse as described, it erases the background. But on my
>> PC, there's no mouse at all! I would actually be fine with an erasing
>> mouse, but I need to be able to save a FantaVision movie file as I want
>> to reverse engineer the format. (Can I save a local file from the online
>> emulator version ?)
>>
>> Thank you
>> Sigurd
>
> Fantavision hangs when it starts on KEGS-based emulators (which includes
> GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction.
> Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then
> does a WAI instruction. This hangs KEGS since it expects an actual interrupt
> to end the WAI, but there won't be one since interrupts are masked. I never
> realized this was a valid WAI use case.
>
> The fix is easy. In instable.h, change:
>
> instcb_SYM /* WAI */
> g_wait_pending = 1;
> CYCLES_FINISH
>
> (There may be some stale #ifdef ASM code, just ignore that) to:
>
> instcb_SYM /* WAI */
> if(g_irq_pending) {
> g_wait_pending = 0;
> INC_KPC_1;
> } else {
> g_wait_pending = 1;
> }
>
> Kent
cool, thanks, it worked :)
|
|
|
|
Re: Fantavision 2.1? [message #398183 is a reply to message #396404] |
Wed, 19 August 2020 15:16 |
dagz
Messages: 108 Registered: December 2012
Karma: 0
|
Senior Member |
|
|
Thanks Kent,
I was able to fix this in GSplus and will make sure it gets in the next release.
Best,
Dagen
> Fantavision hangs when it starts on KEGS-based emulators (which includes
> GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction.
> Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then
> does a WAI instruction. This hangs KEGS since it expects an actual interrupt
> to end the WAI, but there won't be one since interrupts are masked. I never
> realized this was a valid WAI use case.
>
> The fix is easy. In instable.h, change:
>
> instcb_SYM /* WAI */
> g_wait_pending = 1;
> CYCLES_FINISH
>
> (There may be some stale #ifdef ASM code, just ignore that) to:
>
> instcb_SYM /* WAI */
> if(g_irq_pending) {
> g_wait_pending = 0;
> INC_KPC_1;
> } else {
> g_wait_pending = 1;
> }
>
> Kent
|
|
|
Re: Fantavision 2.1? [message #398184 is a reply to message #398183] |
Wed, 19 August 2020 15:25 |
David Schmidt
Messages: 993 Registered: October 2012
Karma: 0
|
Senior Member |
|
|
Ditto, in GSport master now
On 8/19/20 3:16 PM, Dagen Brock wrote:
> Thanks Kent,
>
> I was able to fix this in GSplus and will make sure it gets in the next release.
>
> Best,
> Dagen
>
>> Fantavision hangs when it starts on KEGS-based emulators (which includes
>> GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction.
>> Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then
>> does a WAI instruction. This hangs KEGS since it expects an actual interrupt
>> to end the WAI, but there won't be one since interrupts are masked. I never
>> realized this was a valid WAI use case.
>>
>> The fix is easy. In instable.h, change:
>>
>> instcb_SYM /* WAI */
>> g_wait_pending = 1;
>> CYCLES_FINISH
>>
>> (There may be some stale #ifdef ASM code, just ignore that) to:
>>
>> instcb_SYM /* WAI */
>> if(g_irq_pending) {
>> g_wait_pending = 0;
>> INC_KPC_1;
>> } else {
>> g_wait_pending = 1;
>> }
>>
>> Kent
|
|
|