RetroFeeds Logo
RetroFeeds Retro Computing News

The Curated Pulse of Retro Computing.

Aggregating, enriching, and presenting the finest tech news from the golden age of computing.

The Rivenor Relic - A striking ZX Spectrum adventure platformer arrives via EdD
Indie Retronews www.indieretronews.com

The Rivenor Relic - A striking ZX Spectrum adventure platformer arrives via EdD

The Amiga wasn’t the only machine to land something eye-catching today. Thanks to a heads-up from our good friend Saberman, we’ve been told that a worthy game to feature on IndieRetroNews is The Rivenor Relic, a stunning new adventure platformer for the ZX Spectrum by developer EdD. The game has already grabbed the homebrew community’s attention, drawing reactions such as, 'Looks

Zepton lands on the Commodore Amiga in a surprising first WIP Pico-8 port from BSzili
Indie Retronews www.indieretronews.com

Zepton lands on the Commodore Amiga in a surprising first WIP Pico-8 port from BSzili

A small shock from the EAB forums this week: an early build of Zepton has surfaced for the Commodore Amiga, bringing the popular PICO-8 voxel shoot-'em-up to classic hardware. Ported by Szilárd Bíró, aka BSzili, this first work-in-progress version carries over the original’s fast-paced 3D scaling action — though what happens next is still up in the air.

Daimyo: WindigoProductions returns with another Commodore 64 release
Indie Retronews www.indieretronews.com

Daimyo: WindigoProductions returns with another Commodore 64 release

The UK may be roasting, but the news keeps coming: Windigo Productions, the prolific studio behind Commodore 64 favorites like Pharaoh's Legacy and Devolution, has returned with Daimyo, an immersive turn-based tactical war game set amid the battlegrounds of feudal Japan. The new release is now officially available for the Commodore 64 via itch io.

Steel Ranger 2: Covert Bitops, the Hessian creators, are back with another promising C64 project
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Steel Ranger 2: Covert Bitops, the Hessian creators, are back with another promising C64 project

If you know Covert Bitops, you know the team behind the fantastic C64 action-adventure Hessian, released in 2016. That sprawling game impressed with more than 667 screens and specialized AI enemies that had to be avoided or blasted away. Now, they’re still hard at work on Steel Ranger 2, and it’s already shaping up to be just as ambitious.

Neon Mage – The Rift – Coming soon
c64universe.com c64universe.com

Neon Mage – The Rift – Coming soon

Become the last time mage in this PETSCII dungeon crawler and plunge into the glowing depths of the Neon Labyrinth. Fight through its twisting chasms, snatch up treasures, and survive whatever waits in the dark...

Commodore 64 BASIC Dungeon Crawler (C64 BASIC Part 7)
retrogamecoders retrogamecoders.com

Commodore 64 BASIC Dungeon Crawler (C64 BASIC Part 7)

