Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
91 user(s) are online (49 user(s) are browsing Forums)

Members: 1
Guests: 90

salass00, more...

Headlines

Forum Index


Board index » All Posts (joerg)




Re: Heretic 2 OS4 and WarpOS Version differences
Just can't stay away
Just can't stay away


@Maijestro
Quote:
I also have a quick question about Heretic2 and I just can't get CD-Audio to work. As you recommended I copied the CD 1 to 1 to be able to insert it under AmigaOs4.1 as an ISO image.
Does the AmigaOS 4.1 port use an ISO9660 data CD with something like mp3 files for the music instead of a CDDA audio CD?
If not you can't use an ISO image file, which is only usable for data CDs/DVDs, but would need something like CUE instead, or any other image file format supporting CDDA and which is supported by diskimage.device.

Go to top


Re: My Amiga Projects
Just can't stay away
Just can't stay away


@TheMagicSN
I'm surprised it's that slow since with the WOS versions on AmigaOS 4.x there is a lot of emulation involved as well, but the WOS H2, and several other WOS games, still was very playable on an AmigaOne XE, and that was with much slower gfx cards (Voodoo3, Radeon 7000, etc.) than the Radeon HD/RX ones used now.
- powerpc.library has to emulate all unaligned float/double memory accesses with an alignment exception handler (very slow) using integer instructions.
- For all function calls from WOS software to AmigaOS functions the arguments have to be changed from the PowerOpen API used by WOS to the SysV one used by AmigaOS 4.x, and the other way round.
- Special bug workarounds included in powerpc.library for individual games can make some parts much slower as well.
- The mix of (partially emulated) WOS/PowerOpen PPC and emulated m68k code used in WOS software can cause additional problems and slowdowns on AmigaOS 4.x.

Go to top


Re: My Amiga Projects
Just can't stay away
Just can't stay away


@TheMagicSN
An integer version (-msoft-float) can only help on the A1222 if your games don't work for some reason with the LTE FPU emulation but only with the much slower, trap based FPU emulation.

Trying to find out why it doesn't work with LTE and fixing the problems would make more sense, and is probably less work that rebuilding the game as well all libraries used by it with -msoft-float.

Of course a SPE version for the A1222 would be even better, but I'm not sure that additional work is really required. A more than 25 years old game like H2 should run without any problems with the LTE FPU emulation on an A1222 with a Radeon HD or RX gfx card. Unless you want to play it in FHD or 4k resolutions maybe.

Go to top


Re: My Amiga Projects
Just can't stay away
Just can't stay away


@flash
Of course integer math is much slower than FPU and SPE, but since the AmigaOS 4.1 port of Heretic 2 seems to be playable even on the slowest AmigaOne according to the benchmarks, a Micro-A1 with onboard Radeon 7000, an integer version should work without any problems on the A1222+, probably even much faster than the FPU version on the Micro-A1.

Go to top


Re: My Amiga Projects
Just can't stay away
Just can't stay away


@TheMagicSN
Even if there is no OS4 compiler (yet?) with P1022 CPU support automatically using the SPE as FPU replacement any software built with -msoft-float should work fine on the A1222+, but of course that would require rebuilding all libraries used by the game, incl. GL4ES, MiniGL, Warp3D(Nova), etc., and even the C library, with -msoft-float as well...

Go to top


Re: How to become Member of OS4Depot
Just can't stay away
Just can't stay away


