The NES Final Fight 3 is an awkward but impressively feature-complete unlicensed port of the SNES version.
Fun piece of trivia: Rather than compose the SNES soundtrack with their sound engine, they cleverly just slapped the soundtrack from Mighty Final Fight, an official Final Fight game for the NES released 5 years earlier. According to an interview with Hummer Cheng, he stated that he was the game designer of the game and had no time to do music for it.
Hidden JY Logo#
Pressing Down, Down, Left, Up, Right, Left, Up, Down on the title screen will trigger a hidden JY logo screen with the common full-screen logo. The only way out of it is to reset the game.
(Source: BootlegGames Wiki)
Dip Switches#
As with several other pirate games, Final Fight 3 uses a PCB with a DIP switch on it, which changes some aspects of the game's appearance. The two titles contained in this game are Final Fight 3 and Garou Densetsu Special, which has cheerier music and no cutscenes. The DIP switch can be toggled in FCEUX by resetting the game (note that other emulators may handle this differently).
Round Select#
Pause the game and press Select to load a black screen. From here, you can press B or A to increase the round number and unpause to start on your chosen round.
Note that the counter starts from Round 1-1 instead of the round you're currently on. The last valid option is Round 6-2, which takes 16 button presses; anything higher crashes the game.
(Source: Bootleg Games Wiki)
Source Code#
Some keybinding configuration and uncompiled source code is inside the ROM. The keybinding config is for the Hyper Editor 5 (he5) Chinese word processor. These are the segments:
�================================================================;;
SET AUTOPOSITION ON� �; pw˦bWA]wL
SET AUTOREFLOW ON
ET����OSAVE 20� �; pw˦bWAЦbwUSERؿAΥ[W LOCAL
SET AUTOSLEEP 20
;; SET BACKUP ON
SET BEEP OFF
;; SET KEYBOARD FAST
;SE����MLOCK OFF
SET LIGHTBAR ON
SET TIMER ON
SET TABS 17 25 41 59
SET PAIRCOLOR ; EOL GREEN BLACK
;;SET PAIRCOLOR ELSE EOL BROWN+ BLACK
;;SEPA����LOR else EOL BROWN+ BLACK
SET PAIRCOLOR ^^=<D>= EOL RED+ BLACK
SET PAIRCOLOR ^^_# EOL GREEN+ BLACK
set paircolor ^ LINE BROWN+ BLACK
set lo����xt white black
def autoexec=[cc][spec_color][exist my.pro][if %Exist][m my.pro][end]
[if %Mouse][m mouse.pro][button_menu][end][he5mark]il����]
def he5mark=[? memory][delay 9999]
;; ==========================================================================
def cc=[cursor comma][����te line]
def cc1=[if !%InCommand][command toggle][end][delete line]
def chket=[message ˬdzثetάO_]t\][delay 18]
def cht1����ssage nmL][delay 18]
def mustchi=[message Must in Chinese Mode]
def undel_msg=[if !%InCommand && %InNormal]
[if %Language=C'����ssage Ctrl-U 1G ٭@]
[else] [message Ctrl-U � 1 : Undo one line][end][end]
def findnext=[if %Count==1]
[if %Language=='C'][ss����! ALT-N ~jMΥN!a-n]
[else][message !ALT-N to find next!a-n][end][end]
def spec_color=[if %IsColor][SET PAIRCOLOR %Date2 GREEN+ BCK���� [else][SET PAIRCOLOR %Date2 UNDERLINE BLACK][end]
def button_menu=[null]
def tblmsg=[message ЦۦإߡAõnOb TABLE.M2D ]
%@chket�..����ˬdzثetάO_]t\"
def home=[if %KeyShift][key s-f1]
[else]
[if %PrevKey!="home" || %Column==1][first nonblank][se����gin line][end]
[end]
def end=[if %KeyShift][key s-f2]
[else]
[if %InNormal && %PrevKey=="end"]
[if %@direction == 1up����se][down][end]
[end][end line]
[end]
def tab=[if %InRange][next field][else][tab][end]
def s-tab=[if %InRange][prev field][else][bkt����end]
def pgup=[if %KeyShift][key s-f3]
[else]
[if !%InRange][page up][else][field pgup][end]
[end]
def pgdn=[if %KeyShift][k s����
[else]
[if !%InRange][page down][else][field pgdn][end]
[end]
def enter=[strleft %File 6]
[if %InCommand]
[%a="%dL����"][if %a == "."][command history][else][execute][end]
[elseif %IsList] [dir.load] [filemsg]
[elseif %File==".SEARCH"][goto found line] ����lseif %String==".Ϧ^-"][tab.undel]
[elseif %String==".-"][idx_enter]
[else] [strright %File 4]
[if %String=="_DBF"]
�����@Ttool][get_dbf_record]
[else] [split]
[end]
[end]
def ins=[if %KeyShift][key s-f6][else][insert toggle][end]
def d
�@T�� %����hift][key s-f7][else][delete char][end]
def filemsg=[strleft %File 6][%l6�%String][strleft %File 4][%l4�%String]
[if %l4==".DIR"][dirmsg
����elseif %l6==".-"][tab.idxmsg]
[else]
[if %Language=='C'][hint F2:s!f2 F4:!f4 a-F10:e!a-f10 a-H:Ÿ!a-h a-T:/s-t����G:/e!c-g a-\:!a-backslash Х!c-space]
[else][hint F2:Save!f2 F4:Quit!f4 !a-F10:Prev File!a-f10 MARK!c-space][end][def c-spe=����kmsg]]
[end]
def f1=[if %Language=='C'][menu2d he5.m2d][else][menu2d he5e.m2d][end]
def f2=[strleft %File 6][if %String==".sW-" || %Strg=����ק-"][tab.save]
[elseif %PrevKey!="f2"]
[set position 9][cc1]'save '
[if %Language=='C'][message пJɦWΪ !ENTER !����r!AA F2 ֳts!f2]
[else][message save filename �- or save �-, !F2 again : quickly save!f2][end]
[else]
[position [e����te][command togle][command togle]
[end]
def f3=[strleft %File 6][if %String==".sW-" || %String==".ק-"]
[tab.save][q][e .-ta����le][tab.idxmsg]
[elseif %PrevKey!="f3"]
[cc1]'file '
[if %Language=='C'][message пJɦWΪ ENTER sɡAA F3 t����
[else][message file filename �- or file �- F3 again : quickly save][end]
[else][file][filemsg][end]
def f4=[q][filemsg]
def =[����n line][erase end line][undel_msg]
def f6=[erase end line][undel_msg]
def f7=[if %Language=='C'][hint 1/EnterGثeɮ# 3 B U����!��������
================================================================;;
SET AUTOPOSITION ON� �; pw˦bWA]wL
SET AUTOREFLOW ON
ET����OSAVE 20� �; pw˦bWAЦbwUSERؿAΥ[W LOCAL
SET AUTOSLEEP 20
;; SET BACKUP ON
SET BEEP OFF
;; SET
��
����������������������if %KeyShift][key s-f6][else][insert toggle][end]
def d
�@T�� %����hift][key s-f7][else][delete char][end]
def filemsg=[strleft %File 6][%l6�%String][strleft %File 4][%l4�%String]
[if %l4==".DIR"][dirmsg
����elseif %l6==".-"][tab.idxmsg]
[else]
[if %Language=='C'][hint F2:s!f2 F4:!f4 a-F10:e!a-f10 a-H:Ÿ!a-h a-T:/s-t����G:/e!c-g a-\:!a-backslash Х!c-space]
[else][hint F2:Save!f2 F4:Quit!f4 !a-F10:Prev File!a-f10 MARK!c-space][end][def c-spe=����kmsg]]
[end]
def f1=[if %Language=='C'][menu2d he5.m2d][else][menu2d he5e.m2d][end]
def f2=[strleft %File 6][if %String==".sW-" || %Strg=����ק-"][tab.save]
[elseif %PrevKey!="f2"]
[set position 9][cc1]'save '
[if %Language=='C'][message пJɦWΪ !ENTER !����r!AA F2 ֳts!f2]
[else][message save filename �- or save �-, !F2 again : quickly save!f2][end]
[else]
[position [e����te][command togle][command togle]
[end]
def f3=[strleft %File 6][if %String==".sW-" || %String==".ק-"]
[tab.save][q][e .-ta����le][tab.idxmsg]
[elseif %PrevKey!="f3"]
[cc1]'file '
[if %Language=='C'][message пJɦWΪ ENTER sɡAA F3 t����
[else][message file filename �- or file �- F3 again : quickly save][end]
[else][file][filemsg][end]
def f4=[q][filemsg]
def =[����n line][erase end line][undel_msg]
def f6=[erase end line][undel_msg]
def f7=[if %Language=='C'][hint 1/Enter
[else][message save filename �- or save �-, !F2 again : quickly save!f2][end]
[else]
[position [e����te][command togle][command togle]
[end]
def f3=[strleft %File 6][if %String==".sW-" || %String==".ק-"]
[tab.save][q][e .-ta����le][tab.idxmsg]
[elseif %PrevKey!="f3"]
[cc1]'file '
[if %Language=='C'][message пJɦWΪ ENTER sɡAA F3 t����
[else][message file filename �- or file �- F3 again : quickly save][end]
[else][file][filemsg][end]
def f4=[q][filemsg]
def =[����n line][erase end line][undel_msg]
def f6=[erase end line][undel_msg]
def f7=[if %Language=='C'][hint 1/EnterG
lda dhi
beq ?1
;
lda dhv
���� ora rg2000
and #$7f
sta $2000
;
ldy #$00
ldx #$00
?���� lda $2002
lda dhi
sta $2006
lda dlo
sta $06����
lda _DBuffer,x
sta $2007
iny
inx
cpy dwide
���� bcc ?2
lda dlo
clc
adc #$20