Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

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

Members: 0
Guests: 76

more...

Headlines

Forum Index


Board index » New posts




Re: My Amiga Projects
Quite a regular
Quite a regular


@TheMagicSNQuote:
TheMagicSN wrote:Hi!

Update to my projects:

Sin: No change since last time sadly. Still in works:

Two secret projects: They will be in the focus now actually, or one of them will. Both for OS4 and 68k. Currently mainly work on OS4 version is done.



Thanks for the update. I'm waiting for the Sin port...and of course I'd like to know more about those secret projects :D


Edited by VooDoo on 2024/5/14 11:28:50
Amiga x5000 ı o2o ı 4GB RAM ı RadeonRX580 | SBlaster Audigy Fx - AmigaOS4.1 FInal Edition

A1200 sandwich

Warp - Croatian Amiga portal
Go to top


Re: My Amiga Projects
Home away from home
Home away from home


@joerg

EUAE has built in debuger, so if want to freeze a 68K program or something you can use EUAE for that. EUAE’s built in debugger is not unlike action replay.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top


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


@TheMagicSN
You can get similar debugging features on AmigaOS 3.x/m68k by installing and using about 10-20 debugging tools (Sushi, SegTacker, MuGuardianAngel, MemTrace, EatMem, etc.), but even with all available AmigaOS 3.x/m68k debugging tools installed you still get less information than on plain AmigaOS 4.x ("just" (Grim)Reaper) without using any additional debugging tools like GDB, Spotless, etc.

Go to top


Ktadd's NG Amiga Blog Update
Quite a regular
Quite a regular


May 8, 2024 update of ktadd's Amiga NG Blog.
A1222 Plus up and running. What now?


Edited by ktadd on 2024/5/9 11:47:05
Edited by ktadd on 2024/5/9 11:47:58
AmigaOne X1000, uA1
Go to top


Re: My Amiga Projects
Just popping in
Just popping in


@davec555

GrimReaper ;)

The stack trace is great also
that on most crashes it does
not just reboot. On 68k no
stacktrace and often instant reboot…

Go to top


Re: My Amiga Projects
Home away from home
Home away from home


@davec555

Grim Reaper is good debugging tool, the stack trace feature is really useful
a rs232 serial cable is also useful, if game or program crash while doing intuition lock, or bitmap lock, or some other lockup.
Spotless is nice debuging tool as well.
DumpDebugBuffer command.


Edited by LiveForIt on 2024/5/8 18:45:07
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top


Re: Compiling qemu X64 for OS4.1 (Ryzen) and also other CPU (MAC)
Just can't stay away
Just can't stay away


@white
C:BootLoader is only used on classic Amigas/WinUAE.

I'm not sure if a SWAP partition is usable on a QEmu Pegasos2 (with -m 2048) at all. Unless something radically changed in AmigaOS 4.x in the last 20 years only the first 2 GB of the 32 bit virtual address space are usable for RAM (incl. SWAP partition), the upper 2 GB are used for the PCI(e) address space.

A real Pegasos2 is AFAIK limited to 1 GB RAM and with a SWAP partition you can extent it to 2 GB.

On other systems more than 2 or 4 GB physical RAM can be used with the ExtMem feature, but from https://wiki.amigaos.net/wiki/Exec_Extended_Memory
Quote:
Pegasos 2 Warning
The extended memory feature currently does not work on the Pegasos II platform. Programmers are still encouraged to use ExtMem but may need to add an exception for the Pegasos II platform. Use IExpansion->GetMachineInfo() to verify which platform your code is executing on.


Quote:
I have not currently removed the SWAP
If I remove it, will it lead to invalidation of the disk ?
As long as you don't change anything in other partitions (moving, resizing, etc.) just deleting the SWAP partition is no problem.

Go to top


Re: My Amiga Projects
Just popping in
Just popping in


What tools do you use to debug with on OS4?


@TheMagicSNQuote:
TheMagicSN wrote:Hi!

I usually start with OS4 - ways better debug possibilities -

Go to top


Re: Compiling qemu X64 for OS4.1 (Ryzen) and also other CPU (MAC)
Quite a regular
Quite a regular


@joerg

typing error I meant:

C:BootLoader COMMANDLINE "NoDiskPager"

