pouët.net

MagixFly
screenshot added by orac81 on 2025-04-23 15:35:18
platform :
type :
release date : april 2025
  • 0
  • 3
  • 0
popularity : 41%
 41%
  • 0.00
alltime top: #91311
added on the 2025-04-23 15:35:18 by orac81 orac81

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr bluesky threads

comments

MAGIXFLY.COM: Simple 3d flying demo in 64 Bytes. (C) A.Millett 2014-2025.
---------------------------------------------------------------------------

Released as free/open software under the terms of the GNU GPL3 license.
See: www.gnu.org/licenses/gpl-3.0.html

This is an old-school DOS/VGA graphics demo program.
It gives the (classic) effect of flying over a changing landscape.
The x86 assembler source code (MAGIXFLY.ASM) is included, and there
are comments with suggestions for changes, if you want to experiment.
It can run on an 8086 (or later) PC with VGA under MSDOS/Freedos.
An FPU is not needed.
For modern PCs, it will run on Linux/Windows in DOSBOX, or other emulators.

To run, boot DOS and type:
MAGIXFLY.COM <ENTER>

Hit ESC to exit the demo. Type CLS or MODE 80 to return to 80 col display.

All variables held in registers, which makes the code smaller/faster.
AX,DX,SI are temp calc regs.
DS (data seg) points to VGA screen (A000h)
BX = Pixel position for plotting.
CX = time (frame count)
DI - Y position (for fx calc)
BP = X position (for fx calc)

It uses the open source NETWORK x86 assembler, NASM, but can easily be adapted to others.

Build with: NAS2COM magixfly
or NASM -f bin magixfly.asm -o magixfly.com

Also included on the TurboC folder is a C version compiled with
my TCTINY build util, the exe is only 144 bytes.

The demo isnt wildly new/original, but does have a few little ideas of its own,
and it all neatly fits into 63 bytes. Enjoy!
added on the 2025-04-23 15:40:25 by orac81 orac81
//This is the TurboC version source. (144 bytes)


Code: /* MAGIXFLY.C - Tiny MSDOS 3d flying effect demo in 144 bytes. (C) A.Millett 2012-2025. Released as free software under GNU GPL3 license. (See: www.gnu.org/licenses/gpl-3.0.html ) Simple demo of ultra-small compilation using TurboC 3. To compile: tctiny.bat tc3path magixfly ie: tctiny \m\tc3\bin magixfly (needs MASM and exe2bin, or TASM) */ #include "tctiny.c" unsigned char far *pVdu; unsigned int frame; /* Frame count */ void main() { register unsigned int x; unsigned int y; unsigned int calcy; IO_VIDEOMODE (0x13); /* Set VGA video mode 13h 320x200x256 */ do { pVdu = (char far *) ((long) 0xa0000000L); for (y=10; y<210; y++) { calcy = ((2560/y) + frame) ; for (x=320; x; x --) { *pVdu = (BYTE) (((((x<<4)/y) ^ calcy) + (frame >> 8)) & 31) ; pVdu ++; } } frame ++; IO_GETKEY (x); /* See if ESC key hit */ } while (x == 0); }
added on the 2025-04-23 15:46:37 by orac81 orac81
Welcome to the playground:)

Youi might want to check 32 bytes versions of
Tilted scrolling plane effects

Platforms 32b
Floorcast 32b
added on the 2025-04-23 16:01:38 by HellMood HellMood
Welcome!

Here's how to make the code 51 bytes without changing very much how it works, just switching some registers:

Code:; es:di = pixel address, bx=time, bp=y, cx=x OFFSETY equ 12 org 100h mov al,19 int 10h push 0A000h pop es reloop: mov bp,OFFSETY loopY: inc bp mov ax,0A00h cwd ; dx=0 (ax=2560) div bp add ax,bx xchg ax,si mov cx,320 loopX: imul ax,cx,16 cwd ; dx=0 (ax<=5120) div bp xor ax,si add al,bh and al,31 stosb test di,di loopnz loopX jnz loopY ; di=0 after the loop inc bx mov ah,1 int 16h je reloop ret
added on the 2025-04-23 16:25:58 by rrrola rrrola
Ha! That brilliant Hellmood, I will add your version to the zip.
There is another 4 bytes saved if its no exit, so thats 47 bytes. I wonder how low it can go? :-)
added on the 2025-04-23 17:10:58 by orac81 orac81
sorry i mean rrrola..
added on the 2025-04-23 17:12:21 by orac81 orac81

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment