Jump to content

Photo

Tool to help planning the 76 cycles


23 replies to this topic

#1 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • 187 posts
  • Location:Hannover, Germany

Posted Fri Jun 15, 2012 12:02 PM

[Update: FridgeGrid now has it's own webpage]

 

During hacking up another idea for a demo, I figured I needed something helping me plan on how to use the 76 cpu cycles across the screen. Usually I take a whiteboard for a task like this, but since the planning involved moving around some objects, I came up with the idea for a piece of software that can be roughly described as: fridge magnets with a grid to put them in.

Here's what it looks like at the moment:
GridExample.png
(This scene is fictional but rather common for creating an asymmetrical playfield, just to give you an idea.)

It's written in C++/Qt and will run on Linux, Windows and Mac OS X. I've already successfully created a version for every one of these platforms. When in a state that's worth releasing it will be as open source and binary for the three platforms.

This leaves me with two questions:
- Do you think it will be worth releasing?
- Do you have a name for it? My working title "FridgeGrid" is kind of dull.


Edited by SvOlli, Sun Nov 26, 2017 3:57 PM.


#2 Pioneer4x4 OFFLINE  

Pioneer4x4

    River Patroller

  • 2,052 posts
  • Atari + R.O.B. = Completed
  • Location:PA

Posted Fri Jun 15, 2012 12:54 PM

- Do you think it will be worth releasing?

Yes

- Do you have a name for it? My working title "FridgeGrid" is kind of dull.

CPU Clock Counter

#3 SpiceWare OFFLINE  

SpiceWare

    Draconian

  • 11,674 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Fri Jun 15, 2012 1:26 PM

Another example - the main kernel loop for Frantic.

Frantic.png

I've actually grown fond of Fridge Grid. Maybe expand upon that, like VCS Fridge Grid, Stella Fridge Grid, or even Kernel Fridge Grid.

Edited by SpiceWare, Fri Jun 15, 2012 1:29 PM.


#4 tokumaru OFFLINE  

tokumaru

    Chopper Commander

  • 236 posts
  • Location:Rio de Janeiro - Brazil

Posted Sat Jun 16, 2012 1:11 PM

This is pretty cool! I usually do this on paper, and it's a pain in the ass.

I vote for "Kernel Fridge Grid"! =)

#5 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Sat Jun 16, 2012 2:17 PM

This is pretty cool!

Thanks!

I usually do this on paper, and it's a pain in the ass.

I wanted to do some not straight forward demo calculation and needed asymmetrical playfield on the same scanline. And I figured, before going through the p.i.t.a. thing on paper or whiteboard, I'd rather like to hack up a simple tool for it. A very rough version of the tool got the job done.

I vote for "Kernel Fridge Grid"! =)

Since "Fridge Grid" seems to be popular, but I'm tending rather to either "76 Fridge Grid" or "Fridge Grid 76"... "Kernel" is too generic, even Linux has one. ;-) But I'll leave this open to discussion.

#6 Syntaxerror999 OFFLINE  

Syntaxerror999

    Dragonstomper

  • 539 posts

Posted Thu Jun 21, 2012 10:58 AM

Nice idea... yes such a program would be worth it. A nice option to include is branching for planning multiple paths the game program can take and maybe a source anylizer with a database of DASM/6502 commands, and how many clock cycles they take.

#7 JohnnyRockets OFFLINE  

JohnnyRockets

    Moonsweeper

  • 456 posts
  • Location:Tecumseh, Michigan

Posted Thu Jun 21, 2012 1:11 PM

Super cool! "Super Kernel Grid 76"


Okay, maybe too long(?)


JR

#8 GroovyBee OFFLINE  

GroovyBee

    Games Developer

  • 9,736 posts
  • Busy bee!
  • Location:North, England

Posted Thu Jun 21, 2012 1:13 PM

How about "Get your pix on grid 76"?

#9 tokumaru OFFLINE  

tokumaru

    Chopper Commander

  • 236 posts
  • Location:Rio de Janeiro - Brazil

Posted Thu Jun 21, 2012 5:06 PM

A nice option to include is branching for planning multiple paths the game program can take

I was wondering how that would work... Right now you can just stack the different kernels vertically and it's not so hard to see the jumps from one to the other. You can even color-code the jumps so they're easier to spot.

and maybe a source anylizer with a database of DASM/6502 commands, and how many clock cycles they take.

It would be interesting if it was possible to store a sequence of commands in each block, even if the program itself doesn't count the cycles. It could be just text really, a field where you'd either explain something or write code and calculate how many cycles that code would take, and resize the block accordingly.

