Attempting to import a super simple 'Monogame Windows project' to 'PSM'.
Only gets as far as trying to create a new SpriteBatch then the exception
"This does not appear to be a MonoGame MGFX file!"is thrown.
Passes the
 "Microsoft.Xna.Framework.PSSuite.Graphics.Resources.SpriteEffect.cgx"as shader.
Been struggling to find a workaround for this for many hours; it’s broken my brain.
Code:
AppMain.cs
using System;
using System.Collections.Generic;
using Sce.PlayStation.Core;
using Sce.PlayStation.Core.Environment;
using Sce.PlayStation.Core.Graphics;
using Sce.PlayStation.Core.Input;
namespace GameWin
{
	public class AppMain
	{
		private static GraphicsContext graphics;
		private static Game1 game1;
			
		public static void Main (string[] args)
		{
			//Initialize ();
   			game1 = new Game1();
			
			while (true) {
				game1.Run();
				//SystemEvents.CheckEvents ();
				//Update ();
				//Render ();
			}
		}
	//	public static void Initialize ()
	//	{
	//		// Set up the graphics system
	//		graphics = new GraphicsContext ();
	//	}
	//
	//	public static void Update ()
	//	{
	//		// Query gamepad for current state
	//		var gamePadData = GamePad.GetData (0);
	//	}
	//
	//	public static void Render ()
	//	{
	//		// Clear the screen
	//		graphics.SetClearColor (0.0f, 0.0f, 0.0f, 0.0f);
	//		graphics.Clear ();
	//
	//		// Present the screen
	//		graphics.SwapBuffers ();
	//	}
	}
}
Game1.cs
#region Using Statements
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.GamerServices;
#endregion
namespace GameWin
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        private Texture2D bombTexture;
        public Game1()
            : base()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // TODO: Add your initialization logic here
            base.Initialize();
        }
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice); //<<< BREAKS HERE :( 
            bombTexture = Content.Load<Texture2D>("bomb");
            // TODO: use this.Content to load your game content here
        }
        /// <summary>
        /// UnloadContent will be called once per game and is the place to unload
        /// all content.
        /// </summary>
        protected override void UnloadContent()
        {
            // TODO: Unload any non ContentManager content here
        }
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
                Exit();
            // TODO: Add your update logic here
            base.Update(gameTime);
        }
        /// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            // TODO: Add your drawing code here
            spriteBatch.Begin();
            spriteBatch.Draw(bombTexture, new Vector2(19,19), Color.White);
            spriteBatch.End();
            base.Draw(gameTime);
        }
    }
}
            

