Giter Club home page Giter Club logo

sonnetamiga's Introduction

SonnetAmiga

This project is an attempt at reimplementation of WarpOS for Sonnet Crescendo 7200 and other PPC PCI cards.

The main part of the project is a library, which aims at API and ABI compatibility with WarpOS powerpc.library.

This project is in a beta stage of development.

Hardware

SonnetAmiga has the following hardware requirements:

  • Amiga 3000/3000T/4000/4000T.
  • ELBOX Mediator for one of the above Amiga models. 3.3V PCI power rail is necessary. Note that among big box Mediators, only 3000Di, 4000D 3V and 4000Di 3V is equipped with it by default. Other big box Mediators may be used at your own risk with a 3.3V modified Sonnet (see Wiki).
  • Sonnet Crescendo 7200 with local memory installed (up to 128 or 256MB depending on installed graphics card).
  • 3Dfx Voodoo 3, 4, 5 or ATI Radeon 9200 (ID $5960, $5961, $5962, $5964 and $5C63) graphics card.
  • 5V 168 pins FPM DIMMs 2K Refresh (up to 256MB with Voodoo3; 128MB with other supported video cards). 128 MB and 256 MB DIMMs are currently not supported. Please use up to 3x64 MB.

Now also supporting

  • Force PowerPMC-250 MPC7410 card. Tested with 256MB SDRAM on-board. Needs a PMC to PCI card with 3.3V regulator.
  • Motorola PrPMC800/815 cards with Harrier chip-set and 128/256/512MB SDRAM on-board. Also needs a PMC to PCI card with 3.3V regulator and enough Amps. Up to 384MB supported on the 512MB cards if enough Zorro III space available.
  • BigFoot Killer NIC M1 with 400MHz e300 core and 64MB on-board
  • BigFoot Killer NIC K1 with 333MHz e300 core and 64MB on-board

Software

  • Elbox' pci.library 13.8+ required.
  • THOR's mmulib package recommended.

Building

See the "Building SonnetAmiga project from source" article on project's Wiki: https://github.com/Sakura-IT/SonnetAmiga/wiki

Automated binary builds are available from Jenkins: https://jenkins.sakura-it.pl/job/sonnetamiga/

Installation

Sadly, you cannot just drop powerpc.library into your LIBS:. When powerpc.library is installed you also NEED InitPPC. If you run InitPPC from the startup-sequence after LoadMonDrvs and before AddDataTypes using Run >NIL: <NIL: C:InitPPC, then you can add powerpc.library to LIBS:. For all other cases see the installation wiki.

The initialization is needed to correctly patch the system. Do not run WarpOS (patched) binaries without first running the initialization program.

The included library IS NOT COMPATIBLE with the powerpc.library from the WarpUp distribution.

DO NOT INSTALL BOTH WARPUP LIBRARIES AND SONNET LIBRARIES!!!

Options

Currently the following options are supported through variables in ENVARC:sonnet

  • EnEDOMem (0 or 1): Enable if you have EDO RAM installed. Default = 0.
  • Debug (0-3): Set the level of debug messages. 0 = no messages (default).
  • EnAlignExc (0 or 1): Enable the Alignment Exception (or in other words disable the unaligned access emulation). Default = 0.
  • DisL2Cache (0 or 1): Disable the L2 cache. Default = 0.
  • DisL2Flush (0 or 1): Disables the full flush of the L2 cache. Can speed up things if it doesn't crash. Default = 0.
  • EnDAccessExc: See EnAlignExc, but now for the Data Access Exception (DSI).
  • DisHunkPatch (0 or 1): Disable automatic pushing first code hunk to FAST RAM. Default = 0.
  • EnStackPatch (0 or 1): Enable if you want the library to push more 68K data to 68K memory like stack and task structures. EXPERIMENTAL
  • SetCPUComm (0 or 1): If set will move all requests to MasterControl process and are no longer directly handled by the 68K interrupt. Intended for A1200. Default = 0. EXPERIMENTAL
  • SetCMemDiv (0-5): Sets the speed divider of the L2 Cache memory of a Sonnet card. 5 = 3, 4 = 2.5, 3 = 2, 2 = 1.5, 1 = 1, 0 = Handled by library. Default = 0. For example: A Sonnet with speed 500 MHz and setting 5 will run the L2 cache at 166 MHz (500/3). USE AT OWN RISK!!!
  • Harrier256MB (0 or 1): Enable if you have a Harrier based G4 card with 256MB. Default = 0 (128MB) The 128MB card needs a jumper on pin 11/12 of J2.