Go to top


Re: Tracing
Home away from home
Home away from home


@Kas1e

Bits might not be so obvious, for some who has coded Javascript, or never learned anything about digital processing.

bits are in order: (highest) 31 to (lowest) 0, importent when want to shift bits right or left.

just like you have 1000's, 100's and 10's and 1's in the descimal system.
it's place in binrary number thats set to active or 1, 0 is not active.

bit     5,  4,  3,  2,  1,  0
state off
,off,off,offOn,off


bit 0, if 1 its on, 0 is off, if ON it has value 1 in decimal system
bit 1, if 1 its on, 0 is off, if ON it has value 2 in decimal system
bit 2, if 1 its on, 0 is off, if ON it has value 4 in decimal system
bit 3, if 1 its on, 0 is off, if ON it has value 8 in decimal system
bit 4, if 1 its on, 0 is off, if ON it has value 16 in decimal system
bit 5, if 1 its on, 0 is off, if ON it has value 32 in decimal system

And so on.. the combination gives you any decimal number.

So when we taking about the signal it has value, bit it has also location in binrary number, this is the bit.

if more than one signal is set, then more than one bit is set, this is why you are geting a different value, when you’re reading the state of the task.


Edited by LiveForIt on 2024/5/8 17:20:15
Edited by LiveForIt on 2024/5/8 17:21:08
Edited by LiveForIt on 2024/5/8 18:36:53
Edited by LiveForIt on 2024/5/8 18:37:47
Edited by LiveForIt on 2024/5/8 18:38:13
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top


Re: Attempting to upgrade Sam 440 with an R7 240 or HD 7770
Not too shy to talk
Not too shy to talk


Tested few games, with Sam 440ep Flex using Radeon HD 7750.
https://youtu.be/MWPsmwVkjsM


Cro-Mag Rally
https://youtu.be/AYT4jtwsY1Q

Otto Matic
https://youtu.be/l4z_l8uEXns

Steps to Required to make Radeon HD 7XXX work.

1. Update UBoot. UBoot 1.3.1g 04-Dec-2020 updater.
2. Get transparent PCI-PCIe bridge, with a P17C9X chip. It supports 66mhz bus.
3. Get PCIe x1 - PCIe x16 riser adapter.
4. Get compatible Radeon HD card.
5. Get A-EON's Enhancer Software 2.2 and install it.
6. Add text MODULE Kickstart/RadeonHD to SYS:Kickstart/kicklayout file, just after MODULE Kickstrat/PCIGraphics.card.
7. Install Hardware, it just should work now.

NOTE. Brige card with PEX 8111 chip worked without a problems. It said it shouldn't work with Flex. https://youtu.be/VqkGFlqje6o


Edited by utri007 on 2024/5/8 21:51:00
Edited by utri007 on 2024/5/9 15:31:40
Go to top


Re: AmigaOS 4.1 Final Edition Update 2 fatal failure
Quite a regular
Quite a regular


@sacc-dude

OK but I have little money and it is for some other things.

My graphics card is an ATI Radeon that I don't remember the name and it has 256 MB

I don't know if I will bring my stuff to SACC meeting or AmiWest

Amiga 500 1MB Chip RAM with ACA 500+ACA1232,CD32,Amiga 1300 030/50 Mhz,32MB (now on my hands at least)and Amiga One G3 XE PPC 800 Mhz,ATI Radeon 9250 128 MB,256 MB RAM,Seagate 200 GB HD,2 working DVD drives,X-Arcade double for MAME,Sil0680,4 USB ports,LG
Go to top


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


@kas1e
You are mixing signal bit numbers with signal masks.

In the patch replace
IExec->Signal(&main_task->pr_Task<< portsig);
by
IExec->Signal(&main_task->pr_Taskportsig);


You could remove the unused port and message parts and simply use something like
int8 portbit IExec->AllocSignal(-1);
if (-
== portbiterror;
else 
portsig 1UL << portbit;
in main() to allocate a signal.

Quote:
portsig = 0x00000010
mainPort->mp_SigBit = 0x00000004


WTF ? :) Shouldn't it be the same ?
SigBit is the 8 bit signal bit number (0-31), portsig a 32 bit signal mask: 1 << SigBit;

