sakura-it / powerpcamiga Goto Github PK
View Code? Open in Web Editor NEWNext generation PowerPC library for classic AmigaOS (work in progress)
Next generation PowerPC library for classic AmigaOS (work in progress)
Various specific patches for e.g. AmigaAMP, lha, FreeSpace that were present in the old assembly version are (still) missing in the currect version of the library.
Currently, the PPC asks the 68K to fetch it data 1-4 bytes at the time when this data is in FAST RAM. This is a context switch every time this happens:
I am thinking of moving a 4096 bytes block of FAST RAM in which the data is contained to PPC RAM and point the 68K MMU to it. The PPC MMU also has to be updated accordingly.
E.g. access by the PPC to 0x08100000 (FAST RAM) with PPC base at 0x6c000000 as seen from 68K:
Every access within this page now does not trigger a context switch.
Maybe have 2 of those pages active. copy back the oldest one when a new one is needed.
Current library version does not support "Apocalypse" and "Ragnarok" cards.
Current library version only supports Z-III big-box Amigas and not Z-II mediator machines (ie the A1200).
This feature will likely not be implemented due to technical difficulties.
Haven't come across anything crashing because of this, but the output of lha_wos while (de)compressing is garbled.
Warp3D is working on all cards except the combination Prometheus/Voodoo/MPC8343E.
2D is working so the PPC has access to the framebuffer. Same code works on the Mediator.
Current library version does not support Sonnet 7200 PCI cards.
Current library version does not support the Firestorm PCI bridge. Not sure if Prometheus is possible due to lack of DMA in the original firmware.
Now with both K1/M1 and Ragnarok/Apocalypse, which use different messaging/signaling systems, the same slow interrupt times are seen. 90 milliseconds versus 500 microseconds on the mediator (total processing time so interupting 68k, handling, return with interrupting PPC, handling. Cyberstorm is in the 500 microseconds range too). Not sure if this is also the case with Firestorm and/or introduced with the DMA fix. @grzegorz-kraszewski
The timing tests on Run68K show a large increase in latency compared to the previous asm version of the library. Also the timings vary a lot. As this seems not to be critical for a working library, I placed it in a different issue.
The 68K part of Run68K takes 80% more time than it used to (500 versus 280 microseconds). This can be reduced by rewriting part of it in assembly.
Current library version does not support Altivec as present in Apocalypse and Sonnet G4 cards.
Starting any Warp3D program locks the Amiga screen. It appears the 68K and PPC are still running, but that the screen has been locked and is not released while the Warp3D driver is waiting on....something?
This is a continuation of Sakura-IT/SonnetAmiga#46
Currently, a prerequisite for this is that the FW of the Firestorm gets a fix.
Ragnarok cards auto-boot and present their memory size in the appropriate registers to be read out by the library.
Apocalypse cards either auto-boot or not. But when auto-booting the library crashes when applying the same code as which is used for the Ragnarok cards. So Apocalypse cards are set via a jumper to disable auto-boot. The amount of memory returned in the registers is in this case 0.
A wrap around of memory occurs when it is set-up larger than it actually is. This way, the correct setting can be detected and the ENV can be removed.
The sonnet memory size is detected in a similar way.
These old SDL lessons error with that the loaded pictures is not a PNG. Works with the old library. BMPs are correctly displayed.
Just tracking the stuff that is needed for a first working version. Out of scope will be special patches (like for AmigaAmp), A1200 code (for now), Altivec code and all cards except K1/M1.
First working version will only be pci.library compatible.
Currently, the library is in the debugging phase. If all the bugs are fixed, this issue can be closed. Missing features will be added while being tracked through the other issues.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.