Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
62 user(s) are online (33 user(s) are browsing Forums)

Members: 1
Guests: 61

BCP, more...

Headlines

Forum Index


Board index » All Posts (FlynnTheAvatar)




Re: Enhancer 2.2 Freezes X5K during installation
Just popping in
Just popping in


Hi AmigaSociety,

Not sure if you already did it, or have the equipment to do so, but I would try to capture the serial output of the X5000 on a second computer. You would need a null model cable and maybe a USB to RS232 converter.

I permanently hooked up my X5000 to another PC to get the stack traces if my X5000 crashes. That is really helpful if the X5000 freezes, as most of the time one program crashed and took the entire OS with it.

This might help you with setting it up:
https://wiki.amigaos.net/wiki/Advanced_Serial_Debugging_Guide

Go to top


Re: Trouble building GCC 11 cross-compiler on Ubuntu
Just popping in
Just popping in


Regarding the missing include from the SDK, this can happen if you have a broken lha installed in Ubuntu. All versions that come with Ubuntu do not work correctly.

This should be a working version, but you need to install it manually (download, ./configure, make install, ...): https://github.com/jca02266/lha

Go to top


Re: Debugging on os4
Just popping in
Just popping in


If you try to debug programs on a X5000 you are out of luck anyway. The stock kernel on a X5000 is broken and prevents any debugger (gdb, DB101 or Spotless) to work.

As kas1e says, printf/kprintf/IExec->DebugPrintF are your friends.

And maybe that helps you finding the problematic line of code after a crash: https://wiki.amigaos.net/wiki/Using_Crash-Logs_for_Debugging

Go to top


Re: Strange crash with Enhancer DIR (54.5)
Just popping in
Just popping in


@cnicol

Thank you very much for fixing the bug and the explanation. Yes, I can imagine that this causes serious issues if you need the column length for formatting the output, but you do not get it because of the backticks.

I hope the fixed command is available soon.

Go to top


Re: Strange crash with Enhancer DIR (54.5)
Just popping in
Just popping in


@rjd324

This is a bug in DIR 54.5.

I switched to the DIR coming with the installation CD (Version 53.3), and it works without any issue.

Go to top


Strange crash with Enhancer DIR (54.5)
Just popping in
Just popping in


Hi,

I was trying to run the tests from the adtools_testing repo on my X5020. But the Enhancer DIR command (Version 54.5) constantly crashed with an DSI.

Crash log:
kernel 54.30 (1.1.2021AmigaOne X5000 release
Machine model
(AmigaOne X5000/20)
Dump of context at 0xEFD80BA0
Trap type
DSI exception
DSISR
: 00800000  DAR662BA000
Page
0xEFD52EA0 (Virtual0x662BA000Physical0x00000000Flags0x 800)
Machine State (raw): 0x0002D030
Machine State 
(verbose): [Critical Ints on] [ExtInt on] [User] [IAT on] [DAT on]
Instruction pointer0x7F8F2344
Crashed process
DIR (0x680BFB10)
DSI verbose error descriptionAccess to address 0x662BA000 not allowed by page protection in user state (protection violation)
Access was a store operation
Exception Syndrome Register
0x00800000
 0
: 019152AC 662B0E90 00000002 FFFFFFFF 68AC9B48 46494C45 46490000 00000006
 8
7F8F2344 00000000 019152901837D5C 7F8F2308 6AE86000 FFFFFFFF 662159AC
16
6698DB80 EFE15F10 00010000 01930000 662159A8 680BFB5A 00000000 66257110
24
00000000 6AC720B0 0227ECC2 1A2B26D2 00000000 6AC720A0 662BA000 01915248
CR39953953   XERA000007E  CTR: 01837D5C  LR7F8F2344

Disassembly of crash site
:
 
7F8F23347F64DB78   mr                r4,r27
 7F8F2338
83FF0000   lwz               r31,0(r31)
 
7F8F233C7FE803A6   mtlr              r31
 7F8F2340
4E800021   blrl
>7F8F2344987E0000   stb               r3,0(r30)
 
7F8F2348895E0000   lbz               r10,0(r30)
 
7F8F234C7D4A0774   extsb             r10,r10
 7F8F2350
3BDE0001   addi              r30,r30,1
 7F8F2354
2C0A0072   cmpwi             r10,114
 7F8F2358
4082FFD4   bne+              0x7F8F232C
msr
0x0002B032
TLB1 
(64 entries):
 * [ 
50]: size=7 tid 0 TS 1 epn=0xFE000000 rpn=0x0000000F_FE000000 WIMG=0x5 XXWWRR=0xF protected
 * [ 
51]: size=6 tid 0 TS 1 epn=0x01000000 rpn=0x00000000_01000000 WIMG=0x0 XXWWRR=0x5 protected
 * [ 
52]: size=6 tid 0 TS 1 epn=0x01400000 rpn=0x00000000_01400000 WIMG=0x0 XXWWRR=0x5 protected
 * [ 
53]: size=6 tid 0 TS 1 epn=0x01800000 rpn=0x00000000_01800000 WIMG=0x0 XXWWRR=0x33 protected
 * [ 
54]: size=6 tid 0 TS 1 epn=0x01C00000 rpn=0x00000000_01C00000 WIMG=0x0 XXWWRR=0x33 protected
 * [ 
55]: size=5 tid 0 TS 1 epn=0x02000000 rpn=0x00000000_02000000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
56]: size=5 tid 0 TS 1 epn=0x02100000 rpn=0x00000000_02100000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
57]: size=5 tid 0 TS 1 epn=0x02200000 rpn=0x00000000_02200000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
58]: size=3 tid 0 TS 1 epn=0x02300000 rpn=0x00000000_02300000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
59]: size=3 tid 0 TS 1 epn=0x02310000 rpn=0x00000000_02310000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
60]: size=3 tid 0 TS 1 epn=0x02320000 rpn=0x00000000_02320000 WIMG=0x0 XXWWRR=0xF protected
 * [ 
61]: size=7 tid 0 TS 0 epn=0xFE000000 rpn=0x0000000F_FE000000 WIMG=0x5 XXWWRR=0xF protected
 * [ 
62]: size=A tid 0 TS 0 epn=0x00000000 rpn=0x00000000_00000000 WIMG=0x0 XXWWRR=0x3F protected
 * [ 
63]: size=A tid 0 TS 0 epn=0x40000000 rpn=0x00000000_40000000 WIMG=0x0 XXWWRR=0x3F protected
HAL_MaxTLB 49HAL_NextTLB 0
MMUCFG 
0x064809C4
mas0 
0x103F0000
mas1 
0xC0000A00
mas2 
0x40000000
mas3 
0x4000003F
mas4 
0x00000100
mas5 
0x00000000
mas6 
0x00000001
mas7 
0x00000000
mas8 
0x00000000

