User:Gpz: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
 
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=== Rendering ===


== readme ==
* check and maybe also make chip specific: "AspectRatio", "TrueAspectRatio", "KeepAspectRatio"


=== nailing down Problems and what are none ===
==== call tree ====


if attaching a cart (from the commandline) does not work as expected, please do the following (and report all results):
normal rendering call sequence:


* first try with "-config nosuchfile" as first arg. if this solves the problem then it is likely no bug in the cart system itself. (phew)
* video/video-canvas.c:video_canvas_render
* second try with "+cart" as first arg. if this also works, then unfortunately there is a chance that the cart related settings in your config conflict with the cart you are trying to attach, and since we are aiming to support more than one cart at a time there is also a chance that the combination of carts you are trying to use simply doesnt work (as on the real thing) - however, due to the way the cart system works right now (associating most carts with the "Main Slot", which means only one of those can be active at a time) still in many cases, if only one other cart in the "Main Slot" has been set as default, attaching a cart should "just work". hence...
** video/video-render.c:video_render_main (renderer main)
* try without any additional args, this should replicate your problem.
** check if any cart which is not in the "Main Slot" is active, and if so disable them. they might be the cause of the conflict (save settings, and try again. if this solved it, it is not a bug)
* try without *any* args (ie, just start the emu). check the log for errors


in *any* case, attach your vicerc and binaries to your bug reports
YUV rendering call sequence:


* if you can, comment in the respective DEBUGXYZ macros prominently defined at the top of these files: src/c64/cart/c64cart.c src/c64/cart/c64cartmem.c src/c64/c64io.c src/c64/c64export.c and then recompile. this will add debug output that might make it much easier to locate certain problems.
* video/video-render.c:render_yuv_image (yuv renderer main)


=== Expected Behaviour ===
switching from/to fullscreen (alt-d):
==== startup ====


* when the emu is run without arguments, all settings from the config file should be applied
* video/video-resources:set_fullscreen_enabled
* arguments override settings from the config file
** video_chip_cap->fullscreen.enable (arch/unix/x11/fullscreen.c:fullscreen_enable)
*** arch/unix/x11/xrandr.c:xrandr_enable
**** set_xrandr
***** FIXME: grab/ungrab mouse pointer
**** arch/unix/x11/gnome/x11ui.c:x11ui_fullscreen


==== config file ====
** video_chip_cap->fullscreen.statusbar (arch/unix/x11/fullscreen.c:fullscreen_statusbar)


* when saving the settings to the config file it is expected that on the next run of the emulator all settings will be in the same state as when they were saved.
setup: video_chip_cap set in:
** there is an exception to this rule: the cartridge in the "Main Slot" must be explicitly set as default before it gets saved to the config file
* arch/unix/x11/fullscreen.c:fullscreen_capability
 
==== command line ====
* +cart should disable ALL cartridges, including eventually activated REU, Swithlink and all similar expansionport devices.
* -cartXYZ options should generally attach AND activate a cart of type XYZ
** as a consequence, attaching carts this way which are NOT in the "Main Slot" will also enable the cart permanently
 
== TODO ==
 
=== general ===
 
* when adding stuff that needs UI items, add the entry to DevLog (in the wiki)
 
=== Cart System ===
 
==== general ====
 
* remove direct usage of export.xx (generic, retroreplay)
* if possible make all special cases into general cases
** REU
*** reu_dma() in c64mem.c, plus256k.c, c64memsc.c, c64_256k.c, c128mem.c, c128mmu.c
*** reu_ba_register() in c64memsc.c
*** reu_dma_start() in mainc64cpu.c
* implement snapshot support for more carts :)
* move chip cores into core directoy (Magic Formel)
 
==== Clock Port Resource ====
 
* update the resource handling for the clockport (export resource) (MMC64, MMC Replay, Retro Replay)
* create logic to handle clock port devices
* make hooks to handle rr-net, silversurfer, mp3@c64
 
=== individual Carts ===
 
<div style="color: red;">
==== Magic Voice (49) ====
 
* debug interaction with TPI
* rewrite using an event based model
</div>
 
<div style="color: red;">
==== MMC Replay (38) ====
 
* generally very buggy
</div>
 
<div style="color: red;">
==== Snapshot64 (47) ====
'''schematic and/or hardware needed'''
* cz:
** F1 (save backup) - saves some files, then crash
*** (WORKS FOR ME)
** F3 (clear mem) - crash
*** (WORKS FOR ME)
** F5 (format disk) - formats, starts saving, then crash
*** (UNRELATED) - starts formatting, but the drive emulation errors out (Drive 8: Error - Could not find header of ...)
** F7 (restart) - works
*** does NOT work for me =P
</div>
 
<div style="color: red;">
 
==== Stardos (31) ====
* cz: file copier produces garbage
** (WORKS FOR ME)
* cz: disk copier crashes
** (WORKS FOR ME) it does not crash but actually cleanly exit from the menu, as if the feature is not there
</div>

Latest revision as of 03:31, 3 July 2012

Rendering

  • check and maybe also make chip specific: "AspectRatio", "TrueAspectRatio", "KeepAspectRatio"

call tree

normal rendering call sequence:

  • video/video-canvas.c:video_canvas_render
    • video/video-render.c:video_render_main (renderer main)

YUV rendering call sequence:

  • video/video-render.c:render_yuv_image (yuv renderer main)

switching from/to fullscreen (alt-d):

  • video/video-resources:set_fullscreen_enabled
    • video_chip_cap->fullscreen.enable (arch/unix/x11/fullscreen.c:fullscreen_enable)
      • arch/unix/x11/xrandr.c:xrandr_enable
        • set_xrandr
          • FIXME: grab/ungrab mouse pointer
        • arch/unix/x11/gnome/x11ui.c:x11ui_fullscreen
    • video_chip_cap->fullscreen.statusbar (arch/unix/x11/fullscreen.c:fullscreen_statusbar)

setup: video_chip_cap set in:

  • arch/unix/x11/fullscreen.c:fullscreen_capability