-
Content Count
61 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by fantômas
-
Thanks to Dmx! A few hints for map makers: 1/ Graphics Antic mode 5 Up to 3 DLI per map, changing COLBK COLPF2 COLPF1 COLPF0 COLPF3 stays black because of the Ninja. 2/ How actors interact with map A/ By colors Thanks to collision detection registers, Bruce Lee can not cross the walls. The black PF3 color stops the actors. I suppose this is the same for the floor? Have to verify. B/ By contents If actor hits certain tiles, things happen. For example, characters 0x82,0x83,0x84 and 0x85 allow actor to exit the map.
-
Thanks José, I learned something!
-
I use the Courier New font. If you look in the tables of colors, you'll see that COLPF3 is 0, that is black... MapColor0: ; COLBK COLPF3 COLPF2 COLPF1 COLPF0 .byte $04 ,$00 ,$06 ,$88 ,$0E .byte $04 ,$00 ,$0A ,$0E ,$34 .byte $06 ,$00 ,$0A ,$0E ,$34 .byte $04 ,$00 ,$0A ,$0E ,$34 MapColor1: ; COLBK COLPF3 COLPF2 COLPF1 COLPF0 .byte $84 ,$00 ,$70 ,$0E ,$60 MapColor2: ; COLBK COLPF3 COLPF2 COLPF1 COLPF0 .byte $34 ,$00 ,$32 ,$0E ,$40 MapColor3: ; COLBK COLPF3 COLPF2 COLPF1 COLPF0 .byte $74 ,$00 ,$0E ,$04 ,$88 .byte $08 ,$00 ,$0E ,$04 ,$88 .byte $08 ,$00 ,$2C ,$04 ,$88
-
You're right, I missed that hidden code when I decoded data. L3E3E ldx #$05 L3E40 lda $CFFA,X cmp $FFFA,X bne L3E62 dex L3E49 bpl L3E40 ldx #$14 L3E4D lda MapDataLo,X sta $13 lda MapDataHi,X L3E55 sta $14 dec $14 ldy #$FF lda #$7F sta ($13),Y dex bne L3E4D L3E62 rts Like you, I thing that this is some king of protection that corrupts the maps in certain circumstances , eg a special cartridge connected? DecodeMap : The lines of the maps are 40 bytes long, but the display is in antic mode 'Wide playfield' (48 bytes per lines), so eight $86 (4 left, 4 right) are inserted for each line during the decoding. Why $86? I don't know... Lamp table: Look at L2AC2: L2AC2: dey dey dey lda #$00 sta (DSKFMS+1),Y ;And store 0, for a removed lamp rts
-
Great job!! I merged the SourceForce version and mine . Produces the same Xex than the SourceForge file. Big big file included. Time to split src? And how can we share the work? Edit: wrong file. fixed. incbin.zip BruceLeeData.asm
-
Hi. Not much time so just a little progress. $3d50 > $73ff source code (only data here, easier ) PS: I can change the labels resources.zip data.asm
-
I think so. You and Dmx did a great job. I now have some knowledge that I can share. We need to start with a "good binary" as dmx call it, its source code. I wrote some code to extract data from the Xex that I can share.... Maybe other people will be interested in this work and will want to participate. Because the A8 now have two versions of Bruce Lee less than the C64, we can not fail! I now have some knowledge that I can share
-
In fact is an automatic refactoring . So far, from tables in the xex, I extract src code for rooms (levels) PMs sounds fonts lanterns I do prefer read code like: room_0 ins 'room-0.rle' or sound_0 ;AUDFx,AUDCx dta $4C,$64 dta $4C,$86 or spr_117 dta 32 ;.....#.. dta 56 ;...###.. than L3C44: .byte $C5,$C6,$A0,$B0,$C5,$C1,$A0,$F5,$F6,$F7,$A0,$BE,$BF,$18,$A0,$F2 .byte $02,$A0,$B1,$B6,$A0,$20,$62,$CF,$D0,$D4,$C9 You're right. I will try to understand and fix this.
-
By the way, I've made a refactoring of some part of the src to visualize the "118 PMs". Guess who is the first : org $3D67 spr_1 dta 000 ;........ dta 000 ;........ dta 000 ;........ dta 128 ;.......# dta 140 ;..##...# dta 156 ;..###..# dta 144 ;....#..# dta 156 ;..###..# dta 156 ;..###..# dta 152 ;...##..# dta 188 ;..####.# dta 190 ;.#####.# dta 254 ;.####### dta 254 ;.####### dta 189 ;#.####.# dta 153 ;#..##..# dta 188 ;..####.# dta 060 ;..####.. dta 038 ;.##..#.. dta 098 ;.#...##. dta 066 ;.#....#. dta 195 ;##....## sprites.asm
-
Do what you want. It is just a POC. The export to Tiled shows that the explanation is correct, but to be honest, i'm not sure that Tiled is the best level editor for A8. Thanks to DLIs, a blue and / or green tile in line 2 can be red and / or yellow in line 7. For a correct display in Tiled, this makes it necessary to create two different tiles ... But that makes the creation of new level more difficult ..... A specific editor would be better... Perhaps.... Is there any progress in the reversing? Should not we centralize all these efforts?
-
Very interesting! As participation, I propose a somewhat technical explanation to extract the levels (rooms) of the source code. Each of the twenty rooms is rle encoded. The table is here: org $3F2B room_rle_table_low dta <room_0,<room_1,<room_2,<room_3,<room_4,<room_5,<room_6,<room_7, <room_8,<room_9,<room_10,<room_11,<room_12,<room_13,<room_14,<room_15, <room_16,<room_17,<room_18,<room_19,<room_20 org $3F40 room_rle_table_high dta >room_0,>room_1,>room_2,>room_3,>room_4,>room_5,>room_6,>room_7,dta >room_8,>room_9,>room_10,>room_11,>room_12,>room_13,>room_14,>room_15,>room_16,>room_17,>room_18,>room_19,>room_20 Three fonts are used (font_0: $6800-$6BFF,font_1: $6C00-$6FFF and font_2 $7000-$73FF), and a table indicates the font used for each room: org $3F17 dta >font_0,>font_0,>font_0,>font_0 >font_0,>font_0,>font_0,>font_0, >font_0,>font_0,>font_1,>font_1 >font_1,>font_1,>font_1,>font_1,>font_1,>font_1,>font_2,>font_1 Colors are stored for each room here org $3E8B dta a($3EB3),a($3EB3),a($3EB3),a($3EB3),a($3EC7),a($3EC7),a($3EC7),a($3ECC) ; dta a($3ECC),a($3ECC),a($3ED1),a($3EE0),a($3ED1),a($3EE5),a($3ED1),a($3EEF) ; dta a($3ED1),a($3EFE),a($3F08),a($3F0D) Example of detailed colors for a room ( 5 initial colors + 3 DLIs Max per room*5 colors= 20 bytes maximum ) org $3EB3 dta $04,$00,$06,$88,$0E; INIT: COLBK COLPF3 COLPF2 COLPF1 COLPF0 dta $04,$00,$0A,$0E,$34; DLI0: COLBK COLPF3 COLPF2 COLPF1 COLPF0 dta $06,$00,$0A,$0E,$34; DLI1: COLBK COLPF3 COLPF2 COLPF1 COLPF0 dta $04,$00,$0A,$0E,$34; DLI2: COLBK COLPF3 COLPF2 COLPF1 COLPF0 and finaly, DLIs for each rooms are here: $0F38 dta l(MKINT_ROOM00),l(MKINT_ROOM01),l(MKINT_ROOM02),l(MKINT_ROOM03),.... $0F4C dta h(MKINT_ROOM00),h(MKINT_ROOM01),... with ; line number A9876543210 MKINT_ROOM00 equ %000001000010100 ; I at line 2 / 4 / 9 MKINT_ROOM01 equ %000001000010100 ; I at line 2 / 4 / 9 MKINT_ROOM02 equ %000001000010100 ; I at line 2 / 4 / 9 MKINT_ROOM03 equ %000001000010010 ; I at line 1 / 4 / 9 MKINT_ROOM04 equ %000000000000000 ; MKINT_ROOM05 equ %000000000000000 ; MKINT_ROOM06 equ %000000000000000 ; MKINT_ROOM07 equ %000000000000000 ; MKINT_ROOM08 equ %000000000000000 ; MKINT_ROOM09 equ %000000000000000 ; MKINT_ROOM10 equ %000000000000001 ; I at line 0 MKINT_ROOM11 equ %000000000000000 ; MKINT_ROOM12 equ %000000000000001 ; I at line 0 MKINT_ROOM13 equ %000000000100000 ; I at line 5 MKINT_ROOM14 equ %000000000000001 ; I at line 0 MKINT_ROOM15 equ %000001011000000 ; I at line 6 / 7 / 9 MKINT_ROOM16 equ %000000001000001 ; I at line 0 / 6 MKINT_ROOM17 equ %000000000000001 ; I at line 0 MKINT_ROOM18 equ %000000000000000 ; MKINT_ROOM19 equ %000000001000000 ; I at line 6 From this information, I wrote a small program that extracts the levels to the 2D level editor Tiled (src code included) The 20 Rooms in Tiled format are provided in attachement. brucelee-tiled.zip extract-rooms-src.zip
