26 October 2021, 18:35 | #1 |
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Black Tiger port (OCS/ECS)
Time to make this official, I guess.
Hi, I'm Chad. I'm relatively new to Amiga hardware coding, but have been programming since 1980 or so. I've been coding assembler since 1984 (16 years old) on the Commodore 64 (6502/6510). I was a kid of the golden age of the arcade (1977-1990), and just as I started college, my favorite arcade game ever came out--Black Tiger. I've wanted to do something with Black Tiger for ages, and decided to re-port the game to the Amiga because of the lousy US Gold version that never worked properly on my ECS Amiga 500. Currently the project is already underway; I started posting here in a Black Tiger request thread, since it seemed to be on-topic. Rather than create a whole new thread, I'd preferred that an admin split the request thread into a project thread... but they could still split and merge part of that thread into this thread if they desire (after post #1). ----------------------------------------------------------------------------------------------------- Current project state: 8-way scroll is implemented; I'm temporarily decoding part of the arcade version's Level 1 tile map to the screen and can scroll in all 8 directions with a joystick. (video) Next up: Map tiles and palettes and color reductions and all that fun stuff. FAQ (this will grow): Q: Why OCS/ECS? A: The real challenge is to create a great game on the most limited version of Amiga hardware. Plus, I want a nice version of Black Tiger that I *could* have played back in the day on my Amiga 500 instead of the US Gold version LINKS: Source ctrl for the game project: https://github.com/admiral68/BTA Source ctrl for the Black Tiger arcade reverse engineering project: https://github.com/admiral68/gh_black_tiger Last edited by chadderack; 26 October 2021 at 18:41. |
26 October 2021, 19:10 | #2 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,516
|
Best of luck and ask for any help!
|
26 October 2021, 19:18 | #3 | |
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
26/10/2021: I'm not taking the "rip from MAME" approach to the graphics because there are 16 different tile palettes. This means keeping around many source files with all of tiles rendered in all possible palettes. Instead, I'm using the arcade source to help calculate the optimal palettes for each level... then whittle down unneeded tiles/colors/palettes from there. If using that approach, we need to find out how many colors are used per level; how many times a tile is used; and how many times a tile has different palettes applied to it. That's done in a script (in my case, a C# console program) against the arcade source code. I recently noticed that some of the color/palette/tile data had been decoded wrongly. Here are the corrected values. Code:
Level 1 (map); unique palettes used: 10; unique colors used: 70 LEVEL PALETTES: 0,1,2,3,6,9,A,B,E,F LEVEL COLORS: 000,035,060,090,0E0,110,111,146,257,368,430,431,433,455, 479,533,540,544,556,566,58A,641,644,650,653,666,747,750, 753,754,763,776,777,778,842,864,868,874,889,940,974,975, 985,986,998,A53,A74,A8A,A97,AAA,ABC,B87,C64,C84,C85,C95, CA8,CAC,CCA,DA6,DB8,EC7,ED8,EEA,EEF,F85,FC4,FF9,FFA,FFF Level 2 (map); unique palettes used: 10; unique colors used: 76 LEVEL PALETTES: 5,6,7,9,A,B,C,D,E,F LEVEL COLORS: 000,035,040,046,050,064,086,0A7,0C9,110,111,146,257,340, 345,368,430,431,440,450,455,456,479,533,540,554,560,566, 567,58A,600,641,650,665,670,678,750,753,763,776,780,789, 7EC,864,874,887,899,89C,900,940,985,986,990,998,A74,A75, A96,A97,AA0,AAA,ABC,AFD,BA7,C85,C86,CB8,CC0,DA6,DE0,E70, EA7,EC7,EF0,FC8,FF9,FFA Level 3 (map); unique palettes used: 7; unique colors used: 44 LEVEL PALETTES: 5,7,9,A,D,E,F LEVEL COLORS: 000,040,050,110,111,340,430,431,450,455,533,540,560,600, 641,650,670,700,750,753,763,780,864,874,900,940,985,986, A74,A96,A97,BA7,C70,C85,CB8,CC0,D90,DA6,DD0,DE0,E70,EC7, EF0,FF9 Level 4 (map); unique palettes used: 9; unique colors used: 60 LEVEL PALETTES: 2,5,6,7,A,B,C,D,F LEVEL COLORS: 000,040,046,050,064,086,0A7,0C9,110,111,340,345,431,440, 450,456,533,540,560,566,567,641,665,670,678,750,753,776, 780,789,7EC,864,887,899,89C,940,974,986,990,998,A74,A75, A97,AA0,AAA,AFD,C84,C85,C86,CC0,DA6,DE0,E70,EA7,EC7,EEF, EF0,FC8,FF9,FFA Level 5 (map); unique palettes used: 13; unique colors used: 84 LEVEL PALETTES: 0,1,2,3,4,5,6,7,9,A,B,E,F LEVEL COLORS: 000,035,040,046,110,111,340,345,433,450,455,456,520,533, 540,544,556,560,566,567,600,641,644,650,666,670,678,730, 747,750,753,754,763,776,778,789,842,864,868,874,889,89C, 900,940,974,975,985,986,990,998,A53,A74,A75,A8A,A96,A97, AAA,B50,B87,BA7,C64,C84,C85,C86,C95,CA8,CAC,CB8,CCA,D60, DA6,DB8,DD0,E70,EA7,EC7,EEA,EEF,F80,F85,FC4,FC8,FF9,FFA Level 6 (map); unique palettes used: 8; unique colors used: 57 LEVEL PALETTES: 6,7,9,A,B,C,E,F LEVEL COLORS: 000,035,040,046,050,064,086,0A7,0C9,110,111,146,257,340, 345,430,456,540,560,567,641,650,678,700,750,753,763,776, 789,7EC,864,874,887,89C,900,940,985,998,A74,A75,A96,AAA, ABC,AFD,BA7,C70,C85,C86,CB8,D90,DA6,DD0,E70,EA7,EC7,FC8, FFA Level 7 (map); unique palettes used: 8; unique colors used: 46 LEVEL PALETTES: 5,6,7,8,A,B,D,F LEVEL COLORS: 000,046,110,111,340,345,431,435,450,455,456,533,540,560, 566,567,600,640,641,670,678,750,753,776,780,789,857,864, 89C,900,940,986,990,A74,A97,B5A,B75,C85,CC0,DA6,DE0,E70, EC7,EF0,FF9,FFA Level 8 (map); unique palettes used: 13; unique colors used: 85 LEVEL PALETTES: 1,4,5,6,7,8,9,A,B,C,D,E,F LEVEL COLORS: 000,035,040,050,064,086,0A7,0C9,110,111,146,257,340,368, 431,433,450,455,479,520,533,540,554,560,566,567,58A,600, 641,650,665,666,670,678,700,730,750,753,754,763,776,780, 789,7EC,842,864,874,887,899,89C,900,940,974,985,986,990, 998,A53,A74,A75,A96,A97,AA0,AAA,ABC,AFD,B50,B87,BA7,C64, C85,C86,CB8,CC0,DA6,DB8,E70,E98,EA7,EC7,EF0,FB9,FC8,FF9, FFA Code:
KEY --- 0xXXX = 11-bit tile index (FL) = Tile is horizontally fllipped :X = palette applied to this tile |
|
27 October 2021, 00:40 | #4 | |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,516
|
Quote:
|
|
27 October 2021, 06:39 | #5 |
Junior Member
Join Date: Aug 2001
Location: France
Posts: 1,385
|
Hi,
beautiful project. The hardware limitations as presented are very useful. I hope that you will succeed and overcome the difficulties to come to supplement the version of US Gold and... a version similar to that of the arcade cabinet. I played a lot in my teens and... i’m a brave black tiger myself (with only 1 credit of course) |
27 October 2021, 23:31 | #6 | |
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
You could sort the palette or protect certain colors before reducing the palette, which was cool. No worries on the player/character palettes. I'm tentatively thinking ~16 colors (tiles) + ~16 colors (enemies/player)... which might mean 32 colors (5 bitplanes) but I know there are some overlapping colors. I may also use sprites for the player character. |
|
28 October 2021, 06:31 | #7 |
Registered User
Join Date: Aug 2007
Location: Tasmania, Australia
Age: 39
Posts: 1,189
|
Hi chadderack! I think it's fantastic that you're working on a new port of Black Tiger, it's a great game and a shame the US Gold port didn't really shine on the Amiga. Your port would make a super entry into this year's AmiGameJam if you haven't considered it already (this year's theme being ports).
Since it's not really possible for your hard work on an unlicensed port to be re-compensated normally, I think prizes in a contest could help repay people like yourself for the effort you put in, so I hope we'll see your Black Tiger port in the contest. See https://itch.io/jam/amigamejam for more details. |
28 October 2021, 18:24 | #8 | |
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
.... Looking for some opinions on palette reductions. Ive decided it might be best to divide each level into sections where the palettes can vary. For instance, the dungeon, the regular level, and the wise man graphic (which is rendered in map tiles). For the regular level tiles in Level 1, I combined all of the elements into a single picture just to play with the palettes in Pro Motion and DeBabelizer. The unmodified source is all of the main color elements copy/pasted on to a single image so that all colors have a chance to be represented. It looks like this, and has 42 total colors If we decide that the dinosaur skull and the atomic-green bones can change colors and "share" colors with the rest of the level tiles, I've tried a couple of options. Converting the bones to the "blue wall" hues. 21 total colors: If we use the tan/red/greenish hues... 23 total colors: Keep in mind we can't really dither the colors into the final colors, because they have to be in the special set of RGB colors that reduce down to 4 bits per channel. Any thoughts or preferences? or better approaches? Thanks. |
|
28 October 2021, 18:30 | #9 |
Registered User
Join Date: Mar 2017
Location: London
Posts: 124
|
This is looking nice! I feel the second option feels a little more harmonious, but I'm not a coder, so no sure of the implications!
|
28 October 2021, 18:36 | #10 |
CaptainM68K-SPS France
|
ouch, now it becomes complicated. This will be the complicated part.
|
28 October 2021, 18:57 | #11 | ||
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
Quote:
Another option: leave the bones alone, and just modify the skull colors to match. 30 colors. 5 bitplanes still possible: Another approach is to swap palettes dynamically as the player reaches an area with different colors. For instance, maybe the green bones are only seen in a certain combination of X/Y map coordinates... so those colors are left out until the player reaches that area. |
||
28 October 2021, 19:18 | #12 | |
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
If we scroll that around (like a view finder) to spots where the most colors show up in the rectangle, we can grab the colors from the rectangle only and concentrate on palette reductions or palette changes for those areas. Then, in code, when we reach or leave those areas, we do the palette changes. Another option is to go grayscale and "re-color" all the pixels in the level using a 4096 color palette, trying to keep it under a max of 32 colors. Last edited by chadderack; 28 October 2021 at 20:43. |
|
29 October 2021, 01:35 | #13 |
Registered User
Join Date: Jun 2020
Location: Leeds, UK
Posts: 770
|
If you’re choosing between tan and greyblue for those bones I think tan makes a lot more sense considering you can climb on them.. against the grey background they need to stand out.
I really like the idea of a dynamic palette based on what’s on screen though, is that going to cause havoc for the enemies etc? Looking forward to seeing what solution you go with! |
29 October 2021, 02:40 | #14 | |
CaptainM68K-SPS France
|
Quote:
|
|
29 October 2021, 03:11 | #15 | |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,516
|
Quote:
I however would suggest some fixed color palette spots for enemy sprites |
|
29 October 2021, 03:37 | #16 |
Registered User
Join Date: May 2018
Location: Ireland
Posts: 672
|
I think this is overcomplicating things tbh and taking away from the work on the gameplay.
1. Get someone good at pixel art to support you/provide 16 colour background + enemies per level and 16 colour sprite for main character(shared or whatever) 2. Whoever is responsible for the gfx provide a tool chain for the Amiga gfx so if later changed to use copper or dynamic palette on scroll that this can be accomodated. Better just to use basic 16 colour per level for bg and enemies and 16 colour main character sprite + bullets and improve latter when everything else is working. |
29 October 2021, 04:38 | #17 |
Phone Homer
Join Date: Jun 2006
Location: 5150
Posts: 5,773
|
I definitely would find it hard/impossible to get down to 16 colour but I've seen some guys around here do some amazing stuff with 16 colours maybe they could pipe up.
|
29 October 2021, 10:35 | #18 | |
CaptainM68K-SPS France
|
Quote:
|
|
29 October 2021, 13:37 | #19 | |
Registered User
Join Date: Sep 2004
Location: Poland
Posts: 1,301
|
Quote:
Cut here to the max, cut there to the max, reduce here to the max... that's how games "not as good as for (write platfom here)" begin to appear. I'm not against OCS/ECS version, I'm for separate AGA version - that's just in case my opinion. |
|
29 October 2021, 14:03 | #20 | ||||||||
Registered User
Join Date: Jul 2021
Location: Sandy, UT
Age: 55
Posts: 230
|
Quote:
Quote:
Quote:
There will be a separate copper per level for sure... and a separate copper for the wise man's shop, the cutscenes, and the intro and end sequences. Dynamic Copper lists will be a good strategy. Quote:
Quote:
Quote:
Quote:
Quote:
... So I'm going to try the viewfinder/palette area option. So far, so good. The initial 3 screen areas in Level 1 have only 25 colors. I'm hoping 7 more colors gives enough colors (with color overlap) to put the orcs / firethrowers / pots / treasure chests / etc into the level at their full colors too. The Level 1 dungeon is only 25 colors as well. The wise man's shop is a special case... it could take all 32 color slots because no enemy will be on screen... and I can do a copper split for the selection box area. Gotta make sure the areas I'm looking at align properly with actual gameplay (that I'm not just moving the viewfinder into impossible or impractical positions). Level 1 has ~70 colors for just the maps... plus additional colors for enemies. If I can engineer it, there will be a handful of "palette areas" defined for L1 which all stay under the 32 color limit. ... There won't be a whole lot of code changes for a bit, for those who may be looking for source code updates. Need to get through some discovery phase stuff with palettes. Once there's a solution, I'm going to update the code to push 5 bitplanes and to use the new Amiga-specific map tiles. No ETA. |
||||||||
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[request] Not exactly an ST port.... Black Tiger Redux? | saimon69 | Amiga scene | 252 | 26 October 2021 18:39 |
Black Tiger | anata | project.Maptapper | 1 | 19 September 2013 07:24 |
Mace vs. Black Tiger | Kodoichi | Nostalgia & memories | 35 | 13 April 2011 13:32 |
Black Tiger | Uncle Micko | support.Games | 6 | 07 October 2007 03:13 |
Black Tiger NES | NfernalNfluence | Retrogaming General Discussion | 3 | 08 May 2007 15:48 |
|
|