2 function loopsize_get(t, trans, image_size, device_size)
4 local trans_full = 3, trans_top = 1, trans_bottom = 2; //header.h enum transtype
5 local loop = {start = 0, end = 0};
8 local size = device_size < t.maxsize ? device_size : t.maxsize;
9 loop.end = size / t.banksize;
12 loop.end = image_size / t.banksize;
15 loop.start = (t.maxsize - image_size) / t.banksize;
16 loop.end = t.maxsize / t.banksize;
27 cpu_trans, cpu_image_size, cpu_device_size,
28 ppu_trans, ppu_image_size, ppu_device_size
31 local trans_empty = 0;
32 if(board.mappernum != mapper){
33 print("mapper number not connected\n");
36 local cpu_loop = loopsize_get(board.cpu, cpu_trans, cpu_image_size, cpu_device_size);
37 local ppu_loop = loopsize_get(board.ppu, ppu_trans, ppu_image_size, ppu_device_size);
38 local co_cpu = newthread(cpu_transfer);
39 local co_ppu = newthread(ppu_transfer);
40 if(board.vram_mirrorfind == true){
43 initalize(d, board.cpu.banksize, board.ppu.banksize);
44 if(cpu_trans != trans_empty){
47 if(ppu_trans != trans_empty){
51 if(cpu_trans != trans_empty){
52 //cpu_transfer(d, cpu_loop.start, cpu_loop.end, board.cpu.banksize);
53 co_cpu.call(d, cpu_loop.start, cpu_loop.end, board.cpu.banksize);
55 if(ppu_trans != trans_empty){
56 co_ppu.call(d, ppu_loop.start, ppu_loop.end, board.ppu.banksize);
58 program_main(d, co_cpu, co_ppu)