Faits: A. Par jugement du 16 juillet 2007, le Tribunal pénal de l'arrondissement de la Sarine a condamné X._, pour complicité de viol et contravention à la LStup, à la peine - complémentaire à deux autres, prononcées les 18 février 2005 et 8 juin 2005 - de 9 mois de privation de liberté, sans sursis, ainsi qu'à une amende de 100 fr. Il a révoqué le sursis assortissant une condamnation du 18 mars 2004 à 10 jours d'emprisonnement. Il a par ailleurs condamné un coaccusé, A._, notamment pour viol. X._ a appelé de ce jugement, concluant à son acquittement, subsidiairement au renvoi de la cause pour nouveau jugement. Le recours ainsi formé a été rejeté dans la mesure de sa recevabilité par arrêt du 12 décembre 2008 de la Cour d'appel pénal du Tribunal cantonal fribourgeois. B. Cet arrêt retient, en résumé, ce qui suit. B.a Le soir du 13 novembre 2004 vers 18 heures, X._ et A._ se sont présentés, à l'improviste, au domicile de B._, une amie du premier nommé, laquelle se livre occasionnellement à la prostitution. Après avoir consommé des bières, les deux hommes sont repartis vers 20 heures pour acheter de la cocaïne, indiquant qu'ils reviendraient plus tard. De retour vers 22 heures 15, ils ont constaté qu'un client de B._, C._, était présent. Tous quatre se sont installés au salon et ont engagé une discussion. X._ et A._ ont fumé des cigarettes contenant de la cocaïne et bu de la bière. Aux alentours de 1 heure, C._ est parti avec A._ pour acheter une bouteille de whisky et du coca-cola. Peu après leur retour, aux environs de 2 heures 30, C._ a quitté les lieux. B.b Vers 3 heures, X._ est allé se coucher sur le lit de B._, après avoir pris la moitié d'une pastille de Nozinan que cette dernière lui avait donnée. A._ et B._ sont restés au salon. Un peu plus tard, X._ a déclaré qu'il avait faim, sur quoi B._ est allée préparer des pâtes. Après avoir mangé, X._ s'est endormi sur le lit de B._, qui l'a rejoint après avoir pris des médicaments. Quant à A._, il a été invité à dormir sur le canapé du salon. B.c A un moment donné, B._ a été subitement réveillée par A._, qui s'est présenté nu devant son lit. Elle a alors commencé à s'affoler. A._ a enlevé le duvet et s'est couché sur elle, pendant qu'elle secouait X._ en lui disant de se réveiller et de faire quelque chose. Ce dernier a dit à A._ d'"arrêter ses conneries". Il s'est ensuite levé et rendu au salon. A._ a alors déshabillé B._, qui a tenté de se défendre en le repoussant et en criant, sans toutefois y parvenir. Elle a crié à X._ de venir l'aider. Elle l'a alors entendu annoncer une agression sexuelle sur les lieux et a pensé qu'il téléphonait à la police. Elle a ensuite été totalement déshabillée par A._, qui l'a violée. C. En substance, la cour cantonale a considéré que l'état de fait retenu par les premiers juges était exempt d'arbitraire et que par son comportement X._ s'était rendu coupable de complicité intellectuelle de viol, commise par dol éventuel. Elle a jugé vain le grief de violation de l'art. 19a ch. 1 LStup. Quant aux moyens du recourant relatifs à la peine, elle les a déclarés irrecevables, faute par lui d'avoir pris des conclusions à ce sujet. D. X._ forme un recours en matière pénale, pour atteintes à ses droits constitutionnels et diverses violations de la loi pénale. Il conclut à son acquittement et au maintien du sursis révoqué, subsidiairement au prononcé d'une peine complémentaire avec sursis, plus subsidiairement à l'annulation de l'arrêt attaqué et au renvoi de la cause pour nouvelle décision. Il sollicite l'assistance judiciaire. Le Ministère public et l'autorité cantonale ont renoncé à déposer des observations. 