Skip to content

Releases

Bobr Hopper Amiga v025

Choose a tag to compare

@angree angree released this 15 Oct 13:09

Score counts every hop of a fast hop chain. Thanks to Phibrizzo for the report. The score used to update only when the hero came to a stop. During a chain of quick hops the counter stood still, and dying inside the chain lost those rows, even on the game over screen. Now every hop counts the moment it lands.

The rest of the game is unchanged. The bot test plays the same games and reaches the same best score as the previous version.

Bobr Hopper Amiga 68k v024

Choose a tag to compare

@angree angree released this 28 Sep 18:55

Night mode. Settings → NIGHT MODE warms the whole picture the way a lamp would: OFF, 4200 K, 2700 K or 1900 K (a candle; blue is gone completely). The Amiga multiplies the palette registers, so the filter costs nothing while you play: the graphics and the game's colour tables stay as they are. In Extra Half-Brite only the 32 real registers are tinted, and the chipset derives the dimmed half from them as always.

The same option is in the SF2000/GB300 and R36S versions.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v023

Choose a tag to compare

@angree angree released this 27 Sep 16:48

Two more languages: Spanish and, for fun, Latin. Settings → LANGUAGE now goes English, Polish, Spanish, Latin. The font gained Á É Í Ú Ñ and ¡ ¿. The ranks have Spanish and Latin names too: level 1-1 is Badén in Spanish and Gibbus Viae in Latin.

The character names are translated where they are words rather than people's names: BEAVER is BÓBR in Polish, CASTOR in Spanish and Latin, and CHICKEN is KURCZAK, POLLO and PULLUS.

Music volume now goes 0–10, like the sound effects. It starts at 2. An older setting carries over, rounded to the nearest step.

OCS/ECS gets the SCREEN switch too. The narrow and phone views now have sprite sets of their own in Extra Half-Brite, so the option that saves bitplanes works on an OCS or ECS machine as well.

The title logo on OCS/ECS is dithered half as hard. It looks cleaner, and the red cap and comb stay red.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v022

Choose a tag to compare

@angree angree released this 27 Sep 14:49

A new title logo: the beaver and the cock either side of BÓBR HOPPER, drawn by the author.

  • AGA and RTG: the logo gets the palette entries the game leaves free, 52 colours picked for it. The game's own colours and the shadow colours stay exactly as they were.
  • OCS/ECS (Extra Half-Brite): there are no entries to spare, so the logo is dithered onto the 64 pens. A pinned red was added so the cap and the comb stay red; the red cars and the train look better for it too.

Esc on the title screen asks first. It opens QUIT THE GAME? instead of leaving at once. Enter quits and Esc stays. Nothing else reaches the game while the question is open.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v021

Choose a tag to compare

@angree angree released this 27 Sep 09:10

Shadows. Everything that casts a shadow in the console versions casts one here too: trees, rocks, cars, trucks, trains, logs and the beaver. They are the consoles' simple shadows: each object's box flattened onto the ground along the same light, at the same strength. In the settings, SHADOWS is SIMPLE or OFF, and it starts OFF.

How it stays cheap: a shadow does not blend anything. It looks every pixel under it up in a 256-byte table and swaps the colour for its darker twin. The palette now carries a darker copy of every colour of the ground, the logs and the lily pads. Only those colours darken, so a shadow never touches a tree or a car. That also lets the trees' shadows stay in the background buffer from v019. On OCS/ECS the chipset's own half-brite does the darkening, so the shadows there are stronger.

Cost on the test machine (68020, no FPU, JIT off, slowed to roughly 040/40 speed, AGA 320×240): 25.8 fps with shadows off, 20.4 with them on. That cost is why they start switched off.

The menus are a window now. The pause menu and the settings have a solid background, and a strip of the frozen game stays visible above and below them. Nothing moves underneath while a menu is open, and nothing is drawn under it. The settings screen went from about 12 fps to about 34 fps on the test machine. A small cache of finished text lines was also too small for the settings screen, so every line was being drawn again from its glyphs each frame.

Also faster in play: the scene's depth sort is a merge sort now. With shadows on it went from 7.4 ms to 0.9 ms a frame; without shadows, from 1.1 ms to 0.5 ms.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v020

Choose a tag to compare

@angree angree released this 27 Sep 01:15

Screen shapes. The game's settings now have a new entry, SCREEN, with three choices:

