Skip to content

giammirove/gampboy_emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAMPBOY EMULATOR

That's my first project in Golang, so please be kind to me Probably there are a lot of typos around the code and so many optimizations could be done , but don't care for now :3

Probably one of the most satisfying and interesting project I have ever done

What have I learned?

  • Go hates so much structs and map[string]

MBC supported

  • MBC1
  • MBC3

Blargg's tests

  • cpu_instrs

  • instr_timing

  • mem-timing and mem-timing-2

  • oam_bug/1-lcd_sync

    • that's pretty weird, the whole test is based on two delay
      delay 109
      delay 110
      if you see the code that those asm instructions generate look like
      LD A,0x50 ; delay 109
      CALL 0xC120
      ....
      and
      LD A,0x51 ; delay 110
      CALL 0xC120
      ...
      then the procedure will SUB 0x5 and loop until JR NC,0xFC
      but actually both 0x50 and 0x51 will do the same number of loops
      so ... plz someone tell me how to understand this test
      clearly if I add +6 to the second delay, this would be enough to make
      the test passed, because the loop will do one more cycle
  • halt_bug

    • correct output

      this

Mooneye's tests

  • interrupt/ie_push
  • acceptance/ie_timing
  • acceptance/rapid_di_ei
  • acceptance/div_timing
  • acceptance/oam_dma_start
  • acceptance/oam_dma_restart
  • acceptance/oam_dma_timing
  • acceptance/push_timing
  • acceptance/pop_timing
  • oam_dma/basic
  • oam_dma/reg_read
  • oam_dma/sources-GS
  • ppu/stat_lyc_onoff

Mattcurrie's tests

  • dmg_acid2
  • cgb_acid2

SameSuite's tests

  • ppu/blocking_bgpi_increase
  • dma/gdma_addr_mask
  • dma/gbc_dma_cont
  • dma/hdma_lcd_off

Thanks to

About

Simple golang gameboy emulator

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published