trunk/src/mame/drivers/firebeat.c
| r19012 | r19013 | |
| 106 | 106 | The display list objects seem to be there, but the address is wrong (0x14c400, instead of the correct address) |
| 107 | 107 | |
| 108 | 108 | - The external Yamaha MIDI sound board is not emulated (no keyboard sounds). |
| 109 | | */ |
| 109 | |
| 110 | |
| 111 | - Notes on how the video is supposed to work from Ville / Ian Patterson: |
| 112 | |
| 113 | There are four "display contexts" that are set up via registers 20-4E. They are |
| 114 | basically just raw framebuffers. 40-4E sets the base framebuffer pointer, 30-3E |
| 115 | sets the size, 20-2E may set the minimum x and y coordinates but I haven't seen |
| 116 | them set to something other than 0 yet. One context is set as the one the RAMDAC |
| 117 | outputs to the monitor (not sure how this is selected yet, probably the lower |
| 118 | bits of register 12). Thestartup test in the popn BIOS checks all of VRAM, so |
| 119 | it moves the currentdisplay address around so you don't see crazy colors, which |
| 120 | is very helpful in figuring out how this part works. |
| 110 | 121 | |
| 122 | The other new part is that there are two VRAM write ports, managed by registers |
| 123 | 60+68+70 and 64+6A+74, with status read from the lower bits of reg 7A. Each context |
| 124 | can either write to VRAM as currently emulated, or the port can be switched in to |
| 125 | "immediate mode" via registers 68/6A. Immedate mode can be used to run GCU commands |
| 126 | at any point during the frame. It's mainly used to call display lists, which is where |
| 127 | the display list addresses come from. Some games use it to send other commands, so |
| 128 | it appears to be a 4-dword FIFO or something along those lines. |
| 129 | */ |
| 130 | |
| 111 | 131 | #include "emu.h" |
| 112 | 132 | #include "cpu/m68000/m68000.h" |
| 113 | 133 | #include "cpu/powerpc/ppc.h" |