Skip to content
Alexandro Sánchez Bach edited this page Mar 17, 2016 · 18 revisions

Some potential issues on the original source code:

  1. rsx/core/context.cc: DRVI_write32(rsx_ctx->idx, -1, 0x12C0); is overriden by the next line.
  2. rsx/core/context.cc: dma_obj = (void*)rsx_ctx->dma_0A0; is overriden by the next line.
  3. rsx/object/nv_class.cc: arg1 is the type of the NV object (i.e. 4097, 0039, 3089, etc.).
  4. rsx/object/*_class.cc: class is a registered keyword in C++ and quite misleading.
  5. rsx/core/memory.cc: Shouldn't if (addr > size) be if (addr >= size). Otherwise LV1 bug.
  6. rsx/bus/ioif0.cc: Inconsistent offset type read/write_bar0*. Could be LV1 bug.
  7. rsx/objects/hash_table.cc: Shouldn't [...] 0x3FF be [...] 0xFFF. Otherwise LV1 bug.
  8. rsx/device/graph.cc: Maybe the loop with 0x28000400D04 register should be up to 15, not 14.
  9. rsx/device/clock.cc: Comment // not clock 1 or 5 is wrong.
  10. rsx/device/graph.cc: Value not set on 0x28000407570.

Suggestions to the original source code:

  1. Core device members include:
    rsx_device_clock_t* dev_clock1;   // 0x0C8: RSX device clock object 1, "nvclk"
    rsx_device_clock_t* dev_clock5;   // 0x0D0: RSX device clock object 5, "display clk"
    rsx_device_eic_t* dev_eic;        // 0x0D8: RSX external interrupt controller object
    rsx_device_fb_t* dev_fb;          // 0x0E0: RSX device framebuffer object
    rsx_device_graph_t* dev_graph;    // 0x0E8: RSX device graph object
    rsx_device_master_t* dev_master;  // 0x0F0: RSX device master object
    rsx_device_fifo_t* dev_fifo;      // 0x0F8: RSX device fifo object
    rsx_device_audio_t* dev_audio;    // 0x100: RSX device audio object
Clone this wiki locally