@kishigo
There are no accounts on os4depot, to add a comment click "Show comments" and "[Add Comment]".
Homepage and email address of the author is listed on http://os4depot.net/?function=showfil ... ver/input/wacomtablet.lha as well: Replace / by @ and add . before fr.
Contacting the author my email is better than adding a comment, it's very unlikely that he is regularly checking the comments on os4depot for a nearly 5 years old driver.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@Georg
Quote:
It would surprise me if everthing (like in speed critical kernel/Exec parts) in AOS4 always goes through official functions (like Remove()) - if there is one - and never does something by hand or through macros to avoid function call like even oldest 68k Exec used to do. Really??
There are no node/list macros used like the ones which were in the old AmigaOS/m68k includes, nor any node/list assembler code in ExecSG, everything calls the exec node/list functions like IExec->Remove().
You could check it by using "debuglevel=20", which makes the system unusable slow or even completely fail at some point because of timing issues (at least if you are using a serial terminal for debug output and not the RAM debug buffer), but includes at least 2 debug messages for every single exec function called: Function entry and exit with result code.

Only the debug kernels (you have to use Kickstart/kernel.debug instead of Kickstart/kernel in the Kicklayout) include such debugging code like setting ln_Pred/Succ to an invalid address in Remove() to be able to detect bugs like double Remove(), the default, non-debug kernels don't, which is faster but you can get the same "funny things" like on AmigaOS <= 3.9 and AROS.
Of course developers and beta testers are always using the (slower) debug kernels.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@balaton
Quote:
I don't quite get what does that mean but maybe when the CPU calls an exception handler it disables further interrupts and something needs to enable it.
I probably remember something wrong since it has been about 20 years ago already since I worked on such low level, HAL parts of the kernel, and I only worked on the 603(e)/604(e) parts (classic Amiga with BlizzardPPC or CyberStormPPC), but if not it may work like that:
1. The kernel gets an IRQ, or rather the PowerPC CPU exception caused by external IRQs, and changes the MSR register to disable further IRQs.
2. The kernel calls the interrupt handler functions in the matching exception/IRQ list, until one of them returns TRUE.
3. The kernel re-enables the external IRQs again by restoring the previous MSR value.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@Georg
Quote:
but I remember early AROS ...
Quote:
...then things like Remove() on an already removed list node can cause funny things (like in AROS disappearing tasks).
Why do you keep mentioning AROS and/or AmigaOS <= 3.9 bugs in AmigaOS 4.x related threads?

ExecSG isn't based on any AmigaOS 0.1-3.9 nor AROS sources, it's an independent, about 90% compatible, reimplemation of the exec API.

For example IExec->Remove() in the debug kernels sets ln_Pred and ln_Succ to something like 0xCCCCCCCC. Not sure about the actual value, and it may be different on different hardware, but in any case it makes the 2nd IExec->Remove() of the same node from a list crash with a DSI exception.
That way broken software removing a node more than once from a list doesn't cause "funny things" like on AROS and AmigaOS <= 3.9, on AmigaOS 4.x you get a DSI exception with stack trace for such bugs instead.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@balaton
Quote:
Ideally AmigaOS should set up the hardware the way it likes but if this is something done by the pegasso2 firmware we can emulate that when not using firmware (either in QEMU or BBoot).
The AmigaOS kernel doesn't configure any hardware but uses whatever the firmware has set up.
For example on the AmigaOne you can switch between level and edge triggered IRQs in the U-Boot menu. I don't remember which one works, but with the other option you get a lot of problems on a real AmigaOne.

Most AmigaOS hardware drivers depend on the configuration done by the firmware as well and don't configure their hardware themselves, the gfx driver for Radeon R100/R200 cards (ATIRadeon.chip, not Hans' RadeonHD/RX drivers) even only works if the x86 BIOS of the gfx card was executed by the x86 emulator of the firmware.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@Hans
Quote:
I'm not convinced that Joerg is correct. After all, real Pegasos-II also shares the same interrupt between multiple devices. If shared interrupts were a problem, then we should see people with real Pegasos-IIs complaining about it.
Would require that there are people using AmigaOS 4.1 on a real Peagaos2

One of the Friedens had a Pegasos2 for porting AmigaOS 4.x to it and probably Stéphane (peg2ide.device), but IIRC there was no single OS4 beta tester who had one as well.
I guess there are currently 1-5 users using AmigaOS 4.1 on a real Pegasos2 (kas1e has one) and about 20-30 using it with a QEmu emulated Pegasos2.

