English Amiga Board


Go Back   English Amiga Board > Other Projects > project.Amiga Game Factory

 
 
Thread Tools
Old 24 July 2023, 16:04   #1
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
[WIP] Frogger conversion

After a visit to the computer games museum in Berlin, I decided to convert an arcade game as well. I chose the game "KONAMI 1981 Frogger".
My wife had played this game very intensively. At that time, she had also played the whole thing on the PC.


This is also a 1:1 arcade port using of course the original Z80 code that I reverse-engineered & transcoded to 68000.

My thanks go to jotd for the very nice and helpful conversation. Even without his z80268k tools you would work on the implementation for a very long time.


What is currently missing is the complete sound. The animation and the additional enemies are also missing.

Personally, I learned a lot from this work. First of all, assembler for Z80. Then how the hardware of the machine works. Also interesting is how the code from 1981 works. I also found a few bugs.

[ Show youtube player ]
JoeJoe is offline  
Old 24 July 2023, 16:25   #2
acidbottle
Registered User
 
acidbottle's Avatar
 
Join Date: Jul 2018
Location: Scotland
Posts: 828
This is amazing, great work and look forward to it's eventual release
acidbottle is offline  
Old 24 July 2023, 16:30   #3
TCD
HOL/FTP busy bee

 
TCD's Avatar
 
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,662
Looks good Seems like eventually we'll have all the Z80 based arcade machines 1:1 on the Amiga
TCD is offline  
Old 24 July 2023, 16:33   #4
nikosidis
Registered User
 
Join Date: Jan 2020
Location: oslo/norway
Posts: 1,608
Looking great! Nice classic.
nikosidis is offline  
Old 24 July 2023, 16:45   #5
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,237
this is great!
jotd is offline  
Old 24 July 2023, 20:26   #6
malko
Ex nihilo nihil
 
malko's Avatar
 
Join Date: Oct 2017
Location: CH
Posts: 4,904
Well done
Waiting the version with snd & sfx
malko is offline  
Old 25 July 2023, 06:08   #7
amiman99
Registered User
 
amiman99's Avatar
 
Join Date: Sep 2009
Location: San Antonio, TX USA
Age: 50
Posts: 1,185
I can't wait to try it!
amiman99 is offline  
Old 25 July 2023, 17:21   #8
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
Thank you all. Here is a small update:

- Points calculation now works
- Turtles are now swimming around happily

In one or the other place we would like to optimise the original code. But I will try to leave it as untouched as possible.
JoeJoe is offline  
Old 25 July 2023, 20:11   #9
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,237
in my experience optimizing the code should be done in the amiga specific section (blitting, display). A lot of "tst" instructions can be removed after a move to D0 instruction, but that's not that will make the game fly!
jotd is offline  
Old 26 July 2023, 19:28   #10
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
I agree with you completely. Wordwise reading and writing on odd memory areas is also impossible for the 68000. But who am I telling? You are the master of conversion.
JoeJoe is offline  
Old 02 August 2023, 23:37   #11
Girolamo85
Registered User
 
Join Date: Aug 2020
Location: Italy
Posts: 121
So cool, very nice work!
Girolamo85 is offline  
Old 09 August 2023, 14:28   #12
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
I wanted to give you a short update on the current project. The conversion has been completed so far. For the time being, the game works as a whole. The following points are still to be done
- SFX
- Music
- Adjust game speed (damn 60Hz vs 50Hz)

Also the colouring of the sprites gives me a headache. There are 7 sprites and each one can have a different set of colours. Horizontal or vertical multipliers are not possible because the sprites overlap.
Displaying some sprites as background objects is also not possible due to the many different scroll levels.
hmmmm....The only thing that still has room would be in dual playflield.

Maybe one of you has an idea, every word is welcome.
Cheers
JoeJoe is offline  
Old 09 August 2023, 15:59   #13
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,237
To adjust game speed Don Adan provided a good trick: every 5 vblank, update twice (draw only once!)

It's really invisible but catches up with the speed.

Quote:
There are 7 sprites and each one can have a different set of colours. Horizontal or vertical multipliers are not possible because the sprites overlap.
now you hate Amiga designers with their 8 sprites & color coupling.

You can go AGA each sprite has its own palette. But it's pretty overkill for such a game.
Or decide that some sprites will be bobs instead (and have to refresh the background).

Each game I did used a different approach:

- Pacman: used sprites for 4 ghosts with each own color palette, so back to bobs (1 bitplane, no cookie cut at all) for Pacman, bob for bonus
- MsPacman: same for ghosts, cookie cut blits for MsPacman & bonus
- Amidar: same as MsPacman, with some more logic because there are up to 6 enemies and sprites may change colors depending if they're killed or not. Some sprite sorting => worked.
- Scramble: no sprites, only blits because I thought it would conflict with background stars.
- Xevious: mix between BOBs & AGA sprites (to get more colors) with dual playfield 16/16. Shoehorned
- Galaxian: same configuration as yours: 7 sprites. But I knew right from the start that it wouldn't be possible, so I used sprites only for player shot, flagship score & explosions, using an allocation engine to group same color sprites together (sometimes failed.)
- Pengo: pretty proud of my sprite allocation engine, coupled with copper color change & a bit of luck because color hacks are only needed in demo/intro screens and there are no color collisions (or barely noticeable)

