Mercurial > repos > blastem
comparison vdp.c @ 981:902c53d9c16f
Half assed, prefetch based open bus value emulation. Gets BlastEm up to 119/122 in VDP FIFO Testing
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 24 Apr 2016 02:19:48 -0700 |
parents | 928442068afe |
children | 14d2f3b0e45d |
comparison
equal
deleted
inserted
replaced
980:928442068afe | 981:902c53d9c16f |
---|---|
1692 } | 1692 } |
1693 | 1693 |
1694 uint16_t vdp_control_port_read(vdp_context * context) | 1694 uint16_t vdp_control_port_read(vdp_context * context) |
1695 { | 1695 { |
1696 context->flags &= ~FLAG_PENDING; | 1696 context->flags &= ~FLAG_PENDING; |
1697 //TODO: Open bus emulation | |
1698 //Bits 15-10 are not fixed like Charles MacDonald's doc suggests, but instead open bus values that reflect 68K prefetch | 1697 //Bits 15-10 are not fixed like Charles MacDonald's doc suggests, but instead open bus values that reflect 68K prefetch |
1699 uint16_t value = 0; | 1698 uint16_t value = get_open_bus_value() & 0xFC00; |
1700 if (context->fifo_read < 0) { | 1699 if (context->fifo_read < 0) { |
1701 value |= 0x200; | 1700 value |= 0x200; |
1702 } | 1701 } |
1703 if (context->fifo_read == context->fifo_write) { | 1702 if (context->fifo_read == context->fifo_write) { |
1704 value |= 0x100; | 1703 value |= 0x100; |