Somewhere along the way, “BASIC is too slow for games” morphed from a complaint into being universally received wisdom, and sadly that means a lot of people take it as a cue to skip the language entirely and go straight to assembly. Obviously, I disagree. This dungeon crawler is my long-running argument with that idea. It runs on a stock Commodore 64, it is written entirely in BASIC, and by the end of this series you will know exactly how to make a similar game of your own. The video above is deliberately show-more-than-tell, because that is what keeps a video watchable on the YouTubes. Here I want to actually walk through the code, because the most interesting parts of this build are the small decisions that keep plain BASIC fast enough to feel like a game rather than a slideshow. Go ahead and open the full program in the browser and edit it yourself here: part7c.bas in the RGC online IDE. Where we got to last time This is part seven of the series, so a quick recap of what was already working before today. We had a custom character set loading from disk, we had keyboard control moving a player around the screen, and we had a map. What we did not have was any sense of consequences. You could walk straight into a monster, and nothing happened. The map was also loaded from a file, which meant every play-through was identical. When you are doing a lot of testing, this even gets boring for the developer. Three things change in this part. The player gets real collision detection, so the world can finally react to being walked into. Your map gets generated on the fly, so no two runs are the same. And I fold in an earlier lesson, the Dungeons and Dragons style character generator, so you start each game as a freshly rolled adventurer rather than a default blob. The screen is the map Before any of the collision code makes sense, there is one thing I need to explain. On the C64, the screen itself can be your game map state. Screen memory starts at address 1024 (by default) and runs for 1000 bytes, one byte per character, 40 columns across and 25 rows down. Whatever we draw at a given cell is readable straight back out of memory with PEEK. So instead of keeping a separate array that mirrors the map, I let the screen be the map. If I want to check what is in front of the player, I can just read the byte at that cell. There is a catch that often trips people up, and in the video I gloss over it to keep things moving, so let me be explain here. When you PEEK screen memory you do not get the same PETSCII code (Commodore’s ASCII-style code) of the character as when you PRINT CHR$(). You get the screen code, which is a different numbering the video chip uses internally for memory reads/writes. That is why the collision checks compare against numbers that look weird at first glance. Here is the map of what this game actually uses: Screen codeCharacterRoleWhat happens32spaceemptywalk freely46.floorwalk freely38&goblinlose 5 health, bounce back8Hhealth potionheal, step onto it, remove it36$goldadd 10 gold, pick up47/swordadd 2 strength, pick up42*magicadd gold, pick up11Kkeyadd gold, pick up9Iidoladd gold, pick up If you ever want to check a screen code yourself, the quickest way is to print the character on screen and PEEK the cell it landed in. The letters follow a tidy pattern, by the way. On the C64 the unshifted letters A to Z are screen codes 1 to 26, which is why H comes out as 8, I as 9 and K as 11. The punctuation codes line up with their positions too, so the ampersand is 38 and the slash is 47. Collision detection without the slow maths Reading a cell means turning a row and column into a single memory address, but the C64, like most 8-bit computers, sucks at multiplication. The obvious formula is screen start address (1024) plus Player Row times 40 plus Player Column. 1024 + PY * 40 + PX That works, but the row times 40 is a floating point multiply, and BASIC does a multiply the slow way. Doing it on every single move, inside the tightest loop in the program, is exactly the kind of thing that makes people conclude BASIC is hopeless. The fix I went with is a lookup table in the form of a simple array. Every row offset is a fixed value so row 0 is 0, row 1 is 40, row 2 is 80 and so on. There are only 24 of them, so we work them all out once at start-up, and store them. After that the multiply never needs to happen again, we just read the answer back, aka look it up. INITONCE: FL=1: REM FIRST TIME ONLY GOSUB METATILES REM DECLARE VARIABLES DIM LUT(23) DIM STATS(5) DIM STATS$(5) DIM D(3) REM PRECOMPUTE LOOKUP TABLE FOR SCREEN FOR R=0 TO 23: LUT(R)=R*40: NEXT R RETURN With our LUT array filled in, reading the cell the player is standing on becomes a single addition with no multiply involved: REM USES PRECOMPUTED LOOKUP TABLE - AVOIDS MULTIPLY EACH MOVE CH=PEEK(SA+LUT(PY)+PX) IF (CH=32 OR CH=46) AND MSG$<>"" THEN MSG$="": GOSUB ALERT IF (CH=32 OR CH=46) THEN RETURN Here SA is the screen address 1024, PY and PX are the player’s row and column, and CH ends up holding the screen code of whatever the player just tried to move onto. If that code is a space or a floor dot, there is nothing to react to, so we clear any leftover status message and return straight away. That early return matters because as the most common case (moving into empty space), it needs to do the least possible work. Recognise, then react Knowing what you walked into is only half the job. The other half is deciding what it does to the player, and crucially what it does to the map. For example, a goblin should hurt you and make you stay in combat so you cannot just barge straight through it. A coin, though, should give you gold and then it should vanish, because a coin you can pick up forever is not much of a challenge. Those are two different behaviours, and we control them with two flag variables: REM BK=BOUNCE PLAYER BACK RK=REMOVE TILE AT IX/IY BK=1 : RK=0 REM GOBLINS HURT HP IF CH=38 THEN HP=HP-5 : MSG$="GOBBO!":GOSUB ALERT REM SWORDS ADD STRENGTH IF CH=47 THEN STATS(0)=STATS(0)+2 : MSG$="SWORD!":GOSUB ALERT : RK=1 : IX=PX : IY=PY REM HEALTH POTIONS BUFF VIA CONSTITUTION MATH IF CH=8 THEN HP=HP+INT(STATS(2)/3)+1 : MSG$="HEALTH!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM CASH ADDS GOLD IF CH=36 THEN GL=GL+10 : MSG$="CASH!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY BK is the bounce-back flag and RK is the remove flag. The default is bounce and do not remove, which is the safe behaviour for solid things. A goblin sets neither, so it just applies its damage and lets the default bounce leave you standing where you were. A coin or a potion sets BK=0 so you actually walk onto its square, and RK=1 so the item is then erased. It also records the item’s position in IX and IY, which looks redundant right now, but it is deliberate. A moving enemy occupies a different cell from the one the player ends up on, so keeping the item’s own coordinates separate leaves room for that later. At the end of the handler the two flags are brought in to play: IF RK=1 THEN GOSUB ERASEITEM IF BK=1 THEN PY=OY : PX=OX If we are removing the item, we blank its cell back to a floor dot. If we are bouncing, we simply restore the player’s old position that was saved in OX and OY at the top of the game loop, and it is as if the player never moved. The whole thing is efficient precisely because it does so little: read one byte, run it through a short list of comparisons, adjust a couple of variables, and maybe repaint one cell. That is well within what C64 BASIC can do without the game feeling sluggish. Drawing the world with metatiles The dungeon is not drawn a character at a time. It is built from metatiles, small three by three blocks of characters that slot together into a grid. Meta tiles means tiles made out of tiles. Right now there are 23 of them, each stored as three strings of three characters in a two dimensional array, one string per row of the block. REM ROOM (GOBBO) MT$(17,0)="..." MT$(17,1)=".{GREEN}&{GREY}." MT$(17,2)="..." Two things in that little block are worth focusing on. First, the tile is drawn with PRINT, not by poking bytes into screen memory. On the C64 a printed character sets both the screen code and its colour in one go, whereas poking means writing the character to screen memory and separately writing the colour to colour memory at a matching address. By letting PRINT do the work it is both less code and faster. Second, those {GREEN} and {GREY} markers are colour control codes embedded right into the string, so the goblin comes out green and the surrounding floor stays grey, again without a single poke to colour memory. In my IDE and some desktop C64 editors these {tokens} are translated to the actual C64 character codes at tokenisation time if you are wondering why you can’t type them directly into a C64. Printing a three line block has one wrinkle: after you print the first row the cursor is sitting at the end of what it just output, and you need it back at the start of the next row down. That is what the cursor control codes in the draw routine do. DRAWMT: PRINT MT$(MT,0);"{DOWN}{LEFT}{LEFT}{LEFT}"; PRINT MT$(MT,1);"{DOWN}{LEFT}{LEFT}{LEFT}"; PRINT MT$(MT,2); RETURN We print the top row, then step the cursor down one and back three to the left, which lands it exactly under the start of the row you just printed. Do it again for the middle row, print the bottom row, and the block is complete. It is the print equivalent of a carriage return, done by hand because we are creating a small grid rather than one line of text. About that “procedural” generation Now for the confession, because it is easy to feel mislead. The map is generated, and it is different every time, but I would not strictly call it procedural generation, at least yet. It is random tile placement, and there is a bit of a difference. MAPROLL: R=RND(-TI) FOR ROW=3 TO 21 STEP 3 FOR COL=1 TO 19 STEP 3 GOSUB CURSORSET MT= INT(RND(1)*23)+1:GOSUB DRAWMT NEXT COL NEXT ROW RETURN The first line seeds the random number generator from the system timer, TI, so you get a genuinely different sequence on each run rather than the same map every time (a negative value to RND is the C64’s way of re-seeding it). Then it steps across the map in a grid, three cells at a time because each metatile is three wide and three tall, and at each grid position it picks a tile from 1 to 23 at random and draws it. What this does not do is guarantee the corridors line up into one connected walkable space. Real procedural generation would care about corridor connectivity, making sure every room can be reached from every other. That is why games such as the PET Dungeon took a whole minute to generate your game map every time you play. Mine just drops random (but carefully curated) blocks down and hopes for the best. The pleasant surprise is that because the metatiles were designed with openings in sensible places, it works out walkable far more often than you would expect. But, of course, sometimes it does not, and you end up with a pocket of the map you simply cannot reach on foot. Which is where the sneaky feature comes in. Teleporting, and a bit of history When you get boxed into an unreachable section, you have two options. You can regenerate the whole map and start over, or give the player a way out. Some games back in the day let you walk through walls, sometimes at the cost of a hit to your health or the use of a spell. I went with a teleport instead, mapped to the T key, partly because it is genuinely useful when you get cornered and partly because it sidesteps the connectivity problem entirely for now. TELEPORT: PX=INT(RND(1)*21)+1 PY=INT(RND(1)*21)+1 IF PEEK(1024+(PY*40)+PX)<>46 THEN GOTO TELEPORT RETURN It picks a random cell, then checks whether that cell contains a space or floor dot (screen code 46). If it doesn’t, IE. the target spot is already taken, then it loops round and tries again. That single check prevents you from teleporting into a wall, onto an item, or on top of a monster. Notice this one still does the multiply inline rather than using the lookup table. It runs so rarely, only when you press T, that optimising it wouldn’t be worth the effort. The lookup table is necessary in the movement loop that runs constantly, but wouldn’t add much here. Rolling a new RPG character You do not start as a generic blob any more. At the start of each game the character generator from the earlier lesson rolls your stats the way a tabletop role playing game would with four six sided dice per stat, drop the lowest, keep the best three: DICEROLLS: D(0) = INT(RND(1)*6)+1 D(1) = INT(RND(1)*6)+1 D(2) = INT(RND(1)*6)+1 D(3) = INT(RND(1)*6)+1 RETURN PICKHIGHEST: T = 0 GOSUB BUBBLESORT FOR P=1 TO 3 T=T+D(P) NEXT P STATS(S)=T PRINT "{CYN}"T"{GREY3}" RETURN The sort is a tiny bubble sort over four values, which is more than fast enough even on an 8-bit machine for four dice and is a nice self contained example to copy and paste if you have never written one. BUBBLESORT: FOR M=2 TO 0 STEP-1 FOR C=0 TO M X=D(C):Y=D(C+1) IF X>Y THEN D(C)=Y : D(C+1)=X NEXT C: NEXT M RETURN Those stats will then feed back into the game. Your starting health is derived from your constitution, and the health potion you pick up in the dungeon heals more if your constitution is higher, so the character you rolled increasingly shapes how the game plays. This will especially come in handy for asking the player whether they want to buff their magic, wisdom, or strength as they level up. A HUD that does not flicker The HUD also contributes to how polished the game feels. Our heads up display shows your health and gold score at the top of the screen. A problem with printing numbers is that they change how much space they take up as the number of digits expands, 5 is one character, 100 is three, and if you just print them the display jumps left and right as the values change. Our fix is to pad every number to a fixed width before printing it. SHOWHUD: MV$=CHR$(19)+CHR$(17)+CHR$(159) REM PAD STR$ TO 4 CHARS - STOPS HUD COLUMNS JUMPING AS VALUES CHANGE H$=RIGHT$(" "+STR$(HP),4) G$=RIGHT$(" "+STR$(GL),4) PRINT MV$;"HEALTH:{YELLOW}";H$;" {CYAN}GOLD:{YELLOW}";G$;"{GREY3}" RETURN The main part is RIGHT$(" "+STR$(HP),4). Stick four spaces in front of the number, then keep only the rightmost four characters. Whatever the number’s width, the result is always exactly four characters wide (right aligned), so the HUD always takes up the same screen space. It is the difference between a display that looks deliberate and one that jumps about as you play. One more supporting routine worth a mention, since it is used all over the code, is how the cursor gets positioned. Rather than poke the cursor coordinates, this calls a built in C64 Kernal routine. CURSORSET: X=ROW : Y=COL POKE 780,0 POKE 781,X POKE 782,Y POKE 783,0 SYS 65520 RETURN SYS 65520 calls the built in PLOT routine, which moves the text cursor to a given row and column. Load the registers through the addresses at 780 to 783, call PLOT, and the next thing you PRINT positions exactly where you want it. It is a nice way to precisely position text at an arbitrary location without a pile of cursor control characters. What Next? This is becoming a real game now. You can explore a brand new dungeon, pick things up, take damage, and watch your stats and gold change as you go. But it is still just one level, and the monsters just sit there waiting for you to run into them. Two key things would turn it into a proper game: enemies that move around and chase after you, and actual combat rather than a goblin simply subtracting health when you bump into it. That is what we will build next, and you can already see the foundations prepared for it, the separate item coordinates in the collision handler being the clearest one. If you want to poke at it, the full program is below, and the live, editable version is in the RGC online IDE where you can run it in the browser and see how your edits change things. Have a read, change the numbers, break it, fix it. That is the best way to learn how any of this actually hangs together! The full listing so far REM ======================================== REM PART 7C - DUNGEON CRAWLER WITH CHARACTER REM (REAL DISK VERSION FOR C64 & C128 IDE) REM ---------------------------------------- REM LOADS CHARSET FROM CHARS.BIN ON DRIVE 8 REM MAP IS PROCEDURALLY GENERATED (METATILES) REM THIS VERSION GENERATES A CHARACTER USING REM D&D STYLE STAT ROLLS REM ---------------------------------------- REM MOVE WITH Q (UP) A (DOWN) O (LEFT) P (RIGHT) REM N = NEW CHARACTER (RE-ROLL + RELOAD MAP) REM T = TELEPORT TO RANDOM LOCATION REM ======================================== IF A=0 THEN PRINT CHR$(147)"LOADING, PLEASE WAIT " A=A+1 IF A = 1 THEN GOTO CHARS IF A = 2 THEN GOTO SETCHARS CHARS: LOAD "CHARS.BIN",8,1 SETCHARS: POKE 53272,(PEEK(53272)AND240)+12 WELCOME: POKE 53280,0 : POKE 53281,0 PRINT "{CLR}{GREY}" PRINT "#### # # ### # ### #### ### ### #" PRINT "# # # # # # # # # # # # # #" PRINT "# # # # # # # # ## ### # # # # #" PRINT "# # # # # # # # # # # # # # #" PRINT "#### ## # ### ### #### ### # ###" PRINT "======================================" PRINT "" PRINT "{WHITE}WELCOME TO THE DUNGEON" PRINT "" PRINT "{LIGHTBLUE}USE {RVSON}QAOP{RVSOFF} KEYS TO MOVE" PRINT "{RVSON}T{RVSOFF} TELEPORT TO RANDOM LOCATION" PRINT "{RVSON}N{RVSOFF} NEW CHARACTER (RE-ROLL + RELOAD MAP)" PRINT "" PRINT "{GREY}COLLECT THE {PURPLE}I{GREY}DOLS, AVOID THE {GREEN}G{GREY}OBBOS AND RECHARGE YOUR {PINK}H{GREY}EALTH AND {YELLOW}*{GREY}MAGIC{YELLOW}*{GREY}!" PRINT "{GREEN}" PRINT "{RVSON}PRESS A KEY TO START{RVSOFF}" HOLDKEY: GET K$: IF K$="" THEN GOTO HOLDKEY DRAWMAP: IF FL=0 THEN GOSUB INITONCE GOSUB INITPLAYER POKE 53280,0 : POKE 53281,0 GOSUB MAPBLANK GOSUB MAPROLL GOSUB DISPLAY GOSUB DRAWPLAYER GAMELOOP: OX=PX : OY=PY GOSUB KEYS IF PX<>OX OR PY<>OY THEN GOSUB ERASEPLAYER GOSUB DRAWPLAYER GOTO GAMELOOP REM GET KEYBOARD INPUT KEYS: REM RIGHT NOW ALL ACTIONS WAIT FOR PLAYER GET P$: IF P$="" THEN GOTO KEYS REM PLAYER INPUT IF P$="N" THEN GOSUB INITPLAYER : GOSUB MAPBLANK : GOSUB MAPROLL : GOSUB DISPLAY : GOSUB DRAWPLAYER IF P$="O" THEN PX=PX-1 IF P$="P" THEN PX=PX+1 IF P$="Q" THEN PY=PY-1 IF P$="A" THEN PY=PY+1 IF P$="T" THEN GOSUB TELEPORT REM PLAYER BOUNDS (SHOULD HIT A WALL BUT GOOD TO CHECK) IF PX < 0 THEN PX=0 IF PX > 39 THEN PX=39 IF PY < 0 THEN PY=0 IF PY > 23 THEN PY=23 REM CHECK FOR COLLISIONS (IE. MOVED TO NON-SPACE) COLISSION: IF PY=OY AND PX=OX THEN RETURN REM USES PRECOMPUTED LOOKUP TABLE - AVOIDS MULTIPLY EACH MOVE CH=PEEK(SA+LUT(PY)+PX) IF (CH=32 OR CH=46) AND MSG$<>"" THEN MSG$="": GOSUB ALERT IF (CH=32 OR CH=46) THEN RETURN REM BK=BOUNCE PLAYER BACK RK=REMOVE TILE AT IX/IY (SET IX/IY IN HANDLER) BK=1 : RK=0 REM GOBLINS HURT HP REM - HP CAN GO BELOW 0, WE WILL FIX THIS WHEN WIN/LOSE STATES ARE HANDLED REM - COMBAT WILL SET IX/IY + RK=1 WHEN THE GOBBo DIES IF CH=38 THEN HP=HP-5 : MSG$="GOBBO!":GOSUB ALERT REM SWORDS ADD STRENGTH IF CH=47 THEN STATS(0)=STATS(0)+2 : MSG$="SWORD!":GOSUB ALERT : RK=1 : IX=PX : IY=PY REM HEALTH POTIONS BUFF VIA CONSTITUTION MATH IF CH=8 THEN HP=HP+INT(STATS(2)/3)+1 : MSG$="HEALTH!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM CASH ADDS GOLD IF CH=36 THEN GL=GL+10 : MSG$="CASH!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM POWER UP IF CH=42 THEN GL=GL+10 : MSG$="POWER!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM KEY IF CH=11 THEN GL=GL+10 : MSG$="KEY!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM MACGUFFIN IF CH=9 THEN GL=GL+10 : MSG$="IDOL FOUND!":GOSUB ALERT : BK=0 : RK=1 : IX=PX : IY=PY REM IF CH<>32 AND CH<>46 THEN PRINT "{HOME}{DOWN}{DOWN}{DOWN}";STR$(CH):GOSUB ALERT IF RK=1 THEN GOSUB ERASEITEM IF BK=1 THEN PY=OY : PX=OX REM REFRESH HUD AND RETURN TO GAMELOOP GOSUB SHOWHUD PRINT "{HOME}"; RETURN ERASEPLAYER: ROW=OY : COL=OX : GOSUB CURSORSET : PRINT "{GREY}."; RETURN ERASEITEM: REM ERASE TILE AT IX/IY (NOT ALWAYS PX/PY — MOVING ITEMS USE THEIR OWN CELL) ROW=IY : COL=IX : GOSUB CURSORSET : PRINT "{GREY}."; RETURN DRAWPLAYER: ROW=PY : COL=PX : GOSUB CURSORSET : PRINT "{LIGHTBLUE}@"; RETURN ALERT: PRINT "{HOME} "; PRINT "{HOME}{PINK}";LEFT$(MSG$+" ",37); "{WHT}"; RETURN CURSORSET: REM ROW/COL ARE CURSOR ONLY — SET BEFORE CALLING (PX/PY = PLAYER) X=ROW : Y=COL POKE 780,0 POKE 781,X POKE 782,Y POKE 783,0 SYS 65520 RETURN DISPLAY: SA=1024 POKE 53272,(PEEK(53272)AND240)+12 POKE 53280,0 : POKE 53281,0 PRINT "{HOME}{PINK}";MSG$; "{WHT} " GOSUB SHOWHUD RETURN INITONCE: FL=1: REM FIRST TIME ONLY GOSUB METATILES REM DECLARE VARIABLES DIM LUT(23) DIM STATS(5) DIM STATS$(5) DIM D(3) REM PRECOMPUTE LOOKUP TABLE FOR SCREEN FOR R=0 TO 23: LUT(R)=R*40: NEXT R RETURN INITPLAYER: REM GL NOT GOLD - GO CLASHES WITH GOTO (2-LETTER NAMES) GL=0 MSG$="USE QAOP KEYS" GOSUB PLAYERSTATS HP=STATS(2)*2 PX=10 : PY=10 : REM HARD CODED, WILL GLEAN FROM MAP LATER OX=PX : OY=PY : REM STORE INITIAL 'OLD' POSITIONS RETURN MAPBLANK: PRINT "{CLR}{DOWN}{DOWN}{GREY}#######################" FOR ROW=3 TO 23 PRINT "#";SPC(21);"#" NEXT ROW PRINT "#######################"; PRINT "{HOME}"; RETURN MAPROLL: R=RND(-TI) FOR ROW=3 TO 21 STEP 3 FOR COL=1 TO 19 STEP 3 GOSUB CURSORSET MT= INT(RND(1)*23)+1:GOSUB DRAWMT NEXT COL NEXT ROW RETURN SHOWHUD: MV$=CHR$(19)+CHR$(17)+CHR$(159) REM PAD STR$ TO 4 CHARS — STOPS HUD COLUMNS JUMPING AS VALUES CHANGE H$=RIGHT$(" "+STR$(HP),4) G$=RIGHT$(" "+STR$(GL),4) PRINT MV$;"HEALTH:{YELLOW}";H$;" {CYAN}GOLD:{YELLOW}";G$;"{GREY3}" RETURN PLAYERSTATS: R=RND(-TI) STATS$(0)="STRENGTH" STATS$(1)="DEXTERITY" STATS$(2)="CONSTITUTION" STATS$(3)="INTELLIGENCE" STATS$(4)="WISDOM" STATS$(5)="CHARISMA" REM CLEAR SCREEN AND SET CURSOR TO TOP LEFT REM STATS SCREEN BLUE BORDER AND BACKGROUND POKE 53280,6 : POKE 53281,6 PRINT "{CLR}{WHT}" PRINT "{RVSON}CHARACTER GENERATOR{RVSOFF}" PRINT "{13}{GREY3}" FOR S = 0 TO 5 PRINT CHR$(13)STATS$(S); GOSUB DICEROLLS GOSUB PICKHIGHEST NEXT S PRINT "{13}{13}{CYAN}{RVSON}PRESS A KEY TO PLAY{RVSOFF}{WHITE}" HOLDFORKEY: GET A$ IF A$="" THEN GOTO HOLDFORKEY RETURN DICEROLLS: D(0) = INT(RND(1)*6)+1 D(1) = INT(RND(1)*6)+1 D(2) = INT(RND(1)*6)+1 D(3) = INT(RND(1)*6)+1 RETURN PICKHIGHEST: T = 0 GOSUB BUBBLESORT FOR P=1 TO 3 T=T+D(P) NEXT P STATS(S)=T PRINT "{CYN}"T"{GREY3}" RETURN BUBBLESORT: FOR M=2 TO 0 STEP-1 FOR C=0 TO M X=D(C):Y=D(C+1) IF X>Y THEN D(C)=Y : D(C+1)=X NEXT C: NEXT M RETURN END METATILES: REM SHAPES 1,2,3,4,5 REM 1x2, 2x4, 3x4 FOR ROTATIONS REM =13 DIM MT$(24,3) REM - MT$(1,0)="###" MT$(1,1)="..." MT$(1,2)="###" REM | MT$(2,0)="#.#" MT$(2,1)="#.#" MT$(2,2)="#.#" REM ┐ MT$(3,0)="###" MT$(3,1)="..#" MT$(3,2)="#.#" REM ┘ MT$(4,0)="#.#" MT$(4,1)="..#" MT$(4,2)="###" REM └ MT$(5,0)="#.#" MT$(5,1)="#.." MT$(5,2)="###" REM ┌ MT$(6,0)="###" MT$(6,1)="#.." MT$(6,2)="#.#" REM ├ MT$(7,0)="#.#" MT$(7,1)="#.." MT$(7,2)="#.#" REM ┤ MT$(8,0)="#.#" MT$(8,1)="..#" MT$(8,2)="#.#" REM ┬ MT$(9,0)="###" MT$(9,1)="..." MT$(9,2)="#.#" REM ┴ MT$(10,0)="#.#" MT$(10,1)="..." MT$(10,2)="###" REM ┼ MT$(11,0)="#.#" MT$(11,1)="..." MT$(11,2)="#.#" REM ROOM (EMPTY) MT$(12,0)="..." MT$(12,1)="..." MT$(12,2)="..." REM ROOM () MT$(13,0)="###" MT$(13,1)="..." MT$(13,2)="..." REM ROOM () MT$(14,0)="..." MT$(14,1)="..." MT$(14,2)="###" REM ROOM () MT$(15,0)="#.." MT$(15,1)="#.." MT$(15,2)="#.." REM ROOM () MT$(16,0)="..#" MT$(16,1)="..#" MT$(16,2)="..#" REM ROOM (GOBBO) MT$(17,0)="..." MT$(17,1)=".{GREEN}&{GREY}." MT$(17,2)="..." REM ROOM (MAGIC) MT$(18,0)="..." MT$(18,1)=".{YELLOW}*{GREY}." MT$(18,2)="..." REM ROOM (KEY) MT$(19,0)="..." MT$(19,1)=".{ORANGE}K{GREY}." MT$(19,2)="..." REM MT$(20,0)="..." MT$(20,1)="..." MT$(20,2)="..#" REM MT$(21,0)="#.." MT$(21,1)="..." MT$(21,2)="..#" REM MT$(22,0)="..." MT$(22,1)=".{PURPLE}I{GREY}." MT$(22,2)="..." REM MT$(23,0)="..." MT$(23,1)=".{PINK}H{GREY}." MT$(23,2)="..." RETURN DRAWMT: PRINT MT$(MT,0);"{DOWN}{LEFT}{LEFT}{LEFT}"; PRINT MT$(MT,1);"{DOWN}{LEFT}{LEFT}{LEFT}"; PRINT MT$(MT,2); RETURN TELEPORT: PX=INT(RND(1)*21)+1 PY=INT(RND(1)*21)+1 IF PEEK(1024+(PY*40)+PX)<>46 THEN GOTO TELEPORT RETURN The post Commodore 64 BASIC Dungeon Crawler (C64 BASIC Part 7) appeared first on Retro Game Coders.

