Login
Back to forumReply to this topicGo to last reply

Posted By

IstvanV
on 2007-06-06
13:17:37
 plus4emu 1.1.1 release

Changes in version 1.1.1

* added new 1541 timing code that fixes some programs that previously did not load, at the expense of higher CPU usage; it is enabled by default, and can be turned on/off in the floppy configuration dialog
* more accurate emulation of television vertical synchronization
* MacOS X build fixes; also added patch for FLTK 1.1.7 which fixes the check callback on OS X
* improvements and fixes in TED video shift register emulation
* fixed CPU I/O port data direction register ($0000)
* the ROM package now includes the 1541 DOS, rather than the 1541-II; however, it is still possible to use the 1541-II by loading dos15412.rom to ROM segment 10 in the machine configuration
* minor optimizations

Source code, Linux (32 and 64 bit), and Windows binaries are available at the download page:
http://sourceforge.net/project/showfiles.php?group_id=192837

Posted By

MagerValp
on 2007-06-07
05:56:36
 Re: plus4emu 1.1.1 release

Mac build here:

http://www.paradroid.net/tmp/plus4emu-1.1.1-macosx-i686.zip

Posted By

IstvanV
on 2007-06-07
06:05:00
 Re: plus4emu 1.1.1 release

Thanks, I will add it to the download page. However, the package does not seem to include the makecfg utility; perhaps it should be added ? Also, is it possible to include some documentation (e.g. the files COPYING, NEWS, and README) in the .zip file ?

Posted By

IstvanV
on 2007-06-07
06:32:28
 Re: plus4emu 1.1.1 release

By the way, are utilities like wget and unzip (or equivalent) available by default ? If yes, then it could be possible to write a simple shell script that does all the installation in ~/Library/Application Support/plus4emu.

Posted By

IstvanV
on 2007-06-07
07:32:00
 Re: plus4emu 1.1.1 release

I have added a simple install script to the SVN. If it works, then the package should probably include these files:

COPYING
NEWS
README
install-osx.sh
plus4emu.app/Contents/Info.plist
plus4emu.app/Contents/MacOS/makecfg
plus4emu.app/Contents/MacOS/plus4emu
plus4emu.app/Contents/PkgInfo
plus4emu.app/Contents/Resources/plus4emu.icns

Posted By

IstvanV
on 2007-06-08
11:37:31
 Re: plus4emu 1.1.1 release

Well, it does not look like there is a lot of interest so far. Anyway, I have made available a slightly modified version of the Mac package on the SourceForge download page; it is not announced in the news yet, since I am not sure if it works correctly. I included the makecfg utility from the most recent pacgake that has it. Unfortunately, this one does not have the -f flag and the change to ~/Library/Application Support/plus4emu yet, but the install script should work around that. So, here is how to install:
* download http://www.sharemation.com/IstvanV/roms/plus4emu_roms.zip, and extract it to ~/Library/Application Support/plus4emu/roms/
* run the install-osx.sh script, clicking OK to any windows that appear
Theoretically, the install script can also automatically do the first step, but, not having a Mac, I could not test that.

Posted By

Chicken
on 2007-06-08
13:05:59
 Re: plus4emu 1.1.1 release

Just busy with other stuff. But honestly, I'm very glad to see an OS X port. I'll definitely check it out during the next weeks.

Posted By

MagerValp
on 2007-06-09
05:52:54
 Re: plus4emu 1.1.1 release

Ditto, my now month old son has been keeping me busy happy

Posted By

IstvanV
on 2007-06-09
11:26:00
 Re: plus4emu 1.1.1 release

No problem. I have found a bug, and may create a new release soon.

Posted By

IstvanV
on 2007-06-10
05:15:19
 Re: plus4emu 1.1.1 release

Here is a list of changes in the 1.1.2 update:
* fixed a bug that caused the tape input signal to get stuck at high level sometimes even after stopping or closing the tape
* optimizations in 1541 high timing accuracy mode
* adjusted reSID filter for the different clock frequency used in Plus/4
The "tools" page still seems to display version 1.0.0.2 (2007-04-27) as the most recent one, though.

Posted By

IstvanV
on 2007-06-10
12:30:04
 Re: plus4emu 1.1.1 release

I found something that looks like a bug in the kernal, and could easily be worked around in the emulator, but I am not sure if that should be done. The problem is that the routine at $eda9 - which checks if there is a serial or parallel (1551) floppy drive - is not very reliable, and can incorrectly report a parallel device, particularly if there are many $55 bitmaps on the screen (because it writes that value to the parallel interface area, and tries to read it back; if there is no device, the value read will most likely be what was read/written most recently on the data bus - a behavior that plus4emu does reproduce). This seems to be why I get random crashes occasionally while loading some demos. Adding a workaround would be quite simple, but since the problem can be reproduced on the real machine, I do not know if "bug compatible" emulation or reliable disk I/O is more important. Any opinions ?

Posted By

Chicken
on 2007-06-10
14:53:45
 Re: plus4emu 1.1.1 release

That's interesting...

I did a couple of 1551 versions of games and demos and I always used that very routine to find out if the previous file (usually a short boot file) was loaded from a serial device or a 1551.

It has always worked perfectly for me (and I really tested my stuff thoroughly with various setups, eg plus/4 and 1541, plus/4 and 1551) but maybe that routine is more reliable when a file has already been loaded?

Could you name demos that crashed?

One of the earliest demos that included dedicated 1551 and 1541 loaders is probably Crown's Magic Picture Show.

Csory did many 1551 versions and Ceekay did some, too. On the real machine I never had problems with those versions crashing. Haven't tried those on emulators, yet, though.

Posted By

