![]() |
![]() |
#61 | ||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
Quote:
Quote:
Quote:
Quote:
Well, I'm surely a newbie. I'm only writing programs for Amiga since 1989. (-: And now, MuForce output please, with "DISPC" option, and with SegTracker running. That would be helpful. It helped immediately with TVPaint. The more data you deliver, the less I have to guess. |
||||
![]() |
![]() |
#62 | |
Global Moderator
![]() Join Date: Mar 2001
Location: UK
Age: 47
Posts: 6,168
|
Quote:
|
|
![]() |
![]() |
#63 | |
Registered User
Join Date: Feb 2015
Location: Lier / Norway
Posts: 105
|
Quote:
|
|
![]() |
![]() |
#64 | |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 540
|
Quote:
I've reported him. Hopefully the mods will get round to it at some point. Thomas, I don't need this tool but I know others will. Thankyou for writing it, and for everything you do. You make this hobby a better place. |
|
![]() |
![]() |
#65 |
Bit Copying Bard
![]() Join Date: Jan 2017
Location: Kelty, Fife, Scotland
Age: 41
Posts: 1,300
|
Marce is, frankly, an idiot - and the sooner they get the boot from EAB the better. They seem to be utterly clueless about both Amiga hardware and software dev, and lash out at people that clearly have more knowledge than them.
I suggest simply ignoring them until the mods do something about it. |
![]() |
![]() |
#66 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
Thanks to Peter (again), here is another bugfix. This time, it is on an interpretation of a very bizarre instruction, namely "ftst.x fp2,fp0". ftst.x only tests the source register (here fp2) and ignores the testination. Typically, FPU instructions work such that if only one register is involved, source and destination are identical, and assemblers and compilers generate them this way. Apparently, this did not hold here, and unfortunately, my code grabbed the destination (meaningless) rather than the source.
So here is a fixed version. |
![]() |
![]() |
#67 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
...and here we have the first release candidate, the 40.2. The FPU emulation core did not change, though there was one change in the emulation core. This version replaces the algorithm for computing exp,log,2^x and log2 by a more efficient version that should approximately be twice as fast.
Again, please check and if there are no defects found, this will become the release. |
![]() |
![]() |
#68 |
Registered User
Join Date: Apr 2012
Location: Canada
Age: 44
Posts: 910
|
I was hoping to help you with the debug, as both of NovaCoder's Quake and Quake2 FPU ports crash with the SoftIEEE running, but I do not get any output from MuForce when the crash happens. I did set a log file and a console output but I get nothing. What am I doing wrong?
|
![]() |
![]() |
#69 | |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,455
|
Quote:
I see lots of people setup WinUAE to use an 020 + 68882 to try and run 060 ports, no idea why they don't just configure WinUAE and AmigaOS properly ![]() |
|
![]() |
![]() |
#70 | |
Registered User
Join Date: Apr 2012
Location: Canada
Age: 44
Posts: 910
|
Quote:
Yes, LC060 is all the rage these days since we can't get full 060s anymore. If you remember you also did a -nofpu compile of Quake, and it actually runs really well at 100 Mhz (it's mostly playable), but that's not the point here. I just figured that with SoftIeee the FPU version should run in a similar fashion to the -nofpu compile but at the moment it crashes, so I wanted to figure out why, but I can't figure out how to set up MuForce to report the crash details. |
|
![]() |
![]() |
#71 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
Quote:
Last edited by Thomas Richter; 23 November 2022 at 07:06. |
|
![]() |
![]() |
#72 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
It is here really only providing a test case for the SoftIEEE FPU emulation, and not so much as a realistic use case. It's all understood that the result will not be playable because the FPU emulation will be much to slow. Yet, it should not crash by any means.
|
![]() |
![]() |
#73 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,624
|
Some of the XC68LC060 branded CPUs I've had are actually full 060's with FPUs that did not pass factory testing.
AFAIK there is no way to tell them apart from full 060's (except the FPU doesn't work). Can you use this software with these CPUs? |
![]() |
![]() |
#74 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
The 68060 PCR register tells if there is an FPU on board or not, and if it is not, the 68060.library does not attempt to enable the FPU, or load the FPU support package. If that identification does not work, the MMU-Configuration file (for the MMULib based libraries) allows you to disable the FPU ("FPU off" as command).
SoftIEEE can be used whenever there is no FPU detected by the operating system, thus depending on the line F exception vector. Luckily, the 68LC060 (and 68060) reacts as if there is no FPU present if the FPU is disabled in the PCR register, and thus then can depend on emulation. So, long story short: Yes. |
![]() |
![]() |
#75 |
Alien Breeder
Join Date: Dec 2007
Location: Szigetszentmiklos / Hungary
Age: 47
Posts: 1,117
![]() |
Okay, now a theoretic question.
Could that happen, if SoftIEEE will cover all FPU functions, to redirect it using a PowerPC FPU in a BlizzardPPC-kind of card for example or in Ragnarok? I know it is something different, "rewiring" instead of emulating, but... Do I ask something stupid? ![]() |
![]() |
![]() |
#76 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
Quote:
As I'm a fan of open documentation and open specification (but not open source), you'll find all the information needed to implement an alternative softieee.library in the above archive. Essentially, you need to implement all the functions of the library (more or less one per FPU instruction) and provide a sufficiently large library base as the SoftIEEE binary will want to place of its internal state information there. Hence, that's all well possible, the architecture was designed to allow that, just somebody needs to pick it up. |
|
![]() |
![]() |
#77 | |
Alien Breeder
Join Date: Dec 2007
Location: Szigetszentmiklos / Hungary
Age: 47
Posts: 1,117
![]() |
Quote:
![]() Hope someone will see the potential to prove if it can be done in reality. Just have been thinking on it hipothetically. Glad to know that my theory can work. |
|
![]() |
![]() |
#78 | |
Registered User
Join Date: Apr 2012
Location: Canada
Age: 44
Posts: 910
|
Quote:
![]() This is the output I gathered, is this helpful? Code:
Exception !! 0000000B TCB: 08380B88 CTX: 080477D8 SSP: 08002310 USP : 083E2510 SR: 0004 (U0)(-)(-) TCB: 08380B88 PC: 082E56B4 Data: 08448C9C 00000073 00000000 3F800000 00000001 00000001 082E9C0C 082E9BF8 Addr: 082DBCEC 08448C9C 0829DA34 0829DABC 0829C10C 083E259C 0828B528 08002310 Stck: 00000580 00000000 0829DA34 0829DABC 0829C10C 40050000 8A21BCAE A747D000 Stck: 083F12CC 083E257C 0000000B 083F11E4 083F11E4 083E257C 00000580 00000000 082e5694 : 4e55 ff94 link.w a5,#-$6c 082e5698 : f227 e004 fmovem.x fp2,-(a7) ;extended opcode 082e569c : 48e7 3038 movem.l d2-d3/a2-a4,-(a7) 082e56a0 : 4282 clr.l d2 082e56a2 : 263c 3f80 0000 move.l #$3f800000,d3 082e56a8 : 2b43 ffdc move.l d3,-$24(a5) 082e56ac : 2b42 ffe0 move.l d2,-$20(a5) 082e56b0 : 2b42 ffe4 move.l d2,-$1c(a5) 082e56b4 : *f202 455a fsneg.s d2,fp2 ;extended opcode 082e56b8 : f22d 6500 ffe8 fmove.s fp2,-$18(a5) ;extended opcode 082e56be : 2b43 ffec move.l d3,-$14(a5) 082e56c2 : 2b42 fff0 move.l d2,-$10(a5) 082e56c6 : 2b42 fff4 move.l d2,-$c(a5) 082e56ca : 2b42 fff8 move.l d2,-$8(a5) 082e56ce : 2b43 fffc move.l d3,-$4(a5) 082e56d2 : 2b43 ffb8 move.l d3,-$48(a5) Name: "AmiQuake.FPU" Hunk 0000 Offset 00050B34 Exception !! 0000000B TCB: 08380B88 CTX: 080477D8 SSP: 08002308 USP : 083E2510 SR: 0004 (U0)(-)(-) TCB: 08380B88 PC: 082E56B4 Data: 08448C9C 00000073 00000000 3F800000 00000001 00000001 082E9C0C 082E9BF8 Addr: 082DBCEC 08448C9C 0829DA34 0829DABC 083E2500 083E259C 0828B528 08002308 Stck: 00000580 00000000 0829DA34 0829DABC 0829C10C 40050000 8A21BCAE A747D000 Stck: 083F12CC 083E257C 0000000B 083F11E4 083F11E4 083E257C 00000580 00000000 082e5694 : 4e55 ff94 link.w a5,#-$6c 082e5698 : f227 e004 fmovem.x fp2,-(a7) ;extended opcode 082e569c : 48e7 3038 movem.l d2-d3/a2-a4,-(a7) 082e56a0 : 4282 clr.l d2 082e56a2 : 263c 3f80 0000 move.l #$3f800000,d3 082e56a8 : 2b43 ffdc move.l d3,-$24(a5) 082e56ac : 2b42 ffe0 move.l d2,-$20(a5) 082e56b0 : 2b42 ffe4 move.l d2,-$1c(a5) 082e56b4 : *f202 455a fsneg.s d2,fp2 ;extended opcode 082e56b8 : f22d 6500 ffe8 fmove.s fp2,-$18(a5) ;extended opcode 082e56be : 2b43 ffec move.l d3,-$14(a5) 082e56c2 : 2b42 fff0 move.l d2,-$10(a5) 082e56c6 : 2b42 fff4 move.l d2,-$c(a5) 082e56ca : 2b42 fff8 move.l d2,-$8(a5) 082e56ce : 2b43 fffc move.l d3,-$4(a5) 082e56d2 : 2b43 ffb8 move.l d3,-$48(a5) Name: "AmiQuake.FPU" Hunk 0000 Offset 00050B34 LONG READ from 3FB99999 PC: 0948FD48 USP : 0AD0E99C SR: 0010 (U0)(-)(-) TCB: 0ACC5638 Data: 3FEFFFFC C0000000 0000009F 00000053 00000053 000002FD 00000010 00000000 Addr: 00F8781C 0A4D5882 09402374 0941DED6 094A2CF8 0AD0E9C4 0ACC41A0 08002308 Stck: 09402374 0941DED6 094A2CF8 0ACC41A0 00000000 00000000 00000000 7FFF0000 Stck: FFFFFFFF FFFFFFFF 0AD0EA00 0949746E FFFFFFFF FFFFFFFF FFFFFFBB FFFFFF89 0948fd28 : 0440 f21a subi.w #-$de6,d0 0948fd2c : 6400 f23c bcc $948ef6a 0948fd30 : 55e6 scs.b -(a6) 0948fd32 : 3fb9 9999 a000 0000 move.w -$66666000,$0(a7,d0.w) 0948fd3a : b5fc 0a4f c16c cmpa.l #$a4fc16c,a2 0948fd40 : 6fa2 ble.s $948fce4 0948fd42 : 4ced 5c00 ffd8 movem.l -$28(a5),a2-a4/a6 0948fd48 : *f22d d030 ffe8 fmovem.x -$18(a5),fp2-fp3 ;extended opcode 0948fd4e : 4e5d unlk a5 0948fd50 : 4e75 rts 0948fd52 : 4e55 ff94 link.w a5,#-$6c 0948fd56 : f227 e004 fmovem.x fp2,-(a7) ;extended opcode 0948fd5a : 48e7 3038 movem.l d2-d3/a2-a4,-(a7) 0948fd5e : 4282 clr.l d2 0948fd60 : 263c 3f80 0000 move.l #$3f800000,d3 0948fd66 : 2b43 ffdc move.l d3,-$24(a5) Name: "AmiQuake2" Hunk 0000 Offset 0008D700 Exception !! 0000000B TCB: 0ACC5638 CTX: 080477D8 SSP: 08002310 USP : 0AD0E938 SR: 0014 (U0)(-)(-) TCB: 0ACC5638 PC: 0948FD72 Data: 3FEFFFFC C0000000 00000000 3F800000 00000053 000002FD 00000010 00000000 Addr: 00F8781C 0A4D5882 09402374 0941DED6 094A2CF8 0AD0E9C4 0ACC41A0 08002310 Stck: 0000009F 00000053 09402374 0941DED6 094A2CF8 00000000 00000000 00000000 Stck: 00000053 00000053 000002FD 00000010 00000000 00F8781C 0A4D5882 0A4FB040 0948fd52 : 4e55 ff94 link.w a5,#-$6c 0948fd56 : f227 e004 fmovem.x fp2,-(a7) ;extended opcode 0948fd5a : 48e7 3038 movem.l d2-d3/a2-a4,-(a7) 0948fd5e : 4282 clr.l d2 0948fd60 : 263c 3f80 0000 move.l #$3f800000,d3 0948fd66 : 2b43 ffdc move.l d3,-$24(a5) 0948fd6a : 2b42 ffe0 move.l d2,-$20(a5) 0948fd6e : 2b42 ffe4 move.l d2,-$1c(a5) 0948fd72 : *f202 455a fsneg.s d2,fp2 ;extended opcode 0948fd76 : f22d 6500 ffe8 fmove.s fp2,-$18(a5) ;extended opcode 0948fd7c : 2b43 ffec move.l d3,-$14(a5) 0948fd80 : 2b42 fff0 move.l d2,-$10(a5) 0948fd84 : 2b42 fff4 move.l d2,-$c(a5) 0948fd88 : 2b42 fff8 move.l d2,-$8(a5) 0948fd8c : 2b43 fffc move.l d3,-$4(a5) 0948fd90 : 2b43 ffb8 move.l d3,-$48(a5) Name: "AmiQuake2" Hunk 0000 Offset 0008D72A Exception !! 0000000B TCB: 0ACC5638 CTX: 080477D8 SSP: 08002308 USP : 0AD0E938 SR: 0014 (U0)(-)(-) TCB: 0ACC5638 PC: 0948FD72 Data: 3FEFFFFC C0000000 00000000 3F800000 00000053 000002FD 00000010 00000000 Addr: 00F8781C 0A4D5882 09402374 0941DED6 0AD0E928 0AD0E9C4 0ACC41A0 08002308 Stck: 0000009F 00000053 09402374 0941DED6 094A2CF8 00000000 00000000 00000000 Stck: 00000053 00000053 000002FD 00000010 00000000 00F8781C 0A4D5882 0A4FB040 0948fd52 : 4e55 ff94 link.w a5,#-$6c 0948fd56 : f227 e004 fmovem.x fp2,-(a7) ;extended opcode 0948fd5a : 48e7 3038 movem.l d2-d3/a2-a4,-(a7) 0948fd5e : 4282 clr.l d2 0948fd60 : 263c 3f80 0000 move.l #$3f800000,d3 0948fd66 : 2b43 ffdc move.l d3,-$24(a5) 0948fd6a : 2b42 ffe0 move.l d2,-$20(a5) 0948fd6e : 2b42 ffe4 move.l d2,-$1c(a5) 0948fd72 : *f202 455a fsneg.s d2,fp2 ;extended opcode 0948fd76 : f22d 6500 ffe8 fmove.s fp2,-$18(a5) ;extended opcode 0948fd7c : 2b43 ffec move.l d3,-$14(a5) 0948fd80 : 2b42 fff0 move.l d2,-$10(a5) 0948fd84 : 2b42 fff4 move.l d2,-$c(a5) 0948fd88 : 2b42 fff8 move.l d2,-$8(a5) 0948fd8c : 2b43 fffc move.l d3,-$4(a5) 0948fd90 : 2b43 ffb8 move.l d3,-$48(a5) Name: "AmiQuake2" Hunk 0000 Offset 0008D72A |
|
![]() |
![]() |
#79 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,474
|
Yes, excellent! This is very helpful, and tells - stupid me - that I forgot another instruction.
|
![]() |
![]() |
#80 | |
Registered User
Join Date: Apr 2012
Location: Canada
Age: 44
Posts: 910
|
Quote:
This is a bit off topic, but I just wanted to add that I have seen a LOT of 68060 cpus with various prints and designations and everything points out to this "factory testing" to be nothing but a myth. I am yet to find a rev1 EC marked CPU that does not run everything perfectly. The "factory testing" seems to have been an excuse for Motorola to say "we don't have an FPUless die yet, so don't go buying these cheapo ones because they won't work, we promise, go buy the expensive ones instead". Looks like even Phase5 knew it back in the 90s since all of my 060 accelerators came with EC marked rev1 060s, yet I never had an issue. In fact I would be _very_ curious to find an 060 with a present but "defective" fpu. |
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Demos to test FPU on SX32 MkII (020+FPU) | Rochabian | request.Demos | 1 | 21 April 2020 03:03 |
Betatesting Amiga and C64 Forever 7 | michaelz | support.Amiga Forever | 23 | 22 June 2017 16:58 |
[obsolete] EoB 2 Thread AGA and translations betatesting | Marcuz | project.Amiga Game Factory | 17 | 21 August 2008 22:47 |
Frederic's Emulator inside and Emulator thread | Fred the Fop | Retrogaming General Discussion | 22 | 09 March 2006 07:31 |
|
|