Bugs

See CONTRIBUTING.md file.

Legal status

SonnetAmiga project is licensed under MIT License, with some notable exceptions.

The following components are not licensed under MIT:

  • Parts of ppcfunctions.p contain code reassembled from original WarpOS. This is the only file that contains offending code. Even though Sam Jordan agreed on code reuse, copyright on this code is held by Haage & Partner. This file should be rewritten to avoid potential legal disputes. See issue #2 on GitHub.
  • The low level WarpOS debugger and the disassembler vdappc (all files in wosdb and vda directories) are copyright Frank Wille. The author has granted permission for inclusion in SonnetAmiga project, but anyone willing to further modify or use the code (especially for commercial purposes) should contact the author first.
  • The bogomips program by Jeff Tranter is based on a Linux kernel code, therefore we assume it is covered by GNU GPL license.

Disclaimers

We, the developers, are officially stating that all code interacting with Mediator boards was developed without access to the official Mediator SDK. This project is not endorsed by ELBOX in any way.

We are not responsible for any damages as a result of hardware modifications you performed needed to get a PCI PPC card working in your system and neither for making your system work with a PPC PCI card. We are also not responsible for any money loss due to the inflated prices on e.g. AmiBay or EBay. Buy a PCI PPC card at your own risk!

sonnetamiga's People

Contributors

dvdboon avatar rkujawa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonnetamiga's Issues

Accessing Amiga native structures outside Sonnet memory.

Structures returned from Run68K() calls to, for example, OpenWindowTags() from the intuition library cannot be manipulated by the PPC if the are in Amiga Fast memory.

Either we force placement of these structures into sonnet memory by patching the Allocmem() function or we brute-force it by upping the priority of the sonnet memory. The latter slows the Amiga a lot.

Another possibility is to catch all Fast memory access through the PPC MMU. This will slow the PPC a lot.

Any other thoughts?

Graphics data can overwrite PPC code/data

When not having a lot of gfx memory (read: voodoo card) and playing the Quake II intro (which is rather big) PPC code and/or data residing in Sonnet memory gets overwritten if you let the intro play long enough. This does not happen on a Radeon card with 256MB.

I'm guessing that the graphics driver assumes it has all $2005 memory for itself. And that allocating memory for bitmaps does not go through the normal memory allocation functions but through P96 or CGX.

Will look into it.

Handling arguments in macros in new vasm

The following does work correctly with vasm from Mar 12 2015 but fails with vasm built today:

.macro CALLWOS 
        .ifnb \2
                mr r3,\2
        .endif
        lwz r0,\1+2(r3)
        mtlr r0
        blrl
.endm

Throws the following error:

error 10 in line 2 of "callwos": number or identifier expected
    called from line 64 of "asmdebugger.s"
>       mr r3,\2

Using explicitely named arguments \foo instead of \number works correctly.

Investigate.

New vlink crashes on AmigaOS

@DvdBoon is having problems running the new version of vlink (current source as of 2015-03-03) on his AmigaOS system.

While linking the executable, proper binary is generated by vlink, but 8000 0004 is thrown upon exit. Apparently the cause is a jump to -186(a6) with a6 being 0.

No issues were noticed on a Linux build server. I'll try to reproduce this on my AmigaOS system and then report the problem to vlink author.

Programs crash when PCI memory is not cache inhibited on the 68K side.

It may be an idea to flush the 68K caches properly when doing a context switch from 68K to PPC. There are actually only a few points in the code where a flush needs to be: In the Run68K code on the 68K side and when sending a packet to the PPC.

Not sure how this will influence overall speed of the context switch. Maybe make it an option. Maybe use the mmu.library in the sonnet library to set things directly instead of a config file?

FUNCDEF macro no longer works in vasm m68k snapshot 2016-01-21

After upgrading vasm, every call to FUNCDEF macro ends with the following error.