Go to top


Re: My Amiga Projects
Just popping in
Just popping in


Hi!

Update to my projects:

Sin: No change since last time sadly. Still in works:
Heretic 2 68k: I expect this to be out still first half of 2024, this was the main project the last few weeks
Quake 2: Out for 68k and OS4
Two secret projects: They will be in the focus now actually, or one of them will. Both for OS4 and 68k. Currently mainly work on OS4 version is done.

There is one more project for 68k where I wonder on the feasibility, but would be something for "start of coding end of the year".

(So you see I am jumping to and fro between 68k and OS 4... I usually start with OS4 - ways better debug possibilities - and port back to 68k later in project). Want to support both platforms longterm (as to 68k mainly PiStorm and Vampire is interesting, but looking for other 68k options on the two secret projects)

Go to top


Re: Compiling qemu X64 for OS4.1 (Ryzen) and also other CPU (MAC)
Quite a regular
Quite a regular


@joerg

In practical terms
what would you recommend for qemu "Pegasos2"
do not create the SWAP partition I created it with 4GB double the RAM that you can have with qemu.

In this case, the Command to add in the startup-sequence:
Is C:BootLoader COMMANDLINE "NoDiskPager" also valid for Pegasos2 if I remove the SWAP ?
Could the system be more efficient ?


Is it valid only for the classic ?

I have currently changed to:

BlockSize 512
Buffers 10000
MaxTransfer FFFFFFF (maximum)
Mask 7FFFFFFC (32bit aligned)

I have not currently removed the SWAP
If I remove it, will it lead to invalidation of the disk ?


Edited by white on 2024/5/8 17:03:12
Go to top


Re: Tracing
Home away from home
Home away from home


@joerg
Quote:

Sending and waiting for signals does that.


Right, so.. i doing that:

Out of functions at top:

uint32 portsig;
uint32 usersig;

struct Task *patched_task NULL;
struct Task *main_task NULL;

struct MsgPort *mainPort;


main():

main_task IExec->FindTask(NULL);
    
    
BOOL ABORT FALSE;
    
struct ProcessIDMessage *receivedMessage NULL;
    
    
mainPort IExec->AllocSysObjectTags(ASOT_PORTASOPORT_SignalSIGB_SINGLETAG_END);

    if(
mainPort != NULL)
    {
        
portsig 1U Wait(portsig usersig);

            if (
signal portsig)
            {
                
IExec->DebugPrintF("port signal\n");
 
                
/*while(receivedMessage = (struct ProcessIDMessage *)IExec->GetMsg(mainPort))
                {
                    IExec->DebugPrintF("mainport received: ProcessID = %lu\n", receivedMessage->processID);
                    //IExec->ReplyMsg((struct Message *)receivedMessage);
                    IExec->Signal((struct Task *)receivedMessage->processID, SIGF_SINGLE);
                }*/
                
                
IExec->DebugPrintF("port signal for 0x%08lx\n"patched_task);
                
//stack trace, etc.
                
IExec->Signal(patched_taskSIGF_SINGLE);
                
            }

            if (
signal usersig)
            {
                
IExec->DebugPrintF("ctrl+c signal\n");
                while(
receivedMessage = (struct ProcessIDMessage *)IExec->GetMsg(mainPort)) { // make sure port is empty
                    
IExec->ReplyMsg((struct Message *)receivedMessage);
                }    
                
ABORT TRUE;
            }
        }

    }


Patched CallHookPkt:

ULONG APICALL Patched_CallHookPkt(struct UtilityIFace *Selfstruct Hook *hookAPTR objectAPTR message) {

    
struct Process *process = (struct Process *)IExec->FindTask(NULL);

    if (
IS_PROCESS(process))
    {
        
struct CommandLineInterface *cli BADDR(process->pr_CLI);

        if(
cli)
        {            
            if(
cli->cli_Module)
            {
                static 
char buffer[128];
                
IDOS->CopyStringBSTRToC(cli->cli_CommandName,buffer,sizeof(buffer));
                
                if(!
stricmp(buffer,traced_binary)) 
                {
                        if (&
process->pr_Task != NULL)
                        {
                                if (
hookstack != NULL)
                                {
                                    
patched_task = &process->pr_Task;
                                    
                                    
IExec->DebugPrintF("set signal!\n");
                                    
IExec->SetSignal(0SIGF_SINGLE);
                                    
                                    
IExec->DebugPrintF("signal it!\n");
                                    
IExec->Signal(main_task1 Wait(SIGF_SINGLE);
                                    
                                    
IExec->DebugPrintF("CallHookPkt call # %d\n"callhookspkt_counts++);
                                }
                        }
                }

            }
        }
    } 


    return 
Original_CallHookPkt(Selfhookobjectmessage);
    
}
                                }


