package com.grapeshot.halfnes; import com.grapeshot.halfnes.ui.HeadlessUI; import com.grapeshot.halfnes.ui.PuppetController; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; /** * @author Mitchell Skaggs */ public class HeadlessNES { private HeadlessNES() {} public static final int scale = 4; public static void main(String[] args) { BufferedImage bufferedImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB_PRE); HeadlessUI ui = new HeadlessUI("src/test/resources/nestest/nestest.nes", true); for (int i = 0; i < 100; i++) { ui.runFrame(); } ui.getController1().pressButton(PuppetController.Button.START); ui.runFrame(); ui.getController1().releaseButton(PuppetController.Button.START); for (int i = 0; i < 5; i++) { ui.runFrame(); } BufferedImage image = ui.getLastFrame(); JFrame frame = new JFrame("Display") { @Override public void paint(Graphics g) { super.paint(g); g.drawImage(image, 0, 0, image.getWidth() * scale, image.getHeight() * scale, this); } }; frame.setSize(256 * scale, 224 * scale); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }