示例#1
0
void MainWindow::Initialize() {
  PrepareClass("Game Client");
  this->Create();
  SetClientSize(640,480);
  Center();

  //SetMenu(LoadMenu(NULL,MAKEINTRESOURCE(IDR_MAINMENU)));

  game_instance.Initialize(this);

  Show();
  memset(&timing,0,sizeof(timing));
  timer_.Calibrate();
  timing.prev_cycles = timer_.GetCurrentCycles();
  //SetThreadAffinityMask(GetCurrentThread(),
}
示例#2
0
void DisplayWindow::Init() {
  exit_signal_ = false;
  PrepareClass("NesEmu");
  window_class.hIcon = static_cast<HICON>(LoadImage(instance, MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,32,32,LR_DEFAULTSIZE));
  window_class.hIconSm = static_cast<HICON>(LoadImage(instance, MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,16,16,LR_DEFAULTSIZE));
  Create();
  SetMenu(LoadMenu(instance, MAKEINTRESOURCE(IDR_MENU1)));
  DragAcceptFiles(handle(),true);

  gfx.Initialize(handle(),0,0);
  nes.set_on_render([this]() {
    //InvalidateRect(handle(),nullptr,true);
    PostMessage(handle(),WM_PAINT,0,0);
  });

  nes.set_on_vertical_blank([this]() {
    MSG msg;
    while (PeekMessage(&msg,NULL,0,0,PM_REMOVE)!=0) {//while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }
  });

  //auto a = glGetError();
  //glPixelZoom(1, -1);
  //a = glGetError();
  //glRasterPos2i(0,0);
  //a = glGetError();
  glEnable( GL_TEXTURE_2D );
  auto a = glGetError();
  glGenTextures( 1, &texture );
  a = glGetError();
  glBindTexture( GL_TEXTURE_2D, texture );
  glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
  glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
  //wglMakeCurrent(NULL, NULL);

  //settings setup
  options.nes = &nes;
  IO::window_handle = handle();
  IO::Init();
  ResetTiming();
  
  OnCommand(ID_VIDEO_STD256X240,0);
  Center();
  ShowWindow(handle(), SW_SHOW); 
  UpdateWindow(handle()); 
  
  

  nes.Open("D:\\Personal\\Projects\\NesEmu\\mario.nes");

  //CPU Tests
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_reset\\ram_after_reset.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_timing_test6\\cpu_timing_test.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_interrupts_v2\\rom_singles\\1-cli_latency.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_interrupts_v2\\rom_singles\\2-nmi_and_brk.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_interrupts_v2\\cpu_interrupts.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\nestest.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\instr_timing\\instr_timing.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\instr_timing\\instr_timing.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\NEStress\\NEStress.NES");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_dummy_writes\\cpu_dummy_writes_ppumem.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_flag_concurrency\\test_cpu_flag_concurrency.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\cpu_exec_space\\test_cpu_exec_space_apu.nes");
  


  //APU Tests
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\apu_reset\\4015_cleared.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\apu_reset\\4017_timing.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\apu_reset\\4017_written.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\blargg_apu\\01.len_ctr.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\blargg_apu\\09.reset_timing.nes");
  
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\nes_saw\\square_scale.nes");

  //MMC3
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\mmc3_irq_tests\\1.Clocking.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\mmc3_test_2\\rom_singles\\1-clocking.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\mmc3_test_2\\rom_singles\\2-details.nes");
  //nes.Open("F:\\NESRen\\Pirate\\Captain Tsubasa Vol 2 - Super Striker (J) [p1].nes");

  //PPU
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\blargg_ppu_tests\\vram_access.nes");
  //nes.Open("D:\\Personal\\Projects\\NesEmu\\testroms\\sprite_hit_tests_2005.10.05\\10.timing_order.nes");
  
  //MMC1
  //nes.Open("F:\\NESRen\\USA\\Legend of Zelda, The (U) (PRG 0).nes");
  //nes.Open("F:\\NESRen\\Translated\\Captain Tsubasa (J) [T-Eng].nes");
  OnCommand(ID_MODE_NTSC,0);

  //emu_th = new std::thread(&app::DisplayWindow::Step,this);
  //emu_th->join();
}
示例#3
0
// -------------------------------------------------------------------------------------------------------------------------------------------------------
LogClass::LogClass()
{
	PrepareClass();
}