And on serial have that:
Quote:

set signal!
signal it!
now wait!


And nothing happens, like, i never come to the main task like "portsig" never sends. I tried to replace

Quote:

IExec->Signal(main_task, 1 << portsig);


on

Quote:

IExec->Signal(main_task, 1 << mainPort->mp_SigBit);


And it works as expected !

Then i printf out the values of portsig (which should be mainPort->mp_SigBit), and of mainPort->mp_SigBit exactly, and they different! :

Quote:

portsig = 0x00000010
mainPort->mp_SigBit = 0x00000004


WTF ? :) Shouldn't it be the same ?


Edited by kas1e on 2024/5/8 12:22:09
Edited by kas1e on 2024/5/8 12:23:17
Edited by kas1e on 2024/5/8 12:24:15
Edited by kas1e on 2024/5/8 12:26:25
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top


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


@kas1e
Quote:
with global set as before for 150 CallHookPkts i only have 12 stacktraces
Because you didn't stop the patched task and wait until the main() task is done with the stack trace.
It can be done in different ways, sending messages, or SupendTask() in the patch and RestartTask() it in the main task after the stack trace is done, but using signals is the easiest way.

Quote:
So i need something like - 1 CallHookPkt happens - 1 stack trace provides.
Sending and waiting for signals does that.

Go to top


Re: Tracing
Home away from home
Home away from home


@joerg
The problem was that for single invoking of CallHookPkt from my test binary, we have 150 CallHookPkts in the system. So, idea was to catch all those 150 CallHookPkts, and made a stack traces out of them all (to see, from where all they come).

So, if we will now just stacktrace my single task, we will have just one stack trace for my process. While need to have all stack traces for all CallHookPkts : with global set as before for 150 CallHookPkts i only have 12 stacktraces. All i want is to know from where each CallHookPkts come , all 150.

So i need something like - 1 CallHookPkt happens - 1 stack trace provides. For this purposes i probabaly must to do suspend/restart of tasks, but again, with globals and without messaging this wasn't enough (12 stack traces for 150 callhookpkts only).

Now trying to find a easy way to catch every callhookpkt (but only when my binary invoking) and made a stacktrace of any of them.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top


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


@kas1e
Quote:
Aren't we tried to use messages/signals whatever for exactly purposes to send ProcessID from the patch to the main ? In your example, processID aren't transferred, which was the whole purpose of last 2 pages :)
Yes, but I don't understand why.
In your patch you are checking the task name or ProcessID and only do something for this single task. For a single task using signals is enough.
Sending messages with the ProcessID to the main task would only be required if you want to debug different tasks at the same time.

Go to top


Re: Compiling qemu X64 for OS4.1 (Ryzen) and also other CPU (MAC)
Just can't stay away
Just can't stay away


@balaton
Quote:
OK so basically buffers is a metadata cache, not related to caching file data but only directory entries so its size probably should be related to how many files are stored on the partition and how many of them are expected to be open at the same time. So it can be lower for archive volumes or volumes with large files but should be higher for sys or partition with many small files that are accessed frequently.
For a partition with only few very large files used most of the time read-only you can use only a few buffers, but when writing it it will get slow as well since it's not only directories but several other file system block types like the bitmap of used/free blocks on the partition, pointers to the data blocks used by a file, etc.

Quote:
For swap will it be ignored whatever is set there or it's allocated but unused? If it's not allocated then it does not matter and can be left to default. If I got this correctly.
All file system parameters are ignored, for example the block size as well since the swap partition has to use the CPU page size for it.

Go to top



TopTop
« 1 ... 6 7 8 (9) 10 11 12 ... 7234 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project