English Amiga Board


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

 
 
Thread Tools
Old 29 March 2024, 23:01   #221
Havie
Registered User
 
Havie's Avatar
 
Join Date: Mar 2012
Location: UK
Posts: 1,894
This is a lovely port and it's great how you have targeted different configs - shuts up the 'where is the AGA port?' brigade.

Keep up the good work!
Havie is offline  
Old 30 March 2024, 00:07   #222
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
thanks everyone. Updated a new version on itch. Fixed ECS and even slightly better visuals for all versions.
jotd is online now  
Old 30 March 2024, 01:32   #223
Toni Galvez
Registered User
 
Join Date: Jan 2015
Location: London/UK
Posts: 227
Quote:
Originally Posted by jotd View Post
okay, you didn't ask for it but here it is: technical breakdown

ECS version:

It uses a 16-color single playfield version. Some colorblind clowns stated that there are only 8 colors on that game, but actually even 8+8 colors (for ECS dual playfield) can't be done. Actually, even 16 colors is difficult, as tiles, bobs, and backgrounds have independent palettes.

so the top panel has its colormap (which is the tiles palette), which is changed by our beloved copper right afterwards to set BOB colors.

From that point, if you write something, then the colors will be wrong (which is why that BOB colors are reset when completing a section, to revert back to tiles colors), but fortunately not a lot of text is written to the screen below top panel when sprites / mountains are shown.

The blue layer mountain is drawn with blitter to simulate scrolling. It uses just 3 colors (black and 2 blues) so with clever palette layout, only 2 bitplanes need to be blitted.
And when the color becomes all blue, instead of blitting a big blue rectangle (which would cost too much), the background color is changed to this blue color.

The green layer mountain is drawn the same way, but using a mask not to overwrite the blue mountain below. When the color becomes all green, background color is changed to green. Those dynamic changes don't happen at the same position all the time: the mountains can change their Y start too depending on the scenery. 3 bitplanes are required. This costs a lot of blitter time.

