Mind Control Trilogy (Preview) (NES Demo)

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

Kojote
Posts: 35
Joined: Tue Jul 15, 2008 7:57 pm
Location: Salzburg, Austria
Contact:

Mind Control Trilogy (Preview) (NES Demo)

Post by Kojote » Tue Aug 09, 2011 7:35 pm

This isn't mine, but probably still interesting for the one or other :)

Mind Control Trilogy (Preview) by Bilotrip is a Nintendo Entertainment System / Famicom demo released at Assembly 2011 and ranked 4th in the oldskool demo competition.

Image

Youtube Video: http://www.youtube.com/watch?v=4TROWubW83s
Download: http://www.pouet.net/prod.php?which=57497[/img]
Kojote
http://www.pdroms.de - Homebrew news for consoles & handelds
http://www.retroguru.com - Retroguru Game Development
http://www.speckdrumm.org - Speckdrumm - Austrian Demogroup
http://www.retromagazine.eu - Retro - German Retrogaming Print-Magazine

3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Tue Aug 09, 2011 7:51 pm

Why is there all the junk on the screen? And I don't really get it myself.... still....uhhh..interesting? Hmmm...

User avatar
Dwedit
Posts: 4365
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Tue Aug 09, 2011 9:14 pm

Wow, this is absolute crap. It can't maintain a stable picture on any emulator.
Music isn't very good either. I've heard much better songs posted on the Famitracker message boards.
It's possible to refresh an entire NES screen in 4 frames with no flickering and no jumping by using a decent unrolled PPU copy loop, but this demo is just made of fail.
Too bad the author intentionally made it this way, he can do much better than this.

If you're looking for a good demo, try the Bad Apple demo.
Last edited by Dwedit on Tue Aug 09, 2011 9:50 pm, edited 1 time in total.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Tue Aug 09, 2011 9:25 pm

The youtube video has the same problem, so maybe it's supposed to be like that? And yeah, bad apple is awesome. I watched it 3 days ago, actually. Blows my mind. :P


And wait....this finished 4th? Man, I don't have a game done but I think I could make a demo that's good for 3rd place in a few days...or hours. :roll:


Maybe the guys that made it don't know about outside vblank writes to $2007. :P
Last edited by 3gengames on Tue Aug 09, 2011 9:27 pm, edited 1 time in total.

User avatar
tokumaru
Posts: 11907
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Tue Aug 09, 2011 9:26 pm

I was just wondering if all the glitches are intentional... I mean, they have to be.

Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru » Tue Aug 09, 2011 9:46 pm

Reminds about the genre when a demo is intentionally made to look like a result of a bug.

User avatar
picccca
Posts: 44
Joined: Wed Nov 24, 2010 12:51 am
Location: Finland
Contact:

Post by picccca » Tue Aug 09, 2011 10:21 pm

I guess this is only the intro scene to the game, but then there's no game either and the readme.txt file isn't really explaining a lot. If it's intended as the intro to a horror type game, then it makes sense but otherwise...

Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru » Tue Aug 09, 2011 10:43 pm

I think it is pretty clear that it is a demo on its own, not related to a game or anything.

User avatar
picccca
Posts: 44
Joined: Wed Nov 24, 2010 12:51 am
Location: Finland
Contact:

Post by picccca » Wed Aug 10, 2011 1:50 am

Ah, I've never heard about such a thing before.

User avatar
Anders_A
Posts: 88
Joined: Mon Nov 27, 2006 11:56 pm
Location: Sollentuna, Sweden

Post by Anders_A » Wed Aug 10, 2011 4:17 am

The glitching is most likely by design.

User avatar
tokumaru
Posts: 11907
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Wed Aug 10, 2011 6:41 am

Anders_A wrote:The glitching is most likely by design.
That's what I thought at first, but after seeing how the program behaves differently across emulators and an actual console, I'm pretty sure this was just badly coded.

I mean, even if you want a program to LOOK glitchy, you should simulate all the effects intentionally rather than actually run garbage code, because you never know what kind of unpleasant and inconsistent side effects glitchy code can produce.

