Derek John Sweere was charged with second-degree murder and possession of a firearm Tuesday in Otter Tail County District Court.
Sweere was found at 10:05 p.m. Monday at a residence on the 600 block of First Avenue South in Perham following a reported disturbance.
According to court records, the 40-year-old stabbed his roommate, Brandon Snyder, twice after Snyder bit him on the arm during a fight over a .22 belonging to Sweere. He then shot Snyder 15 times with the .22 and once with .270 caliber rifle.
Sweere, who had notified the Perham police, said he had acted in self-defense, was taken into custody and questioned at the Perham Police Department where he told officers he had been off prescribed medications for three months. He also admitted to having consumed alcohol.
Sweere was transported to the Otter Tail County Jail early Tuesday.
Snyder's body was taken to the Midwest Medical Examiner's Office in Ramsey for an autopsy and formal identification.
Assisting in the investigation was the Minnesota Bureau of Criminal Apprehension, the Otter Tail County Sheriff's Office and the New York Mills Police Department.