How to Add Room-Filling Sound to a Home Game Room or Man Cave
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

How to Add Room-Filling Sound to a Home Game Room or Man Cave

Most home game rooms and man caves sound thinner than they should. The gear is fine — a decent TV, a console or gaming PC, maybe a soundbar or a pair of speakers — but the audio feels like it’s coming from the screen instead of surrounding you. The problem usually isn’t volume. It’s that the sound isn’t filling the room evenly. Room-filling sound isn’t about buying bigger speakers. It comes from three things working together: the right equipment, smart placement, and the room’s acoustics. That combination is what separates a proper sound system installation from mounting a few speakers wherever they happen to fit. This guide covers why a game room sounds thin, what a real system is made of, where to put your speakers and subwoofer, the mistakes that quietly ruin the sound, and when it’s worth bringing in a professional. Why Your Game Room Sounds Thin (Even With Decent Gear) A game room sounds thin because the audio is coming from a source that was never meant to fill a room. Built-in TV and monitor speakers fire in a narrow, forward direction with almost no low end, so the sound stays trapped near the screen. A single small pair of speakers has the same limitation on a larger scale. It creates one narrow “good seat” and leaves the rest of the room with hot spots and dead zones where the sound drops off. Then there’s the room. Game rooms often live in basements, garages, and spare rooms with concrete floors, bare walls, and hard windows. Those surfaces reflect sound, turning bass into a boomy rumble with no real punch behind it. The takeaway: room-filling sound means even coverage plus a controlled room — not just more watts. What “Room-Filling Sound” Actually Requires Room-filling sound rests on three factors, and skipping any one of them caps how good the setup can be. Those factors are the equipment, the placement, and the room’s acoustics. Equipment gives you the raw capability — speakers, a subwoofer, and enough amplification to drive them. But capable gear in the wrong spots still sounds uneven, which is where placement comes in. Placement decides how that capability reaches your ears. Speakers aimed and positioned correctly cover the whole space; the same speakers shoved against a wall don’t. And even perfect placement can’t overcome a room that reflects and muddies everything, which is why acoustics is the third piece. This is also why you can’t buy your way out of the problem with gear alone. A bigger amp makes a thin, echoey room louder — not fuller. “Loud” and “full” are not the same thing. Building Blocks of a Game Room Sound System A game room system doesn’t need to be complicated, but it helps to understand what each part does before spending on it. Four components cover almost every setup, from a simple stereo pair to a full surround build. Speakers (stereo vs. surround) Speakers are the foundation, and the choice comes down to how you use the room. A quality stereo pair is plenty for music and casual gaming, while a surround setup adds speakers around the room for the directional, wrap-around effect that suits action games and movies. Subwoofer A subwoofer handles the low frequencies your main speakers can’t, and it’s the single biggest upgrade for game audio. Explosions, engines, and impacts get the physical weight that makes a room feel alive rather than tinny. AV receiver or amplifier The receiver is the brain of the system — it powers the speakers, switches between your consoles and PC, and processes surround sound. Choosing one with power to spare (headroom) keeps the sound clean at high volume instead of straining. Multi-room and control If your man cave has zones — a gaming area, a bar, a lounge — multi-room capability lets you run audio to each and control it from your phone or by voice. It’s optional, but it’s what turns a game room into a full entertainment space. Speaker Placement — Where Most Setups Go Wrong Placement is where most game room setups quietly fail, because speakers usually end up wherever the furniture allows rather than where they sound best. The goal is to arrange them around the spot where you actually sit and play. Start with symmetry. Your two front speakers should be equidistant from your main seat and angled slightly toward you (toe-in), forming a triangle with the listening position. This creates a clear “sweet spot” where the sound locks in. Surround speakers go to the sides and slightly behind you, at or just above ear level, so effects move around the room instead of staying up front. The subwoofer is the exception to the symmetry rule. Bass builds up near corners and walls, so those spots produce more low end — but the best position varies by room. A quick trick is the “subwoofer crawl”: put the sub where you sit, play bass-heavy audio, then crawl around the floor until you find the spot where it sounds best, and put the sub there. The most common mistake is arranging speakers around the room’s layout instead of around the listener. The furniture doesn’t need to hear the game — you do. The Room Itself: Acoustics in Basements, Garages & Man Caves The room is the factor people forget, and in a game room, it’s often the hardest one. Basements, garages, and man caves tend to have concrete floors, bare walls, and hard windows — surfaces that reflect sound and create echo and boomy, shapeless bass. Soft materials fix most of it. A rug on a hard floor, a couch, curtains over windows, and a few acoustic panels absorb reflections and tighten up the sound, so what you hear is the system and not the room bouncing it back at you. It’s worth separating two ideas here. Acoustic treatment improves how sound behaves inside the room — echo, clarity, bass control. Soundproofing is a different job: keeping the sound from disturbing the rest of the house. For room-filling audio, treatment is the key factor; soundproofing only comes up if noise bleed is a problem. Basements and garages are the classic “difficult room” precisely because they’re built from hard, reflective materials. They can sound excellent — but they usually need more attention to acoustics than a carpeted spare bedroom does. Common Mistakes When Adding Sound to a Game Room Most disappointing game room audio can be traced back to a handful of avoidable errors. Watch for these: Buying gear before planning the room. Spending on speakers and a receiver before considering placement and acoustics means the system can’t perform to its full potential. Placing speakers wherever they fit. Positioning around furniture rather than at the listening spot kills the sweet spot. Underpowering the system. A receiver with no headroom distorts when you push the volume for a big moment. Skipping the subwoofer. Without one, game audio stays thin and loses all its physical impact. Over-damping the room. Covering every surface with foam makes the room sound dead and lifeless — the goal is control, not silence. Rushing the wiring and never testing. Sloppy cabling and no calibration leave performance on the table. A Simple Plan by Budget You don’t have to build the whole system at once. Here’s how it scales. Starter A quality stereo pair, a compact subwoofer, and careful placement will already beat most soundbars. Add a rug and some curtains, and a modest room transforms. Mid-tier Step up to a 5.1 surround setup with a receiver that has power to spare, and add basic acoustic panels at the main reflection points. This is the level where games and movies start to feel immersive. Full man-cave build Go multi-zone — separate audio for the gaming area and the bar or lounge — with a calibrated system, proper room treatment, and clean, built-in wiring. This is a room designed around sound rather than one with speakers added to it. When to Call a Professional For a standard room, adding room-filling sound is a rewarding DIY project: pick the right gear, place it around where you sit, control the acoustics, and calibrate. Most simple spaces come together with patience and a weekend. Some builds are harder to nail by trial and error. Concrete basements and garages, high or angled ceilings, multi-zone layouts, in-wall wiring, and higher-end systems all reward a design-and-calibration approach tuned to the specific room rather than guesswork. That’s when it’s worth bringing in people who do this professionally. Firms like New York Soundproofing design and install home audio systems — from surround sound and subwoofers to multi-room control — and, crucially for a game room, they account for the acoustics of the room itself instead of just hanging speakers on the wall. If you want a man cave that sounds as good as the gear inside it, having the space assessed as a whole is the practical place to start. The post How to Add Room-Filling Sound to a Home Game Room or Man Cave appeared first on Old School Gamer Magazine.

