Talk:Kart Fighter
|
|
Contents
Some type of assembler is in the rom
It starts at 0x5850 in the rom.--KillerLasagna 18:07, 25 July 2013 (EDT)
I've gone and manually found most of it. It's ugly -- just use a reasonable text editor and hunt for "sta" and "lda"
Here's a hint that there was a demo mode (I haven't encountered it, if there really is):
( ASCII-stripped source at http://pastie.org/9548210 )
; ;;;-------------------- SET DEMO FLAG AND COMPUTER FIGHTER. ; ldÿÿ 01 ; sta demo_fg ; lda demo_ptr ; and #$07 ; tay ; lda d_fighter,y ; sta _Naÿÿ lda d_fighter+1,y ; sta _Name+1 ;;; set computer player. ; inc demo_ptr ; rts ;d_fighter: ; ÿÿ $83,$82,$84,$85,$86,$87,$88,$85,$81
GAMEOVR
the second line of the GAMEOVR font seems to say something like "TIME UP" --12Me21 (talk) 20:43, 5 September 2014 (EDT)
found this with notepad++
Whilst poking around the ROM with notepad, I found the following between lines 108 and 385. Not sure what to make of it. (p.s. i'm sorry if the markup makes it look like crap, but i'm a bit rusty at the moment)
lda (r0),y sta Chreg4 �¥ÐM � 0§ÐMy sta Chreg5 rts ;;-------------------------------------- ;;- SetIpval: ;;- inpm§ÐM cc� ˜©ÐMress. ;;- r0 = $2002. ;;--------------------------------------
SetIpval:
asl a tax
�ªÐM � ¬ÐM #$00
lda (r0),y ;;; lda $2002. ldy #$04 lda Ip_code asl a asl =¬ÐM � ÜÐÐM ;;; Ip_code * 4. clc ;;; (Ip_code*4)+pat_address adc pat_address+1,x ;;; lo. sta �ÑÐMÿÿ h®ÐM #$00 adc pat_address,x ;;; hi. sta (r0),y ;;; store $2006 hi. lda r2 sta¥®ÐM r0� аÐM ;;; store $2006 lo. iny ;;;----- read ip_val. lda (r0),y lda (r0),y sta J±ÐM un� 8³ÐM ;;; set irq. lda (r0),y sta col_ndx ;;; set color. lda (r0),y ,´ÐM � µÐM ;;; set music. lda #$00 sta col_msk sta fade_cnt ;;; initial fade.�¶ÐM � �¸ÐM ;;-------------------------------------- ;;- Setcheckcode: ;;- input : Acc pat address. ;;- ¿¸ÐM � pºÐM2002. ;;--------------------------------------
Setcheckcode:
asl a tax ldy #$00 ldd»ÐM (r� ؼÐM ;;; lda $2002. iny iny lda Ip_code asl a asl a ;;; Ip_code R½ÐM � @¿ÐMc adc pat_address+1,x ;;; lo sta (r0),y lda #$00 adc pat_address,x ;;; (Ip_code*4)º¿ÐM dd� ¨ÁÐM sta (r0),y ;;; store $2006 iny ;;;----- read ip_val. lda (r0),y sta _"ÂÐM � �ÄÐM ;;; set irq. lda (r0),y sta col_ndx ;;; set color. lda (r0),y staMÄÐM Mu� ;;; set music. rts
- ==============================================================================
- = BacktÿÿC3 ck to set c3.
- = r0=$2002.
- ==============================================================================
Backto_C3:
lÿÿ $00 lda (r0),y ;;; lda $2002 ldy #$04 lda pat_address+4 sta (r0),y ;;; stoÿÿ $ hi. lda pat_address+5 sta (r0),y ;;; store $2006 lo. iny lda (r0),y ;;; RESETÿÿ20 xÆÐMb. ;;; ldx #$00
?c10 lda (r0),y ;;; read $2007 c3 sub.
cmp #$ff beqµÆÐM c0� sta _DBuffer,x ;;; store c1 sub to ram. inx bne ?c10
?c00 ;;;==================== seting over.ÿÿ àÈÐMa (r0),y ;;; jmp to ram c1 sub.
sta a0 ;;; lo lda (r0),y pha �ÉÐM � HËÐM; hi lda a0 pha ;;; lo rts
- =====================================================…ËÐM ==� °ÍÐM========
- = PAT ROM DATA
- PAT ROM ADDRESS.
- = SEG3_$3E8 BANK_VAL TABLE. ($0E48).
- = íÍÐM EG� �ÐÐMP_VAL TABLE. ($1170).
- = SEG5_$268 C3_SUB (RAM). ($1668).
- =
- = SEG1_$208 CHECK CODE $F8 ($0608’ÐÐM = � €ÒÐM SEG7_$3ff CHECK CODE $8F ($1FF8).
- =============================================================================
pat_address: ±ÓÐM � $0e,$48 ;;; 0 bank_val address.
db $11,$70 ;;; 1 ip_val address. db $16,$68 ;;; 2 c3_suÿÿad èÔÐM db $06,$08 ;;; 3 check code address. db $1f,$f8 ;;; 4 check code addrsss.
COMMENT bÕÐM ==� P×ÐM==================================================================
- = INITIAL MC2 REG...
- ======================================×ÐM ==� ¸ÙÐM=======================
init_c2:
lda #$02 sta $b002 lda #$0a sta $b003 ;;2ÚÐM se� ÜÐM ;;; lda #$05 sta $c002 lda #$0b sta $c003 ;;; pat seg3. ;;;
šÜÐM � ˆÞÐM #$07
sta $d000 lda #$0b sta $d001 ;;; pat seg4. ;;; lda #$06 �ßÐM st� ðàÐM002 lda #$0a sta $d003 ;;; pat seg5. ;;; lda #$01 sta $e002 jáÐM a � XãÐM sta $e003 ;;; pat seg7. ;;; rts
^
.ENDS
� PAGE BACKGROUND �äÐM . � ÀåÐM======================================================================== page_scr:
dw scr_t01,$2020,scr_t02,$2424 ýåÐM E � dw scr_o01,$2020,scr_o02,$2424 ;OPTION. dw scr_s01,$2020,scr_s01,$2424 ;CHOISE 1 AND VS dw ÿÿ (èÐM,$2020,scr_s01,$2424 ;CHOISE 2 AND VS dw scr_r01,$2020,scr_r02,$2424 ;RANKING. dw scr_c01,eèÐM sc� êÐM424 ;CONTINUE. AND OVER. dw scr_e01,$2020,scr_e02,$2424 ;ENDING. dw scr_s01,$2020,scr_s01,$2ÍêÐM � øìÐMSS 2 VS PAGE.
INCLUDE D00.DAT
.ENDS
� lda s1
clc adc x1 sta 5íÐM � `ïÐM;;; ne� ¿ ¿ ¿ ¿ ¿ ¿ ¿
- ==============================================================================
- = Endsub
- =========ÚïÐM ==� =========================================================
Endsuœ°¬°¼°Ì°Ü°ì°ü°�±�±,±<±L±\±l±|±Œ±œ±¬±¼±Ì±Ü±ì±ü±�²Ü²ì²�²,²<²L²\²l²|²Œ²œ²¬²ü²�³�³,³<³L³¼²Ì²\³l³|³Œ³œ³¬³¼³Ì³Ü³ì³ü³�´�´,´<´L´\´l´|´Œ´œ´¬´¼´Ì´Ü´ì´ü´�µ�µ,µ<µLµ\µlµ „ˆùÁý� âþÿÿ� € �ð� þ� ñÿÿÿÿÿ¿ ð? às�¸�üŸB€àn € ? ø? � � �ð� þ� ÿ�Ÿ à? ¸� pî� ˆÛ ð? à3�¸�üŸf Î?� €ÿ� ðÿ�°á�< °ÿ� =ÿ�€Ìÿ��°ÿÎ?�€�ÿ�@¸Ÿ�`ÿ`8Œ_â±á� €ÀýóÿÝã��¾çóøý� Ã÷›ûãì°�þÿ€s??�€ln?9Àýÿa~ú û7� r<þ¿ì Žÿüc�þ‡� àíÇïïœóCûñ?àÍ“� €Üÿ>8ó??`1úŸÂý?Ÿ��áÿh˜ñ��þÌ�žŸÿ�°�ãŸÿ��0€w>ŽÙù}€àíÎGw÷çÁÉÃ�Ü}ø�@>� €°ÿÿÿ�÷ÿ?ÿÿÿ�}øŸ?pÿÿÿÿßãÿÿïÿÿ�ÿÿ0þÿÿÁÿÿÿLþÿ?óïÿ�°ÿÿ�øÿÿÿùÿù� þÿÿ�çŸÿÿÇ?üÃÿø èñÿÿÿÿ�Âÿÿ?àûÿ�ÿÿÿ�€øþó>Äÿÿ`ÿÿÿÿÿ� Øÿÿ?`ÿÿ�/üÿ?8ÿÿRþÿ?€ÿÿ?`ÿÿ‹ÿûÿ� ÿoÿÀÿóÿÀÿÿ�|ûÿÿ þÿÿ0ÿÿ�<ÿÿ�àþÿ�€Ìÿÿ�ÿÿÿ@ÿÿÿ?÷óƒÿÿÿÿÿÿÿß¿�àÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿ�þÿÏ ÿÿÿÿ�ÿáßñãÿ'þ?? ÿ?ÿÿÿ?ÿï�þÛ÷� Àðÿÿ¿?àÿÿoÀÿÿÿÿý� ÿÏÿoÃÿÿ¿`ÿÿÿÿþƒÀÿÿÿ< Àÿÿ€ÿÿÿüüŸ?û{Äþÿ�æûÿÁ·ÿÿÿß”ÿÿÿÿý?þ� �ßüÿÿá9ý@�þÿÿ? �ÿ?3ûÿÿÿÿÿÿ�� üçÿÿsÚÿÿÿÿŸÿ?@�@ ÿÜ÷ÿ¿�wþs†x�ð�Àÿ?Ûÿÿýÿÿÿ??A�Bð @ÿ²ÙÿÿÿÿÿÿÿŸ¼� áÿÙþÿÿ÷§? z z � ÿ?ÿÿùÿÿïï¿í�� þÿÐü¿ûÿÿÿÿÿ?Y ÿéÿÿÿ� � ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�ÿÿÿÿáÿÿÿÿÿÿÿÿÿ� ÿÿÿÿÿÿÿÿÿÿÿÿ‡üÿÿÿÿÿÿÿÿÿÿÿÿÿûÿç ÿÿÿÿÿÿÿ¿ÿÿç?Þl�øÿÿÿÿÿÿÿÿÏÿÿÎÌ� ÿÿÿÿÿÿÿÿÿÿÿÿþ� ÿÿÿÿóÿü�ÎÿçßÏŸÿ� ÿÿÿÿÿÿÿÿÿÿÿÿÿ�øÿÿÿÿÿÿÿÿÿÿÿÿ??
�� �B�œãÌ9fÎ1÷üÿ��� �ƒó|0Ž'Žã÷y�� „ àœóÌq>çøïÿ � C�àœ�Ìù�ãÿw � � ã0Ç�sFfw÷ÿ � �óžó<Ï9ç�?î�� Âœ�>ç�˜ó�Øÿÿÿ€ � � æ�âÍ1›cÞÿ=Ïã™�€a <bÎó<¾{`ðÇ��À� 8‡ás˜çpþã=�€�888‡�cþpÌŸwþÿŸƒ 0 0�à�ÿ<g #20 sta Delay rÕöÐM
� : ;;; INITIAL END COLOR.
FADE_IN inc sub_flow rts
end2: ;;; END SPRITE FALL DOWN.
ÿÿ W NMI dec _Yscroll lda _Yscroll cmp #$FF bne ?e00
- lda #$ef
- sta _Ysÿÿol ;;; cross page.
dec _Yscroll+1 bpl ?e00 lda #$00 sta _Yscroll sta _Yscrollÿÿ inc sub_flow
?e00 rts
end3: ;;; COUNT DOWN .
lda tog1 and #DECISION ;;; if toggle to fÿÿe bne ?e310 lda scounter and #$1f bne ?e300
- dec Delay
jmp ?e300 ÿÿ ;;; NO COUNT DOWN. bne ?e300
?e310
inc sub_flow
?e300
rts
end4: ;;; FADEOUT END COLOR.
ÿÿ F OUT lda #$00 sta $2001 sta r2001 sta sub_flow sta main_flow sta seÿÿru ùÐM rts
� lda #$05 ;;; level >= 4.
sta main_flow ;;; to ending. rts
?R00 ldaôùÐM $0� ;;; to title.
sta main_flow rts
- ;;;-------------------- SET DEMO FLAG AND COMPUTER FIGHTER.
- ldÿÿ 01
- sta demo_fg
- lda demo_ptr
- and #$07
- tay
- lda d_fighter,y
- sta _Naÿÿ
lda d_fighter+1,y
- sta _Name+1 ;;; set computer player.
- inc demo_ptr
- rts
- d_fighter
- ÿÿ $83,$82,$84,$85,$86,$87,$88,$85,$81
COMMENT ^
rank4 ;;; FADE OUT AND TO TITLE.
FADE_OUT ÿÿa hûÐM sta sub_flow lda #$00 sta main_flow ;;; to end test. sta _Mselect st¥ûÐM _M� ct+1 ;;; clear title selection. rts ^
� lda #$80
sta _Name,x ;;; set computer playerÿÿ sta _Mselect,x ;;; set computer player. rts
ctu_5 ;;; GAME OVER.
WAIT_NMI jsr end_cÿÿor � È] lda scounter and #$1f bne ?v0 dec Delay ;;; GAME OVER COUNTER DOWN. b| È] ?� ;;; lda #$00 sta sub_flow
- lda #$00
- sta _Mselect
- sta _Mselect+1 ÿÿ; j�È]tle selection.
lda #$04 sta ����$@FJX\v€Š”œ¦¬ÂÍÙãí÷ÿ�‚�‚+‚;‚A‚E‚I‚O‚o‚u‚}‚‚‘‚ “‚ ‚µ‚¿‚É‚Ñ‚ý‚�ƒ 'ƒ7ƒ?ƒCƒ Oƒ_ƒyƒƒ—ƒ¡ƒ³ƒÇƒ�„�„�„%„+„1„7„ =„N„^„b„n„r„†„°„´„À„ ̄Єބî„�… …(…>…T…v… ˜… š… …¨… ³… ÿ ����������ÿ ��þ�ÿþ��þ�ÿþ� �@þ€ÿþ���
SkyIsBack (talk) 17:07, 24 March 2016 (EDT)
Been hacking this
I found out that the jump P startup sprites are assembled, although maybe an oversight with how close its ID is to other jump sprites. Yoshi uses the first one. The game doesn't track it in RAM, but its ID is $0A. Search 000000010101 for the animation data, and below is tile assembly.
Also, I found the hit spark code from I believe the first SF2 still present, and some attacks still have proper locations. Even though that subroutine isn't called, the hit subroutine still writes the addresses needed for it. It's at $1C534 or $C534 in RAM. I tried restoring it, and doesn't look as good with the flashing after freeze.
Also, I assume demo mode simply is just watching the CPU fight.
This game is decently programmed as far as optimizations go, but they really had no idea how to design a game. Dragon5 (talk) 15:52, 25 July 2022 (UTC)