/************************************************* gb/gbc rom dump script *************************************************/ function cpu_dump(d, rom_size, banksize) { if(rom_size==0x4000) cpu_read (d, 0x0000, 0x4000); else if(rom_size==0x8000) cpu_read (d, 0x0000, 0x8000); else{ //mbc2 cpu_read (d, 0x0000, 0x4000); for(local i = 1; i < rom_size/0x4000; i += 1) { cpu_write(d, 0x2100, i); cpu_read (d, 0x4000, 0x4000); } } } function cpu_erase(d, rom_size, flash_chip_type) { local m_29f_flash = 0; local m_29lv_flash = 1; //local flash_chip_type = m_29lv_flash; //change to m_29f_flash here, if your gb //flash chip is 29f(mx29f016,amd29f016,amd29f080...) //detect chip here if(flash_chip_type==m_29f_flash) { cpu_write(d,0x555,0xF0); cpu_write(d,0x555,0xAA); cpu_write(d,0x2AA,0x55); cpu_write(d,0x555,0x80); cpu_write(d,0x555,0xAA); cpu_write(d,0x2AA,0x55); cpu_write(d,0x555,0x10); } else{ //erase mx29lv320 cpu_write(d,0xAAA,0xF0); cpu_write(d,0xAAA,0xAA); cpu_write(d,0x555,0x55); cpu_write(d,0xAAA,0x80); cpu_write(d,0xAAA,0xAA); cpu_write(d,0x555,0x55); cpu_write(d,0xAAA,0x10); } rom_flash_cfg(d,flash_chip_type); } function cpu_flash(d, rom_size, banksize) { if(rom_size==0x4000) rom_write (d, 0x0000, 0x4000); else rom_write (d, 0x4000, 0x4000); } function save_dump(d, save_size, max_size) { //direct read cpu_read (d, 0xA000, 0x2000); } function save_erase(d, save_size, max_size) { //not need here } function save_write(d, save_size, max_size) { //direct write ram_write(d, 0xA000, 0x2000); }