Germany’s Ambitious Video Game Preservation Project Just Lost Its Public Lifeline
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Germany’s Ambitious Video Game Preservation Project Just Lost Its Public Lifeline

Germany-based Internationale Computerspielesammlung (ICS) set out to build the world’s largest publicly accessible video game archive, but that plan has hit a major wall: public funding has run dry. According to Gameswirtschaft, the future of the project is now hanging in the balance, even as its archive already tops 60,000 confirmed games.

Thrilling Machine – by  Noah LaPointe
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Thrilling Machine – by Noah LaPointe

When imagining the environmental sounds George Gomez must be used to, it may explain why he doesn’t rest: the erratic flicking of a pinball table’s flippers, the raucous ricocheting of a metal ball desperately trying to escape its containment, and electronic symphonies cheering players on to their next high score. That’s only part of the chaos that’s accompanied Gomez through his diverse career from the ‘80s arcade scene, to the home market, and now, back to where it all began. An industrial designer by trade, not resting on one’s laurels may as well be part of Gomez’s job description. He’s carried his penchant for game design and hardware innovation to the modern day, recently applying his mind to.. Read the rest of this article on page 60 by clicking here!       Be sure to sign up to get Old School Gamer Magazine for free by clicking here! The post Thrilling Machine – by Noah LaPointe appeared first on Old School Gamer Magazine.

