English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   project.Maptapper (http://eab.abime.net/forumdisplay.php?f=123)
-   -   Spelunker - Commodore 64 (http://eab.abime.net/showthread.php?t=69821)

clenched 29 June 2013 00:33

Spelunker - Commodore 64
1 Attachment(s)
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.

Codetapper 29 June 2013 01:11

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?

kamelito 29 June 2013 01:18

No but this could help.


clenched 29 June 2013 10:48

In Color
2 Attachment(s)
Blitz2 utility for taking apart the C64 multicolor pixel pairs and putting them into a 2-plane Amiga bitmap.

 DEFTYPE.b r,g,b,ax,p1,p2
 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
 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)
  GetReg  d6,ax
  MOVEQ #3,d3
  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
  MOVE.b d6,d0
  AND.b #%11,d0
  CMP.b #%01,d0
  BNE do10
  OR.b #%11,d5
  MOVE.b d6,d0
  AND.b #%11,d0
  CMP.b #%10,d0
  BNE  do00
  OR.b #%11,d4
  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
 CloseFile 0
SaveBitmap 0,"2Planes.iff",0

Codetapper 07 July 2013 23:50

Target Renegade C64
1 Attachment(s)
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!)

clenched 09 October 2013 01:10

Netherworld - Commodore 64
This thread turned up while searching for something to try new Maptapper C64 capabilities.
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.

clenched 13 July 2017 19:23

2 Attachment(s)
Some more goofing off with Maptapper and VICE. This map is Raid on Bungeling Bay.

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.

clenched 15 July 2017 22:02

Garfield: Winter's Tail - Commodore 64
1 Attachment(s)
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.

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.

clenched 15 April 2019 14:20

Road Runner [and Wile E. Coyote] - Commodore 64
1 Attachment(s)
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:

SkipBytes=1      *** because sprites are 63 bytes but begin every 64th

Bottom left is what Maptapper produces. The stripes indicate these are multicolor so they need further processing. Here is a Blitz program to do that. Parameters to be filled in are between asterisks. Difference between sheet 2 and 3 is idx(1) value. An advanced paint program can make multiple selections and paste them on the opposite one. Also these iffs are 4 planes so they have a full C64 palette. (as close as 12-bit could get). Finally the painted sheet and another to show the palette.

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
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
CreateDisplay 0
  MOVEM.l d0-d7/a0-a6,-(a7)
  CLR.w col
  MOVE.l offs,d0
  ADD.l d0,ptr0
  MOVE.b m,d4
  MOVE.l bm0,d5
  MOVE.l ptr0,a0
  MOVE.l ptr1,a1
  MOVE.l a1,a3
  MOVEQ #62,d1
  MOVE.b (a0)+,d0
  MOVEQ #7,d2
  TST.b d4          ; multicolor ?
  BEQ m2
  MOVEQ #3,d2
  MOVEQ #0,d3
  LSL.b #1,d0
  BCC m3
  OR.b #%01,d3
  TST.b d4
  BEQ m5
  LSL.b #1,d0
  BCC m4
  OR.b #%10,d3
  MOVE.b d3,(a1)+
  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
  MOVEQ #2,d5
  MOVEQ  #7,d6      ; pull 8 pixels
  CLR.B d1
  CLR.B d2
  CLR.B d3
  CLR.B d4
  MOVE.b  (a0)+,d0
  MOVE.b 0(a5,d0.w),d0
  LSR.b #1,d0
  BCC l4
  BSET  d6,d1
  LSR.b #1,d0
  BCC l5
  BSET  d6,d2
  LSR.b #1,d0
  BCC l6
  BSET  d6,d3
  LSR.b #1,d0
  BCC l7
  BSET  d6,d4
  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
  MOVEM.l (a7)+,d0-d7/a0-a6
SaveBitmap 0,f$,0

clenched 20 January 2020 16:15

BoneCruncher - Commodore 64
1 Attachment(s)
Commodore 64 "BoneCruncher" maps Zoned! Sample is map 11 of 22. Yellow V denotes a glook volcano.

clenched 16 February 2020 17:45

Starquake - Commodore 64
1 Attachment(s)
A byproduct of working on Galahad's conversion.

clenched 09 May 2020 23:12

Curse of Babylon - Commodore 64
1 Attachment(s)
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.

clenched 02 August 2020 21:44

Jim Butterfield's CBM pentomino puzzle solver to CoCo
2 Attachment(s)
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.

Steve 02 August 2020 23:17

Hi Clenched. Would you be able to do maps for Scumball and Count Duckula?? :)

clenched 03 August 2020 10:46

Count Duckula - Commodore 64
1 Attachment(s)

Originally Posted by Steve (Post 1418007)
Hi Clenched. Would you be able to do maps for Scumball and Count Duckula?? :)

Also a new one for Amiga.

Steve 03 August 2020 21:40


Originally Posted by clenched (Post 1418066)
Also a new one for Amiga.

Thanks. :great

clenched 05 August 2020 11:21

Scumball - Commodore 64
1 Attachment(s)
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.

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

clenched 30 September 2020 22:42

Nobby the Aardvark - Commodore 64
1 Attachment(s)
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.

clenched 22 October 2020 07:22

Finishing Target Renegade - Commodore 64
3 Attachment(s)
This ini file is sufficient to reproduce Image6.

ActualTileSize=Same as tiles
TilesPerBlockSize=Same as tiles
ActualTileSize=32 x 32

Thanks to the previous synopsis it's pretty easy to get a basic map. It's not necessary to deal with color or multicolor. The 64 knows what to do. Go about one screen into map and replace existing index with ordered index. Notice Min/Max 7A/A6? Only 45 tiles for this level need to be made.

(Image8) VASM macro will fashion array of bytes VERTICALLY and update tiles within yellow rectangle without disturbing surrounding tiles.


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

Cut and paste that area as many times as needed to assemble a new tile sheet (then map) in full color.

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.

clenched 07 December 2020 20:48

Map grab bag (11 games) - Commodore 64
1 Attachment(s)
Attachment is scaled down to ΒΌ size.
Full size map on EAB file server.

Maps include top to bottom, left to right:
Vampire's Empire
Joe Blade
New York City
Whistler's Brother
Fort Apocalypse
Gordian Tomb
Realm of Impossibility
Indiana Jones and the Temple of Doom

All times are GMT +2. The time now is 15:16.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.

Page generated in 0.05417 seconds with 11 queries