标签: demoscene

如何使用没有运行时库的VC++内部函数

我参与了其中一个挑战,你试图生成尽可能小的二进制文件,所以我在没有 C或C++运行时库(RTL)的情况下构建我的程序.我没有链接到DLL版本或静态版本.我甚#include至没有头文件.我有这个工作正常.

有些RTL函数memset()可能很有用,所以我尝试添加自己的实现.它在Debug构建中工作正常(即使对于编译器生成隐式调用的那些地方memset()).但是在Release版本中,我得到一个错误,说我无法定义内部函数.您可以看到,在发布版本中,内部函数已启用,并且memset()是内在函数.

我希望memset()在我的发布版本中使用内在函数,因为它可能内联,比我的实现更小,更快.但我似乎是一个陷阱22.如果我没有定义memset(),链接器会抱怨它是未定义的.如果我确定它,编译器会抱怨我无法定义内部函数.

有没有人知道定义,声明,#pragma编译器和链接器标志的正确组合,以获得内部函数而不会拉入RTL开销?

Visual Studio 2008,x86,Windows XP +.

为了使问题更具体:

extern "C" void * __cdecl memset(void *, int, size_t);

#ifdef IMPLEMENT_MEMSET
void * __cdecl memset(void *pTarget, int value, size_t cbTarget) {
    char *p = reinterpret_cast<char *>(pTarget);
    while (cbTarget > 0) {
        *p++ = static_cast<char>(value);
        --cbTarget;
    }
    return pTarget;
}
#endif

struct MyStruct {
    int foo[10];
    int bar;
};

int main() …
Run Code Online (Sandbox Code Playgroud)

c++ demoscene memset intrinsics visual-c++

32
推荐指数
2
解决办法
2万
查看次数

我怎样才能学习4K民主编码的疯狂艺术?

我很喜欢demoscene,特别是那些小的4K exefiles.它们没有任何依赖关系,除了已经在Windows中找到的文件,它们展现出令人敬畏的编程能力:3D图形+声音,全都是4K.

这怎么可能?他们使用的语言是什么?贸易,最佳实践和重要网站的工具有哪些?

注意:请回答,如果你知道你在说什么,无用的答案,如"嗯,我猜他们使用asm"将被downvoted.(这不是反对asm,asm很棒)

demoscene

28
推荐指数
3
解决办法
5854
查看次数

如何用改进的DFS算法遍历循环有向图

概述

我试图找出如何使用某种DFS迭代算法遍历有向循环图.这是我目前实现的一个小版本(它不涉及周期):

class Node(object):

    def __init__(self, name):
        self.name = name

    def start(self):
        print '{}_start'.format(self)

    def middle(self):
        print '{}_middle'.format(self)

    def end(self):
        print '{}_end'.format(self)

    def __str__(self):
        return "{0}".format(self.name)


class NodeRepeat(Node):

    def __init__(self, name, num_repeats=1):
        super(NodeRepeat, self).__init__(name)
        self.num_repeats = num_repeats


def dfs(graph, start):
    """Traverse graph from start node using DFS with reversed childs"""

    visited = {}
    stack = [(start, "")]
    while stack:
        # To convert dfs -> bfs
        # a) rename stack to queue
        # b) pop becomes pop(0)
        node, parent …
Run Code Online (Sandbox Code Playgroud)

python algorithm demoscene depth-first-search python-2.7

23
推荐指数
1
解决办法
1486
查看次数

创建Demoscenes的教程

语境:

题:

我意识到demoscene在某种程度上是一个地下的黑暗.但是,有没有关于创建其中一个的好的教程/演练?就像是:

"知道OpenGL/GLSL/C++/C的Dummies的Demoscene"

我也意识到有一些工具包旨在压缩代码 - 但对我来说,压缩目前并不重要.我很乐意仅仅学习如何创造这样的东西.

简明问题:

任何人都可以建议一步一步地创建一个演示场景的好教程/演练,对于有足够技术背景的人来理解各个步骤(但却无法看到整个图片).

谢谢.

demoscene

18
推荐指数
1
解决办法
1万
查看次数

什么是旧游戏的"侧滚动黑客"?

我听说旧的街机侧滚动游戏使用特定的编程黑客来实现高性能的侧滚动.

据我所知,多年前这些机器的功能还不足以像现在这样完成每一帧的整个屏幕重绘.有些技术,例如脏矩形,可以在背景静止且只有精灵移动时最小化重绘所需的屏幕区域.

上述方法仅在背景不变时才起作用(因此大多数屏幕像素保持静止).

垂直滚动游戏,比如老式的射击游戏,由于滚动,背景会改变每一帧,因此有点困难.然而,人们可以利用像素被馈送到显示器的方式(逐行).我想可以使用更大的缓冲区并将数据指针移动到每一帧"向下"一些线条,这样它将从另一个位置开始重绘,从而给人一种平滑滚动的印象.仍然只需要重绘精灵(以及屏幕边缘的一些背景),这是一个严重的优化.

然而,对于侧滚动游戏来说,事情并不那么简单明了.尽管如此,我知道某个人,在过去的某个地方,虽然有一个优化(有一些限制)允许旧机器水平滚动背景而不是每帧重绘它.

IIRC它被用于许多旧游戏,主要是80年代的节拍,以及demoscene制作

你能描述一下这种技术并为其作者命名吗?

graphics 2d demoscene

15
推荐指数
2
解决办法
1890
查看次数

演示(FX)编码教程?

我正在寻找一些很好的教程,让我开始进行演示编码.我有一些CG的背景,但这都是理论上的.
有很多常规的3D编程教程,但我特别想找一些旧学校的2D东西.

language-agnostic demoscene

13
推荐指数
2
解决办法
3559
查看次数

64kB演示,它们如何工作?

我看过一些程序显示了带有音轨的惊人高度详细的3D场景,但令我震惊的是它们都小于64kB!这些程序如何运作?

在此输入图像描述

3d demoscene

13
推荐指数
1
解决办法
6911
查看次数

哪些语言或方法允许图形和音乐演示适合64kb EXE?

怎么可能在一个64kb的编译exe中,这些程序可以生成如此疯狂的视觉效果,并配有匹配的音乐?

一个例子:Ars Nova By Phantom Lord(演示运行的YouTube视频)

这个程序的大小只有64kb!他们是怎么做到的?

他们在DirectX中使用某些预先存在的对象,着色器等等吗?

他们甚至用什么语言?这种东西有某种指导吗?

compression 3d demoscene procedural-generation

6
推荐指数
1
解决办法
525
查看次数

demomakers如何获得超小型文件?

当我在youtube上观看demoscene视频时,作者经常吹嘘他们的文件大小是64kb或更少,有些只有4kb.当我用C++编译一个非常基本的程序时,可执行文件总是至少90kb左右.这些演示是完全用汇编写的吗?我的理解是,demomakers也使用了c/c ++.

c++ assembly demoscene filesize demo

4
推荐指数
3
解决办法
727
查看次数