River Raid+ speeds in as a teased remake of the classic ZX Spectrum shooter by thealfest
Indie Retronews www.indieretronews.com

River Raid+ speeds in as a teased remake of the classic ZX Spectrum shooter by thealfest

ZX Spectrum owners, if you've been feeling a little left out, worry not. Saberman has surfaced news that Activision's 1980's River Raid, one of the most legendary scrolling shooters for the ZX Spectrum 48K, has been unofficially re-released as the teased River Raid+. It’s an upcoming enhanced remake of the classic retro shooter for the ZX Spectrum, with the engine sound already making its presence felt.

Chuckie Egg 3: Henhouse Harry, the ZX Spectrum classic’s star, returns via Langford Productions
Indie Retronews www.indieretronews.com

Chuckie Egg 3: Henhouse Harry, the ZX Spectrum classic’s star, returns via Langford Productions

Retro gamers have reason to crow: Henhouse Harry is officially back in Chuckie Egg 3 from Langford Productions. This brand-new release drops the adventure mechanics of Chuckie Egg 2 and heads straight back to the fast, arcade-style action of the original. And while the game has been thoroughly modernized for PC, players can still switch to a Spectrum Mode with authentic Spectrum-style graphics and beeper-style sounds.

Retro ROM Hacks You Have to Play
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Retro ROM Hacks You Have to Play

When you play a really good retro game for the first time, there’s an undeniable magic to the sense of whimsical discovery. For many gamers, it’s a feeling we’re forever chasing, and one that we would give anything to replicate. While it’s impossible to experience the classics again, there’s one way that we can come close: playing ROM hacks. ROM hacks are modified versions of retro games that change the game in a meaningful way, whether by altering gameplay, changing the graphics, or sometimes creating entirely new games out of old ones. However, like a lot of user-created content, the world of ROM hacks is overflowing with choices and it can be hard to figure out where to start. Whether you’re new to ROM hacks or are simply looking for a list of some of the best, these are a handful of retro gaming ROM hacks that you absolutely have to play. Note: To legally enjoy these ROM hacks, you must obtain your ROM file from a physical copy of your desired retro game using game dumping software. We do not condone the use of piracy or any illicit means of ROM acquisition. Banjo-Kazooie: Nostalgia 64 Created by Kurko Mods, a true master of Banjo-Kazooie mods, Banjo-Kazooie: Nostalgia 64 is a perfect representation of what makes ROM hacks fun. In this version of Banjo-Kazooie, our bear and bird duo are not exploring Grunty’s Castle, but instead, the inside of a Nintendo 64 itself! To progress through the game, you must travel through worlds that are based on other N64 classics, offering a collect-a-thon through the console’s greatest hits. You’ll talon trot through GoldenEye 007, frolick through Mario 64‘s Bob-omb Battlefield, go on a photo safari in Pokemon Snap, and much more. Not only does BK: Nostalgia 64 offer cool throwback levels, but it also integrates elements of the original games in smart ways, making for an extremely fun and often challenging 3D platformer. The Legend of Zelda: The Missing Link Speaking of Nintendo 64, there are few games that are as revered as Ocarina of Time, and though Majora’s Mask offered an entertaining albeit quirky sequel, I always felt like the N64 deserved one more Zelda title. That’s exactly what The Legend of Zelda: The Missing Link sets out to do, by giving us an all-new adventure in the Zelda universe, set between the events of Ocarina and Majora. Borrowing elements from both of those classic games, The Missing Link tells an all-new story, features new items, and a full dungeon to explore. Though it’ll only take you a couple of hours to finish, The Missing Link is a treat for N64 Zelda fans, and one of the best ROM hacks of its kind. Pokemon: Unbound There are so many Pokemon games that it’s almost impossible to list them all, but for retro gamers, there are few as memorable as the Game Boy and Game Boy Advance series. Pokemon: Unbound does its best to merge the worlds of retro Pokemon and modern Pokemon, providing a wholly original game built around the bones of Pokemon: FireRed. With a Pokedex that contains Pokemon up to generation seven, tons of missions, and some significant post-game content, Pokemon: Unbound has a lot of content. Often, this feels less like a ROM hack and more like a brand new game for the GBA, fusing some of the best aspects of the series’ history into one unbelievably fun retro title. A Plumber For All Seasons In the ROM hack scene, Super Mario World is easily one of the most active communities, with new levels being created almost daily. Though many of these custom Super Mario World games are often very challenging, some are still enjoyable for players of all skill levels. Of these more casual ROM hacks, A Plumber For All Seasons stands out, thanks to its gorgeous pixel art and refreshing level design. Each world is based on a different season, and with 37 levels, there’s enough variety regardless of whether it’s Spring, Summer, Fall, or Winter. While other Super Mario World ROM hacks like to chew up the player and spit them out, A Plumber For All Seasons offers a picturesque stroll through the seasons with just the right level of difficulty. TMNT: Shredder’s Re-Revenge Back in the 16-bit era, beat ’em up games were all the rage, and after playing one for just a few minutes, it’s easy to see why. In this brilliant genre, Teenage Mutant Ninja Turtles and Streets of Rage were two of the best franchises, both of which have seen modern reboots in the past few years. However, TMNT: Shredder’s Re-Revenge does something different: it takes the base Streets of Rage 2 game, but updates all of the characters, enemies, and bosses, all reminiscent of the new TMNT: Shredder’s Revenge game. When combined like this, you get a Streets of Rage 2 experience that’s familiar, but with the smooth movement and excellent animation of the modern TMNT titles. It’s a cross-over that’s super fun to play, and if you’ve already played Streets of Rage 2 to death, this is one of the best ways to keep it fresh. The post Retro ROM Hacks You Have to Play appeared first on Old School Gamer Magazine.

Retronauts Episode 779: Guilty Gear
retronauts.com retronauts.com

Retronauts Episode 779: Guilty Gear

No plea bargaining here — Let’s Rock!

Jili Game Titles You Should Definitely Try Out on GameZone
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Jili Game Titles You Should Definitely Try Out on GameZone

