Poster | Thread |
Crumb
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 12-Aug-2008 22:12:25
| | [ #1 ] |
|
|
|
Elite Member |
Joined: 12-Mar-2003 Posts: 2209
From: Zaragoza (Aragonian State) | | |
|
| @to the author
32bit RGB modes should work directly and get a nice speed increase. Can't remember if it was ARGB or RGBA, but one of them certainly works with direct video output. _________________ The only spanish amiga news web page/club: CUAZ
|
|
Status: Offline |
|
|
NutsAboutAmiga
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 12-Aug-2008 23:25:19
| | [ #2 ] |
|
|
|
Elite Member |
Joined: 9-Jun-2004 Posts: 12931
From: Norway | | |
|
| @Crumb
All I know is that this two functions fail to give me correct colors bitmap format. the memory address returned from p96GetBitMapAttr(the_bitmap, P96BMA_MEMORY) is in a corrupt gfx card format (32bit) GBAR.
static bool get_direct_video_from_window() { the_bitmap = the_win -> RPort -> BitMap;
VideoMonitor.mac_frame_base = (uint32)Host2MacAddr((uint8 *) p96GetBitMapAttr(the_bitmap, P96BMA_MEMORY)); VideoMonitor.bytes_per_row = p96GetBitMapAttr(the_bitmap, P96BMA_BYTESPERROW); }
static bool get_direct_video_from_screen() { the_bitmap = the_screen->RastPort.BitMap;
VideoMonitor.mac_frame_base = (uint32)Host2MacAddr((uint8 *) p96GetBitMapAttr(the_bitmap, P96BMA_MEMORY)); VideoMonitor.bytes_per_row = p96GetBitMapAttr(the_bitmap, P96BMA_BYTESPERROW); }
If I use P96LockBitmap() then "rinf.Memory" will be correct ARGB format, problem is I can only access this memory temporary, so its no good for MacOS that can access the memory at any time.
if (lock = p96LockBitMap( the_screen->RastPort.BitMap, (UBYTE *)&rinf, (ULONG)sizeof( struct RenderInfo)) { // do some thing whit in rinf.Memory... p96UnlockBitMap( the_screen->RastPort.BitMap, lock ); }
_________________ http://lifeofliveforit.blogspot.no/ Facebook::LiveForIt Software for AmigaOS
|
|
Status: Offline |
|
|
Moxee
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 1:27:19
| | [ #3 ] |
|
|
|
Team Member |
Joined: 20-Aug-2003 Posts: 6291
From: County Yakima, WA State, USA | | |
|
| URL please.
Then I'll list it in the news item. _________________ Moxee AmigaOne X1000 AmigaOne XE G4 I'd agree with you, but then we'd both be wrong.
|
|
Status: Offline |
|
|
Swoop
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 5:32:32
| | [ #4 ] |
|
|
|
Elite Member |
Joined: 20-Jun-2003 Posts: 2163
From: Long Riston, East Yorkshire | | |
|
| @Moxee
It's on OS4Depot . _________________ Peter Swallow. A1XEG3-800 [IBM 750FX PowerPC], running OS4.1FE, using ac97 onboard sound.
"There are 10 types of people in the world: those who understand binary, and those who don't."
|
|
Status: Offline |
|
|
Crumb
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 11:41:01
| | [ #5 ] |
|
|
|
Elite Member |
Joined: 12-Mar-2003 Posts: 2209
From: Zaragoza (Aragonian State) | | |
|
| I have found this chunk of code and can't remember if it was a working one but take a look... I didn't add byteswapping code and I had 32bit screenmodes working on uA1-Radeon. This code fragment belongs to the time I started to add byteswapping for certain screenmodes (but didn't finish it)
// Open Picasso96 screen static bool init_screen_p96(ULONG mode_id) { // Set relative mouse mode ADBSetRelMouseMode(true);
// Check if the mode is one we can handle uint32 depth = p96GetModeIDAttr(mode_id, P96IDA_DEPTH); uint32 format = p96GetModeIDAttr(mode_id, P96IDA_RGBFORMAT);
switch (depth) { case 8: VideoMonitor.mode = VMODE_8BIT; break; case 15: case 16: if (format != RGBFB_R5G5B5) { ErrorAlert(GetString(STR_WRONG_SCREEN_FORMAT_ERR)); return false; } VideoMonitor.mode = VMODE_16BIT; break; case 24: case 32: if (format != RGBFB_A8R8G8B8) { ErrorAlert(GetString(STR_WRONG_SCREEN_FORMAT_ERR)); return false; } VideoMonitor.mode = VMODE_32BIT; break; default: ErrorAlert(GetString(STR_WRONG_SCREEN_DEPTH_ERR)); return false; }
// Yes, get width and height uint32 width = p96GetModeIDAttr(mode_id, P96IDA_WIDTH); uint32 height = p96GetModeIDAttr(mode_id, P96IDA_HEIGHT);
VideoMonitor.x = width; VideoMonitor.y = height;
// Open screen the_screen = IP96->p96OpenScreenTags( P96SA_DisplayID, mode_id, P96SA_Title, (ULONG)GetString(STR_WINDOW_TITLE), P96SA_Quiet, TRUE, P96SA_NoMemory, TRUE, P96SA_NoSprite, TRUE, P96SA_Exclusive, TRUE, TAG_END ); if (the_screen == NULL) { ErrorAlert(GetString(STR_OPEN_SCREEN_ERR)); return false; }
// Open window the_win = IIntuition->OpenWindowTags(NULL, WA_Left, 0, WA_Top, 0, WA_Width, width, WA_Height, height, WA_NoCareRefresh, TRUE, WA_Borderless, TRUE, WA_Activate, TRUE, WA_RMBTrap, TRUE, WA_ReportMouse, TRUE, WA_CustomScreen, (ULONG)the_screen, TAG_END ); if (the_win == NULL) { ErrorAlert(GetString(STR_OPEN_WINDOW_ERR)); return false; }
// Set VideoMonitor ScreenToFront(the_screen); //USE THIS IF P96 STUFF ISN'T SHOWN CORRECTLY //#if 1 // VideoMonitor.mac_frame_base = (uint32)Host2MacAddr((uint8 *)VideoMonitor.mac_frame_base); //#endif
VideoMonitor.mac_frame_base = p96GetBitMapAttr(the_screen->RastPort.BitMap, P96BMA_MEMORY); VideoMonitor.bytes_per_row = p96GetBitMapAttr(the_screen->RastPort.BitMap, P96BMA_BYTESPERROW); return true; } _________________ The only spanish amiga news web page/club: CUAZ
|
|
Status: Offline |
|
|
NutsAboutAmiga
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 12:40:13
| | [ #6 ] |
|
|
|
Elite Member |
Joined: 9-Jun-2004 Posts: 12931
From: Norway | | |
|
| @Crumb
Sorry that code is totally useless can can't possibly work, for one thing the VideoMonitor.mac_frame_base is not converted to MacOS address space.
the line that does convert memory in to MacOS address space is two line up, and disabled.
// VideoMonitor.mac_frame_base = (uint32)Host2MacAddr((uint8 *)VideoMonitor.mac_frame_base);
and as I wrote p96GetBitMapAttr(the_screen->RastPort.BitMap, P96BMA_MEMORY);
Returns the Memory in wrong byte format. Last edited by NutsAboutAmiga on 13-Aug-2008 at 12:48 PM.
_________________ http://lifeofliveforit.blogspot.no/ Facebook::LiveForIt Software for AmigaOS
|
|
Status: Offline |
|
|
NutsAboutAmiga
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 12:53:41
| | [ #7 ] |
|
|
|
Elite Member |
Joined: 9-Jun-2004 Posts: 12931
From: Norway | | |
|
| |
Status: Offline |
|
|
Crumb
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 14:23:01
| | [ #8 ] |
|
|
|
Elite Member |
Joined: 12-Mar-2003 Posts: 2209
From: Zaragoza (Aragonian State) | | |
|
| Well, I had a working version of Basilisk II for OS4 some years ago and it still works on OS4 final with latest updates, if you want to take a look I could send the full sources to to your email, c&p to web forums isn't exacty comfortable...
Moreover, I could send you a working binary with direct video working as a proof if you want. Last edited by Crumb on 13-Aug-2008 at 02:25 PM.
_________________ The only spanish amiga news web page/club: CUAZ
|
|
Status: Offline |
|
|
NutsAboutAmiga
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.200) Posted on 13-Aug-2008 14:37:17
| | [ #9 ] |
|
|
|
Elite Member |
Joined: 9-Jun-2004 Posts: 12931
From: Norway | | |
|
| |
Status: Offline |
|
|
tekmage
| |
Re: Basilisk II 0.9.3 AmigaOS4 (11.Aug.2008) Posted on 18-Aug-2008 23:54:10
| | [ #10 ] |
|
|
|
Regular Member |
Joined: 23-Mar-2005 Posts: 443
From: San Francisco | | |
|
| I had a question for the guru's working on this project. I'd like to use a hard partition for the mac boot. This new version see's the partition just fine and reports the size correctly. When I tell the Mac to initialize it I get an error "Disk initialization failed!". I suspect I need set the Partition type correctly, it's currently SFS. I looked for some guidance on the partition type with no luck. Any thoughts?
Thanks, Bill "tekmage" Borsari |
|
Status: Offline |
|
|