Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
257 user(s) are online (150 user(s) are browsing Forums)

Members: 1
Guests: 256

davec555, more...

Headlines

Forum Index


Board index » All Posts (saimo)




Re: PED81C - pseudo-native, no C2P chunky screens for AGA
Quite a regular
Quite a regular


@AmiDARK
Quote:
AmiDARK wrote:Really impressive.

Thanks!

Quote:
Should be a definitive + to Amos Professional as an extension

I wrote the example in AMOS to make it easier to understand by more people, but the system isn't intended for any specific language.
I decided to let programmers implement PED81C in the way that fits best their projects and in their language of choice, given that setting up PED81C screens is easy and given that general-purpose routines would perform worse than tailor-made ones.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


@AmigaOldskooler

Thanks a lot!
I hope you'll manage to finish it and enjoy it even more.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: PED81C - pseudo-native, no C2P chunky screens for AGA
Quite a regular
Quite a regular


Uploaded an archive with updated documentation.
While at it, given that I was asked for a source code example, I whipped up an AMOS Professional program that shows how to set up a PED81C screen and to perform some basic operations on it - hopefully, this will be easy to understand and also open the door to AMOS programmers. The program source is included in the archive.

'-----------------------------------------------------------------------------
'
$VERPED81C example 1.3 (28.11.2023) (c2023 RETREAM
'Legal terms: please refer to the accompanying documentation.
'
www.retream.com/PED81C
'contact@retream.com
'
-----------------------------------------------------------------------------

'-----------------------------------------------------------------------------
'
DESCRIPTION
'This shows how to set up a PED81C screen and to perform some basic operations
'
on it.
'Screen features:
equivalent to a 319x256 LORES screen
' * 160 dots wide raster
single buffer
' * blanked border
64-bit bitplanes fetch mode
' * CMYW color model
'
'NOTES
'
The code is written to be readablenot to be general-purpose/optimal.
'-----------------------------------------------------------------------------

'
-----------------------------------------------------------------------------
'GLOBAL VARIABLES

Global RASTERADDRESS,RASTERWIDTH,RASTERHEIGHT,RASTERSIZE

RASTERWIDTH=160
RASTERHEIGHT=256
RASTERSIZE=RASTERWIDTH*RASTERHEIGHT

'
-----------------------------------------------------------------------------
'MAIN

'
Initialize everything.

_INITIALIZE_AMOS_ENVIRONMENT
_INITIALIZE_SCREEN

'If the initialization succeeded, load a picture into the raster and, in case
'
of successexecute a simple effect on it.

If 
Param
   _LOAD_PICTURE_INTO_RASTER
["picture-160x256.raw"]
   If 
Param
      _TURN_DISPLAY_DMA_ON
[0]
      
_RANDOMIZE_RASTER
      _TURN_DISPLAY_DMA_OFF
   End 
If
End If

'Deinitialize everything.

_DEINITIALIZE_SCREEN
_RESTORE_AMOS_ENVIRONMENT

'
-----------------------------------------------------------------------------
'ROUTINES

Procedure _ALLOCATE_BITPLANE[BANKINDEX,SIZE]
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Allocates a CHIP RAM buffer to be used as a bitplane.
   
'
   '
INPUT
   
'BANKINDEX = index of bank to use
   '
SIZE      size [bytesof bitplane
   
'
   '
OUTPUT
   
'64-bit-aligned bitplane address (0 = error)
   '
   'WARNINGS
   '
The buffer must be freed with Erase BANKINDEX or Erase All.
   
'--------------------------------------------------------------------------

   Trap Reserve As Chip Data BANKINDEX,SIZE+8
   If Errtrap=0 Then A=(Start(BANKINDEX)+7) and $FFFFFFF8

End Proc[A]
Procedure _DEINITIALIZE_SCREEN
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Deinitializes the screen.
   
'
   '
WARNINGS
   
'Can be called only if the display is off.
   '
--------------------------------------------------------------------------

   
Erase All
   Doke $DFF1FC
,Rem FMODE

End Proc
Procedure _INITIALIZE_AMOS_ENVIRONMENT
   
'--------------------------------------------------------------------------
   '
DESCRIPTION
   
'Ensures the program cannot be interrupted or brought to back, and turns
   '
off the AMOS video system.
   
'--------------------------------------------------------------------------

   Break Off
   Amos Lock
   Comp Test Off
   Auto View Off
   Update Off
   Copper Off
   _TURN_DISPLAY_DMA_OFF

End Proc
Procedure _INITIALIZE_SCREEN
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Initializes the screen.
   
'
   '
OUTPUT
   
'-1/0 = OK/error
   '
   'WARNINGS
   '
_DEINITIALIZE_SCREEN[] must be called also in case of failure.
   
'
   '
NOTES
   
'Sets RASTERADDRESS.
   '
--------------------------------------------------------------------------

   
'Allocate the raster.

   _ALLOCATE_BITPLANE[10,RASTERSIZE] : If Param=0 Then Pop Proc[0]
   RASTERADDRESS=Param

   '
Allocate and fill the selector bitplanes.

   
_ALLOCATE_BITPLANE[11,RASTERSIZE] : If Param=0 Then Pop Proc[0]
   
B3A=Param
   Fill B3A To B3A
+RASTERSIZE,$55555555

   _ALLOCATE_BITPLANE
[12,RASTERSIZE] : If Param=0 Then Pop Proc[0]
   
B4A=Param
   Fill B4A To B4A
+RASTERSIZE,$33333333

   
'Set the chipset.

   DIWSTRTX=$81+(160-RASTERWIDTH)
   DIWSTRTY=$2C+(128-RASTERHEIGHT/2)
   DIWSTRT=((DIWSTRTY and $FF)*256) or((DIWSTRTX+1) and $FF)
   DIWSTOPX=DIWSTRTX+RASTERWIDTH*2
   DIWSTOPY=DIWSTRTY+RASTERHEIGHT
   DIWSTOP=((DIWSTOPY and $FF)*256) or(DIWSTOPX and $FF)
   DIWHIGH=((DIWSTOPX and $100)*32) or(DIWSTOPY and $700) or((DIWSTRTX and $100)/8) or(DIWSTRTY/256)
   DDFSTRT=(DIWSTRTX-17)/2
   DDFSTOP=DDFSTRT+RASTERWIDTH-8

   Doke $DFF092,DDFSTRT
   Doke $DFF094,DDFSTOP
   Doke $DFF08E,DIWSTRT
   Doke $DFF090,DIWSTOP
   Doke $DFF1E4,DIWHIGH

   Doke $DFF100,$4241 : Rem BPLCON0
   Doke $DFF102,$10 : Rem BPLCON1
   Doke $DFF104,$224 : Rem BPLCON2
   Doke $DFF108,0 : Rem BPLMOD1
   Doke $DFF10A,0 : Rem BPLMOD2
   Doke $DFF1FC,$3 : Rem FMODE

   '
Set COLORxx.

   
Doke $DFF106,$20 Rem BPLCON3
   Doke $DFF180
,0
   Doke $DFF182
,$88
   Doke $DFF184
,$88
   Doke $DFF186
,$FF
   Doke $DFF188
,0
   Doke $DFF18A
,$808
   Doke $DFF18C
,$808
   Doke $DFF18E
,$F0F
   Doke $DFF190
,0
   Doke $DFF192
,$880
   Doke $DFF194
,$880
   Doke $DFF196
,$FF0
   Doke $DFF198
,0
   Doke $DFF19A
,$888
   Doke $DFF19C
,$888
   Doke $DFF19E
,$FFF
   Doke $DFF106
,$220 Rem BPLCON3
   Doke $DFF180
,0
   Doke $DFF182
,0
   Doke $DFF184
,0
   Doke $DFF188
,0
   Doke $DFF18A
,0
   Doke $DFF18C
,0
   Doke $DFF190
,0
   Doke $DFF192
,0
   Doke $DFF194
,0
   Doke $DFF198
,0
   Doke $DFF19A
,0
   Doke $DFF19C
,0
   Doke $DFF106
,$20 Rem BPLCON3

   
'Build a Copperlist that sets the bitplanes pointers.

   Cop Movel $E0,RASTERADDRESS
   Cop Movel $E4,RASTERADDRESS
   Cop Movel $E8,B3A
   Cop Movel $EC,B4A
   Cop Swap

End Proc[-1]
Procedure _LOAD_PICTURE_INTO_RASTER[FILEPATH$]
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Loads a raw 8-bit chunky picture into the rasterensuring that its size
   
'is correct.
   '
   'IN
   '
FILEPATHS path of picture file
   
'
   '
OUTPUT
   
'-1/0 = OK/error
   '
--------------------------------------------------------------------------

   
Trap Open In 1,FILEPATH$ : If Errtrap Then Pop Proc[0]
   
L=Lof(1)
   
Close(1)
   If 
L<>RASTERSIZE Then Pop Proc[0]
   
Trap Bload FILEPATH$,RASTERADDRESS

End Proc
[Errtrap=0]
Procedure _RANDOMIZE_RASTER
   
'--------------------------------------------------------------------------
   '
DESCRIPTION
   
'Randomizes the raster by swapping 16 dots per frame, until a mouse button
   '
is pressed.
   
'--------------------------------------------------------------------------

   XM=RASTERWIDTH-1
   YM=RASTERHEIGHT-1
   Repeat
      C=16
      While C
         X0=Rnd(XM)
         Y0=Rnd(YM)
         X1=Rnd(XM)
         Y1=Rnd(YM)
         A0=Y0*RASTERWIDTH+X0+RASTERADDRESS
         A1=Y1*RASTERWIDTH+X1+RASTERADDRESS
         C0=Peek(A0)
         Poke A0,Peek(A1)
         Poke A1,A0
         Dec C
      Wend
      _WAIT_SCREEN_BOTTOM
   Until Mouse Click

End Proc
Procedure _RESTORE_AMOS_ENVIRONMENT
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Restores the AMOS environment.
   
'--------------------------------------------------------------------------

   Copper On
   Update On
   Auto View On
   Amos Unlock
   Break On
   _TURN_DISPLAY_DMA_ON[$20]

End Proc
Procedure _TURN_DISPLAY_DMA_OFF
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Disables the bitplanesCopper and sprites DMA.
   
'--------------------------------------------------------------------------

   _WAIT_SCREEN_BOTTOM
   Doke $DFF096,$3A0 : Rem DMACON

End Proc
Procedure _TURN_DISPLAY_DMA_ON[SSPRITESFLAG]
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Enables the bitplanes and Copper DMA.
   
'
   '
INPUT
   
'SSPRITESFLAG = $20/0 = turn / do not turn sprites on
   '
   'WARNINGS
   '
The chipset must have been set up properly.
   
'--------------------------------------------------------------------------

   _WAIT_SCREEN_BOTTOM
   Doke $DFF096,$8380 or SSPRITESFLAG : Rem DMACON

End Proc
Procedure _WAIT_SCREEN_BOTTOM
   '
--------------------------------------------------------------------------
   
'DESCRIPTION
   '
Waits for the bottom of the screen.
   
'--------------------------------------------------------------------------

   While Deek($DFF004) and $3 : Wend
   Repeat : Until(Leek($DFF004) and $3FF00)>$12C00

End Proc


Edited by saimo on 2023/11/28 23:02:09
Edited by saimo on 2023/11/29 12:13:47
RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ALS, a new graphics system - RELEASED!
Quite a regular
Quite a regular


Hotfix release.

https://retream.itch.io/als

v1.102 and v2.6 (08.06.2023)
* Fixed ALS_SET_PLANES_POINTERS_IN_COPPERLIST[] (due to a typo, it contained a division by 65535 instead of 65536).
* Optimized inner loops of ALS_BUILD_COPPERLIST[], ALS_BUILD_COPPERLIST_HEAD[] and ALS_SET_PLANES_POINTERS_IN_COPPERLIST[] (replaced Repeat...Until with a more efficient While...Wend).
* Improved a paragraph in the sprites section of the manual.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


@eliyahu

It's a game for classic Amiga, so... yes

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


@328gts

(Literally) my pleasure :)


@all

Just released a minor update.

https://retream.itch.io/ring-around-the-world

v1.2 (07.06.2023)
* Fixed 3 tiles in the main location map.
* Fixed the audio fade out routine (did not execute the last step).
* Fixed the cleanup of the ending (the music was not stopped, some when it was erased from memory unpredictable results could happen).
* Reprocessed the executable with an improved optimizer tool which optimizes also multiplications and divisions of variables by powers of 2.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Follix - new game for AGA Amigas [RELEASED]
Quite a regular
Quite a regular


Just released a minor update.

https://retream.itch.io/follix

v1.6 (07.06.2023)
* Removed a leftover and empty procedure (that just stole some bytes).
* Recompiled against ALS v2.5.
* Reprocessed executable with improved optimizer tool that optimizes also multiplications and divisions of variables by powers of 2.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ArtPazz - new game for AGA just released
Quite a regular
Quite a regular


Just released a minor update.

https://retream.itch.io/artpazz

v1.8 (07.06.2023)
* Recompiled against ALS v2.5.
* Reprocessed executable with improved optimizer tool that optimizes also multiplications and divisions of variables by powers of 2.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ALS, a new graphics system - RELEASED!
Quite a regular
Quite a regular


Just released an update.

https://retream.itch.io/als

v1.101 and v2.5 (06.06.2023)
* Updated the documentation: expanded the sprites section in the manual (now it is a full crash course so that also who does not know how sprites work can use them); replaced a leftover <displayed planes number> with ALS_DISPLAYEDPLANESNUMBER; replaced bullet points (·) with asterisks (*).

v1.101 and v2.5 (05.06.2023)
* Removed ALS_GET_LAYER_DEPTH[].
* Renamed ALS_BUILD_DISPLAY_COPPERLIST*[] as ALS_BUILD_COPPERLIST*[].
* Replaced ALS_WAIT_NEXT_FRAME[] with ALS_WAIT_FRAME_END[] (it does the same thing, but it does in a better way, no longer requires the display to be on, no longer uses ADKCON.PRECOMP0 and the name reflects more accurately what it does).
* Added ALS_SET_PLANES_POINTERS_IN_COPPERLIST[].
* Optimized ALS_MAKE_DISPLAY_DESCRIPTOR[].
* Added ALS_DISPLAYEDPLANESNUMBER.
* Speed-optimized a few loops by replacing Repeat...Until with While...Wend.
* Updated demos: used ALS_SET_PLANES_POINTERS_IN_COPPERLIST[] in place of ALS_BUILD_COPPERLIST[] where appropriate; simplified font handling.
* Touched up the comments in the code.
* Revised/extended manual (in particular, added extensive information about using sprites with ALS).


Edited by saimo on 2023/6/8 22:54:39
RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ALS, a new graphics system - RELEASED!
Quite a regular
Quite a regular



RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ALS, a new graphics system - RELEASED!
Quite a regular
Quite a regular


A couple of experiments done while brainstorming about a new game made with ALS.
The first effect is obtained basically at no processing cost, while the second one requires only the minimal cost of blitting a 2 bit mask. A stock Amiga 1200 can handle this without breaking a sweat.

https://www.youtube.com/watch?v=_Il8SYeYoAs

To be honest, I'm at a loss regarding which game to make.
It all started with the itch of remaking the second game I ever made (and never publicly released), but while fiddling with ALS these effects came to mind - and they don't happen to be very suitable for that game.
So, I tried to think of alternatives, and the best idea I came up is a game where: there are two parallel worlds, a real (dangerous/dark) one and an illusory (pleasant/nice) one; the screen mostly shows the illusory world, but the character controlled by the player is inside a bubble around it that shows the real world or there's some mechanism that allows the player to somehow reveal the real world - e.g. with a sort of torch light. The problem with this idea is designing the game and producing the content (double graphics work!) - it's something I can't undertake now.
Also, a sports game is sorely missing from my catalogue, but so far I couldn't think of anything interesting.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: 2022 - August - Huenison Competition - Ended
Quite a regular
Quite a regular


I noticed this competion only now :p
Thanks for having played Huenison!

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: [C64] QUOD INIT EXIT games
Quite a regular
Quite a regular


Finally another preview is ready!

This is what it includes:
* quickstart guide
* intro
* manual
* full zones 1 and 4
* placeholders for zones 2 and 3
* crippled zone 5
* placeholder for outro

This is what it does not include:
* full zone 5
* outro

This is what is still to be done:
* making zones 2 and 3;
* exploiting the remaining 512 bytes VIC-II bank space for zones 4 and 5;
* writing outro music.

The changelog below provides the detailed list of changes since the previous preview; highlights:
* completed zone 1;
* added 8 new baddies;
* added saving of game progress;
* made many bugfixes and optimizations.





Get it from https://www.retream.com/QUOD_INIT_EXIT_IIo / https://retream.itch.io/quod-init-exit-iio

CHANGELOG

Added 8 new baddies (they are 16 in all now).
Re-added stopping of food/drinks generation after Zampo starves (found a way to do it basically at no cost).
Saved 234 to 244 bytes (depending on the zoneby reorganizing a bit the memory map once again.
Saved 257 to 266 bytes (depending on the zoneby moving the zone-complete transition from the zone program to a separate program.
Saved a sprite page by reworking the graphics and the logic of the baddies explosion.
Made a few optimizations.
Made various other minor improvements.
Fixed a rare endless wait (due to lack of CPU cycles).
Fixed the portals graphics update and a CPU load peak (which might even cause a frame skipin the FUN PARK zone (a routine used the wrong condition code in a branchso the portals graphics update was triggered also when it should not have been).
Fixed the handling of collisions against baddies when Zampo is being relocated (if Zampo had been in PIG-OF-STEEL modecollisions were detected and baddies were killed).
Fixed the handling of collisions against baddies when the GOLD mode is starting (due to the initial flashing of Zampo's skin, collisions could be detected).
* Fixed the handling of collisions against baddies when the distance from the checkpoint is very large (the quick relocation of Zampo to the checkpoint would cause the immediate disappearance of the baddie, so collisions would not longer be detected until the same or another baddie re-appeared on the screen, thus leaving the collision flag set and causing repeated collision detections).
* Fixed the handling of collisions against slides in the FUN PARK zone (Zampo could get stuck due to a tile index constant being off by one and another tile index constant indicating the opposite tile).
* Fixed the teleporting of Zampo from the left border of the bottommost portal of the FUN PARK zone (he was taken to another portal'
s destination due to a coordinate constant being off by one).
Fixed the turbofart flame at the end of the zone-complete transition (it was shown for 2 frames instead of 1).
Fixed the lighting property of a FUN PARK zone tile.
Worked on the FUN PARK zone mapmade it 64 pixels taller (now it is 2048x912 pixels); completed the layoutadded gameplay featuresimproved the graphicsmoved the exit point to a better (and recognizeableplacefixed some tiles.
Worked on the CLIFFS zone mapmade it 16 pixels taller (now it is 2048x944 pixels); extended the underground part.
Worked on the FORTRESS zone mapmade it 16 pixels taller (now it is 2048x896 pixels); extended the underground parttouched it up in a few places.
Worked on the frontendrestricted the selectable zones to the first one and any other reached previouslymade the outro item activate only upon game completion (sowhen the game has not been completedit cannot be selected and only its silhouette is visible); added auto-selection of the joystick item when [UP] or [DOWNis pressedadded zones numbers in front of the zones namesmade it smaller.
Worked on the preamblemade it smaller.
Worked on the documentationextended/improved/fixed quickstart guide and manual.
Worked on EasyFlash featuresembedded and used EasyAPI to save the game progress permanently and thus have the frontend enable the zones/outro accordinglyensured the LED is on/off when the cartridge is is not in use; added cartridge name.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


For those who are curious about how the game came into being and how it evolved, here's a video that shows some phases of its development and the full backstory.

https://www.youtube.com/watch?v=emyZ28sz3FU

Back in 1994, my 17-years-old self started making his third game, inspired by Empire Software's game DreamWeb (whose demo he had deeply enjoyed) and by Kim Stanley Robinson's novel A Short, Sharp Shock (whose Italian translation was titled Anello intorno al Mondo, which Ring around the World is the literal translation of).
Like the previous two games (one of which has been remade from scratch and released in 2021 with the name Follix), it was made with AMOS Professional.
It remained unfinished: it was just too big and beyond my capabilities. The graphics looked ugly, the code was even worse, there were only a couple of horrible sound effects, only one map was (kind of) complete and two other maps were basically placeholders.
However, that game always held a special place in my heart.

Fast-forward to the fall of 2022 and one evening, while talking about books, I mentioned the novel and then the game to a friend (a former Amigan). The next day, a gust of nostalgia prompted me to fire up the game and wander around the playable - and terribly sparse - map. Immediately, the memory of a shameful graphical bug returned: after a few steps, I performed the action that would bring it up. Through the years, such scene repeated quite a number of times, but I never got around to fix the issue because it was caused by the conceptually wrong graphical system, so a solution required a major rework - not something an unfinished game was worth. Actually, in 2000, I did start a remake, but I stopped quite soon before completing the new scrolling routines because, when compiled, the game would crash - the AMOS Professional Compiler did not get along with the custom equates I had defined for the game. Disappointed (to put it mildly), I refused to remove the equates making the code less efficient and I simply abandoned the project. This time around, I could no longer suppress the urge to fix the defect for good, so...
Fighting the disgust, I waded through the entangled code, figuring out how it worked, reimplemented the graphical system and finally got rid of the bug. But I did not stop there: I fixed also other issues and refactored, optimized, cleaned up and made error-proof the code - and even standardized the naming conventions and removed the pieces of Italian scattered here and there.
I could well have been happy with that, but the ball was rolling and I could not stop it. I pushed things further and replaced the scrolling engine several times until I settled for one that moves the world view by tiles and substituted the quasi-real-time mouse-driven movement with automatic destination targeting - given that the protagonist's movement was locked to tiles by design since the beginning, the original 2-pixel per update scrolling was just a drag. Also, I redesigned entirely the interface - promising myself I would not touch the other graphics.
Once again I could (and should) have stopped, but there was still a major issue: the graphics were in 32 totally wasted colors! There were two blacks (one for the border color and another one for the non-transparent black pixels of bobs), a color was reserved for the main bob, a color was unused and many colors were very close to one another. That annoyed me so much that I broke the promise and decided to reduce the colors to 16. I carefully defined a palette of handpicked colors, redrew the interface (multiple times) and recolored the rest of the graphics by means of an automated process.
The recoloring results were worse than expected - and that started one more iteration of the remake. I had to repixel the graphics: I knew it would be a lot of work, but it could not be avoided. While at it, I changed the screen layout entirely by making the inventory vertical and moving it to the right side of the screen, so that the world view could be bigger and square - previously, in fact, moving vertically was uncomfortable due to the limited height of the view.
Countless improvements and additions followed, until the game reached the current state - and became suitable for public release, which had not been even contemplated when the work started.

In the end, nothing remained of the original material and the last challenge was to answer the question: where to stop? The remake was not planned, stole time from other (and way more important!) projects and, to become a sufficiently large game, would have required months (or even years) of further development. Therefore, I decided to make it a mini-game restricted to the (questionable) map of the original work, keeping its spirit intact.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


Three days ago, a friend who was playing Ring around the World (without me even knowing), asked me: "I noticed that the palette changes and I'm pretty sure it's because of the elapsing of time!". He was right - the game simulates the elapsing of time and handles several events related to it.

A constant and very important effect is that the protagonist becomes (more) thirsty, hungry and sleepy as time goes by. Another constant and noticeable effect is that the environmental lighting changes according to the hour of the day. Other events happen when a certain time is reached.
1 in-game hour corresponds to 10 real-world minutes, but some actions might cause time to elapse more quickly.
The duration of a day is 24 hours.
The game starts at 12:00.

Before releasing the game, I had made a video to show, at an accelerated pace, some effects of time, but I had kept it private. To answer my friend, I showed the video to him, but now I thought I'd share it with everybody.

https://www.youtube.com/watch?v=cIQUlh29WBw

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ArtPazz - new game for AGA just released
Quite a regular
Quite a regular


New version of ArtPazz released. It benefits from the recent improvements to ALS and to the AMOS executables optimizer originally developed for Ring around the World.

v1.7 (18.03.2023)
* Fixed 'I' and ']' of big font.
* Removed involuntary dependency on AMCAF (the cleanup code included an Open Workbench command).
* Saved some memory by tweaking the AMOS Professional Interpreter configuration.
* Recompiled against ALS v2.4 (which eliminates the dependency on mathtrans.library).
* Reprocessed executable with improved optimizer tool that optimizes also Exit If ... and While ... Wend.
* Embedded version string in executable.

v1.6 (02.03.2023)
* Fixed 24 bytes memory leak due to the AMOS function Dir First$() by replacing it (and Dir Next$()) with direct calls to dos.library.
* Fixed 24 bytes memory leak due to the new font handling code.

v1.5 (28.02.2023)
* Changed font handling so that diskfont.library is no longer needed.
* Made minimal changes to the startup and cleanup code.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Follix - new game for AGA Amigas [RELEASED]
Quite a regular
Quite a regular


New version of Follix released. It benefits from the recent improvements to ALS and to the AMOS executables optimizer originally developed for Ring around the World.

v1.5 (18.03.2023)
* Made minimal changes to the startup and cleanup code.
* Removed involuntary dependency on AMCAF (the cleanup code included an Open Workbench command).
* Saved some memory by tweaking the AMOS Professional Interpreter configuration.
* Recompiled against ALS v2.4 (which eliminates the dependency on mathtrans.library).
* Reprocessed executable with improved optimizer tool that optimizes also Exit If ... and While ... Wend.
* Embedded version string in executable.

v1.4 (22.02.2023)
* Lowered the task priority from 5 to 0 to play nice to the OS upon cleanup, just before saving the data to disk.

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: ALS, a new graphics system - RELEASED!
Quite a regular
Quite a regular


Ring around the World received an update yesterday. Today is ArtPazz's and Follix's turn - but first comes the library they're built on: ALS.

v1.100 & v2.4 (18.3.2023)
* Removed dependency on mathtrans.library by replacing CN=2^LD with CN=1 : Rol.l LD,CN.

v1.99 & v2.3 (20.2.2023)
* Changed the conditions of many If, Until and While statements to have the AMOS Professional Compiler produce shorter and faster code.
* Touched up manual.

v1.98 & v2.2 (19.2.2023)
Added CPU caches clearing after machine code routines generation in ALS_INITIALIZE_SYSTEM[].

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


I have just released a bugfixed version (v1.1).

There is no update option - updating a previously installed copy consists simply in deleting the latter and installing the new version.
Due to the bugs and the changes, v1.0 snapshots are no longer supported - using them will cause unpredictable results, so do not use them.

Despite the v1.0 had been released after having been played from start to finish many times on multiple machines, some bugs managed to slip in
The first one was found without looking at the game or at the code: it presented itself out of the blue during the sleepless night following the release of the game. The second one was spotted while watching somebody else play the game and the third one was reported by him after I revealed the other bug. Then, quite a few other bugs were found and fixed after the revision of the code started.
I seized the chance to include also some improvements.

The detailed list of changes goes as follows...

v1.1 (17/03/2023)
* Fixed the cave entrances (they could be entered from above; also, they brought the protagonist to the place from where he last exited the cave, which might be different).
* Fixed the protagonist escape from the cave when he needs to sleep and the closest exit is the north one, but the access to it is blocked by the chasm (he would virtually take that exit anyway).
* Fixed the handling of the protagonist's sleep when requested by the player (multiple tiles replacements where generated whereas none were needed; when sleeping just because of the physical need, the protagonist would sleep while standing on his feet).
* Fixed the drinking balance handling (a check was done too late, which could cause the thirst to seem quenced when, instead, it was quite strong).
* Fixed the palette of the game over screen (was slightly off).
* Fixed the initialization (did not handle errors relatively to a certain group of operations).
* Fixed the triggering of the earthquake (it could happen because of the loading of a snapshot if saving had been done in the upper part of the cave).
* Fixed the protagonist bob image upon loading of a snapshot (its index was calculated, but that did not work when he was standing on the raft).
* Fixed a boundary check in a tile replacement procedure (was using a wrong upper boundary).
* Fixed the replacements of several tiles (multiple instances of the internal data were used for each tile; in most cases it was actually just an ill-advised choice).
* Added a workaround to OS memory fragmentation, which could cause out-of-memory errors when switching location on 1 MB RAM machines.
* Refined the location loading so that, upon failure, a second attempt is made after freeing the memory occupied by cached chat data.
* Removed the current snapshot preservation upon snapshot loading (obsolete since quite a while).
* Saved some memory by reducing the variables buffer and tweaking the AMOS Professional Interpreter configuration.
* Modified the double buffering system to allow limiting the graphics refresh rate arbitrarily.
* Limited the graphics refresh rate to 25 fps when the protagonist moves or animates (expanded machines executed at 50 fps, which looked worse).
* Replaced AMCAF's Raster Wait and Y Raster() with more reliable assembly routines (which include also the loops that made use of them).
* Changed the effect the non-player characters phrases are printed with (this one looks better and avoids that partially updated graphics show on underpowered machines).
* Improved the synchronization of some graphics/palette updates.
* Made palette changes faster.
* Made the movement of the pointer smoother when exploring the world area (it was assigned the image on every graphical refresh with Change Mouse and that caused it to stutter).
* Made the protagonist turn towards the destination tile also when his movement is initiated by the program control (i.e. not by the player).
* Made the protagonist turn towards the right direction in a situation where he did not.
* Simplified the time-based events code.
* Added a time-based event that removes the imprints/pits from the sand after some in-game hours.
* Touched up the metal plate graphics.
* Fixed 'I' and ']' of the non-player character texts font.
* Added a sound effect.
* Made other minor changes/optimizations.
* Reprocessed the executable with an improved optimizer tool which optimizes also Colour, Colour(), Exit If ... and While ... Wend.
* Made a few minor changes/additions to the manual.

https://www.retream.com/Ring_around_the_World
https://retream.itch.io/ring-around-the-world


Edited by saimo on 2023/3/17 18:08:43
RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top


Re: Ring around the World - out now!
Quite a regular
Quite a regular


@AmigaOldskooler

Thanks!
I hope playing it will actually turn out to be fun :)

RETREAM - retro dreams for Amiga, Commodore 64 and PC
Go to top



TopTop
« 1 (2) 3 4 5 ... 33 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project