Jili Game titles are often grouped because they come from the same provider, but spending time with the catalog quickly reveals that each game is designed with a different type of player in mind. Some prioritize visual intensity and layered mechanics. Others focus on speed, simplicity, or familiarity. That variety is one reason Jili has become a recognizable presence within the GameZone slot collection. A common misconception is that slot games succeed because they share similar features. In reality, players often gravitate toward games that offer distinct experiences. Jili appears to understand this well. Rather than relying on one successful formula, the provider develops titles that appeal to different preferences while maintaining accessible gameplay. Many games are structured around quick understanding and efficient controls, allowing users to start playing without spending time studying complicated systems. The result is a collection that feels approachable without becoming repetitive. Three titles illustrate this philosophy particularly well. Golden Empire appeals to players who enjoy activity and progression. Fortune Gems focuses on simplicity and consistency. Super Ace combines recognizable visuals with balanced gameplay. Looking at these games side by side provides a clearer understanding of how the GameZone provider has built one of its most popular slot libraries. Golden Empire Targets Players Who Want More Going On Some players enjoy games that constantly give them something to watch. Golden Empire fits that description better than most Jili slot games. The title places heavy emphasis on visual movement, evolving reels, and mechanics that can extend the excitement beyond a single result. Its treasure-hunting theme forms the foundation of the experience. Ancient ruins, gold-filled symbols, and discovery-focused imagery establish a clear identity from the moment the game begins. However, the presentation is only part of the appeal. The mechanics are what truly define Golden Empire. The game uses a cascading reel system that removes winning symbols and replaces them with new ones. This creates opportunities for additional combinations after the initial result. Players may find themselves following a chain of events generated by a single spin, adding a sense of anticipation throughout the process. Additional features, such as multipliers and reel expansions, increase the amount of activity happening on-screen. While these mechanics add complexity, the game still communicates outcomes clearly enough for players to follow developments without confusion. Golden Empire’s appeal lies in its ability to create momentum. Rather than delivering isolated moments, it encourages players to stay engaged as new opportunities appear. For users seeking one of the more dynamic GameZone slot experiences, it remains a frequently discussed choice. Fortune Gems Proves That Less Can Accomplish More If Golden Empire is about progression and activity, Fortune Gems is about refinement. The game demonstrates that a slot does not need an extensive list of features to maintain player interest. Instead, it succeeds by keeping the experience focused and easy to understand. The first thing most players notice is the visual simplicity. Bright gemstones dominate the reels, while the interface avoids unnecessary distractions. Every element has a purpose, making the game accessible even to people who rarely play slot titles. This straightforward design extends to the mechanics. Players can identify symbols quickly, understand outcomes immediately, and follow the action without difficulty. While bonus opportunities and multipliers remain part of the experience, they are integrated in a way that supports clarity rather than complexity. Fortune Gems has become particularly popular among players who prefer shorter sessions. Because the game does not require extensive attention, it works well as a title that can be enjoyed during brief periods of downtime. The mobile-friendly layout further supports this style of play. Its success highlights an important lesson within the broader Jili catalog. Sometimes consistency, readability, and accessibility are more valuable than a long list of features. That balance has helped Fortune Gems maintain its position as one of the most approachable titles available through the GameZone provider lineup. Jili Game Favorite Super Ace Finds the Middle Ground Between the activity of Golden Empire and the simplicity of Fortune Gems sits Super Ace, a title that has become one of the most recognizable names in the GameZone slot catalog. Its popularity comes largely from how effectively it combines familiar concepts with engaging mechanics. The game’s identity revolves around playing cards. Card ranks, Joker symbols, and classic casino-inspired visuals create an atmosphere that feels instantly recognizable. New players often find this presentation comfortable because it relies on imagery they already understand. Gameplay reflects that same accessibility. The pace moves quickly enough to remain entertaining, but not so fast that players lose track of what is happening. Cascading features and free-spin opportunities introduce variety while preserving overall clarity. What makes Super Ace particularly interesting is its position within the Jili lineup. It does not chase the complexity of feature-heavy titles, nor does it strip mechanics down to the bare minimum. Instead, it balances both approaches. Players receive enough activity to stay engaged while still benefiting from an experience that feels approachable. That balance has allowed Super Ace to remain relevant to different audiences. Experienced players appreciate its smooth flow, while newcomers often find it easy to learn. As a result, it continues to serve as one of the most widely recognized examples of what Jili slot games can offer. Why These Jili Game Titles Reflect GameZone’s Strength Looking at Golden Empire, Fortune Gems, and Super Ace together reveals something important about GameZone as a platform. Its appeal is not tied to a single title or style of gameplay. Instead, it comes from offering a range of experiences that cater to different preferences. Some users want games that emphasize mechanics and progression. Others prioritize simplicity and ease of use. Still others look for familiar themes that help them feel comfortable immediately. Through providers such as Jili, GameZone accommodates all three approaches without forcing players into a particular type of experience. The platform also supports exploration by making games accessible across mobile devices. Users can move between titles efficiently, compare different styles, and discover new favorites without lengthy setup requirements. Security measures and responsible gaming features further contribute to the platform’s reputation. These elements help create an environment where entertainment and player protection operate side by side. For anyone interested in understanding why Jili slot games have attracted attention on GameZone, these three titles provide an effective introduction. Each showcases a different design philosophy while demonstrating the wider variety available throughout the platform’s growing collection. FAQs Q: What is Jili? A: Jili is a game provider known for developing mobile-friendly slot games with varied themes. Q: Why is Super Ace considered the most popular? A: Its card-inspired theme, accessible mechanics, and balanced pacing appeal to many players. Q: What does GameZone offer besides Jili games? A: GameZone hosts a large library of games from multiple providers with different themes and gameplay styles. The post Jili Game Titles You Should Definitely Try Out on GameZone appeared first on Old School Gamer Magazine.

Why the video game market is bigger than ever
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Why the video game market is bigger than ever

From battle royales to betting sites, video games have quietly turned into one of the most dominant entertainment giants out there.  You’re not just imagining it, everyone’s playing games these days. Your younger sibling is obsessed, your coworker sneaks in a few rounds on lunch and even your dad can’t put his phone down. Gaming has grown way beyond a hobby for kids in their rooms. Now it’s tournaments packing stadiums, matches happening on mobile screens, pro leagues with millions watching and online platforms where gaming and gambling are almost one and the same. The numbers are wild, and the upswing is steeper than most people realize. Maybe you’re deep into ranked games yourself, or maybe you just keep hearing these game titles everywhere. Either way, here’s what’s really happening with video games right now. Hard to ignore the numbers In 2025, the global video game market hit about $249.8 billion. By 2034, it’s on track to reach $598.2 billion, according to Dataintelo. This isn’t some niche for nerds, it’s bigger than the entire film and music industries combined. And it’s not just teens glued to their screens. Globally, there are 3.6 billion players, 3 billion of them on mobile devices, according to Newzoo’s Global Games Market Report. That’s basically half the world. So, why is this happening? A bunch of things lined up at once: Smartphones got cheaper, the internet spread everywhere and a whole generation grew up seeing games as life, not just a hobby. Plus, when the pandemic hit, everyone’s screen time shot up and never really came back down. Add it all up and the market exploded. Where betting and gaming collide One piece of this boom stands out: Betting. Betting on esports matches, playing casino-style games and wagering on virtual sports, all of this stuff is blowing up because people are comfortable moving money online. The online gambling market is expected to go from $105.5 billion in 2025 to $286.4 billion by 2035, according to Future Market Insights. Look at South Africa. Betway, for example, brings it all together; sports bets, casino games and virtual sports, plus local deals and odds for South African players. This is bigger than just putting money on a soccer game. Betting platforms now act like full entertainment playgrounds for gamers. Mobile changed it all If one thing blew the doors wide open, it’s mobile gaming. Free, easy-to-learn games have pulled in millions of people who never owned a console. Mobile gaming brought in $92 billion in 2025, claiming 49% of all gaming revenue. So half of everything happening in video games is happening in your pocket, according to DemandSage. And look at a title like Fortnite. The game spread aggressively to mobile and kept growing. It had around 110 million monthly active players in 2025, and Epic Games, the makers of Fortnite, reached 898 million cross-platform accounts in 2024. This is a game from 2017, and it’s still crushing it, while most games have faded to nothing by now. Epic never lets Fortnite go stale, they keep adding new modes like LEGO Fortnite and Festival, so there’s always something fresh to tempt old players back. Steam Who is running competitive gaming? Fortnite is everywhere in regular conversation, but things look totally different in the hardcore competitive scene. Here, games like League of Legends, Valorant, Call of Duty and Minecraft have built their own worlds. League of Legends, launched in 2009, still has about 120 million monthly players, with 30 million logging in daily. Riot’s other hit, Valorant, keeps eating into the same player pool. In 2025, Valorant Champions Tour teams pulled in over $105 million, with in-game item sales during tournaments alone generating $86 million. That shows just how much competitive gaming has become big business. Don’t count out Call of Duty, either. More than 353,000 people watched the Call of Duty League Championship Grand Final live in 2025, where OpTic Texas took home its second straight title. And then you’ve got Minecraft. You might think it peaked years ago, but it just keeps thriving. The Minecraft Marketplace pulled in a record $146 million in Q1 2025, its best quarter ever. Esports goes mainstream Now, esports really deserves its own spotlight. What started as “kids playing for prize money” is now a legit global industry with arenas, TV deals and pro sports teams investing in teams and leagues. The esports market reached $5.08 billion in 2025, and it should reach $6.78 billion by 2031 according to Mordor Intelligence. Why the spike? Streaming platforms turned watching competitive gaming into something as natural as watching traditional sports. Younger crowds see esports as their main form of spectator entertainment. And naturally, big brands want in. Sponsorships and ad spending have exploded because it’s one of the few ways to reach 18- to 34-year-olds who are actually paying attention. The post Why the video game market is bigger than ever appeared first on Old School Gamer Magazine.

