![]() |
![]() |
#1 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Spelunker - Commodore 64
Creating C64 game maps couldn't be easier with Maptapper. Load game in Vice.
Go to debugger Type "bank ram" then dump all 64k of RAM to a file. Load in Maptapper. Select 1 bitplane 8x8 width for both bitplane and tiles. Find the tiles Find dimension of map To finish the job, the custom character data will need to be found and converted to Amiga to have color. The map as-is is plenty good enough to navigate the game though. |
![]() |
![]() |
#2 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,188
|
Very cool, the first C64 map! Are there any C64 experts out here that know how the big games like Turrican on the C64 store their data? Particularly how each 8x8 block stores the it's 4 colour entries?
|
![]() |
![]() |
#3 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
|
![]() |
![]() |
#4 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
In Color
Blitz2 utility for taking apart the C64 multicolor pixel pairs and putting them into a 2-plane Amiga bitmap.
Code:
WBStartup DEFTYPE.b r,g,b,ax,p1,p2 DEFTYPE.w c DEFTYPE.l bm,bm1,sz BitMap 0,320,256,2 ;***** tiles For j=0 To 3 ;***** create main game palette Read c r=c/256 AND 15:g=c/16 AND 15:b=c AND 15 PalRGB 0,j,r,g,b Next j Data.w $0000,$0f5f,$0c64,$000f InitCopList 0,44,256,$2,8,4,0 DisplayPalette 0,0 DisplayBitMap 0,0 BLITZ CreateDisplay 0 bm=Peek.l (Addr BitMap(0)+8) bm1=Peek.l (Addr BitMap(0)+12) If ReadFile (0,"1PlaneTiles.raw") = True FileInput 0 While NOT Eof (0) ax=Asc(Inkey$(1)) GetReg d6,ax MOVEQ #3,d3 loop: ASL.b #2,d4 ASL.b #2,d5 MOVE.b d6,d0 AND.b #%11,d0 CMP.b #%11,d0 BNE do01 OR.b #%11,d4 OR.b #%11,d5 do01: MOVE.b d6,d0 AND.b #%11,d0 CMP.b #%01,d0 BNE do10 OR.b #%11,d5 do10: MOVE.b d6,d0 AND.b #%11,d0 CMP.b #%10,d0 BNE do00 OR.b #%11,d4 do00: ROL.b #2,d6 DBF d3,loop ROL.b #2,d4 ROL.b #2,d5 PutReg d4,p1 PutReg d5,p2 Poke.b bm+sz,p1 Poke.b bm1+sz,p2 sz=sz+1 Wend CloseFile 0 EndIf MouseWait AMIGA SaveBitmap 0,"2Planes.iff",0 Last edited by clenched; 29 June 2013 at 23:33. Reason: This game is done. |
![]() |
![]() |
#5 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,188
|
![]()
I did a quick C64 format (8x8 pixel tiles with 1 plane, or 8x8 pixels with multicolour mode, doubling the pixels) as a test and managed to locate level 1 of Target Renegade. For anyone interested, it uses 8x8 tiles grouped as 4x4 to make 32x32 pixel blocks, then assembles these large blocks to make the levels.
This isn't 100% of course because C64 tiles have a custom colour for each one (cyan in the screenshot is the changable colour) and some tiles seem to toggle between normal and multi-colour mode (the arrows above the lift, and the phone boxes for example) - but I'm not sure exactly how games specify a colour for a particular tile. This current beta-C64 mode will be in the next update along with the grid (which has caused a few more problems than I had hoped!) |
![]() |
![]() |
#6 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Netherworld - Commodore 64
This thread turned up while searching for something to try new Maptapper C64 capabilities.
http://eab.abime.net/showthread.php?t=46399 Too late now to do laffer any good but still as good as any to try. Map is in the Zone. This will probably be the next Amiga game mapped too. Last edited by clenched; 07 December 2020 at 00:32. |
![]() |
![]() |
#7 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Some more goofing off with Maptapper and VICE. This map is Raid on Bungeling Bay.
EDIT: A PDF of ROBB materials has turned up. So the map has been reworked to approximate game's. All that is different is it's rotated left several screens and nudged up. This leaves the entire perimeter with a half screen of ocean. The small island at 80x was not to be found in the actual game. Last edited by clenched; 14 July 2017 at 18:45. Reason: touch up map |
![]() |
![]() |
#8 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Garfield: Winter's Tail - Commodore 64
This post is inspired by a thread a while back where Amiga version was giving another EAB member fits. This one is a little more complicated than average so I will attempt to walk it through.
1 - First load the RAM dump in Maptapper. Tile Ripper tab / Address working downward fill in these, $c800,8,8,2,0,240,64,C64. Also select C64 palette. This produces the 8x8 pixel tiles seen upper right. 2 - Map Ripper tab / Address working downward fill in these,$3d00,3,174,0,0,Byte, Horizontal. This mini map transforms nine small tiles into one 24x24 pixel super tile (the long thin strips seen). Those are the basis for the main map. Also set actual tile size to 24x24 at bottom. 3 - Finally Map2 tab / Address working downward fill in these,$4000,256,128,0,0,Byte,Horizontal. An instantly recognizable map apppears. Fiddle with palette to brighten the snow and a flaw is revealed. Some graphics are missing. Tires, trophy cup to name a few. Mouse over affected area while monitoring the status bar. Some tile numbers are too high for the amount of tiles created. So change Mask to $3f and all the graphics are there. Rather than paint this whole map just paint the tile sheet and rebuild map. I believe the upper bits are used to signal a color change. Just the map alone consumes half of the C64's memory. EDIT: Water was painted wrong on the first map. It was mistakenly assumed all tiles were multicolor. Now three map strips show. 4-color, 2-color, and both merged/painted. The fringe colors are visible in the multicolor strip even if the original map wasn't kept. A little bonus: Garfield lifts the chocolate footprints on contact so the game was interrupted before that has a chance to happen. Way up NW where level starts, the missing footprint is there. Last edited by clenched; 18 July 2017 at 19:37. Reason: touch up map |
![]() |
![]() |
#9 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Road Runner [and Wile E. Coyote] - Commodore 64
C64 sprites are easy compared to Amiga:
- Only 64k to search - Always the same size - Always start on 64 byte boundary - Live on only 1 "plane" Maptapper settings: Code:
[Gfx] Address=$5000 PaletteAddress=$0 TileWidth=24 TileHeight=21 Bitplanes=1 SkipBytes=1 *** because sprites are 63 bytes but begin every 64th SkipMode=0 RipWidth=336 RipHeight=294 Code:
WBStartup Dim p0.w(15) blk=$0: whi=$1: xred=$2: cyn=$3: pur=$4: grn=$5: blu=$6: yel=$7 org=$8: brn=$9: lred=$a: dgry=$b: mgry=$c: lgrn=$d: lblu=$e: lgry=$f .params ;**************** LoadBank 0,"dh1:ram" ; 64k C64 memory dump f$="dh1:sprites.iff" ; file to save Poke.l ?offs,$5000 ; hex = sprites offset Poke.b ?m,1 ; <>0 = multicolor Poke.b ?rip,192 ; how many sprites (14^2 max) Poke.b ?idx+0,mgry ; background color Poke.b ?idx+1,brn ; sprite color Poke.b ?idx+2,yel ; multicolor 0 Poke.b ?idx+3,blk ; multicolor 1 ;**************** BitMap 0,336,294,4 ; width divisible by 24 and 16 ; ~ C64 Palette Data.w $000,$fff,$e44,$6ff,$e6e,$4e4,$44e,$ff4 Data.w $ea4,$a75,$faa,$555,$999,$afa,$aaf,$ccc For j=0 To 15 Read p0(j):c=p0.w(j) r=c/256 AND 15:g=c/16 AND 15:b=c AND 15 PalRGB 0,j,r,g,b Next j InitBank 1,512,1 ;expand 504 bits to bytes (0-3) color index Poke.l ?bm0,Peek.l (Addr BitMap(0)+8) Poke.l ?ptr0,Peek.l (Addr Bank(0)) Poke.l ?ptr1,Peek.l (Addr Bank(1)) InitCopList 0,44,256,$4,8,16,0 DisplayAdjust 0,2,-8,0,-16,0 ;***** overscan for extra column DisplayPalette 0,0 DisplayBitMap 0,0 BLITZ CreateDisplay 0 MOVEM.l d0-d7/a0-a6,-(a7) CLR.w col MOVE.l offs,d0 ADD.l d0,ptr0 row: MOVE.b m,d4 MOVE.l bm0,d5 MOVE.l ptr0,a0 MOVE.l ptr1,a1 MOVE.l a1,a3 MOVEQ #62,d1 m1: MOVE.b (a0)+,d0 MOVEQ #7,d2 TST.b d4 ; multicolor ? BEQ m2 MOVEQ #3,d2 m2: MOVEQ #0,d3 LSL.b #1,d0 BCC m3 OR.b #%01,d3 m3: TST.b d4 BEQ m5 LSL.b #1,d0 BCC m4 OR.b #%10,d3 m4: MOVE.b d3,(a1)+ m5: MOVE.b d3,(a1)+ DBF d2,m2 DBF d1,m1 MOVE.l a3,a0 MOVE.l d5,a1 LEA 12348(a1),a2 LEA 12348(a2),a3 LEA 12348(a3),a4 MOVE.l #idx,a5 CLR.w d0 MOVEQ #20,d7 l0: MOVEQ #2,d5 l1: MOVEQ #7,d6 ; pull 8 pixels CLR.B d1 CLR.B d2 CLR.B d3 CLR.B d4 l2: MOVE.b (a0)+,d0 MOVE.b 0(a5,d0.w),d0 l3: LSR.b #1,d0 BCC l4 BSET d6,d1 l4: LSR.b #1,d0 BCC l5 BSET d6,d2 l5: LSR.b #1,d0 BCC l6 BSET d6,d3 l6: LSR.b #1,d0 BCC l7 BSET d6,d4 l7: DBF d6,l2 MOVE.b d1,(a1)+ MOVE.b d2,(a2)+ MOVE.b d3,(a3)+ MOVE.b d4,(a4)+ DBF d5,l1 LEA 39(a1),a1 ; new sprite line LEA 39(a2),a2 LEA 39(a3),a3 LEA 39(a4),a4 DBF d7,l0 SUB.b #1,rip BEQ all ADDI.l #$40,ptr0 ADDQ.l #3,bm0 ADDQ.w #1,col CMPI.w #14,col BNE row CLR.w col ADDI.l #840,bm0 ; new sprite row BRA row bm0: Dc.l 0 ptr0: Dc.l 0 ptr1: Dc.l 0 idx: Dc.l 0 col: Dc.w 0 rip: Dc.w 0 m: Dc.w 0 offs: Dc.l 0 all: MOVEM.l (a7)+,d0-d7/a0-a6 MouseWait AMIGA SaveBitmap 0,f$,0 Last edited by clenched; 25 April 2019 at 02:44. Reason: Touch up sprite sheet. Top row #7, Bottom row #5 not encountered for correct painting. |
![]() |
![]() |
#10 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
BoneCruncher - Commodore 64
Commodore 64 "BoneCruncher" maps Zoned! Sample is map 11 of 22. Yellow V denotes a glook volcano.
Last edited by clenched; 21 January 2020 at 14:07. Reason: Touch up attachment & Zoned! maps. |
![]() |
![]() |
#11 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Starquake - Commodore 64
A byproduct of working on Galahad's conversion.
Last edited by clenched; 17 February 2020 at 10:24. Reason: rework/reupload map |
![]() |
![]() |
#12 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Curse of Babylon - Commodore 64
My latest ever C64 game purchase. I think C64 was the only western machine this Japanese game made it to. The goal is to defeat Pretaurious (bottom) and seal the Underworld. A legend lists useful pickups and persons.
|
![]() |
![]() |
#13 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Jim Butterfield's CBM pentomino puzzle solver to CoCo
After a month of rigorous testing of phx's brand new 6809 vasm back end, here is some CoCo entertainment. This is a 6502 to 6809 translation of Jim Butterfield's pentomino puzzle solver.
Once savestate is loaded Dream emulator is running, cassette will have already been loaded. There are 2 choices. EXEC12288 optional EXEC12288,<0-7> pause while solution shows Uses letters to represent pieces. EXEC12293 same delay arg Invokes mode where color blocks are used. The CoCo hasn't enough colors for all 12 pieces so a few graphic blocks are substituted. Also, this mode will filter reflection, flips, and both from tally i.e. one fourth the solutions. For speed run/stop is moved out of the main loop. During a solution display press Q to quit. Another special version spooled each solution to cassette tape. Maptapper was then used to make the picture. Last edited by clenched; 22 August 2020 at 20:32. Reason: fix optional EXEC typo |
![]() |
![]() |
#14 |
I Identify as an Ewok
Join Date: Jul 2001
Location: North Lincolnshire
Age: 45
Posts: 2,357
|
Hi Clenched. Would you be able to do maps for Scumball and Count Duckula??
![]() |
![]() |
![]() |
#15 | |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Count Duckula - Commodore 64
Quote:
http://hol.abime.net/3103 |
|
![]() |
![]() |
#16 | |
I Identify as an Ewok
Join Date: Jul 2001
Location: North Lincolnshire
Age: 45
Posts: 2,357
|
Quote:
![]() |
|
![]() |
![]() |
#17 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Scumball - Commodore 64
The zip is a QBasic 16-bit tool to transform the location into XY coordinates. At the very top location 0 player drops down 1 screen. Since the map is 9 screens wide, I would expect to see location increase by 9. Instead it is only 4. Only occupied cells are counted L to R, T to B until location is reached. That is an annoying process.
EDIT: Dump program in favor of list. Code:
L L L L ======================================================== 0 X=3 Y=0 32 X=3 Y= 9 64 X=7 Y=19 96 X=6 Y=25 1 X=0 Y=1 33 X=4 Y= 9 65 X=8 Y=19 97 X=7 Y=25 2 X=1 Y=1 34 X=1 Y=10 66 X=4 Y=20 98 X=0 Y=26 3 X=2 Y=1 35 X=2 Y=10 67 X=7 Y=20 99 X=2 Y=26 4 X=3 Y=1 36 X=0 Y=11 68 X=8 Y=20 100 X=4 Y=26 5 X=4 Y=1 37 X=1 Y=11 69 X=4 Y=21 101 X=7 Y=26 6 X=5 Y=1 38 X=1 Y=12 70 X=7 Y=21 102 X=0 Y=27 7 X=6 Y=1 39 X=2 Y=12 71 X=8 Y=21 103 X=1 Y=27 8 X=0 Y=2 40 X=0 Y=13 72 X=0 Y=22 104 X=2 Y=27 9 X=2 Y=2 41 X=1 Y=13 73 X=1 Y=22 105 X=4 Y=27 10 X=4 Y=2 42 X=1 Y=14 74 X=2 Y=22 106 X=5 Y=27 11 X=0 Y=3 43 X=2 Y=14 75 X=4 Y=22 107 X=6 Y=27 12 X=1 Y=3 44 X=1 Y=15 76 X=6 Y=22 108 X=7 Y=27 13 X=2 Y=3 45 X=1 Y=16 77 X=7 Y=22 109 X=0 Y=28 14 X=4 Y=3 46 X=4 Y=16 78 X=8 Y=22 110 X=1 Y=28 15 X=0 Y=4 47 X=5 Y=16 79 X=0 Y=23 111 X=2 Y=28 16 X=2 Y=4 48 X=6 Y=16 80 X=1 Y=23 112 X=3 Y=28 17 X=3 Y=4 49 X=7 Y=16 81 X=2 Y=23 113 X=4 Y=28 18 X=4 Y=4 50 X=1 Y=17 82 X=4 Y=23 114 X=6 Y=28 19 X=0 Y=5 51 X=4 Y=17 83 X=5 Y=23 115 X=0 Y=29 20 X=1 Y=5 52 X=6 Y=17 84 X=6 Y=23 116 X=2 Y=29 21 X=2 Y=5 53 X=7 Y=17 85 X=7 Y=23 117 X=4 Y=29 22 X=3 Y=5 54 X=8 Y=17 86 X=8 Y=23 118 X=6 Y=29 23 X=1 Y=6 55 X=1 Y=18 87 X=0 Y=24 119 X=7 Y=29 24 X=2 Y=6 56 X=4 Y=18 88 X=2 Y=24 120 X=8 Y=29 25 X=3 Y=6 57 X=5 Y=18 89 X=4 Y=24 121 X=0 Y=30 26 X=2 Y=7 58 X=6 Y=18 90 X=7 Y=24 122 X=1 Y=30 27 X=3 Y=7 59 X=7 Y=18 91 X=0 Y=25 123 X=2 Y=30 28 X=1 Y=8 60 X=1 Y=19 92 X=1 Y=25 124 X=4 Y=30 29 X=2 Y=8 61 X=2 Y=19 93 X=2 Y=25 125 X=6 Y=30 30 X=3 Y=8 62 X=3 Y=19 94 X=4 Y=25 126 X=0 Y=31 31 X=1 Y=9 63 X=4 Y=19 95 X=5 Y=25 127 X=1 Y=31 Last edited by clenched; 16 August 2020 at 10:35. Reason: Needed a little more work; repair loc. 1 |
![]() |
![]() |
#18 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Nobby the Aardvark - Commodore 64
Differences compared to unreleased Amiga version:
1. level 1 - C64 hand operated car v locomotive 2. "well" is deeper on C64. Tough due to O2 time limit 3. Atlantis 340 BC - C64 side scroll v first person. 4. Maze - Amiga lacks key needed to complete this level ![]() Atlantis 340 BC (Not Atlantis City) Amiga The rest is pretty much the same for Amiga levels that work. |
![]() |
![]() |
#19 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Finishing Target Renegade - Commodore 64
This ini file is sufficient to reproduce Image6.
Code:
[File] GfxFileName=C:\ram GfxTilesFileName= ChipMemoryOffset=$0 [General] Original=$E9A282 [Gfx] Address=$4800 PaletteAddress=$0 TileWidth=8 TileHeight=8 Bitplanes=2 SkipBytes=0 SkipMode=0 RipWidth=320 RipHeight=256 Mode=4 MaskBefore=0 MaskAfter=0 ActualTileSize=Same as tiles CopperlistStopYPos=$80 TilesPerBlockAcross=1 TilesPerBlockDown=1 TilesPerBlockDirection=0 TilesPerBlockSize=Same as tiles Rearrange=0 UseLoadedTiles=0 [Map] FileName= Address=$B000 WidthInTiles=4 HeightInTiles=1024 MemoryType=0 Direction=0 Mask=$ffff Shift=0 ScaleMode=0 TrimTiles=0 SkipBytes=0 FlipYMask=$0 FlipXMask=$0 FlipYMaskEnabled=0 FlipXMaskEnabled=0 ReplaceCount=0 Adjust=0 TilesPerBlockAcross=1 TilesPerBlockDown=1 TilesPerBlockDirection=0 ActualTileSize=32 x 32 CustomGame= UseLoadedMap=0 [Map2] FileName= Address=$31A8 WidthInTiles=30 HeightInTiles=20 MemoryType=0 Direction=1 Mask=$ff Shift=0 ScaleMode=1 TrimTiles=0 SkipBytes=0 FlipYMask=$0 FlipXMask=$0 FlipYMaskEnabled=0 FlipXMaskEnabled=0 ReplaceCount=0 Adjust=0 TilesPerBlockAcross=1 TilesPerBlockDown=1 TilesPerBlockDirection=0 CustomGame= [Search] FileName= IndexCount=0 [Palette] (Image8) VASM macro will fashion array of bytes VERTICALLY and update tiles within yellow rectangle without disturbing surrounding tiles. Code:
map set $3284 tile set $7a+0*32 rept 8 org map byte tile byte tile+8 byte tile+16 byte tile+24 map set map+20 tile set tile+1 endr EDIT: Some map additions. Tile sheets added to take advantage of excess space. Level 4 extended. This level starts just right of the newly visible pole. It's not possible to go left. Since manual describes this as a mall and the new section looks like an escalator, it was put back. Correct offsets must be used for tile sheets to be useful. For example level 1 offset is -122 because no unnecessary tiles before 122 were made. Last edited by clenched; 03 December 2020 at 18:36. |
![]() |
![]() |
#20 |
Registered User
Join Date: Sep 2008
Location: Gainesville U.S.A.
Posts: 771
|
Map grab bag (11 games) - Commodore 64
Attachment is scaled down to ΒΌ size.
Full size map on EAB file server. ftp://ftp:any@grandis.nu/~Uploads/cl...C64GrabBag.png Maps include top to bottom, left to right: Vampire's Empire Neighbours Steel Joe Blade New York City Wiz Whistler's Brother Fort Apocalypse Gordian Tomb Realm of Impossibility Indiana Jones and the Temple of Doom |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Commodore OS | zeke1312 | support.Other | 1 | 29 March 2013 11:38 |
Commodore 16 plus/4 | ShanePelican | support.OtherUAE | 4 | 06 March 2013 21:27 |
Wanted Commodore Amiga CD32 and Commodore CDTV | j_sntos | MarketPlace | 4 | 09 March 2012 14:18 |
Commodore One! | Incomparabile | Retrogaming General Discussion | 25 | 22 January 2003 01:18 |
Spelunker and Co. | Fred the Fop | Nostalgia & memories | 12 | 23 September 2002 17:28 |
|
|