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