QUOTE(hfmls @ Feb 10 2010, 04:09 PM)

i can confirm it's gonna be a complete XEXMENU replacer.
it has it all! and pretty too
Cool....so this is going to boot from NXE from the get go????......no more shortcut making and such????....this would be awesome.
I have included source code which will allow you to read the temps and set the front panel LEDs color. It's a work in progress that I only take credit for putting the sources and info together, the actual calls and values came from other sources which I have annotated in the code.
With out further ado:
smc_constants.h
CODE
//Thanks to www.free60.org/SMC for helping me get front LEDs right
#pragma once
#ifndef _SMC_CONSTANTS_H
#define _SMC_CONSTANTS_H
//sorry for the extreme amount of constants trying to make functions
//easier to use
//Power LED
#define POWER_LED_BLINK 0x10
#define POWER_LED_DEFAULT 0x02
#define POWER_LED_ON 0x01
#define POWER_LED_OFF 0X03
//Quadrant LEDs
//NOTE: LED constants are determined with console laying down
// with LED color bits being, starting from tope left 1, 2, 4, 8
//Thanks to unknown v2 for the following
typedef enum _LEDState
{
OFF = 0x00,
RED = 0x08,
GREEN = 0x80,
ORANGE = 0x88
}LEDState;
#endif
smc.h
CODE
//Thanks to tmbinc for smc.c
#pragma once
#ifndef _SMC_H
#define _SMC_H
#include
#include "smc_constants.h"
//Call to SMC message function in xboxkrnl.lib
extern "C" void __stdcall HalSendSMCMessage(LPVOID input, LPVOID output); //thanks to cory1492
class smc
{
public:
void SetPowerLED(unsigned char command, bool animate);
void SetLEDS(LEDState s1, LEDState s2, LEDState s3, LEDState s4); //Thanks unknown v2
void GetTemps(float *temps, bool celsius);
private:
};
#endif
smc.cpp
CODE
#include "smc.h"
#include
//Usage: command is one of the POWER_LED constants from smc_constant.h
// animate is true for ring LED startup light sequence
void smc::SetPowerLED(unsigned char command, bool animate)
{
unsigned char msg[0x10];
memset(msg, 0x00, 0x10);
msg[0] = 0x8c;
msg[1] = command;
msg[2] = (animate ? 0x01 : 0x00);
HalSendSMCMessage(msg, NULL);
}
//Usage: color is one of LED constants from smc_constant.h
void smc::SetLEDS(LEDState s1, LEDState s2, LEDState s3, LEDState s4)
{
unsigned char msg[0x10];
msg[0] = 0x99;
msg[1] = 0x01;
msg[2] = ((s1>>3) | (s2>>2) | (s3>>1) | (s4)); //Thanks unknown v2
HalSendSMCMessage(msg, NULL);
}
//Usage: temps contains the returned temperature values
// temps[0] = CPU
// temps[1] = GPU
// temps[2] = EDRAM
// temps[3] = MB
void smc::GetTemps(float *temps, bool celsius)
{
unsigned char msg[0x10];
unsigned char values[0x10];
int i;
memset(msg, 0x00, 0x10);
memset(values, 0x00, 0x10);
msg[0] = 0x07;
HalSendSMCMessage(msg, values);
for(i=0; i<4; i++)
temps = (values[i * 2 + 1] | (values[i * 2 +2] <<8)) / 256.0;
if(!celsius)
for(i=0; i<4; i++)
temps = (9/5) * temps + 32;
}
This post has been edited by hemah: Feb 19 2010, 01:33 AM
QUOTE(xtrminatr @ Feb 20 2010, 10:28 PM)

It'd be cool if the LED changing could be incorporated even without a temp reading, would love to have a working box and the red LEDs

That is already possible, as you can see in the code.
CODE
smc MeinSMC;
float * temperaturen;
MeinSMC.GetTemps(temperaturen,true);
// temps[0] = CPU
// temps[1] = GPU
// temps[2] = EDRAM
// temps[3] = MB
string temperaturenstring;
temperaturenstring = sprintfa("CPU: %.1f, GPU: %.1f , EDRAM: %.1f, MB: %.1f",temperaturen[0],temperaturen[1],temperaturen[2],temperaturen[3]);
console.Format("Temperaturen: %s\n",temperaturenstring);
console.Format("Setting LEDs... ");
MeinSMC.SetLEDS(RED,GREEN,RED,GREEN);
wait2s();
MeinSMC.SetLEDS(GREEN,RED,GREEN,RED);
QUOTE(dakaku @ Feb 21 2010, 10:26 AM)

Well thats for the (not so near) future but anyway:
Would be nice if you could make a patcher for the kernel, if that is possible.
Then everyone could decide if they want it.
And different temperature areas for the different motherboards, maybe custom temperature areas within the patcher.
rofl wtf are you talking about ?
QUOTE(segobi @ Feb 21 2010, 10:44 AM)

rofl wtf are you talking about ?
read the thread and consider thinking before you hit the "add reply" button...
(
If the temperature could be displayed by the led ring, this should be put into the kernel.
If it would be put into the kernel, youd have to consider that different mobo revs run on different temperature.
If we'd have a patcher to include this into the kernel, the patcher (once it exists) could be easy changed to set custom temperature ranges for the different led colours.
Plus a patch would most likely be built without xdk.
)
QUOTE
Seems like some people like the Temp Led Idea
Got it working here, but can only post ya the code. Check it here:
http://forums.xbox-s...o...6895&st=27#
QUOTE(DarthMingus @ Feb 26 2010, 08:41 AM)

Wow, this is really fantastic! THANK YOU!
On the 360 thing: How is this JTAG Hack any different from the previous 360 firmware cracks? Also, there are a few things that make me not excited about this:
1. The emulators are going to be new/buggy. The XBox1 emus have been refined for years. Its going take a while for the ball to get rolling.
2. I don't think porting the Xbox1 (or PC) emulators is an option. Its my understanding that the 360 is running on a PPC derivative CPU.
3. 360s break, a
lot. Every one of my friends that has (had) one have have them crap out multiple times. They were really poorly designed.
Just my 2 cents.

Yeah it constantly refreshes temps & adjusts LEDs accordingly (as long as Freestyle is running)
When you launch a game the leds stay @ whatever they last read when you exited Freestyle. They update normally again if you go back to it.
Will be a long time before we can add led changing support to the kernel (so the leds can update in-game)