error 68 in line 2 of "FUNCDEF": repeatedly defined symbol <FUNC_CNT>
    called from line 12 of "exec/exec_lib.i"
    included from line 3 of "sonnet.s"
>FUNC_CNT    SET    FUNC_CNT-6  * Standard offset-6 bytes each

Mailed Frank about this.

Not all memory is given back to system upon exit

This in combination with programs overwriting graphics memory results eventually in a hang of the system. (Time dependent on amount of VGA memory).

For example: Quake II does not release memory upon switching to a different map. The loaded maps will fill up the memory eventually.

Translate most/all parts of the library to C code

I have started to remake the library into C for easy of maintenance and as a learning project.

Current concerns:

  1. Uses Elbox NDK
  2. Library copies itself to other part in RAM (PC relative/Reloc in C?)
  3. PPC functions are currently in some PowerOpen ABI which does not seem the same to the VBCC output (StormASM uses r13 as a user stack pointer and vbcc uses r1 for everything.
  4. The PPC does not interrupt tasks that are currently inside list functions (due to missing Enable()/Disable() functions in WarpOS). Not sure how to implement this in C, Now a check is done on memory range. But functions within C can be rearranged by the linker.

Missing content in Shogo

Next to the speed up of sound (see #37) there is also content missing in Shogo. Voices are missing during the start dialogue (only self is heard). Portraits with the spoken text are missing. Intro text during start new game is missing (press esc to skip).

These items work as intended with ReWarp.

Signals between PPC task and 68K task not correctly handled

In powerpc.library, the signals between the PPC task and its 68K mirror task are shared. This is not the case yet within sonnet.library. This leads to dedicated PPC sound threads as in Earth2140, FreeSpace and SCUMMvm going into infinite waiting state as they are not signaled properly back by their 68K mirror task.

For example: SCUMMvm PPC sound thread issues a SendIO() to AHI using Run68K. It then checks immediately with CheckIO() using Run68K if AHI is done. When not done, the PPC thread goes into WaitPPC() never to be woken up by the 68K mirror task when AHI is actually done.

Remove dependency on Elbox's pci.library

Problems

  • Currently sonnet.library is relying on a modified version of Elbox's pci.library.
  • Currently sonnet.library requires an access to graphics card memory, which in some cases require prior card-specific setup (for example initialisation of memory controller on Voodoo 3).
  • Elbox does provide development kit only under restrictive NDA.
    • We don't have an access to that SDK.
    • Such restrictive NDA is incompatible with open source nature of this project.

Proposed solution

  • Write a new, open source implementation of PCI library - codename KlozetPCI.
  • Use NetBSD Mediator drivers as a basis.
  • Provide bus_space(4)-like API.
  • Optionally add a compatibility layer that would allow to use existing drivers (OpenPCI or Elbox pci.library API reimplementation).

Support initialising graphics card memory from sonnet.library

As a temporary solution, we should support initialising graphics card memory from sonnet.library. This is supposed to be a temporary solution since KlozetPCI is not ready to use yet, so that we can avoid using pci.library.

Add support for at least Voodoo 3. I'm digging through the datasheet, I'll see what I can do.

Supporting of Killer Xeno Pro and Killer 2100 using PCI to PCIe adapter card

Hi Guy's,

would be great if you think about supporting the Killer Xeno Pro and Killer 2100 PCIe cards using PCI to PCIe adapter. The cards do have a 400MHz CPU (dual?) and 128MB of DDR2 Memory on board. Would be a great and cheap upgrade!

I would be happy to help supporting the cards cause I already own one so I'm able to do tests with it!

// Thomas

Make it possible to run PPC code from graphics card memory

Currently graphics card memory is only used to boot the PowerPC CPU. Executing PowerPC programs requires memory installed on the Sonnet board.

Sonnet Crescendo 7200 has 3 slots that accept 5V, 64-bit-wide, 168 pin, fast-page mode, and 70 ns or faster DIMMs. They are quite difficult to find these days, so an alternative method to run the code should be provided.

It would be nice if we could also use graphics card memory (in case where no Sonnet memory is installed) to run the PPC programs from it.

Voodoo4/5 need to be positioned below Sonnet in a Mediator

Voodoo4/5 gets put on an 128MB boundary if it is configured after a Sonnet. It needs an 256MB boundary for it to work with the Sonnet. A quick fix is to place the Sonnet above the Voodoo4/5, but in case of an A4000D, the Amiga cannot be closed.

It is partly due to pci.library

Context switch time order of magnitude higher than with CSPPC

Looking at the output of WarpRace regarding context switches on the 604e of the Cyberstorm and the Sonnet there is an order of a magnitude of difference (1.500ms versus 15.000ms). This is probably linked to WarpRace executing 68k code within sonnet memory and/or reading data with the 68k from sonnet memory but I am not sure. Will have to look into it.

Scheduler loses focus during heavy load

The scheduler sometimes 'forgets' tasks. The task gets placed into a wait state and is never activated again. This is, for example, seen in WarpSNES (Mostly the sound task, so sound stops playing).

There is no crash. The PPC can still accept new tasks.

NARG in macros vs vasmppc_std

Now that we have C compiler producing mostly good executables for Sonnet, I'm slowly working on integrating wosdb into our build system (issue #9).

I've ran into a problem with macro while assembling PPC parts of wosdb. There's a CALLWOS macro in wosdb/warpos_lvo.i (similar to our CALLPOWERPC) that uses NARG variable to extract the number of parameters passed to the macro. However, it seems that NARG is not supported for std syntax in vasm (orignally wosdb used pasm).

This results in the following error:

error 10 in line 1 of "CALLWOS": number or identifier expected
    called from line 64 of "asmdebugger.s"
>   .ifgt   $NARG-1

Any ideas with what this NARG construct can be replaced? In worst case I can just split this macro into two separate macros but I feel that would be less elegant.

iFusion not working

At the moment iFusion is not working. It depends on some advanced features of WarpOS. If we ever get iFusion running we can effectively say that we are done regarding WarpOS compatibility :-) This is why I want to add a separate issue to it.

Debugging sessions have not taken me far yet. The first hurdle was exception handlers. These have been implemented and the large_context ones work (they are used by wosdb). iFusion however uses small_context exception handlers and are not fully tested yet.

At startup, iFusion sets up a number of exception handlers and jumps to the program/trap/privilege exception handler. Here it hangs due to loading a wrong value into SDR1 (needed for MMU setup).

Recently i discovered that this is due to alignments not supported by AllocVecPPC(). iFusion allocates 0x400000 bytes with alignment 0x100000 for the page table. It gets a non-aligned (well, actually 0x20 aligned) block in return. This is invalid for SDR1.

Hope to add alignment support for AllocVecPPC() soon. I also foresee problems/conflicts with the default MMU setup of the library. but first things first.

IRA does not like 1005 hunk

While investigating optimisations issues, I discovered it is impossible to use IRA on binaries generated with the new version of vasm and vlink (with the memory attribute set to $1005).

Running IRA on such binary results in:
Hunk...:00001005 NOT SUPPORTED.

I'll report this issue to author of IRA and ask him to add support for such hunks.

PPC crash after starting different WarpOS programs

During stress-testing of the code, the following issue was detected:

Running different, moderate complex, WarpOS programs in concession crashes the PPC.

For example

  1. Start sonnet.library -> any number of Getinfo mixed with any number of CyberPI OR CyberMand
    -> Works

  2. Start sonnet.library -> mix CyberPI AND CyberMand
    -> PPC crashes during the start of the second program (being CyberPi after Cybermand or vice versa)
    -->In some occasions, CyberPI runs but calculates PI wrongly.

This can be a memory allocation issue, register transfer issue, program exit code issue or a cache issue. As there are no debuggers for the sonnet available (yet) it takes time to pin-point the exact cause.

Duplicate files in sonnetlib and tools.

@DvdBoon
Some files are duplicated in both directories:
ppcdefines.i
ppcmacros-std.i
Is it safe to move them to one directory, let's say named "common" and just add that directory to include path in both sonnetlib and tools with -I parameter to vasm? It could work this way from both Makefiles and AmigaOS script that you're using.

I guess it should be fine, but I preferred to ask before moving anything since it's your code ;).

Investigate the optimisations done by vasm

As @DvdBoon noticed, the m68k version of vasm has some optimisations enabled by default. This results in some (unwanted?) behaviour in the newest version of vasm.

For example in getinfo binary 2169 fd56 0000 becomes 20a9 fdb0.

The optimisations can be disabled by adding -no-opt parameter to assembler flags (which I just did), but this results in many more minor differences.

Sound distorted when using AHI and a sound card

Using AHI together with a sound card results in a distorted sound. Using the Paula audio-modes from AHI does not give this distorted sound.

Current hypothesis is because there is no priority-based scheduler yet in the sonnet.library (all tasks get equal time) the sound task gets not enough cpu time (switches away too much).

Possibility to add Bigfoot Killer NIC 2100

Hi,

since the Bigfoot Killer NICs K1/M1 are now very hard to come by, and since I happen to have a Killer NIC 2100 with 400MHz "NPU" lying around, might it be possible to:

a) Run this card in an PCI to PCI-E adapter like this one https://www.startech.com/Cards-Adapters/Slot-Extension/PCI-to-PCI-Express-Adapter-Card~PCI1PEX1 (I can't imagine why this shouldn't work, but perhaps someone here knows better)
b) In the above configuration, support this card via the sonnet.library.