#10 Rybags ONLINE  

Rybags

    Quadrunner

  • 15,267 posts
  • Location:Australia

Posted Mon Jun 25, 2012 1:30 AM

Just to throw a spanner in...

something like this could be useful on other systems too. But then we'd want option for 63, 64, 65, 114 cycles per scanline to cover C64/A8/7800, plus option to "make unavailable" selected slots due to DMA.

#11 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Mon Jun 25, 2012 9:55 AM

something like this could be useful on other systems too. But then we'd want option for 63, 64, 65, 114 cycles per scanline to cover C64/A8/7800, plus option to "make unavailable" selected slots due to DMA.

Since this is really just the digital implementation of fridge magnets pulled into a grid, it already works for other systems. Maximum width is set to 76 right now, but nothing keeps you from putting two 57 cycle markers side by side. Something like planning badlines of the C64 is also already doable, since it's just moving some markers around.

The tool is really intended just as something like a mindmap tool: no import from source code, no export to source code. Just something that helps you to order your thoughts on how to solve a rather complex problem. But this idea of using this tool for kept me thinking.

Since the tool is rather generic I'd dropping the idea of including the "76" or anything else hinting to the 2600 like "VCS", "Stella", "Kernel". So at the end of the day, unless there no other cool idea for a name, I'll really stick with "Fridge Grid", since it describes best, what it is and what it does.

#12 Richi_S OFFLINE  

Richi_S

    Star Raider

  • 55 posts
  • Location:Germany - Munich

Posted Tue Jan 1, 2013 12:18 PM

I had been using a simple Excel / Open Office spreadsheet to plan the timing and the jumps.
screenshot.jpg


I was permitted to upload the .ods and .xls file with their original filenames, so you will have to replace the .txt extension with .xls / .ods

I'm sorry for the wrecked up formating of the file, nevertheless the content is still valid

Attached Files


Edited by Richi_S, Tue Jan 1, 2013 12:25 PM.


#13 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Thu Apr 4, 2013 2:00 PM

After watching the talk "Poems For Bugs" by lft on the Revision 3.0 Party, I decided to pick up work on this tool again, to get it somewhat completed.

One of the new things is a free text area where you can put in some quick notes, on what the sheet is about. But there's also one thing I need help: I want to include a set of templates. As an example I attached one I did for the asymmetrical playfield. It also shows the intention of using it.

If you think, you can provide me with one or more templates - regardless the system - drop me a pm or let me know otherwise, and I'll send you the current version for your system (Windows, MacOS X or Linux).

Thanks in advance for the help,
SvOlli

P.S.: This is the seminar that got me started again:

Attached Thumbnails

  • FridgeGrid2600Playfield.png


#14 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Mon Apr 8, 2013 2:41 PM

Sourcecode is now available at github as well as my private site.

https://github.com/SvOlli/fridgegrid

I also need someone to design some nice icons. Either as 32x32 pixels png images or svg, the latter preferred.

#15 Tjoppen OFFLINE  

Tjoppen

    Chopper Commander

  • 211 posts

Posted Tue Apr 9, 2013 2:26 AM

Fix your Makefiles. There are lots of hardcoded paths in there. I'm getting compilation problems like these:

make: *** No rule to make target `/opt/mxe/usr/i686-pc-mingw32/mkspecs/unsupported/win32-g++-4.6-cross/qmake.conf', needed by `Makefile'. Stop.

edit: For those more low-tech inclined, there's lft's raster paper: http://www.linusakes...ng/rasterpaper/ - I'm working on a 76 cycle variant.

Edited by Tjoppen, Tue Apr 9, 2013 2:29 AM.


#16 enthusi OFFLINE  

enthusi

    Moonsweeper

  • 369 posts
  • Location:Potsdam, Germany

Posted Tue Apr 9, 2013 2:50 PM

Yeps, Im naturally getting the same Make errors here...
And inspecting the Makefile, Im going to bed first :)

Edited by enthusi, Tue Apr 9, 2013 2:52 PM.


#17 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Tue Apr 9, 2013 3:39 PM

A generated Makefile was accidently checked in. Use "rm src/Makefile" as a workaround.

Fixed in the repository now, as well as some changes preparing different styles for the grid.

Edit: updated precompiled versions for Windows and Mac are available at: http://svolli.de/software/fridgegrid/

Edited by SvOlli, Tue Apr 9, 2013 3:49 PM.


#18 enthusi OFFLINE  

enthusi

    Moonsweeper

  • 369 posts
  • Location:Potsdam, Germany

Posted Thu Apr 18, 2013 9:05 AM

