I can't believe my eyes. 256 colors on CGA?! HOW?!
On Atari ST, it was possible to change the palette colors in midflight, and using that trick to display more colors on screen. The technique was used by Spectrum 512 and Quantum Paint and many demos. "QPs 512 mode is pretty straightforward; its only color limitation being that it can display a maximum of 40 colors on a single scan line. Mode 4K uses a special technique called "interlacing" in order to display a suppo…
8088 MPH: We Break All Your Emulators
41–50 of 102 posts
Re: 8088 MPH: We Break All Your Emulators
#42I'm interested to know why it breaks all the emulators. Certainly I wouldn't expect emulators to reproduce all the graphical glitches that this takes advantage, but what is it doing that actually crashes them?
I see this demo as somewhat of a challenge to the emulator authors.
Re: 8088 MPH: We Break All Your Emulators
#43These days I find it slightly weird that they don't share the source code of the demos or related tools. Demo scene has this wonderful alpha-male thing going.
Re: 8088 MPH: We Break All Your Emulators
#44Quick explanation of compiled sprites: Most commonly a sprite is represented as a 2d array of pixels that you for X, for Y over and use math or branching to blend on to the screen. But, that's a lot of reading and writing, and a lot of the math ends up doing nothing because a lot of the pixels are intentionally invisible. So, you could do some sort of visible/invisible RLE to skip over the invisible pixels. That's be…
> it becomes a read instruction, write data in two straight lines in memory. So basically this kind of hack could not be used for a game, then, where interaction is needed?
Re: 8088 MPH: We Break All Your Emulators
#45Re: 8088 MPH: We Break All Your Emulators
#46Wow, amazing. Would be interesting though to know which hacks make the emulators fail
Re: 8088 MPH: We Break All Your Emulators
#47Earlier quoted context omitted.
Probably more than now because computing was not really "mainstream" at the time. Before Win95 at least.
Computing was not mainstream, so kids had a better idea about it?
Re: 8088 MPH: We Break All Your Emulators
#48I can't believe my eyes. 256 colors on CGA?! HOW?!
On Atari ST, it was possible to change the palette colors in midflight, and using that trick to display more colors on screen. The technique was used by Spectrum 512 and Quantum Paint and many demos. "QPs 512 mode is pretty straightforward; its only color limitation being that it can display a maximum of 40 colors on a single scan line. Mode 4K uses a special technique called "interlacing" in order to display a suppo…
Re: 8088 MPH: We Break All Your Emulators
#49Earlier quoted context omitted.
IIRC, because of relative-address store instructions, the destination address does not have to be hard-coded. So, the sprites can still move around dynamically. What's harder is clipping against the sides of the screen. With no branching, there's no way to prevent the sprite from writing past the end of a line/screen (wrapping/mem-stomping). So, there does need to be a test per sprite to detect that case and fall bac…
What's harder is clipping against the sides of the screen. With no branching, there's no way to prevent the sprite from writing past the end of a line/screen (wrapping/mem-stomping). So, there does need to be a test per sprite to detect that case and fall back on a more complicated blitter. In fullscreen modes, you could also just make your screen buffer bigger than the actual screen by the width and height of your l…
This only cost one extra AND instruction and allowed the sprites to be clipped to any size rectangular playfield while still maintaining almost all of the speed benefits.
Re: 8088 MPH: We Break All Your Emulators
#50I'm interested to know why it breaks all the emulators. Certainly I wouldn't expect emulators to reproduce all the graphical glitches that this takes advantage, but what is it doing that actually crashes them?