Skip to content

Investigate DingusPPC #219

@mihaip

Description

@mihaip

https://github.com/dingusdev/dingusppc is actively being developed and making progress (thread).

  • Basic boot
  • Video out
  • Sound out
  • Disk image loading
  • Keyboard input
  • Mouse input
  • Pointer lock mode until absolute mouse position is implemented
  • Use alternate exception handling mechanism, setjmp/longjmp appears to have a lot of overhead
  • Add drop-down with CD-ROMs in custom instance
  • Mark machines as experimental in the UI
  • Custom RAM size support
  • Rebase with recent upstream changes
  • Library
    • 7.1.2 HD image
    • G3 Beige ROM machine
    • Add Mac OS X 10.0 Install CD
    • Add Mac OS X 10.1 Install CD
    • Add Mac OS X 10.2 install CDs
    • 8.1 Disk Tools floppy for Beige G3
    • Add Mac OS X 10.3 install CD
    • Add OpenDarwin 6.6.2 install CD
    • 9.1 HD image
    • 9.2 HD image
  • Bugs
    • Colors are offset (channels in the wrong order)?
    • Cursor is not drawn on G3 (missing hardware cursor support?)
    • 10.2 install CD boots on native build, does not build in Emscripten build
    • "Hum" noise after initial boot chime
    • Does not handle sample rate change from 44 KHz to 22 KHz (when playing a system beep after the boot chime)
    • Gossamer cannot boot with 256 MB because it allocates the memory regions twice
    • 8.1 install CD boots in native version but fails here
    • Implement Virtual trackpad for mobile devices #291 to allow mobile mouse movement
    • Add IDE driver to device image so Beige G3 can use hard drives
  • Debugging
    • Add mechanism for capturing stderr and/or stdout
    • Make fatal errors bring up the error UI instead of entering the debugger
  • Performance
    • Profile to see why booting from a CD image is faster than booting from a floppy one -> floppy speed is realistically emulated
    • Experiment with inlining register read/write functions -> does not help
    • If the graphics card implements the draw_fb optimization (ATI ones do) then we don't need to do our own framebuffer checksumming/check
    • Consider a pool for TimerInfos instead of always creating new ones for the all the one-shot timers we go through
    • Track toolbox traps to see when we get the first WaitNextEvent (to measure time-to-boot)
    • Add UI for counters when profiling is enabled
    • Investigate overhead of logging
  • Missing DingusPPC functionality
    • Implement CUDA_RESTART_SYSTEM support so that we can operate with an empty nvram file
    • 7.1.2 (though not 7.5.3 or 7.6) do not finish booting on a 6100 from an HD (pointer to possible missing functionality). The same system folder does boot from a CD image, could compare SCSI operations
    • 10.2 frequently kernel panics
    • No text renders when booting from 7.1.2 CD
    • No text renders when booting from 7.5.3 CD
    • Custom RAM option has no effect on PDM
    • Mouse does not move when booting the Beige G3 from the 8.1 Disk Tools floppy (needs VBL interrupts, present in the https://github.com/joevt/dingusppc/ fork)
    • idlewait equivalent (does a PowerBook do something to go into a low-power/idle state?)
    • Add support for extended mouse protocol and absolute mouse position (tech note)
    • Add support for mounting and unmounting CD-ROM images (based on joevt/dingusppc@669aece which allows dynamic floppy disk insertion)
    • See if there's anything in Wack0/dingusppc-nt@529991b that should be upstreamed

Metadata

Metadata

Assignees

No one assigned

    Labels

    ProjectBigger projects

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions