Index: branches/blackosx/version =================================================================== --- branches/blackosx/version (revision 179) +++ branches/blackosx/version (revision 180) @@ -1 +1 @@ -2.0-RC5 (blackosx_GUI_edit) \ No newline at end of file +2.0-RC5 (blackosx_GUI_editv2) \ No newline at end of file Index: branches/blackosx/CHANGES =================================================================== --- branches/blackosx/CHANGES (revision 179) +++ branches/blackosx/CHANGES (revision 180) @@ -1,3 +1,7 @@ +- Revised the rollover theme functionality as it was drawing both the normal device image as well as the rollover image. +- Added Conti's fix for overcoming a potential fail with deadbeef error due to a non standard specified resolution, or in my case of testing - on an empty value for the screen_width / screen_height in a theme.plist. +- Added rollover theme functionality while retaining compatibility with existing themes. Note: Compiling with an embedded theme currently fails as I haven't added _o.pngs in to artwork folder. But then if I do, the filesize will exceed the limit. + - Implemented SPD memory automatic detection and injection,seems to work really great ... - Factorized code to prepare a dynamic memory detection algorithm ... - Optimized smbios table address search Index: branches/blackosx/i386/boot2/gui.c =================================================================== --- branches/blackosx/i386/boot2/gui.c (revision 179) +++ branches/blackosx/i386/boot2/gui.c (revision 180) @@ -623,6 +623,17 @@ } screen_params[2] = 32; + // blackosx - This solved an issue when the theme.plist had blank values for screen_height and screen_width. + // Thanks to Al Schar for pointing out Conti's fix and thanks to Conti for the fix. + /* Fix for "Memory allocation error! Addr=0xdeadbeef, Size=0x0" - if no VESA resolution defined in com.apple.Boot.plist */ + + if(!screen_params[0]) { + screen_params[0] = DEFAULT_SCREEN_WIDTH; + screen_params[1] = DEFAULT_SCREEN_HEIGHT; + } + + /* End Fix ~ Conti */ + // Initalizing GUI strucutre. bzero(&gui, sizeof(gui_t)); @@ -793,9 +804,12 @@ dprintf( &gui.screen, "modtime %d\n", param->modTime ); #endif } - - drawDeviceIcon( param, gui.devicelist.pixmap, p, false ); //blackosx - added false to draw normal icon if it's not selected. - + else if (rolloverfail ==false) + drawDeviceIcon( param, gui.devicelist.pixmap, p, false ); //blackosx - draw non-highlighted normal device icon + + if (rolloverfail == true) // blackosx - draw the device icon on top of the device_selection only if we're not using rollover image. + drawDeviceIcon( param, gui.devicelist.pixmap, p, false ); //blackosx - added false to draw normal icon if it's not selected. + if (gui.layout == HorizontalLayout) { p.x += images[iSelection].image->width + gui.devicelist.iconspacing; @@ -1741,17 +1755,23 @@ } // parse screen size parameters + // blackosx - Thanks to Al Schar for pointing out Conti's fix and thanks to Conti for the fix. + /* Fix for "Memory allocation error! Addr=0xdeadbeef, Size=0x0" - if no VESA resolution defined in com.apple.Boot.plist */ + if (getIntForKey("boot_width", &pos, &bootInfo->themeConfig)) { screen_params[0] = pos; - } else { - screen_params[0] = DEFAULT_SCREEN_WIDTH; } if (getIntForKey("boot_height", &pos, &bootInfo->themeConfig)) { screen_params[1] = pos; - } else { + } + screen_params[2] = 32; + + if(!screen_params[0]) { + screen_params[0] = DEFAULT_SCREEN_WIDTH; screen_params[1] = DEFAULT_SCREEN_HEIGHT; } - screen_params[2] = 32; + + /* End Fix ~ Conti */ gui.screen.width = screen_params[0]; gui.screen.height = screen_params[1];