IstvanV
on 2007-06-10
16:22:53
 Re: plus4emu 1.1.1 release

One particular demo where I encountered this problem is "Infinity". It has crashed a few times while I tested the new 1541 serial bus timing code, although it also completed successfully in 80-90% of the attempts to run it until the end. At first I thought it may be data corruption on the serial bus due to timing problems, but after some debugging, I have found the above described issue, and changing the emulator to make sure that $55 is never returned as a floating bus value on $FEx0 does make the crash go away (note: I made it repeatable by hacking the command line D64 loading until I found a timing with which the crash does occur; since the demo is non-interactive, it always runs exactly the same way when auto-started from the command line). Of course, it is a matter of many small timing differences if the parallel interface check happens exactly at a time when $55 would be read because the TED has just read it is a bitmap from memory. It may or may not happen on a real machine, and even if it does, it is not repeatable.
The $EDA9 routine is used by many other kernal calls (talk, second, etc.), so it is not specific to demos that were written to support the 1551. What normally prevents the bug from being triggered is that $55 is not on the data bus when the check is done. However, it can be shown (at least on my machine) with this simple test below, which changes the color of the border when a parallel port drive is detected; it does for me, even though I have nothing on the expansion port. If I remove the FF12/FF13 writes so that there is no $55 on the screen, it works correctly.
1010 A0 08 LDY #$08
1012 A2 00 LDX #$00
1014 A9 D0 LDA #$D0
1016 8D 20 10 STA $1020
1019 A9 18 LDA #$18
101B 8D 23 10 STA $1023
101E BD 00 D8 LDA $D800, X
1021 9D 00 20 STA $2000, X
1024 E8 INX
1025 D0 F7 BNE $101E
1027 EE 20 10 INC $1020
102A EE 23 10 INC $1023
102D 88 DEY
102E D0 EE BNE $101E
1030 A9 55 LDA #$55
1032 A2 00 LDX #$00
1034 9D 00 19 STA $1900, X
1037 E8 INX
1038 E0 08 CPX #$08
103A D0 F8 BNE $1034
103C A9 C0 LDA #$C0
103E 8D 12 FF STA $FF12
1041 A9 19 LDA #$19
1043 8D 13 FF STA $FF13
1046 A9 08 LDA #$08
1048 85 AE STA $AE
104A 20 A9 ED JSR $EDA9
104D B0 FB BCS $104A
104F EE 19 FF INC $FF19
1052 4C 4A 10 JMP $104A

Posted By

JamesC
on 2007-06-10
18:03:21
 Re: plus4emu 1.1.1 release

I believe I have this typed in correctly.... I get vertical lines where spaces are on the screen, no matter if I fill $1800-$3fff with #$00 or #$55.

>1010 A0 08 A2 00 A9 D0 8D 20
>1018 10 A9 18 8D 23 10 BD 00
>1020 D8 9D 00 20 E8 D0 F7 EE
>1028 20 10 EE 23 10 88 D0 EE
>1030 A9 55 A2 00 9D 00 19 E8
>1038 E0 08 D0 F8 A9 C0 8D 12
>1040 FF A9 19 8D 13 FF A9 08
>1048 85 AE 20 A9 ED B0 FB EE
>1050 19 FF 4C 4A 10 00 00 00

Posted By

edhellon
on 2007-06-11
09:36:12
 Re: plus4emu 1.1.1 release

Istvan, the irq-loader in Infinity (that we snatched from the MX guys I think happy was never 100% reliable, even on the master disks used for linking it fails in about 5-10% of the cases. We were really hoping it would go through in the competition at Global Pardey II happy Now if this is due to the kernal bug with the $eda9 routine I really cannot say, I don't think we even used that routine since it was an 1541-only demo but Oscar did most of the linking including loader-stuff. But I don't think he'll remember any of it. happy

BTW is there now, after all those years a public, 100% reliable 1541/51 irq-loader for plus/4 around? What was used in e.g. 8SOB?

Posted By

IstvanV
on 2007-06-12
11:58:23
 Re: plus4emu 1.1.1 release

It does not use the $eda9 routine directly, however, it does use LISTEN repeatedly while loading data to the 1541 RAM with the M-W command, and that calls $eda9. One place where I have encountered the crash is this:
http://plus4world.com/dl/screenshots/i/infinity_13.gif
It is the large "Vision" logo at the top that contains many $55 bitmaps, and with bad luck the TED might just read one of those when the parallel bus test is done, leaving that value floating on the data bus. Maybe if I make small changes to the floppy timing in plus4emu, the frequency of crashes would be reduced.
If this type of problem is the only reason why crashes could occur, then the demo should probably never crash in YAPE, since that does not emulate the hardware behavior that makes the $eda9 routine fail.

Posted By

IstvanV
on 2007-06-14
07:55:52
 Re: plus4emu 1.1.1 release

There is another minor update now that fixes problems in Dream World and Future World related to memory expansion and 1551 emulation.

Posted By

IstvanV
on 2007-06-15
12:02:03
 Re: plus4emu 1.1.1 release

The information on the Tools page might need to be updated. The latest version is 1.1.3 (2007-06-14) - the page still says 1.0.0.2 (2007-04-27), and there are also MacOSX/Intel binaries now, even if not the most recent version.

Posted By

MagerValp
on 2007-06-16
07:04:56
 Re: plus4emu 1.1.1 release

I'll compile new binaries in a couple of days, just hang in there. happy

Posted By

IstvanV
on 2007-06-16
08:45:20
 Re: plus4emu 1.1.1 release

Thanks, I will update the download page once the new package is available. By the way, you can also upload files directly to ftp://upload.sourceforge.net/incoming (as anonymous).



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024