Mercurial > repos > blastem
comparison blastem.c @ 95:dd3c680c618c
Initial work on allowing dynamic branches and code in RAM plus a small fix to effective address decoding
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 27 Dec 2012 21:19:58 -0800 |
parents | 9757b4c6c33f |
children | a71544cd01ea |
comparison
equal
deleted
inserted
replaced
94:a668a35a3463 | 95:dd3c680c618c |
---|---|
470 } else { | 470 } else { |
471 height = (width/320) * 240; | 471 height = (width/320) * 240; |
472 } | 472 } |
473 } | 473 } |
474 render_init(width, height); | 474 render_init(width, height); |
475 size_t size = 1024 * 1024; | |
476 uint8_t * transbuf = alloc_code(&size); | |
477 | 475 |
478 x86_68k_options opts; | 476 x86_68k_options opts; |
479 m68k_context context; | 477 m68k_context context; |
480 vdp_context v_context; | 478 vdp_context v_context; |
481 | 479 |
488 context.target_cycle = context.sync_cycle = MCLKS_PER_FRAME/MCLKS_PER_68K; | 486 context.target_cycle = context.sync_cycle = MCLKS_PER_FRAME/MCLKS_PER_68K; |
489 //work RAM | 487 //work RAM |
490 context.mem_pointers[1] = ram; | 488 context.mem_pointers[1] = ram; |
491 uint32_t address; | 489 uint32_t address; |
492 address = cart[0x68/2] << 16 | cart[0x6A/2]; | 490 address = cart[0x68/2] << 16 | cart[0x6A/2]; |
493 uint8_t * end = transbuf + size; | 491 translate_m68k_stream(address, &context); |
494 transbuf = translate_m68k_stream(transbuf, end, address, &context); | |
495 address = cart[0x70/2] << 16 | cart[0x72/2]; | 492 address = cart[0x70/2] << 16 | cart[0x72/2]; |
496 transbuf = translate_m68k_stream(transbuf, end, address, &context); | 493 translate_m68k_stream(address, &context); |
497 address = cart[0x78/2] << 16 | cart[0x7A/2]; | 494 address = cart[0x78/2] << 16 | cart[0x7A/2]; |
498 transbuf = translate_m68k_stream(transbuf, end, address, &context); | 495 translate_m68k_stream(address, &context); |
499 address = cart[2] << 16 | cart[3]; | 496 address = cart[2] << 16 | cart[3]; |
500 translate_m68k_stream(transbuf, end, address, &context); | 497 translate_m68k_stream(address, &context); |
501 m68k_reset(&context); | 498 m68k_reset(&context); |
502 return 0; | 499 return 0; |
503 } | 500 } |