If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Talk:Kart Fighter

From The Cutting Room Floor
Jump to navigation Jump to search
This is the talk page for Kart Fighter.
  • Sign and date your posts by typing four tildes (~~~~).
  • Put new text below old text.
  • Indent replies by prefixing with a colon :
  • Add new sections with the 'Add topic' button at the top right.
  • Be polite.
  • Assume good faith.
  • Don't delete discussions.
  • Be familiar with the talk help page.

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    ����$@FJX\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)