Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > VICE or similar cycle "perfect" emulator for screenshot?
2015-06-13 11:18
Scarzix

Registered: Aug 2010
Posts: 143
VICE or similar cycle "perfect" emulator for screenshot?

Question: is there a way to get VICE or other "almost perfect emulater" to run a PRG for eg. 100 frames and then produce a screenshot automatically?

Scenario:
1) Run assembler
2) Spawn VICE ( or other near perfect emulator ) with PRG from assembler
3) Run for xxx frames
4) Save screen (including border colors/rastersplits) as a bitmap file (fileformat is not an issue)

I need to call this from within a program automatically. So a Commandline interface or a Dll perhaps. Writing my mainprogram in C# so a slow, but "true emulation" is needed.

Hope someone has a solution?

Cheers,
Scarzix/Offence
 
... 18 posts hidden. Click here to view all posts....
 
2015-06-14 21:00
Scarzix

Registered: Aug 2010
Posts: 143
Nice ideas, might have to try them even the remote version. Still I wouldn't "feel in control" with frames so a bit hard to step through frames.

Wish there was some way to "pause" then "step" frame by frame.. or... "start with PRG and run until frame xxxx" then save PNG or something.
2015-06-14 21:03
Scarzix

Registered: Aug 2010
Posts: 143
Thinking, maybe I could just embed VICE inside a Windows program and then mimick some sort of user-control on top of it... hmmm..
2015-06-14 22:06
Oswald

Registered: Apr 2002
Posts: 5017
Quote: Thinking, maybe I could just embed VICE inside a Windows program and then mimick some sort of user-control on top of it... hmmm..

autoit/autohotkey is the tool for that
2015-06-15 22:52
Scarzix

Registered: Aug 2010
Posts: 143
Problem is that I in the end I will be running this on a webserver without anyone logged in, so actually no desktop user... no interaction.

Must figure out a way to "call the render" and "retrieve screenshot".
2015-06-16 17:20
Rex

Registered: Sep 2011
Posts: 14
I have had some success using Tcl Expect and VICE Remote Monitor to remote control VICE to automatically create screenshots after the program has run for a while.

Using Expect to communicate with VICE remote monitor will allow you to call monitor commands , run the program for a while, send more monitor commands when the monitor regains control and so on.

This still requires a desktop on the computer running VICE and Tcl/Expect.

Determining when to make the screenshot could be done using the "step <count>" command of the monitor. This wont wait an exact number of cycles, but based on the average cycle consumption of instructions you should be able to find an OK value to use.

My Expect Code for creating a screenshot looks like this:
           # Create a screenshot
            set shotnameout "$output.$shotnum"
            incr shotnum 
            set command "screenshot \"$shotnameout\""
            # Send the command from the input-file
            send "$command\r"
            # Wait for the monitor to complete the command (or meet the next breakpoint)
            expect "(C:*) $"
2015-06-17 09:09
MagerValp

Registered: Dec 2001
Posts: 1055
Quoting Rex
Determining when to make the screenshot could be done using the "step <count>" command of the monitor. This wont wait an exact number of cycles, but based on the average cycle consumption of instructions you should be able to find an OK value to use.


You can use the "registers" command to display the current line, cycle, and total cycle count, allowing you to pinpoint a specific frame and raster line.
2015-06-17 11:52
Perplex

Registered: Feb 2009
Posts: 254
Is there a way via the remote monitor to wait for a breakpoint to be triggered, then run some commands? Then you could do all the timing/frame counting from the C64 code and trigger the breakpoint at the exact right time.
2015-06-17 13:54
Mr. SID

Registered: Jan 2003
Posts: 421
Yes you can attach a command to a breakpoint:

Syntax: command <checknum> "<Command>"

Specify `command' as the command to execute when checkpoint `checknum'
is hit. Note that the `x' command is not yet supported as a
command argument.
2015-06-18 18:51
Rex

Registered: Sep 2011
Posts: 14
Quote: Is there a way via the remote monitor to wait for a breakpoint to be triggered, then run some commands? Then you could do all the timing/frame counting from the C64 code and trigger the breakpoint at the exact right time.

The reason for using Expect/Tcl is that it allows you to do exactly that.

The following code will create a breakpoint, run the program, wait for the breakpoint to trigger and the save a screenshot:

            send "b $2100\r"
            send "r\r"
            expect "(C:*) $"
            send "screenshot \"screen\""
            expect "(C:*) $"



However what Scarzix wanted was a program to create screenshots automatically - so he probably does not know where to set a breakpoint to wait the right amount of cycles.
2015-06-18 19:56
Scarzix

Registered: Aug 2010
Posts: 143
Correct Rex, I am looking for "frames" - like "100" frames from boot and that number could be changed or multiple shots could be made to form an animation.
Previous - 1 | 2 | 3 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
hedning/G★P
Didi/Laxity
Freeze/Blazon
kbs/Pht/Lxt
CreaMD/React
psych
Guests online: 168
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 S!R  (9.9)
3 Antitrack  (9.8)
4 Mr Zero Page  (9.8)
5 OTD  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.043 sec.