Thanks in advance,
Torsten

PPC programs lag when started twice in one session

Sometimes, programs like Quake or WipeOut show lag when started, quit, and started again.

The initial start does not show any lag in fps. After the second start the fps drops sharply. This is not 100% reproducable on my system. Sometimes it takes a couple of restarts of the game to get the effect.

DefIcons slows down sonnet library

A major slowdown is noticed when InitPPC is part of the startup-sequence. This has been pinpointed to DefIcons in WBStartup. Removing/Renaming ENVARC:deficons.prefs solves this. It appears that the reading of files of DefIcons conflicts with the LoadSeg patch of the library.

1200 PPC

Hello, Sakura,

I do not have any other way to contact you. I am wondering if you know whether a Bigfoot Killer NIC K1 will work with a 1200 mediator board?

Regard.

Patch existing WarpOS applications to place data/code in 0x1005 memory

Typical WarpOS applications are linked to place data and code in Fast RAM. For it to be accessible by PPC CPU, it should be placed in memory with attribute 0x1005 (which is Sonnet memory).

How to patch existing programs? I guess we need some kind of wrapper that takes an executable, patches all PPC hunks and then starts it?

Investigate the wosdb debugger

Frank Wille once wrote a WarpOS debugger called wosdb. Apparently it does everything with WarpOS API. Not sure if it would be useful for debugging sonnet.library itself, but definitely would help fixing applications running on top of it.

