def main_func(file_name): keys = [ pygame.K_1, pygame.K_2, pygame.K_3, pygame.K_4, pygame.K_q, pygame.K_w, pygame.K_e, pygame.K_r, pygame.K_a, pygame.K_s, pygame.K_d, pygame.K_f, pygame.K_z, pygame.K_x, pygame.K_c, pygame.K_v ] my_chip8 = chip8.Chip8() black = 0, 0, 0 white = 255, 255, 255 colors = [black, white] width, height = 64, 32 size = width * 10, height * 10 pixels = width * height screen = pygame.display.set_mode(size) #Set up emulation system setup_graphics(screen) #Initialize chip8 system my_chip8.initialize(pixels) my_chip8.load_game(file_name) #Emulation Loop cycle_speed = 1.0 / 60 while True: my_chip8.emulate_cycle() if (my_chip8.draw_flag): draw_graphics(screen, colors, my_chip8, width, height) events = pygame.event.get() get_key_event(events, keys, my_chip8)
def game_loop(): # create chip8 object c8 = chip8.Chip8() #create a tkinter window root = tkinter.Tk() #Create a window that will ask the user to select the rom they #would like to use file_name = filedialog.askopenfilename( initialdir = os.getcwd(), filetypes = (("Chip-8 ROMs *.ch8","*.ch8"), ("Chip-8 ROMS *.c8","*.c8")), title = 'Select Game') #Error message if no rom is detected if file_name == '': messagebox.showinfo('', 'Error: No ROM selected') root.destroy() return root.destroy() #Create new screen object scr = screen.Screen(scale, c8) #initiate that object's display scr.initiate_display() c8.load_rom(file_name) running = True while running: #sends opcode from rom to be decoded and run c8.emulate_cycle(scr) #if last opcode was Dxyn call draw_sprite and update screen if c8.draw_flag == True: scr.draw_sprite(chip8) scr.update_screen() c8.draw_flag = False events = pygame.event.get() for event in events: if event.type == pygame.QUIT: running = False if event.type == pygame.KEYDOWN: key_pressed = pygame.key.get_pressed() if key_pressed[pygame.K_ESCAPE]: running = False scr.destroy()
def main(): # Set up Pygame chip8Display = pygame.Surface([64, 32]) # Display surface display_array = pygame.PixelArray( chip8Display) # Array for manipulating the pixels mainDisplay = pygame.display.set_mode( [320, 160]) # Actual display window, 4x native size # Create the Chip 8 object system = chip8.Chip8(file) while True: # Main loop pygame.event.pump() keyStates = pygame.key.get_pressed() key[0x1] = keyStates[pygame.K_1] key[0x2] = keyStates[pygame.K_2] key[0x3] = keyStates[pygame.K_3] key[0xc] = keyStates[pygame.K_4] key[0x4] = keyStates[pygame.K_q] key[0x5] = keyStates[pygame.K_w] key[0x6] = keyStates[pygame.K_e] key[0xd] = keyStates[pygame.K_r] key[0x7] = keyStates[pygame.K_a] key[0x8] = keyStates[pygame.K_s] key[0x9] = keyStates[pygame.K_d] key[0xe] = keyStates[pygame.K_f] key[0xa] = keyStates[pygame.K_z] key[0x0] = keyStates[pygame.K_x] key[0xb] = keyStates[pygame.K_c] key[0xf] = keyStates[pygame.K_v] system.cycle(key) if system.drawFlag: for i in range(0, 32): for j in range(0, 64): if system.graphic[i][j]: display_array[j, i] = 0xffffff else: display_array[j, i] = 0x0 pygame.transform.scale( chip8Display, (320, 160), mainDisplay ) # Scales up the chip 8 display and puts it to the main display pygame.display.update()
def __init__(self): self.chip8 = chip8.Chip8("Pong.ch8") self.main() self.chip8.graphics.root.mainloop()
def setUp(self): self.dut = chip8.Chip8() self.dut.test = True
#main program for the cheeky emulator import chip8 as emu chip8 = emu.Chip8()
import chip8 import sys import argparse # Process command line arguments # -r argument specifies game file # -f argument enables fullscreen parser = argparse.ArgumentParser(description="Chip-8 Emulator") parser.add_argument("-r", "--rom", type=str, metavar=" ", required=True, help="Name of Chip-8 Rom File") parser.add_argument("-f", "--fullscreen", action='store_true', help="Enables Fullscreen") args = parser.parse_args() # Run the emulator chip8 = chip8.Chip8(args.rom, args.fullscreen) while True: chip8.run()