320×240 640×480 (RTG)
FULL 320 columns 640 columns as before
NARROW 256 columns 512 columns zoomed out a little, black sides. The author's pick: the same game, and less to convert to bitplanes on AGA
PHONE 160 columns 320 columns a tall column zoomed out twice. You see twice as many rows ahead, which makes it a different game to play

Each shape has its own sprite sets, baked at its own scale: normal and wide, at 320×240 and at 640×480. That is eight new sets. A set is loaded on the title screen when you change the shape (LOADING shows for a moment), and the old one is freed first, so only one set is ever in memory. The shapes work on AGA and RTG. In the OCS/ECS mode the entry is not shown.

A SETTINGS bar on the title screen, under CLASSIC and PROGRESSION, in the next shade of blue. S still opens the settings too.

Esc always goes back one step:

  • out of the settings;
  • from the pause menu back to the game;
  • from the game-over screen to the menu;
  • back one page in the title screen's own pages (players, career, confirmation);
  • in play, it opens the pause menu;
  • only on the title screen's first page does it leave the game.

The screen bar shows a 40-second fps average next to the current second (with the FPS counter on).

The picture in the new shapes is checked the same way as in v019: the game compared it with the old way of drawing, with 0 differing pixels in NARROW, PHONE, and PHONE at 640×480.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v019

Choose a tag to compare

@angree angree released this 26 Sep 22:56

A speed release. The picture is exactly the same as before, down to the pixel. It just takes less time to draw.

RTG gains the most: about +40% fps at 640×480 (21 → 30 fps on the test machine). AGA gains too: 18.8 → 19.9 fps on the test machine, each a 40-second average of the author playing the old and the new version one after the other. AGA gains less than RTG because a large part of every AGA frame goes to the chunky-to-planar conversion, which has not changed yet. RTG has no chunky-to-planar step, so there the gain shows in full.

What changed: the ground and the trees are no longer drawn from scratch every frame. They are kept in a background buffer in fast RAM, with a margin around the screen, and only the strip that scrolls into view gets painted. Each frame is now:

  1. the visible window copied out of that buffer,
  2. whatever moves drawn on top,
  3. the nearer trees and ground edges redrawn over it, clipped to where they overlap.

Measured on the test machine (68020, no FPU, JIT off, slowed to roughly 040/40 speed):

v019 before
RTG 640×480: drawing 15 ms 26 ms
RTG 640×480: fps 30 21
AGA 320×240: drawing 11 ms 15–24 ms
AGA 320×240: fps while playing (40-second average) 19.9 18.8

Also faster for every mode: the sprite blitter skips the empty rows of the ground strips (a grass strip went from 183 rows to 104) and copies each row in one unrolled loop (a car draws in 136–150 µs instead of 170–230).

Checked: in test runs the game compares the new picture with the old way of drawing every 25th frame. There were 0 differing pixels on AGA, with two players, and on RTG 640×480. A separate start-up test draws every sprite at clipped positions and compares it against a plain pixel-by-pixel loop: 0 differences in 1,855 draws.

The background buffer takes 256 KB of fast RAM at 320×240 and 1 MB at 640×480. A machine without that much to spare falls back to the old way of drawing without complaint.

68060: the archive also carries bobrhopper060, the same game built for the 68060 without the 64-bit multiply and divide instructions that the 060 emulates in software. It has not been tested on a real 68060 yet. On a 68020/030/040, start bobrhopper as before.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v017

Choose a tag to compare

@angree angree released this 21 Sep 14:49

It runs on a plain OCS or ECS machine now, in the chipset's Extra Half-Brite mode — six bitplanes at 320×240, 64 pens of which the upper 32 are what the hardware makes by halving the lower 32. Pick it in BobrHopperPrefs, or from a Shell: BobrHopperPrefs GFX=OCS.

It is the same game, not a cut-down one — same sprites, same view scales, same two-player mode. Only the palette is different, and it ships its own sprite sets baked for those 64 pens. Tested by the author on both an OCS machine and an AGA one.

The palette is fitted to the artwork. Eighteen of the 32 base pens are spoken for: the mouse pointer is hardware sprite 0 and reads registers 17, 18 and 19 whatever anybody wants, the screen bar has its own, and the menus keep the colours the console versions use. Four more are pinned because the fit kept losing them — the lily pads' green, the beaver's brown, and two tones for the logs. The rest are chosen for each set's own art. 150 colours of artwork come down to about 10 per channel of error.