Investigate and make necessary adjustments to make it compatible with sonnet.library.

Get the sonnet.library working on the 1200TX mediator

At the moment, the sonnet.library only supports the A3000Di mediator. This is a mediator which has the needed 3.3V line. The only other mediator which has the 3.3V line (and with a much larger userbase) is the mediator TX (when connected to an ATX PSU).

The current state is that the PPC is initialized by the sonnet library. It sets up its memory and communicates this with the 68K. The 68K however cannot properly address the sonnet memory. This is probably due to the Z2 window.

I suspect there are functions inside the pci.library to fix this. The memory of the sonnet should be initiated the same way as graphics memory (using the pci.library) and the relevant pci.library functions will probably contain MMU code.

I will investigate this further.

Dependency on DevPac system library.

I wanted to plug InitSonnet into our build system. Basically I've done the necessary adjustments, but do we really need that DevPac system library? It makes requirements on external stuff even more complex than it already is. If possible, I'd like to keep them at minimum. What does InitSonnet really use that is there? Can we just copy^Wreimplement the necessary routines and put them in our tree?

The sonnetpatch utility fails on some binaries

Apparently AmigaOS 3 executable loader is not very strict about enforcing the format of binaries. I have several examples of programs that work just fine, but their hunk headers are broken in various ways. Most common offsense is wrong length of hunk specified in the hunk header. Sonnetpatch hunk parser needs to be extended not to fail on such programs.

C executables built with Sonnet-modified WarpOS target still contain non-0x2005 hunks

Currently, C executables linked with Sonnet-modified WarpOS target (sonnet.o instead of warpup.o) still contain two hunks without 0x2005 extended memory attribute.