Started using that tool these days. Nice though pretty raw still.
Should be simple enough to allow to 'read in' 6502-assembler code automatically?
I mean some dialog to feed in some asm snippet. Im close to writing a small wrapper in python 6502->xml.
Feels a bit tedious to duplicate, rename and move all 'magnets'. So some group-select would be nice (i.e. its nasty to shift all magnets a few cycles).
A (preset) row of cycles would also be cool. I know I could do that manually as well now. Even more so after bragging about python wrappers ;-)
Just comments :)
Also, even 'LDA ZP' is to wide a text to be visble within a 3-cycle-block. Maybe sizeable blocks or fonts?
Compiled out of the box now and can be used super-intuitive at the current state though. Very nice.
Just a bit too little gain over any vector-drawing-tool or spreadsheet even, yet.
Maybe even some 6502-opcode selection-window?
To just pick from all the opcodes with pre-set color for the different adress-modes?

Edit:
set parameters could include 'position' as well. That would help already. Also position could 'match' cycle, then there wouldbe need for < 0 positions though in the current 76-cycle preset.

Edited by enthusi, Thu Apr 18, 2013 9:07 AM.


#19 SpiceWare OFFLINE  

SpiceWare

    Draconian

  • 11,674 posts
  • Medieval Mayhem
  • Location:Planet Houston

Posted Thu Apr 18, 2013 12:14 PM

Maybe sizeable blocks or fonts?


The blocks are sizable via the number boxes in the menu bar

#20 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Fri Apr 19, 2013 10:29 AM

Feels a bit tedious to duplicate, rename and move all 'magnets'. So some group-select would be nice (i.e. its nasty to shift all magnets a few cycles).

Yes, but that tedious work was what I needed to plan an effect. I did not create blocks for each assembly command, but for a function that would probably not be separated. Something like:
LDA ZP+0,X
STA PF0
LDA ZP+1,X
STA PF1
LDA ZP+2,X
STA PF2
Would always go in one block named "Copy PF" and be 21 blocks in size.

A (preset) row of cycles would also be cool.

That's a cool idea. Drag an item back to a special menu point, to add it as a new "new item".

I know I could do that manually as well now. Even more so after bragging about python wrappers Posted Image

Wouldn't it be better to just have an additional (commandline) tool that just generates the xml for loading via fridgegrid?

Also, even 'LDA ZP' is to wide a text to be visble within a 3-cycle-block. Maybe sizeable blocks or fonts?

I could use "balloon help" that pops up, when the mouse is hovering an item.

set parameters could include 'position' as well. That would help already. Also position could 'match' cycle, then there wouldbe need for < 0 positions though in the current 76-cycle preset.

And what if someone wants to use it on a Z80 based machine? Or Motorola's 6809?

If you manage to write a converter 6502 -> xml in python, I'd be glad to add this in a "contributions" folder. The tool in itself is intended to be rather abstract. Hey, lft does the same on paper for the C64: http://www.linusakes...paper/index.php

Thanks for the feedback!

#21 minimoose OFFLINE  

minimoose

    Combat Commando

  • 8 posts
  • Location:Egyptian Desert

Posted Sun Jul 26, 2015 5:40 PM

The link for Poems for Bugs on YouTube is dead, but THIS should work.



#22 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Thu Oct 19, 2017 5:25 PM

The sourcecode of FridgeGrid got an upgrade to Version 1.1 with the following new features:

- ported from Qt4 to Qt5

- export to PNG

- new files can be created from templates, so far are included:

  - Atari 2600

  - C64 PAL

  - VIC PAL and NTSC

 

No binaries available yet, as all my build environments besides Linux were dropped during migrating my main system.

 

I need to set up MXE again for static Qt5 applications. Anyone got an idea how to cross-build stuff for Mac OS X on Linux?



#23 SvOlli OFFLINE  

SvOlli

    Chopper Commander

  • Topic Starter
  • 187 posts
  • Location:Hannover, Germany

Posted Sun Nov 26, 2017 4:00 PM

FridgeGrid now has it's own webpage

 

It also contains binary version for MacOS X (compiled on 10.6) and Windows. There also is a link to my self-compiled repositories for Debian/Ubuntu which contain versions of FridgeGrid for several different distributions and processor architectures.

 

There also is a detailed example on how I use it.



#24 tokumaru OFFLINE  

tokumaru

    Chopper Commander

  • 236 posts
  • Location:Rio de Janeiro - Brazil

Posted Mon Nov 27, 2017 5:25 PM

Cool! It's been a while since I tried to code anything for the 2600, but I'm gonna definitely find the time to play with this a bit!






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users