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]
-
MBC1
-
MBC3
-
cpu_instrs
-
instr_timing
-
mem-timing
andmem-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 willSUB 0x5
and loop untilJR 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
- that's pretty weird, the whole test is based on two delay
-
halt_bug
-
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
-
dmg_acid2
-
cgb_acid2
-
ppu/blocking_bgpi_increase
-
dma/gdma_addr_mask
-
dma/gbc_dma_cont
-
dma/hdma_lcd_off
- http://imrannazar.com/GameBoy-Emulation-in-JavaScript
- https://github.com/rockytriton/LLD_gampboy_emulator
- https://github.com/retrio/gb-test-roms
- https://gbdev.io/
- https://ia903208.us.archive.org/9/items/GameBoyProgManVer1.1/GameBoyProgManVer1.1.pdf
- https://blog.tigris.fr/2019/09/15/writing-an-emulator-the-first-pixel/
- https://gekkio.fi/files/gb-docs/gbctr.pdf
- https://www.youtube.com/watch?v=HyzD8pNlpwI
- https://github.com/AntonioND/giibiiadvance/tree/master/docs