Kernel command line
serial debuglevel=5 munge

Registers pointing to code
:
r0 native kernel module dos.library.kmod+0x0001242c
r8 
module DIR at 0x7F8F2344 (section 0 0x320)
r10native kernel module dos.library.kmod+0x0001241c
r11
native kernel module kernel+0x00037d5c
r12
module DIR at 0x7F8F2308 (section 0 0x2E4)
r19native kernel module dos.library.kmod+0x0002d180
r26
native kernel module kernel+0x00a7ecc2
r31
native kernel module dos.library.kmod+0x000123c8
ip 
module DIR at 0x7F8F2344 (section 0 0x320)
lr module DIR at 0x7F8F2344 (section 0 0x320)
ctrnative kernel module kernel+0x00037d5c

Stack trace
:
(
0x662B0E90module DIR at 0x7F8F2344 (section 0 0x320)
(
0x662B0EF0module DIR at 0x7F8F2344 (section 0 0x320)

Disassembly of crash site:
 
7F8F23347F64DB78   mr                r4,r27
 7F8F2338
83FF0000   lwz               r31,0(r31)
 
7F8F233C7FE803A6   mtlr              r31
 7F8F2340
4E800021   blrl
>7F8F2344987E0000   stb               r3,0(r30)
 
7F8F2348895E0000   lbz               r10,0(r30)
 
7F8F234C7D4A0774   extsb             r10,r10
 7F8F2350
3BDE0001   addi              r30,r30,1
 7F8F2354
2C0A0072   cmpwi             r10,114
 7F8F2358
4082FFD4   bne+              0x7F8F232C
Stack pointer 
(0x662B0E90is inside bounds
Redzone is OK 
(4)

68k register dump
DATA
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ADDR
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Page information
:
Page 0xEFD52EA0:
Virtual Address0x662BA000
Physical Address
0x00000000
Lock count
0
Flags 
(0x800): (Guard)
Protection bits (0x0): (super state only)
Page is assigned to VMArea primary heap

Ready Tasks
               HOME_SMB2FS
/smb2-handler 53.4  (pri   5sigrec 0x80000180sigwait 0xC0000000masked 0x80000000)
              
MUSIC_SMB2FS/smb2-handler 53.4  (pri   5sigrec 0x80000180sigwait 0xC0000000masked 0x80000000)
              
AMIGA_SMB2FS/smb2-handler 53.4  (pri   5sigrec 0x80000180sigwait 0xC0000000masked 0x80000000)
                           
WinFrame 1 Process (pri   5sigrec 0x00800000sigwait 0xFF800000masked 0x00800000)
                    
IDF0/FastFileSystem 53.2  (pri   5sigrec 0x20000000sigwait 0xA8000100masked 0x20000000)
                    
IDF1/FastFileSystem 53.2  (pri   5sigrec 0x20000000sigwait 0xA8000100masked 0x20000000)
                                 
compose.task (pri   1sigrec 0x00000010sigwait 0x00000010masked 0x00000010)
                                    
Workbench (pri   1sigrec 0xC0000180sigwait 0x80000000masked 0x80000000)
                
Bildschirmschoner-Bibliothek. (pri   1sigrec 0x04000100sigwait 0xB4001000masked 0x04000000)
                           
NotificationServer (pri   0sigrec 0x04000000sigwait 0xBC001000masked 0x04000000)
                                      
AmiDock (pri   0sigrec 0x00080100sigwait 0x00000100masked 0x00000100)
                                     
Calendar (pri   0sigrec 0x04000000sigwait 0xDC001000masked 0x04000000)
                               
TCP/IP Control (pri   0sigrec 0x50000100sigwait 0xF8009080masked 0x50000000)
                                
ELF Collector (pri   0sigrec 0x00000100sigwait 0x00000100masked 0x00000100)
                                    
hub.usbfd (pri   0sigrec 0x10000000sigwait 0x30000000masked 0x10000000)
                                    
hub.usbfd (pri   0sigrec 0x10000000sigwait 0x30000000masked 0x10000000)
                                        
Clock (pri   0sigrec 0x02000000sigwait 0x6E001000masked 0x02000000)
                               
Background CLI (pri   0sigrec 0x10000100sigwait 0xD0001080masked 0x10000000)
                            
dos_signal_server (pri  -5sigrec 0x00004100sigwait 0x00000100masked 0x00000100)
                             
CPUDock_idleTask (pri -127sigrec 0x00000000sigwait 0x40000000masked 0x00000000)
                                    
idle.task (pri -128sigrec 0x00000000sigwait 0x00000000masked 0x00000000)

Waiting Tasks
                      DH1
/NGFileSystem 54.34  (pri  10sigrec 0x00000100sigwait 0xF0000000masked 0x00000000)
                      
DH2/NGFileSystem 54.34  (pri  10sigrec 0x00000100sigwait 0xF0000000masked 0x00000000)
                      
DH0/NGFileSystem 54.34  (pri  10sigrec 0x00000100sigwait 0xF0000000masked 0x00000000)
                                 
input.device (pri  20sigrec 0x00000000sigwait 0x80000000masked 0x00000000)
                               
P50x0 Ethernet (pri  20sigrec 0x00000000sigwait 0x00001000masked 0x00000000)
            
sii3114ide.device chip 0 port 0 (pri  12sigrec 0x00008000sigwait 0xC0000000masked 0x00000000)
                  
EHCI Controller Task Unit 1 (pri  15sigrec 0x00000000sigwait 0xBE009000masked 0x00000000)
                  
EHCI Controller Task Unit 0 (pri  15sigrec 0x00000000sigwait 0xBE009000masked 0x00000000)
                                    
USB stack (pri  18sigrec 0x00000000sigwait 0xF800D000masked 0x00000000)
                               
Background CLI (pri   0sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                           
dos_filedir_notify (pri   5sigrec 0x80000000sigwait 0x40001000masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000080sigwait 0xB0000100masked 0x00000000)
                                        
rx_gc (pri 100sigrec 0x00000000sigwait 0x80000001masked 0x00000000)
                      
p50x0sata.device Port 1 (pri  12sigrec 0x10000000sigwait 0xC0007000masked 0x00000000)
                                    
hid.usbfd (pri  10sigrec 0x00000100sigwait 0xE0000000masked 0x00000000)
                                 
HID Keyboard (pri  10sigrec 0x00000000sigwait 0x90001000masked 0x00000000)
                                    
TimeGuard (pri   0sigrec 0x04000100sigwait 0xF0001000masked 0x00000000)
                               
Background CLI (pri   0sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                                
Shell Process (pri   0sigrec 0x00000080sigwait 0x00000100masked 0x00000000)
                      
p50x0sata.device Port 0 (pri  12sigrec 0x10000000sigwait 0xC0007000masked 0x00000000)
                        
appdir envarc manager (pri -50sigrec 0x80000000sigwait 0x00000100masked 0x00000000)
                                
serial.device (pri   1sigrec 0x00000000sigwait 0x7E000000masked 0x00000000)
                           
vsata disk changer (pri   0sigrec 0x00000000sigwait 0x80000000masked 0x00000000)
                      
ICD1/CDFileSystem 53.8  (pri  10sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                      
ICD0/CDFileSystem 53.8  (pri  10sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                       
CD0/CDFileSystem 53.8  (pri  10sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                                   
« IPrefs » (pri   0sigrec 0x00000000sigwait 0x0000F000masked 0x00000000)
                                    
hid.usbfd (pri  10sigrec 0x00000100sigwait 0xE0000000masked 0x00000000)
                                    
HID Mouse (pri  10sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                           
TCP/IP Superserver (pri   0sigrec 0x00000100sigwait 0xD0000080masked 0x00000000)
                                 
ClickToFront (pri  21sigrec 0x00000100sigwait 0xE000D000masked 0x00000000)
                                 
ContextMenus (pri   0sigrec 0x00000100sigwait 0xE0001000masked 0x00000000)
                    
URL/launch-handler 53.39  (pri   5sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
              
TEXTCLIP/textclip-handler 53.4  (pri   3sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                  
RANDOM/Random-Handler 52.1  (pri   5sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                               
ramlib.support (pri  -2sigrec 0x00000000sigwait 0x80005000masked 0x00000000)
                                       
ramlib (pri   1sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                                 
Mounter Task (pri  -1sigrec 0x00000000sigwait 0xB0001000masked 0x00000000)
                                  
Mounter GUI (pri   0sigrec 0x00000000sigwait 0x80007000masked 0x00000000)
                    
Mounter Companion Process (pri  -1sigrec 0x00000000sigwait 0x80003000masked 0x00000000)
                     
Workbench DosList Notify (pri   1sigrec 0x00000100sigwait 0x00003000masked 0x00000000)
                                 
HID Consumer (pri  10sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                                    
hub.usbfd (pri   0sigrec 0x00000000sigwait 0x30000000masked 0x00000000)
                          
ScreenBlankerEngine (pri   0sigrec 0x00000100sigwait 0xD8001000masked 0x00000000)
                                    
hid.usbfd (pri  10sigrec 0x00000100sigwait 0xE0000000masked 0x00000000)
                         
TCP/IP Configuration (pri   0sigrec 0x00000100sigwait 0xF8003000masked 0x00000000)
                      
clipview.library server (pri   0sigrec 0x00000000sigwait 0xD8003000masked 0x00000000)
                                   
RexxMaster (pri   4sigrec 0x00000100sigwait 0xC0000000masked 0x00000000)
              
ContextMenus Command Dispatcher (pri   1sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
            
application.library messageserver (pri   0sigrec 0x00000000sigwait 0xC0000000masked 0x00000000)
                                      
AsyncWB (pri   0sigrec 0x00000100sigwait 0xC0001000masked 0x00000000)
                                       
InfoWB (pri   0sigrec 0x00000100sigwait 0xF8001000masked 0x00000000)
           
texteditor.gadget Clipboard Server (pri   1sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                          
select.gadget prefs (pri   0sigrec 0x00000100sigwait 0x80001000masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                                     
DefIcons (pri   0sigrec 0x00000100sigwait 0x80009000masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                         
string.gadget server (pri   1sigrec 0x00000100sigwait 0x40000000masked 0x00000000)
                   
Workbench Clipboard Server (pri   1sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                                   
TCP/IP Log (pri   0sigrec 0x00000000sigwait 0x80003000masked 0x00000000)
                                      
ConClip (pri   0sigrec 0x00000000sigwait 0x80000000masked 0x00000000)
                                 
HID Consumer (pri  10sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                      
diskimage.device unit 1 (pri   4sigrec 0x00000100sigwait 0xC0000000masked 0x00000000)
                                 
HID Consumer (pri  10sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                                    
hid.usbfd (pri  10sigrec 0x00000100sigwait 0xE0000000masked 0x00000000)
                      
diskimage.device unit 0 (pri   4sigrec 0x00000100sigwait 0xC0000000masked 0x00000000)
                      
diskimage.device unit 5 (pri   4sigrec 0x00000100sigwait 0xC0000000masked 0x00000000)
                      
diskimage.device unit 4 (pri   4sigrec 0x00000100sigwait 0xC0000000masked 0x00000000)
                            
USB stack Process (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
AUDIO/AHI-Handler 6.2  (pri   5sigrec 0x00000000sigwait 0x00000100masked 0x00000000)
                 
APPDIR/appdir-handler 54.17  (pri   5sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                         
MassStorage Notifier (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                                  
DST watcher (pri   0sigrec 0x00000000sigwait 0xC0000000masked 0x00000000)
                       
RAM/ram-handler 54.24  (pri  10sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                       
ENV/env-handler 54.18  (pri   5sigrec 0x00000100sigwait 0x80000000masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
RAW/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                       
CON/con-handler 53.82  (pri   5sigrec 0x00000000sigwait 0xA0000100masked 0x00000000)
                             
dos_nbmd_process (pri   5sigrec 0x00000000sigwait 0x00001100masked 0x00000000)
                             
dos_lock_handler (pri   5sigrec 0x00000000sigwait 0x00001100masked 0x00000000)
                                    
hub.usbfd (pri   0sigrec 0x00000000sigwait 0x30000000masked 0x00000000)
                                    
hub.usbfd (pri   0sigrec 0x00000000sigwait 0x30000000masked 0x00000000)
                                    
hub.usbfd (pri   0sigrec 0x00000000sigwait 0x30000000masked 0x00000000)
                     
Exec Command and Control (pri  30sigrec 0x00000000sigwait 0x80000000masked 0x00000000)
                       
DMA2 Channel 4 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA1 Channel 4 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA2 Channel 3 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA1 Channel 3 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA2 Channel 2 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA1 Channel 2 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA2 Channel 1 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)
                       
DMA1 Channel 1 Handler (pri   0sigrec 0x00000000sigwait 0x80001000masked 0x00000000)

Suspended Tasks


The crashing command is
execute `dir #?.script`


Running the command without the backticks work. With backticks it crashes.

Update:
Minimal test case:
cd RAM:
makedir test
cd test
touch test
.script
echo `dir #?.script`


Edited by FlynnTheAvatar on 2023/5/29 13:34:36
Go to top


Re: The ADTOOLS thread
Just popping in
Just popping in


@rjd324

Thank you, with your latest change I could generate a cross-compiler.

Some of the tests fail to build, though. I am looking into it.

Go to top


Re: The ADTOOLS thread
Just popping in
Just popping in


@rjd324

Thank you for providing such an easy solution for compiling gcc. I managed to compile a cross-compiler using the normal adtools repository, but the script makes everything much easier.

Sadly, it does not seem to work on aarch64 (Raspberry Pi). It would be great if you could make it work on this platform, too.

Go to top


Re: What the fastest possible x64 emulation way of OS4 today ?
Just popping in
Just popping in


@white

Yes, this is correct. In the latest official release (0.8.29), only the SDL version supported UAEGFX.

LiveForIt did a lot of changes to make UAEGFX work with AmiGFX/NON-SDL graphics driver. But he prioritized making it work on the 8bit and 32/24bit modes.

Go to top


Re: What the fastest possible x64 emulation way of OS4 today ?
Just popping in
Just popping in


@white

Yes, you are correct. 16bit color depth is only working on SDL or the original E-UAE 0.8.29 AmiGFX version.

And sorry, I just compiled the changes by @LiveForIt. He would be the better person to ask. Sadly, he stopped working on the AmiGFX improvements.

Go to top


Re: Debug output from X5000
Just popping in
Just popping in


@Rolar

Sorry, I am not sure what I did to make it work. But I still think the wrong baud rate is your problem.

Could you please try the following?

Edit SYS:Devs/DOSDrivers/AUX and set Baud to 115200 there. This should set the Baudrate for logging in AmigaOS.

Go to top


Re: Debug output from X5000
Just popping in
Just popping in


@Rolar

What options did you set in UBoot? I get full output after "Call Loader 0x2000000".

I think I set the following custom variables:
os4_commandline=serial debuglevel=5 munge
baudrate=115200

Setting the baudrate is important because UBoot uses 115200 baud, but the kernel switches to 19200. Using the same value for both systems makes accessing the logs much easier.

Otherwise you would need to switch your terminal program to 19200,8,1,N. But you would only get the output of the kernel, not UBoot. And you cannot control UBoot via serial anymore.

Go to top


Re: What's the best/latest EUAE build for OS4?
Just popping in
Just popping in


I just tried Icomp's Picasso96-3.3.3 that was released on Monday. And it works flawless on Workbench 3.2.x.

The icons have the correct colors, as have the splash screens.
And also the jumping mouse movement seems to be fixed, too.

In difference to older versions, the icons also no longer vanish when using JIT.

The version before combining the source files still feels faster. I tried to make videos with an external USB HDMI recoder, but the framerate is so low that you do not see any difference between the newer and older version of uae. You barely see the "interlacing" effect of the latest version in the videos.

Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@Hypex

No, the values are correct.
BMA_ISRTG, BMA_BYTESPERPIXEL, BMA_BITSPERPIXEL, and BMA_PIXELFORMAT are only on AmigaOS 4.1, and are only filled when you have a RTG bitmap.

Please see here:
http://amigadev.elowar.com/read/ADCD_ ... cs_3._guide/node02E1.html

Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@joerg

Thank you, trying to load the Picasso96 and cybergraphics.library to check for RTG works great.

Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@joerg

Thank you for the input. Removing BMF_DISPLAYABLE does not make any difference.

Using BMF_CHECKMASK seems to be the only portable way to make it work on multiple AmigaOS versions. It seems to work on AmigaOS 3.2, AmigaOS 3.9 and OS 4.1.
Edit: Not really, this would break executing on a non-RTG system. Is there a way to test if the system has Picasso96/CyberGraphX installed?

BTW: Is the strategy to draw into a separate bitmap and then blitting it into the window's bitmap the correct way? Or is there a better way to have "double buffering" in windows?

Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@joerg
Thanks for the input, but the SDK does not say that AllocBitMap (V39) is obsolete or should not be used. Also, BMF_CHECKMASK is not documented in the Autodocs - at least not in the AllocBitMap section. Update: Sorry, it is in the Autodocs. I am getting blind...

@joerg + @msteed
Thanks for the tip with GetBitMapAttr. These are the results:

AllocBitMap:
Bitmap flags10
BMA_DEPTH
1
BMA_ISRTG
0
BMA_BYTESPERPIXEL
0
BMA_BITSPERPIXEL
0
BMA_PIXELFORMAT
0

AllocBitMapTags
:
Bitmap flags0
BMA_DEPTH
24
BMA_ISRTG
1
BMA_BYTESPERPIXEL
4
BMA_BITSPERPIXEL
32
BMA_PIXELFORMAT
6

AllocBitMap with BMF_MINPLANES
:
Bitmap flags0
BMA_DEPTH
24
BMA_ISRTG
1
BMA_BYTESPERPIXEL
4
BMA_BITSPERPIXEL
32
BMA_PIXELFORMAT
6


Using BMF_MINPLANES with AllocBitMap seems to do the trick, this will also alloc a RTG bitmap instead of a legacy one. But I am not sure why - the SDK indicates that BMF_MINPLANES should not be used for performance reasons (?!?).


Edited by FlynnTheAvatar on 2023/2/20 11:42:45
Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@LiveForIt

Both calls use the same flags and the same friend bitmap. So, why should there be a difference?

Go to top


Re: AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


@LiveForIt

I am not talking about the call itself. Yes, the AllocBitMap call might take a couple of microseconds longer than AllocBitMapTagList because the call is intercepted and then converted to a call to the newer function.

What I am seeing is that blitting the bitmap created by AllocBitMap to the window bitmap takes much, much, much longer than blitting the bitmap created by AllocBitMapTags. I am talking about a factor of 100 or so.

That should not be that case.

Go to top


AllocBitMap vs AllocBitMapTags
Just popping in
Just popping in


Hi,

Maybe somebody with deeper knowledge of Amiga OS 4.1 could help me out, please.

While following allong with the examples on http://www.kaiiv.de/retrocoding/1/ I found that the examples are extremly slow on AmigaOS 4.1. So slow infact that I could crash my X5000 by making the window larger (from 320x160 to 1920x1080).

The BltBitMapRastPort call takes a lot time if back puffer bitmap is created with AllocBitMap (the V39 call, not the tag one). Strangely, when replacing AllocBitMap with AllocBitMapTags even with the same flags, the blitting is extremly fast.

Why is that so? I did not find anything in the Autodocs that AllocBitMap is deprecated or has issues.

Here comes an example for local testing. Compile it with:
gcc engine3_os4.c -lamiga -o engine3_os4

To test it, enlarge the window to cover the whole screen; drawing a 1920x1080 window takes about 2s for me.

Thanks,
Flynn

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

/* our system libraries addresses */
struct LibraryGfxBase NULL;
struct GraphicsIFaceIGraphics NULL;
struct LibraryIntuitionBase NULL;
struct IntuitionIFaceIIntuition NULL;

struct RenderEngineData
{
    
struct Windowwindow;
    
struct tPoint outputSize;
    
struct BitMapbackBuffer;
    
struct tPoint backBufferSize;
    
struct RastPort renderPort;
    
int returnCode;
    
BOOL run;
    
BOOL doRepaint;
    
BOOL doRender;
};

void RepaintWindow(struct RenderEngineDatard)
{
    
/* on repaint we simply blit our backbuffer into our window's RastPort */
    
IGraphics->
     
BltBitMapRastPort(rd->backBuffer00rd->window->RPort,
                      (
LONG)rd->window->BorderLeft,
                      (
LONG)rd->window->BorderTop,
                      (
LONG)rd->outputSize.x, (LONG)rd->outputSize.y,
                      (
MINTERM_ABNC MINTERM_ABC));
}

int PrepareBackBuffer(struct RenderEngineDatard)
{
    
int result;

    if(
rd->outputSize.!= rd->backBufferSize.||
       
rd->outputSize.!= rd->backBufferSize.y)
    {
        
/* if output size changed free our current bitmap... */
        
if(rd->backBuffer)
        {
            
IGraphics->FreeBitMap(rd->backBuffer);
            
rd->backBuffer NULL;
        }

        
/* ... allocate a new one... */
        /* DO NOT USE AllocBitMap - IT IS EXTREMELY SLOW WHEN BLITTING
         * /
        rd->backBuffer = IGraphics->AllocBitMap((ULONG)rd->outputSize.x,
                                                (ULONG)rd->outputSize.y,
                                                1,
                                                BMF_CLEAR|BMF_DISPLAYABLE,
                                                rd->window->RPort->BitMap);
        */
        
rd->backBuffer IGraphics->AllocBitMapTags((ULONG)rd->outputSize.x,
                                                    (
ULONG)rd->outputSize.y,
                                                    
1,
                                                    
BMATags_Friendrd->window->RPort->BitMap,
                                                    
BMATags_ClearTRUE,
                                                    
BMATags_DisplayableTRUE,
                                                    
TAG_DONE);
        
/**/
        
if(rd->backBuffer)
        {
            
/* and on success remember its size */
            
rd->backBufferSize rd->outputSize;
        }

        
/* link the bitmap into our render port */
        
IGraphics->InitRastPort(&rd->renderPort);
        
rd->renderPort.BitMap rd->backBuffer;
    }

    
result rd->backBuffer RETURN_OK RETURN_ERROR;

    return 
result;
}

int RenderBackbuffer(struct RenderEngineDatard)
{
    
int result;

    
result PrepareBackBuffer(rd);

    if(
result == RETURN_OK)
    {
        
struct RastPortrastPort;
        
struct tPoint maxPos;
        
struct tPoint lineStep;
        
struct tPoint pos;
        
WORD i;

        const 
WORD stepCount 32;

        
/* we make a local copy of our RastPort pointer for ease of use */
        
rastPort = &rd->renderPort;

        
/* clear our bitmap */
        
IGraphics->SetRast(rastPort0);

        
/* now draw our line pattern */
        
maxPos.rd->backBufferSize.1;
        
maxPos.rd->backBufferSize.1;

        
lineStep.maxPos.stepCount;
        
lineStep.maxPos.stepCount;

        
IGraphics->SetAPen(rastPort1);
        
pos.pos.0;
        for(
0i Move(rastPort0, (LONG)pos.y);
            
IGraphics->Draw(rastPort, (LONG)(maxPos.pos.x), 0);
            
IGraphics->Draw(rastPort, (LONG)maxPos.x, (LONG)(maxPos.pos.y));
            
IGraphics->Draw(rastPort, (LONG)pos.x, (LONG)maxPos.y);
            
IGraphics->Draw(rastPort0, (LONG)pos.y);

            
pos.+= lineStep.x;
            
pos.+= lineStep.y;
        }
    }

    return 
result;
}

void ComputeOutputSize(struct RenderEngineDatard)
{
    
/* our output size is simply the window's size minus its borders */
    
rd->outputSize.=
    
rd->window->Width rd->window->BorderLeft rd->window->BorderRight;
    
rd->outputSize.=
    
rd->window->Height rd->window->BorderTop rd->window->BorderBottom;
}

void DispatchWindowMessage(struct RenderEngineDatard,
                           
struct IntuiMessagemsg)
{
    switch(
msg->Class)
    {
        case 
IDCMP_CLOSEWINDOW:
        {
            
/* User pressed the window's close gadget: exit the main loop as
             * soon as possible */
            
rd->run FALSE;
            break;
        }
        case 
IDCMP_NEWSIZE:
        {
            
/* On resize we compute our new output size... */
            
ComputeOutputSize(rd);

            
/* ... and trigger a render call */
            
rd->doRender TRUE;
            break;
        }
        case 
IDCMP_REFRESHWINDOW:
        {
            
IIntuition->BeginRefresh(rd->window);

            
/* We do only repaint here if there is no pending
             * render call */
            
if(!rd->doRender)
            {
                
RepaintWindow(rd);
            }

            
IIntuition->EndRefresh(rd->windowTRUE);
            break;
        }
    }
}

int MainLoop(struct RenderEngineDatard)
{
    
struct MsgPortwinport;
    
ULONG winSig;

    
/* remember the window port in a local variable for more easy use */
    
winport rd->window->UserPort;

    
/* create our waitmask for the window port */
    
winSig 1 doRender TRUE;

    
/* we need to compute our output size initially */
    
ComputeOutputSize(rd);

    
/* enter our main loop */
    
while(rd->run)
    {
        
struct Messagemsg;

        if(
rd->doRender)
        {
            
rd->returnCode RenderBackbuffer(rd);
            if(
rd->returnCode == RETURN_OK)
            {
                
/* Rendering succeeded, we need to repaint */
                
rd->doRepaint TRUE;
                
rd->doRender FALSE;
            }
            else
            {
                
/* Rendering failed, do not repaint, leave our main
                 * loop instead */
                
rd->doRepaint FALSE;
                
rd->run FALSE;
            }
        }

        if(
rd->doRepaint)
        {
            
RepaintWindow(rd);
            
rd->doRepaint FALSE;
        }

        if(
rd->run)
        {
            
/* let's sleep until a message from our window arrives */
            
IExec->Wait(winSig);
        }

        
/* our window signaled us, so let's harvest all its messages
         * in a loop... */
        
while((msg IExec->GetMsg(winport)))
        {
            
/* ...and dispatch and reply each of them */
            
DispatchWindowMessage(rd, (struct IntuiMessage*)msg);
            
IExec->ReplyMsg(msg);
        }
    }

    if(
rd->backBuffer)
    {
        
IGraphics->FreeBitMap(rd->backBuffer);
        
rd->backBuffer NULL;
    }

    return 
rd->returnCode;
}

int RunEngine(void)
{
    
struct RenderEngineDatard;

    
/* as long we did not enter our main loop we report an error */
    
int result RETURN_ERROR;

    
/* allocate the memory for our runtime data and ititialize it
     * with zeros */
    
if ((rd = (struct RenderEngineData*)
             
IExec->AllocVecTags(sizeof(struct RenderEngineData),
                 
AVT_TypeMEMF_PRIVATE,
                 
AVT_ClearWithValue0,
             
TAG_DONE)))
    {
        
/* now let's open our window */
        
static struct NewWindow newWindow =
        {
            
014,
            
320160,
            (
UBYTE)~0, (UBYTE)~0,
            
IDCMP_CLOSEWINDOW IDCMP_NEWSIZE IDCMP_REFRESHWINDOW,
            
WFLG_CLOSEGADGET WFLG_DRAGBAR WFLG_DEPTHGADGET |
            
WFLG_SIMPLE_REFRESH WFLG_SIZEBBOTTOM WFLG_SIZEGADGET,
            
00,
            
"Gfx Workshop",
            
0,
            
0,
            
9648,
            (
UWORD)~0, (UWORD)~0,
            
WBENCHSCREEN
        
};
        if((
rd->window IIntuition->OpenWindow(&newWindow)))
        {
            
/* the main loop will run as long this is TRUE */
            
rd->run TRUE;

            
result MainLoop(rd);

            
/* cleanup: close the window */
            
IIntuition->CloseWindow(rd->window);
            
rd->window NULL;
        }

        
/* free our runtime data */
        
IExec->FreeVec(rd);
        
rd NULL;
    }

    return 
result;
}

int main(int argccharargv[])
{
    
/* as long we did not execute RunEngine() we report a failure */
    
int result RETURN_FAIL;

    
/* we need at least 4.0 graphic.library's drawing functions */
    
if((GfxBase IExec->OpenLibrary("graphics.library"50)))
    {
        
/* load interface */
        
if((IGraphics = (struct GraphicsIFace*)
                
IExec->GetInterface(GfxBase"main"1NULL)))
        {
            
/* we need at least 4.0 intuition.library for our window */
            
if((IntuitionBase =
                    
IExec->OpenLibrary("intuition.library"50)))
            {
                
/* load interface */
                
if((IIntuition = (struct IntuitionIFace*)
                        
IExec->GetInterface(IntuitionBase"main"1NULL)))
                {
                    
/* All libraries needed are available, so let's run... */
                    
result RunEngine();

                    
IExec->DropInterface((struct Interface*)IIntuition);
                    
IIntuition NULL;
                }
                
IExec->CloseLibrary(IntuitionBase);
                
IntuitionBase NULL;
            }
            
IExec->DropInterface((struct Interface*)IGraphics);
            
IGraphics NULL;
        }
        
IExec->CloseLibrary(GfxBase);
        
GfxBase NULL;
    }

    return 
result;
}

Go to top



TopTop
(1) 2 3 4 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project