This can be observed for example, in wosdb. Even though I added a bunch of -hunkattr parameters to vlink.

Investigating, I suspect x.o can be blamed here.

Note hunk 6, 7 below:

$ sonnetrun/a.out wosdb/wosdb 
HUNK_HEADER
    Hunk table size: 9
    First hunk to load: 0
    Last hunk to load: 8
Unaligned read at 15f60!
Unaligned read at 15f60!
HUNK_CODE (0x3e9) hunk number 0 at offset 0x54
    Size: 156 Amiga longwords (624 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_CODE (0x3e9) hunk number 1 at offset 0x2cc
    Size: 17616 Amiga longwords (70464 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_RELOC32 (0x3ec)
HUNK_CODE (0x3e9) hunk number 2 at offset 0x1162c
    Size: 7 Amiga longwords (28 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_DATA (0x3ea) hunk number 3 at offset 0x1166c
    Size: 829 Amiga longwords (3316 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_DATA (0x3ea) hunk number 4 at offset 0x12378
    Size: 1349 Amiga longwords (5396 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_DATA (0x3ea) hunk number 5 at offset 0x13c98
    Size: 116 Amiga longwords (464 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_DATA (0x3ea) hunk number 6 at offset 0x13f34
    Size: 4 Amiga longwords (16 bytes)
    Flags: None (implied MEMF_PUBLIC)
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_DATA (0x3ea) hunk number 7 at offset 0x13fdc
    Size: 6 Amiga longwords (24 bytes)
    Flags: None (implied MEMF_PUBLIC)
    Relocation: HUNK_DRELOC32 (0x3f7)
HUNK_BSS (0x3eb) hunk number 8 at offset 0x14010
    Size: 1996 Amiga longwords (7984 bytes)
    Flags: Extended mem attributes
        Extended memory attribute: 0x2005
    Relocation: HUNK_DRELOC32 (0x3f7)

Decide on a license

The source code of this project is provided here on GitHub, but it is not licensed. We have to decide under what license will the program be distributed.

There are two common options in the open source world:

We should carefully think about which license will be better, knowing the peculiarities of Amiga community.

Sonnet library does not support memory protection or other WarpOS MMU features

Sonnet library now holds one pagetable and one BAT setup for all programs. Real WarpOS gives the opportunity to programs to set up protected memory for themselves (using special MEMF flags).

Introduce this system also for the sonnet library for optimal compatibility.

(I've said I would never do this, but latest changes to internal builds resulted in running program without the PPC MMU. This does mean however that the 68K MMU needs to come in play. And also mmu.library).

PRPMC800-1251 ShowConfig and PCIInfo results

I have 2 PRPMC800-1251 boards with PMC239/F carrier cards. These boards feature 128mb RAM. Mediator would normally have the WinSize jumper open with less than 256mb RAM, but InitPPC will not run unless jumper is closed. With it closed, the boards are working, but I've noticed that ShowConfig describes them having 512mb RAM, and wonder if this mismatch of pci memory space contributes to stability issues of Apocalypse. I am also observing that pciinfo reports mine with Vendor ID $1057 but Device ID: $480b with DeviceName unknown instead of MPC107 and doesn't list a MemSpace address. I've checked the latest vendor.txt from Elbox and it does not include this device ID. GetInfo results and Warp working, and not sure significance of these observations. I had jumpered the boards 11-12 as closed because I'd read to somewhere, but cannot recall what the jumper setting does. Hoping for clarification from someone with more expertise, or possibly share something that may improve the compatibility.

Sounds speeds up in Shogo

After completing the first level the sound is sped up. This is probably due to some persisting/wrong signals.

PPC crash during initialization under certain circumstances

During stress-testing of the current code the following issue was revealed:

PPC CPU wanders into never-never-land when a delay is omitted during initialization. It looks like an MMU problem but as there are no debug tools (yet) for the sonnet it is hard to pin-point the exact cause.

For example:

  1. compile code
  2. start sonnet.library
  3. start getinfo

-> works

  1. reset
  2. start sonnet.library
  3. start getinfo

-> does NOT work

For now the delay inserted into the initialization code works around the problem, but this is an unwanted situation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.