In your case, I would use a sprite for Frogger & often displayed enemies, or alternately for objects that need a different palette, and use Bobs for the rest...
jotd is offline  
Old 09 August 2023, 20:12   #14
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
First of all thank you jotd for your answers. You are quite helpful.

Quote:
To adjust game speed Don Adan provided a good trick: every 5 vblank, update twice (draw only once!)
That's a pretty neat trick. With a little adjustment it runs almost perfectly.
Code:
  ...
  ; adjust NTSC speed ;)
  lea       AdjustFrameCount(pc),a6
  sub.b     #$01,(a6)
  bne.s     .notagain
  sub.b     #$01,(1,a6)
  bne.s     .normalcount
  move.b    #$03,(1,a6)
  move.b    #-1,(a6)
.normalcount:   
  add.b     #$06,(a6)
  bra.w     .runagain

.notagain:
  ...
I will then represent the otter via bob. The rest of the enemies are Sprits.
The goal is for the game to run on a basic A500 with only 512MB of ram.

Latest Version (with Speed Fix):
[ Show youtube player ]

EDIT: Inline Youtube not work :/

Beta is comming sooon
JoeJoe is offline  
Old 09 August 2023, 20:45   #15
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,542
Not a coder but you could treat the layers of traffic and logs like a rolling strip and modify the tiles at need (unless you are doing this already)
saimon69 is offline  
Old 09 August 2023, 21:51   #16
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,237
Yes, I reckon from our private conversations that JoeJoe already does that using partial scrolls (and that's pretty neat). That's how the original hardware operates (same hardware as Galaxian).

Given the number of lines I think that the blitter could possibly not cope! On Galaxian I could use that trick (because copperlist was busy with stars scrolling) and used blitting, but there were only a few rows to update so it was OK.

Every problem a different solution.

Excellent job JoeJoe!
jotd is offline  
Old 10 August 2023, 11:39   #17
str0m
Registered User
 
Join Date: Oct 2016
Location: Newcastle, UK
Posts: 265
This looks great. I play the original cabinet at my local retro arcade, damm the collision detection can be annoying/rubbish at time but sounds like yours will be identical which is the best way to go to give the proper experience
str0m is offline  
Old 10 August 2023, 15:15   #18
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
Thank you for your feedback and congratulations.

Then I'll blunder out of my bag of tricks.
For the representation of the tree trunks, turtles and vehicles, I use a total of 10 strips that are rotated horizontally. One revolution is exactly 256 pixels wide. As a result, if the graphics don't change, I don't need to "blit" a single time. (Hmmm the A500 can only do 15 pixels^^) The hardware of the machine can do the same.
Blitting a bob across the different stripes is possible, but time-consuming. To do this, you have to split the bob at the transitions and "blit" twice.

Let's continue: Currently I only use 2 bitplanes. So strictly speaking only 4 colors. However, the machine can assign a different color set of four questions to each line.

Quote:
the collision detection can be annoying/rubbish at time
The collision calculation is the same as in the arcade. Unfortunately sometimes a bit spongy. There are fixes for the version but I want to keep the original state.
A revised version might be possible. But where does this end? You could then beautify the graphics and so on...

The high score is also not saved. But you I do this with just a few lines. But that would no longer be original.
A arcade machine only keeps the points in memory until it is disconnected from the power supply. Unfortunately, I don't know if there was a "memory module" back then that saves the high score in the event of a power failure.

cheers
JoeJoe is offline  
Old 10 August 2023, 18:10   #19
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
How many colors is there in Frogger doesn’t look much, isn’t dual playfield an option with Copper colors change if needed so no need to save and redraw the BG?
kamelito is offline  
Old 10 August 2023, 18:46   #20
JoeJoe
Registered User
 
Join Date: Feb 2020
Location: Germany
Posts: 184
The background is not a problem here. Because I'm already showing it correctly. It's more about the sprites. These have 3 colors + 1 transparent and of course not the same. So if 7 sprites are displayed at the same time, I only have the problem with two competing sprints. But I'll solve that by blitting the otter.
JoeJoe is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
[WIP] Galaxian conversion jotd project.Amiga Game Factory 107 16 July 2023 19:37
[WIP] Pengo conversion jotd project.Amiga Game Factory 95 14 July 2023 17:16
Ms Pacman conversion WIP jotd project.Amiga Game Factory 86 22 November 2021 21:45
[WIP] Gloom Total Conversion for ZDoom Cherno Nostalgia & memories 5 01 October 2017 04:37
Frogger quenthal Amiga scene 2 19 July 2007 17:56

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 08:01.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.09459 seconds with 13 queries