User avatar
Anders_A
Posts: 88
Joined: Mon Nov 27, 2006 11:56 pm
Location: Sollentuna, Sweden

Post by Anders_A » Wed Aug 10, 2011 6:45 am

tokumaru wrote:
Anders_A wrote:The glitching is most likely by design.
That's what I thought at first, but after seeing how the program behaves differently across emulators and an actual console, I'm pretty sure this was just badly coded.

I mean, even if you want a program to LOOK glitchy, you should simulate all the effects intentionally rather than actually run garbage code, because you never know what kind of unpleasant and inconsistent side effects glitchy code can produce.
I don't agree. Write code for the real machine, not emulators. As long as you're using predictable behavior of the real hardware you're in the right.

3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Wed Aug 10, 2011 7:04 am

Anders_A wrote:
tokumaru wrote:
Anders_A wrote:The glitching is most likely by design.
That's what I thought at first, but after seeing how the program behaves differently across emulators and an actual console, I'm pretty sure this was just badly coded.

I mean, even if you want a program to LOOK glitchy, you should simulate all the effects intentionally rather than actually run garbage code, because you never know what kind of unpleasant and inconsistent side effects glitchy code can produce.
I don't agree. Write code for the real machine, not emulators. As long as you're using predictable behavior of the real hardware you're in the right.
I think it may be because of 2007 writes and the console is probably being forgiving, just look at it in PAL and then to NTSC mode, it has to be using too much VBlank for stuff as it is just wonky in both, but less in PAL.

64KB...lol. No compression maybe? :P

User avatar
tokumaru
Posts: 11907
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Wed Aug 10, 2011 7:12 am

Anders_A wrote:Write code for the real machine, not emulators.
And I really don't agree with that. Although I don't think we should accommodate known emulator inaccuracies, we should code "safely". Unless it's doing something really "edgy" (which this program in particular doesn't appear to be), I see no reason for a program not to work the same across different emulators and consoles. The fact that it doesn't work well on emulators should serve as a warning.

As long as you respect the basic timing, set the scroll correctly, initialize all variables and registers, the program should work everywhere. If a program works on hardware but not on emulators and is not doing anything "edgy" (forced blanking, mid-screen PPU changes, etc), I'd say there's something wrong with it. You might have made a mistake somewhere but the program runs on hardware by pure luck, something you shouldn't rely on.

Coding safely is pretty much the same as driving safely to me. If you drive safely you'll probably be OK on most roads. If you are reckless you might even get away with it if you are lucky, but it's very likely you'll eventually cause an accident.

However, if the program is using "unconventional" tricks, then the hardware obviously has the final word.

3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Wed Aug 10, 2011 7:16 am

I just made a disassembly with 6502D and from what I ca tell the beginning of the ROM is pretty much at the beginning of the disassembly. It's about 4KB big program wise from what I can tell. And this was the first thing I saw:

Code: Select all

00000010:	78	SEI
00000011:	D8	CLD
00000012:	A200	LDX #$00
00000014:	8E0020	STX $2000
00000017:	8E0120	STX $2001
0000001A:	8668	STX $68
0000001C:	8669	STX $69
0000001E:	866A	STX $6A
00000020:	866B	STX $6B
00000022:	CA	DEX
00000023:	9A	TXS
00000024:	2C0220	BIT $2002
00000027:	2C0220	BIT $2002
0000002A:	10FB	BPL $FB
0000002C:	2C0220	BIT $2002
0000002F:	10FB	BPL $FB
00000031:	A980	LDA #$80
00000033:	8D1740	STA $4017
00000036:	AD1540	LDA $4015
00000039:	A200	LDX #$00
0000003B:	A9FF	LDA #$FF
0000003D:	9D0002	STA $0200,X
Two bit's and the LDA $4015 LDA #$FF 2 lines later is just....I dunno.

And if you watch the nametable viewer in FCEUX, it seems to me like it just write the whole screen to it at once, which cause the junk at the top, and then just gets more corrupted. And it's scrolling jumps everywhere, too. And it puts blocks on the other nametables too. Why would it do that if they're never seen. It's 100% bad programming...that's about it.

Post Reply