The lily pads were coming out sea-coloured, and the beaver was exactly the brown of the log it stands on — in the artwork they really are the same brown to within a nibble. The logs are painted in two tones of lighter wood now, split where their own shading splits: a dark animal on light wood.

Also fixed, and it affects AGA and RTG just as much: nothing in the graphics layer ever called ScreenToFront. The game is started from a Shell and prints to it, so a log line could pull Workbench in front and leave the game running unseen behind it.

Speed: 18–20 fps in EHB on the test machine, where AGA gives 16–20 — six bitplanes is a quarter less to push than eight.

Recommended Specs: 68030/50mhz + RTG or 68040/33mhz with AGA, OCS or ECS.

Bobr Hopper Amiga 68k v016

Choose a tag to compare

@angree angree released this 20 Sep 13:18

Two-player fixes, Progression restarts the level, and you can see what is selected in the menu.

Two players could hang the game in the water. The drowning that catches a hero chaining fast hops across a river never said which player drowned, and an unnamed player means the first one. So player two crossing a river that way drowned player one instead, wherever it stood — and if player one was already dead, nobody drowned at all. Either way the hop stopped half way and left the hero marked as mid-hop for ever, which the water never drowns: no game over, no restart, no way back to the menu. Fixed.

Progression restarts the level. A death ends the level for everybody and it begins again from the first row, both players at the start — a level is crossed by both or by neither. Endless retries now decides only whether that restart happens by itself, for as long as it takes, or whether it is a game over and you choose. Nobody is put back down in the middle of a level. Classic is untouched: it is about records, so dead is dead.

Falling off the side of the screen used to lose a Progression level outright even with endless retries on. It brings you back now.

The menu shows what is selected. The selected row was yellow where the others were white, which on the sky-blue menu is almost no difference. It now sits on a dark bar with white text, and the bar pulses so the eye finds it.

Smaller things:

  • a player moved onto the other's head by a rule (the co-operative pull-back, or both landing on one tile) hops there now instead of appearing up there
  • the Players setting reads ASK rather than ASK ON START, which did not fit on screen
  • the level crossing bell is quieter

One-player games are unchanged.

Runs on a 68020 without an FPU, AGA or RTG. Unpack anywhere and run BobrHopper. BobrHopperPrefs picks the screen before the game starts.

Bobr Hopper Amiga 68k v013

Choose a tag to compare

@angree angree released this 18 Sep 20:47

Two players on one screen.

The game this port descends from has no multiplayer, so this mode is the author's own.

Playing together

Settings → Players: 2, then give each player a device of its own:

ARROWS cursor keys, Space or Return to hop
WSAD W A S D, left Shift or Ctrl to hop
JOY 2 the joystick port (the lower socket)
JOY 1 the mouse port, only read once a player has chosen it

The settings list scrolls now; a small triangle appears when there is more above or below.

  • Classic is a duel. Fall more than seven rows behind and you are out of the frame. The other one plays on, and the higher score wins.
  • Progression is co-operative. Nobody is left behind: the one in front is pulled back onto the other's head, and a player who dies comes back on its partner's head a couple of seconds later.
  • Land on the other player and you stand on its head. It walks out from under you the moment it hops away.
  • Every row now offers at least two ways through, so neither player has to queue for the other's square.

Graphics

Two players need a wider view, and a sprite baked for one scale cannot be stretched on a 68020 for free. There are four sprite sets now (320x240 and 640x480, each normal and wide) and exactly one is in memory at a time; the game swaps it on the title screen, behind a LOADING line. The wide sets are smaller than the normal ones, so the memory requirement has not changed.

Speed

Measured on an emulated 68020 with no FPU, JIT off, at -80% (the configuration in winuae/), in play:

one player two players, wide view
AGA 320x240 ~15 fps 13-14 fps
RTG 640x480 18 fps 19 fps

The same binary built from the commit before this work measured 66.6 ms a frame; this one measures 65.7. The second player costs nothing.

The settings screen at 640x480 also went from 4 to 6 fps: its dithered backdrop is 300000 pixels a frame and was being decided one pixel at a time.

Also

  • build/bake_amiga.sh makes all four sprite sets from one command, and reproduces the two older ones byte for byte.
  • build/build_amiga.sh takes BH_REPO / BH_WORK / BH_DEPLOY, so another checkout can be built beside this one.

One player is unchanged.