The ground strip is drawn the same way, except that I choose to keep only 1 bitplane. The color is also changed dynamically to orange (which is a color that isn't in the BOBs palette).

Then the BOBs are drawn, sometimes reusing some blue mountain colors for ground objects like rocks as else there wouldn't be enough colors, even with 16 colors.

To save more colors, some objects like the explosions are hardware sprites. Ships are also hardware sprites, except when there are 9 of them (grrrrrr) or when the ship is falling on the player, in which case a BOB is displayed instead.

Sprite multiplexing between top & bottom is active, which allows to display 16 hardware sprites at the same time. 2 explosions + 8 chips for instance. Some sprite grouping is done too to convert 2 vertically aligned sprites into one 16x32 sprite.

There is one color missing for base of the space plant, but since it's very low, it can be changed dynamically by the copper when reaching the ground. Top of the space plant is 2 sprites, which saves one or 2 precious color entries. Since there can't be more than 3 space plants at the same time and the ships aren't there to bomb the scenery at this point, it works, we have enough HW sprites.

Aaand that's it for ECS

Now for AGA:

Game uses 16+16 color dual playfield. Top panel is done the same way but things get different from there.

Blue mountains are displayed using different bitplanes, on one playfield dynamically Y-adjusted depending on the current mountain Y start.
Green mountains are blitted on the other playfield. No need for mask this time. More colors & no mask mean that we can reinstate moon city background which was left behind in ECS.

Same background color tricks as ECS.

Now the scrollable ground part reuses the blue mountain playfield, but they are far enough Y wise not to conflict. So a different scroll & shift value can be applied, which makes 2 hardware scrolling strips at different speeds, and allows to scroll all 4 bitplanes without blitting, which reinstates the moon base & more colors for craters & scrolling letters.

BOBs & sprites are the same as ECS. Less color tricks are required because we have more colors available (blue mountains don't get in the way).
You are a wonderful person, very kind, because you take your time to explain all the details of your work with the conversion. You don't have to, because people who criticize you negatively, probably don't deserve it.

I really admire you, all the arcade conversions you have done are impressive, because you get an exact approximation of these arcade conversions.

Maybe many don't know it, but on emulators, there is usually lag, but if you play the Amiga version on a real Amiga and a CRT monitor, there is no lag, it is really a much better way to play these games, more similar to the original.

Please keep doing things that make you (make us) happy.
Toni Galvez is offline  
Old 30 March 2024, 02:43   #224
Seiya
Registered User
 
Seiya's Avatar
 
Join Date: Nov 2014
Location: Italy
Posts: 2,364
Quote:
Originally Posted by jotd View Post
thanks everyone. Updated a new version on itch. Fixed ECS and even slightly better visuals for all versions.
perfect! it works without problems
Seiya is online now  
Old 30 March 2024, 03:44   #225
tomcat666
Retro Freak
 
tomcat666's Avatar
 
Join Date: Nov 2001
Location: Slovenia
Age: 51
Posts: 1,647
Really nice. ECS version now also working on AGA machines (probably not that important but still ). About the only graphical problem I can see left is missing a line or two below "You have broken a record!" text

tomcat666 is offline  
Old 30 March 2024, 11:15   #226
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
Thanks Toni it really means a lot. When I did the tech explanation it was not for the people who criticize minimum specs for such a game, but for everyone who is interested.

I'm glad that people play my conversions (and other amiga games) on real machines and not on emulators. I had a game on Moon Patrol AGA on my A1200/060 last night and it ran even better than on the emulator in cycle exact. There is still the 50/56 Hz difference that I have to solve, not trivial.

I was not aware of the lag when running on an emulator. One thing is sure: MAME is double buffered, but on the amiga version, hardware scrolling & hardware sprites are not, which reduces the lag. That is very encouraging to keep porting more games. Anyway I just don't really enjoy playing on emulators anymore. I must be sick or extremist or a sick extremist for that aspect.

Yes there's still this annoying missing line. I'll fix that when I know why it happens (else I would already have fixed it)

This bug is repeating like a broken record
jotd is online now  
Old 30 March 2024, 12:12   #227
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,975
Do You tried to call game logic at 55Hz?
Add 1 extra call, for every 10 VBL calls.

And saving record time for every etap is supported?
Don_Adan is offline  
Old 30 March 2024, 12:31   #228
aros-sg
Registered User
 
Join Date: Nov 2015
Location: Italy
Posts: 191
Quote:
Originally Posted by jotd View Post
... perfect 50fps, blah blah. Yeah, right.
Wait, wait! Have you actually checked how much (frame time) you are really away from 50 fps? Because according to your technical breakdown there are some possibilities to improve.

For example you say that you blit all three layers. But you shouldn't have to do that (unless you were to save so much time by having so many bobs and you can skip lots of bob restoring). Even if there are 3 layers and you don't use dual playfield you can hw scroll one layer.

Theoretically even hw scrolling 2 of the layers is possible: the blue mountains and the ground layer hw scroll and only the green layer is mask blitted: the upper part of it mask blit in front of blue mountains. the lower part of it mask blit behind ground layer. Similiar to common wraparound tile scrollers (like Turrican) this requires bob drawing to take split line/point into consideration and possibly split up blits in two, if a bob crosses the line.

How fast does the game run if in a quick test you disable blitting of ground layer and blue mountains. Still only 25 fps?
aros-sg is offline  
Old 30 March 2024, 13:44   #229
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,975
Or You can try something like this. It can works at 56Hz under 50Hz VBI, if no my faults.

Code:
VBI
 bsr.w GameLogic
 addq.b #1,Counter1
 cmp.b #10,Counter1
 bne.b Skip
 clr.b Counter1
 bsr.w GameLogic
 addq.b #1,Counter2
 cmp.b #5,Counter2
 bne.b Skip
 clr.b Counter2
 bsr.w GameLogic
Skip
 bsr AmigaStuff
 rte

Counter1
 dc.b 0
Counter2
 dc.b 0

Last edited by Don_Adan; 30 March 2024 at 23:09.
Don_Adan is offline  
Old 30 March 2024, 15:28   #230
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
DonAdan thanks this method you suggested a long time ago worked very well with all other remakes since Pacman but here it doesn't work for 2 known reasons and possible hidden ones

First, no game work the way you're writing your loop. There's some infinite loop (possibly in sync with the IRQ) and the IRQ
The IRQ runs at 60 or 56 Hz or whatever, and yes, most of the time, ticking twice once in a while works, but here it doesn't. If I do this:

- Title screen appears at the wrong time. Because game mainloop sets a target timer value and waits for it, but double tick makes it miss the tick first time: big delay... I could fix it manually but...
- Demo mode recorded controls fail. Jeep misses a jump or something similar. This is a big no no if things like that happen because it means that the game logic is wrong
- all other snide differences that could be related to above.

My best options ATM:

- remain at 50Hz, so people can enjoy the game and a Xanax at the same time
- try to perform IRQ in custom copper interrupts. I can go 100Hz and then control when I call the IRQ. Last time I tried I got unexplained crashes
- follow your advice with CIA interrupt. Crashed badly probably for the same reason as above, plus music is strange and not sure hacking it would work.

Quote:
Originally Posted by aros-sg View Post
For example you say that you blit all three layers. But you shouldn't have to do that (unless you were to save so much time by having so many bobs and you can skip lots of bob restoring). Even if there are 3 layers and you don't use dual playfield you can hw scroll one layer.

Theoretically even hw scrolling 2 of the layers is possible: the blue mountains and the ground layer hw scroll and only the green layer is mask blitted: the upper part of it mask blit in front of blue mountains. the lower part of it mask blit behind ground layer. Similiar to common wraparound tile scrollers (like Turrican) this requires bob drawing to take split line/point into consideration and possibly split up blits in two, if a bob crosses the line.
This looks horribly complicated though. I'm doing this (as written above) for AGA because I have DPF, but making up for the scrolling for BOBs looks very complex and there's this split point which changes with the terrain. Game already does that BTW, in reverse eg. for rocks.

Plus you seem to forget that we must redraw blue mountains a lot because of bobs passing into it, and also green mountains.

The best option would have to go ECS dual playfield, but 8+8 colors is too much a constraint even with HW sprites to save slots, regardless of what trolls think. I've tried several times and gave it up. To save colors with sprites, you have to assign HW sprites to all sprites using those colors, which isn't trivial. Example: at high levels, you can have NINE bloody UFOs, so it's not even possible to go all HW sprites for UFOs.


Quote:
How fast does the game run if in a quick test you disable blitting of ground layer and blue mountains. Still only 25 fps?
probably at 50fps, but looks like shit (AKA Oric Super Jeep)

Last edited by jotd; 30 March 2024 at 15:43.
jotd is online now  
Old 30 March 2024, 15:37   #231
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,975
At first for test disable totally music, if You try to use timer.
If it works ok without music, then handling music is very easy.
I can help You with music handling.

Last edited by Don_Adan; 30 March 2024 at 23:10.
Don_Adan is offline  
Old 30 March 2024, 19:37   #232
TjLaZer
Registered User
 
TjLaZer's Avatar
 
Join Date: Sep 2004
Location: Tacoma, WA USA
Age: 52
Posts: 1,918
Tested on my A4000/060 NTSC setup and the disk did not work. Game loaded up at title and froze. Hope that helps (Set NOCACHE in ES. If set to PAL it worked)
TjLaZer is online now  
Old 30 March 2024, 23:33   #233
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
Okay. Game isn't designed to run in NTSC. Someone said that it worked on his NTSC A1000 though.

Quote:
Originally Posted by Don_Adan View Post
At first for test disable totally music, if You try to use timer.
If it works ok without music, then handling music is very easy.
I can help You with music handling.
I tried again with level 1 interrupt and crashed without reason. BUT adding another copper interrupt in the middle of the screen doesn't crash, and it works!!! updated technical details in above post.

Last edited by jotd; 31 March 2024 at 00:16.
jotd is online now  
Old 31 March 2024, 01:58   #234
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,975
Ross is interrupt expert. Im not expert. From my memory for WT cracktros, I must changing code position in VBI AddIntServer routine. Or cracktro doesnt works correctly on 68040. It was any code race problem in copper, I think. I change also server priority (I dont use vectors). Perhaps music interrupt routine was at end too call from VBI. If Protracker player from Moon Patrol works on timer, not on VBI then music has big prority. Better is changing to VBI source. Also if You will be use AddIntServer, then You can use 2 VBI servers in game with different priority. One for game logic and one for Amiga stuff/part. Maybe it can help too?
Don_Adan is offline  
Old 31 March 2024, 09:46   #235
Marconelly
Registered User
 
Join Date: Feb 2024
Location: Canada
Posts: 23
Awesome to see more good progress on this. Thanks jotd!

Quote:
Originally Posted by Neil79 View Post
Anyway, new article to reflect latest beta!
https://www.indieretronews.com/2024/...sic-as_29.html
Locking the comments in the other article is for the best. A few of us pushed back against the ignorance, but I think people who post stuff like that, most often don't want to learn - they just want to complain. In the end it's best to just ignore them.
Marconelly is offline  
Old 31 March 2024, 12:19   #236
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
Quote:
Originally Posted by Don_Adan View Post
Ross is interrupt expert. Im not expert. From my memory for WT cracktros, I must changing code position in VBI AddIntServer routine. Or cracktro doesnt works correctly on 68040. It was any code race problem in copper, I think. I change also server priority (I dont use vectors). Perhaps music interrupt routine was at end too call from VBI. If Protracker player from Moon Patrol works on timer, not on VBI then music has big prority. Better is changing to VBI source. Also if You will be use AddIntServer, then You can use 2 VBI servers in game with different priority. One for game logic and one for Amiga stuff/part. Maybe it can help too?

VBI and copper bottom-of-frame are too close to be useful for extra tick.


Mid-screen copper interrupt works very well. Updated soon!
jotd is online now  
Old 31 March 2024, 17:19   #237
TjLaZer
Registered User
 
TjLaZer's Avatar
 
Join Date: Sep 2004
Location: Tacoma, WA USA
Age: 52
Posts: 1,918
Quote:
Originally Posted by jotd View Post
Okay. Game isn't designed to run in NTSC. Someone said that it worked on his NTSC A1000 though
Tested OCS and ECS version on my A4000 and it works in NTSC.
TjLaZer is online now  
Old 01 April 2024, 13:12   #238
PascalDe73
PascalDe73
 
PascalDe73's Avatar
 
Join Date: Apr 2019
Location: Charleroi Belgium
Age: 51
Posts: 144
Hi JOTD,

I downloaded Your latest ADF (01/04/2024 00:28).

I have a problem with the ADF....

On my A500 ACA500PLUS ONLY, When I use A500 Profile F3 Standard A500 KS 1.3 + 1MB CHIP,

Just after the menu selection, I obtain this message error :

Software error - task held Finish ALL Disk activity Selecct CANCEL to rest/debug.

Could someone test it with another ACA500 plus with 1MB CHIP or with an A500+ 1MB CHIP ?

Because in mode A500 KS 1.3 512k+512 k all works correctly.

Many Thanks.

Pascal

EDITED : OK SAME ERROR UNDER WINUAE QUICKSTART MODE A500 1.3 ROM ECS AGNUS 1 MB CHIP RAM

Last edited by PascalDe73; 01 April 2024 at 13:18.
PascalDe73 is offline  
Old 01 April 2024, 15:58   #239
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,196
Must be a problem with the menu, as game is not launched yet. I've asked Damien about the issue.
jotd is online now  
Old 01 April 2024, 17:57   #240
Marconelly
Registered User
 
Join Date: Feb 2024
Location: Canada
Posts: 23
I just tested the latest ADF in FSUAE, A500/1MBChip/1.3ROM mode, and it worked fine both in PAL and NTSC mode. In this case, it looks like the game running is the OCS version - I can tell because the green layer protrudes into the border a bit in the OCS version, but it's all flush in the ECS version. Not sure what are the other differences between OCS and ECS?
PascalDe73, maybe try running the ECS version of the game manually on your setup? If it's not already on the ADF, I'd copy the exe from the HD package.
Marconelly 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] Tetris conversion jotd project.Amiga Game Factory 153 07 January 2024 20:18
[WIP] Frogger conversion JoeJoe project.Amiga Game Factory 99 24 December 2023 13:11
[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
do you know if moon patrol was ported to the amiga ? pbareges request.Old Rare Games 8 08 March 2005 18:12

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 17:38.

Top

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