Recent Posts

Pages: [1] 2 3 ... 10
2
News / New mod "RetroRulez"
« Last post by Dissident on January 08, 2021, 10:46:33 PM »
Hi, for those of you who like early 80s retro style mods here's my revised version of "RetroRulez".  I've uploaded it here: https: https://www.youtube.com/watch?v=VKv_ieMSaH4&list=PLrYSM1C3l5LzaZA3kCep81rDwLh00ruYh
3
Application Development / Re: Athanor 2 - an adventure game
« Last post by Astrofra on December 18, 2020, 08:20:09 AM »
GUI Stuff

For some various reasons, I needed a somehow generic GUI toolbox in Athanor, but being not super fond of the look of the OS GUI, I quickly hacked my own dialog box.



I started this because there's a moment in where the game needs some keybd input from the player.
The "OK/Cancel" buttons are generated by a couple of lines of code, so is the textfield.
Most of the GUI stuff is based on a couple of functions that works more or less independently. No class, no OOP here.

Code: [Select]
void gui_draw_3d_button(rect *_r, BOOL hilite)
{
    rect r, r2;
    short col_black = 0,
            col_med = 14,
            col_light = 20,
            col_white = 19;

    if (!hilite)
    {
        col_med = 12;
        col_light = 17;
        col_white = 29;
    }

    memcpy(&r, _r, sizeof(rect));

    rpage_video_fill_rect(&r, col_black);
    rect_shrink(&r, 1);
    rpage_video_fill_rect(&r, col_med);
    memcpy(&r2, &r, sizeof(rect));
    r2.sy = (r2.sy + r2.ey) / 2;
    rpage_video_fill_rect(&r2, col_med - 2);
    rpage_video_draw_rect(&r, col_light);
    rpage_video_set_pixel(r.sx, r.sy, col_white);
    rpage_video_set_pixel(r.ex, r.ey, col_white);
}

At some point, I found out I could use this buttons for some other purpose, like :

Asking for a disk swap

(he says he wants you to insert disk 1)

Loading/Saving the game's progress


- By the way, will the game be in English, too?
- SIR, YES SIR!



Nothing crazy but it looks cute, don't you think?
4
Application Development / Re: Athanor 2 - an adventure game
« Last post by Astrofra on December 18, 2020, 08:04:13 AM »
Athanor 2, game dev warstories  8)

The most funny glitch I had when working on the game’s display is one well documented side effect of the Amiga’s parallel architecture. As the blitter and the CPU works concurrently, you need to take care of which one is the fastest...

Turns out the result really depends on the Amiga model. On the basic A500 everything might be ok.

Let’s say :
- malloc() and load a bitmap from disk
- blit it to the screen
- free() the bitmap

Problem:
On a faster 68k machine with the same OCS blitter, turns out the free() might occur before the blit is completed, leading to a garbaged display, as the blitter goes on with the blitting stuff while the data is not available anymore.

This happens especially if you do like me, cleaning all the bitplane pointers table after freeing it :)

Code: [Select]
void free_allocated_bitmap(struct BitMap *allocated_bitmap)
{
if (allocated_bitmap)
{
UWORD i;

if (allocated_bitmap->Planes[0] != NULL)
FreeMem(allocated_bitmap->Planes[0], RASSIZE(allocated_bitmap->BytesPerRow << 3, allocated_bitmap->Rows) * allocated_bitmap->Depth);
else
printf("free_allocated_bitmap() error, plane ptr should not be NULL!\n");

for (i = 0; i < allocated_bitmap->Depth; i++)
{
if (allocated_bitmap->Planes[i] != NULL)
allocated_bitmap->Planes[i] = NULL;
}

if (allocated_bitmap != NULL)
{
FreeMem(allocated_bitmap, (LONG)sizeof(struct BitMap));
allocated_bitmap = NULL;
}
}
}

Solution:
To solve workaround this issue, I ended up with a blocking call to WaitBlit() do that the free cannot occur before the blitter is done...

We're talking Adventure Game, here, performance is not a real concern  8)
5
Software - Games / Re: Cave Story
« Last post by Astrofra on December 18, 2020, 07:57:41 AM »
That was a hell of a nice project. Iirc, it's a "one-man" gamedev.
I wonder if this could run on a Vanilla 1200. I guess it should, but it would probably need a complete reprogramming, and not modern C targeting a GPU-based architecture :)
6
News / WHDLoad 18.6
« Last post by 4pLaY on October 31, 2020, 11:45:23 PM »
WHDLoad, the AmigaOS friendly HD-Installer for Games and Demos, has been updated to version 18.6.

Get the main archive here or visit their website for other options.
7
News / FS-UAE 3.0.5
« Last post by 4pLaY on October 31, 2020, 11:36:32 PM »
A new version of the Amiga Emulator FS-UAE have been released.

Download the lastest version.
8
News / Re: A500 Mini?
« Last post by 4pLaY on October 17, 2020, 10:29:20 PM »
Here we go!
https://www.facebook.com/THEC64andMoreByRetroGamesLtd/posts/2425340997771127

While I do not use FB, there seems to be only a teaser picture for now. I guess its some FPGA system running UAE of some kind.
9
News / A500 Mini?
« Last post by tFt on October 12, 2020, 04:28:58 PM »
10
News / Vegetables Deluxe - Amiga Game
« Last post by 4pLaY on October 10, 2020, 09:16:27 PM »
Mike Richmond has released an updated version of his Amiga game, Vegetables Deluxe. A Match 3 game for the Amiga, written in Blitz Basic. Compatible with all Amigas (or emulators) with at least 512k of RAM.

This game is free but the developer accepts your support by letting you pay what you think is fair for the game.
Pages: [1] 2 3 ... 10