Lincity Brings a SimCity-Style City Builder to Amiga 68k, Thanks to paulthetall
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Lincity Brings a SimCity-Style City Builder to Amiga 68k, Thanks to paulthetall

The Amiga has long been known for its blistering action games, but developer Paulthetall is steering the platform in a very different direction with Lincity. This free and open-source city management sim, originally released for Windows and later ported to Linux and BeOS, is now being brought to 68k Amiga — complete with new music, multiple versions, and successful testing on real hardware and emulators.

Tic-tac-toe for Commodore 64 – In development
c64universe.com c64universe.com

Tic-tac-toe for Commodore 64 – In development

Meet the latest creation, a small diversion built to rescue your dullest moments. This game aims to pack in everything that keeps play quick, snappy, and just a little addictive,...

Brett’s Bargain Bin – by Brett Weiss
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Brett’s Bargain Bin – by Brett Weiss

When it comes to cheap yet worthwhile Atari 2600 games, the usual suspects like Asteroids, Missile Command, and Space Invaders tend to dominate the conversation. And for good reason: they’re iconic, easy to find, and still offer plenty of arcade fun. In fact, many of the system’s most common cartridges are inexpensive precisely because they sell so well. On the flip side, many of the rarer titles command higher prices despite being mediocre or downright bad games, making popularity and quality a better guide than scarcity when building a fun, affordable collection. This list highlights eight under the-radar gems, games that are both entertaining and easy on the wallet, yet often overlooked compared to the big names. Price estimates are based on data from PriceCharting.com, though you can… Read the rest of this article on page 57 by clicking here!       Be sure to sign up to get Old School Gamer Magazine for free by clicking here! The post Brett’s Bargain Bin – by Brett Weiss appeared first on Old School Gamer Magazine.

Adrian and a Friend in Need - A direct sequel to the incredible C64 game 'Crystian and the Lost Crystals
Indie Retronews www.indieretronews.com

Adrian and a Friend in Need - A direct sequel to the incredible C64 game 'Crystian and the Lost Crystals

After the runaway success of the 2026 platforming hit Crystian and the Lost Crystals, developer Marcel Sásik is back with a direct sequel: Adrian and a Friend in Need. This Commodore 64 release takes the original formula and gives it a sharp jolt, swapping out the slow, grid-locked wandering for a new ultra-athletic hero built for speed. The art style still deliberately echoes the original, keeping the connection unmistakable.

Video Game of the Day – July 4th – Independence Day
oldschoolgamermagazine.com www.oldschoolgamermagazine.com

Video Game of the Day – July 4th – Independence Day

Hello and welcome! My name is Katosepe and I’ll be your host for today’s Video Game of the Day! If I had more forethought, I would have recorded today’s episode yesterday so you could all hear it on July 4th but oh well. At least I’m recording this on the 4th so happy Independence Day to my American listeners! There’s really only one game we could possibly talk about to celebrate. That’s right, today’s game is Independence Day, developed by Radical Entertainment and released on PC, Sega Saturn, and Playstation in 1997. I honestly don’t know how popular this movie is outside of the US so in case you haven’t heard of it, this game is based on the Independence Day movie directed by Roland Emmerich and starring Will Smith. While most games based on films come out around the time of the movie’s release, Independence Day actually released about 9 months after the movie. Just like in the film, Independence Day has aliens coming to Earth and destroying large swaths of humanity. The player plays as a fighter pilot trying to stop the alien’s attacks by taking command of a number of different fighter jets based on real aircraft. For example, the A-10 Warthog is based on the A-10 Thunderbolt and the F-15 Eagle keeps the same name in the game. The storyline is loosely based on the film but the in-game missions have very little story connecting them. Each of the 13 single-player missions are selected from a menu and typically only give one or two sentences of context. Each mission is timed and has you trying to stop the aliens from destroying the area with their primary weapon, the large city-destroying beam seen in the film. Once the level’s objective is completed, the player can swoop in and destroy the primary weapon to end the level. Failure to complete the mission or stop the primary weapon in the time limit will cause the aliens to fire the primary weapon and destroy everything in sight. Independence Day also has a multiplayer mode where players can dogfight in one-on-one fights. The PC version has online capabilities for this and the Playstation version can do both split-screen as well as a console-link mode enabling players to play on two separate TVs. The Saturn does not have this capability and thus can only do local split-screen. Independence Day was not well received. Objectives are repetitive and only have players find targets scattered around the level and destroy them with missiles. Once all the targets are destroyed, the primary weapon can be destroyed. Each level keeps this same formula and critics were not having it. The multiplayer mode was also bare-bones and while the console link option was nice for Playstation users, it didn’t make up for the relatively boring combat. Despite critical reviews, this game refused to go quietly into the night and sold a pretty decent number of copies, likely due to the popularity of the movie. Fan reviews weren’t much higher in the years since, though, so maybe you’d be better off just watching the movie instead. Thank you so much for listening and a happy Fourth to everybody. If the fourth of July isn’t something special where you live, that’s okay! I hope you have a great day anyway! If you want to hear more Video Game of the Day, you can head to videogameoftheday.com for our full archives. Don’t forget to check back here tomorrow for another Video Game of the Day!     The post Video Game of the Day – July 4th – Independence Day appeared first on Old School Gamer Magazine.

Vector Dreams - A brand-new Amiga action platformer takes first place at the Posadas 2026 Homebrew Games competition
Indie Retronews www.indieretronews.com

Vector Dreams - A brand-new Amiga action platformer takes first place at the Posadas 2026 Homebrew Games competition

A fresh Amiga release has landed in our inbox, and it comes with a trophy attached: the homebrew team LaGuiri and Fireboy have claimed first place at the Posadas 2026 Homebrew Games competition with Vector Dreams, a new Commodore Amiga action platformer you can download now and run on emulation or real hardware. Saberman has also shared a video showcasing the game.

Mort &amp; Phil: an Amiga game that salutes the late master Francisco Ibañez Talavera
Indie Retronews www.indieretronews.com

Mort &amp; Phil: an Amiga game that salutes the late master Francisco Ibañez Talavera

The legendary Spanish comic duo Mortadelo and Filemón is making a surprise leap onto the Commodore Amiga in a new retro project called Mort & Phil. Developed by Amiga Factory with the Redpill game engine, the release is already finalized and expected to be uploaded within days. More than just a fresh game for Amiga fans, it also stands as a heartfelt tribute to the

Sabre Wulf lands on the Commodore VIC-20 as homebrew developer gekka revives an Ultimate Play the Game classic
Indie Retronews www.indieretronews.com

Sabre Wulf lands on the Commodore VIC-20 as homebrew developer gekka revives an Ultimate Play the Game classic

The VIC-20 still has one more surprise in store: homebrew developer gekka has released a new port of Ultimate Play The Game’s 1984 classic Sabre Wulf for the Commodore VIC-20, brought over from the ZX Spectrum. The creator says the original left a lasting impression on him, thanks in large part to its deeply immersive, incredible atmosphere. Recreating that experience on the VIC-20 required

Jet Set Willy - Willy finally lands on the Commodore VIC-20!
Indie Retronews www.indieretronews.com

Jet Set Willy - Willy finally lands on the Commodore VIC-20!

A classic 1980s retro favorite has at last crash-landed on the Commodore VIC-20. Jet Set Willy, the legendary platformer first built for the ZX Spectrum, has been ported to the unexpanded VIC-20 with a disk drive thanks to Kweepa. While nearly every British home computer of the era got an official release, VIC-20 owners were left out in the cold—until now.

Expertly Curated

Only the highest quality news sources, manually vetted for the retro computing community.

Deeply Enriched

Content metadata is scrubbed and refined to provide the most readable experience across all devices.