There are definitely some broken HW drivers not checking if it's an interrupt for their own hardware and always return TRUE in their interrupt handler function.
On the AmigaOne SE/XE/µA1 (and maybe Sam440/460 as well), no matter if real or emulated, where nearly all HW uses different IRQ numbers such broken drivers may still work, but not on the Pegasos2 with everything using the same, shared IRQ.

But even if all HW drivers would work correctly: What happens if there is an interrupt from 2 different devices at the same time?
With (nearly) every device using a different IRQ, like on the AmigaOne SE/XE/µA1, it's no problem: The interrupt handler functions are in different AmigaOS interrupt lists, one per IRQ number (IIRC the AmigaOS interrupt numbers/lists are ISA/PCI IRQ numbers +16 or +32).
But on the Pegasos2 I guess the interrupt handler of the first driver in the single interrupt list handles the interrupt and returns TRUE, which means no other interrupt handler function in the list gets called.
To make it work with shared IRQs like on the Pegasos2 the interrupt handler of all drivers may always have to return FALSE, even if it was an interrupt for their hardware they handled, to make sure the interrupt handler functions of other devices in the same interrupt list get called as well.

Go to top


Re: Qemu Pegasos II interrupts issue
Just can't stay away
Just can't stay away


@Hans
Try using AmigaOne XE or Sam460 emulation instead, IIRC the Pegasos2, emulation as well as real hardware, uses the same IRQ for nearly all hardware, for example the same IRQ is used for all PCI slots and maybe even for onboard devices like VIA PATA and USB, but next to no AmigaOS 4.x driver supports such shared IRQs.
On the AmigaOne XE (and probably Sam460 as well, but I don't know enough about it), real and emulation, each PCI slot and onboard device uses a different IRQ number instead.

Go to top


Re: SDL2
Just can't stay away
Just can't stay away


@Maijestro
It doesn't depend on the version of a library like SDL, you can either use static linking (will always use the version if was built with) or shared linking (.so) to build executables.
Updates of libraries may use new methods and/or incompatible data structures, if a program is statically linked it will always work because it's using the (old) version it was built with.
If a program uses a shared version of a library (AmigaOS #?.library or ELF #?.so) instead it automatically uses improvements/bug-fixes of newer versions of the library, but if a new version isn't 100% API compatible any more it will no longer work at all.

Go to top


Re: New owner of an X5040, who needs help
Just can't stay away
Just can't stay away


@Hypex
Quote:
Or some kind of SCSI command encapsulated in an ATA command. Since I recall some standard where SCSI wass encapsulated in ATA.
Yes, it's the ATA Packet Interface (ATAPI).
ATA is a very limited command set only usable for simple things like hard disks, anything more complex like CD/DVD has to use SCSI commands like the MMC ones with ATAPI.

Additionally AmigaOS still doesn't have something like a HD_ATACMD and it's not possible to send ATA commands to ATA(PI) drives on AmigaOS.
You either have to use the trackdisk commands (TD_#? and NSCMD_TD_#?) or SCSI commands with HD_SCSICMD the ATA drivers have to convert internally to ATA commands (ATA drives like HDs) or pass through nearly unchanged to the drive (ATAPI drives like CD/DVD).


Edited by joerg on 2024/3/13 19:02:27
Edited by joerg on 2024/3/13 19:04:18
Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
Quote:
it does not fix or answer the original question: why SFS doos not work on sam460ex when it works with the same sii2112 controller on pegasos2.
Since it works for @jabirulo (real Sam460), but not for @smarkusg (except for the AmigaOS 3.x/m68k version, QEmu Sam460), I have no idea what the problem could be.

Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
cybppc.device, implemented by the Amiga/m68k and Amiga/PPC NetBSD maintainer Ignatios Souvatzis (with a little help from me in the AmigaOS 4.x specific parts), and lsi53c8xx.device, implemented by Stephane Guillard who did the PATA (VIA (a1|peg2)ide, SII0680, IT8212) and SATA (SII3[15]1[24]) drivers as well, may have nothing in common, especially the script code may be completely different.

I don't know the script code lsi53c8xx.device uses, the csppc.device script code is available on http://cvsweb.netbsd.org/bsdweb.cgi/s ... type=text/x-cvsweb-markup


Edited by joerg on 2024/3/5 5:59:26
Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
Did your try https://lists.nongnu.org/archive/html/ ... vel/2024-03/msg00343.html already?
I don't know if it's the case for lsi53c8xx.device.kmod as well, but when porting hardware drivers to AmigaOS the usual source is NetBSD, for example the Classic Amiga cybppc.device.kmod SCSI driver is based on the NetBSD Amiga http://cvsweb.netbsd.org/bsdweb.cgi/s ... type=text/x-cvsweb-markup driver.

Different SCSI controller, NCR/SYM/LSI 53C720/770, different other hardware (A4000[T] CyberStormPPC CPU board with custom connection to the SCSI chip), but still should be very similar to the NCR/SYM/LSI 53C895A/53C810 SCSI controller on a PCI card.

Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
Quote:
[lsi53c8xx/execute_cmdRequest_sense sense key 6 ASC 29 ASCQ 0
[lsi53c8xx/execute_cmdTarget 0 not readyretry 0
Unit Attention - POR or device reset occurred
Quote:
[lsi53c8xx/scsi_print_errorSCSI ErrorTarget 0 LUN 0 Command 28
      CCB
28 00 00 00 00 01 00 00 01 00 (len 10)
I don't know what the failed command is, would need to look up in some SCSI docs.
Operation code 0x28 (byte 0) is the Read(10) command, LBA 1 (bytes 2-5, big endian), transfer length 1 sector (bytes 7+8).

If you know how ATAPI works you don't need SCSI docs, ATAPI basically uses the SCSI command set, just a different way to transfer commands, data and error codes.

Quote:
CntrlScript Error
AFAIK scripts based SCSI controllers use some kind of assembler language to execute the commands on the controller, the script code is uploaded by the driver.
Maybe the QEmu emulation of this SCSI controller doesn't support some script code the AmigaOS 4.1 driver uses, but the Linux, Windows, etc. drivers don't.


Edited by joerg on 2024/3/3 4:36:39
Edited by joerg on 2024/3/3 4:44:58
Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
Quote:
On real machine scsi is faster because scsi card works independently of CPU and can offload more operations but in emulation that's not necessarily the same and emulating a more complex scsi card may actually be slower.
IIRC the NCR/SYM/LSI 53c8xx class of SCSI controllers is Narrow Ultra SCSI with a theoretical max. speed of only 20 MB/s, while even SATA version 1.0/SATA-150 like in the 3112, 3512 and 3114 controllers is 150 MB/s, i.e. SATA could be about 7,5 times faster on real hardware than SCSI.
But as you said emulation is something completely different...

The reason SCSI emulation should be faster than SATA emulation is that the AmigaOS SATA drivers don't support NCQ, while on SCSI something similar is always done.


Edited by joerg on 2024/3/2 18:14:48
Go to top


Re: Sam460 which file systems can be used
Just can't stay away
Just can't stay away


@balaton
It's probably not nonvolatile.library.kmod but nvram.resource.kmod which needs to be replaced by the classic Amiga/Pegasos2 version. Or simply replace both to be sure they are working correctly together, and don't forget to add "MODULE Kickstart/nvrom.txt" to the Kicklayout of AmigaOne or Sam460 and copy or create the file with U-Boot variables. Maybe adding "lsi53c8xx_verbose=1" to it will show why it hangs on the Pegasos2.

Go to top



TopTop
(1) 2 3 4 ... 83 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project