1. 程式人生 > >[FC][全屏擊殺修改教程]

[FC][全屏擊殺修改教程]

[FC][全屏擊殺修改教程]

時間:2016.11.2  22:22

作者:FlameCyclone

工具:FCEUX_2.2.3,ROM一枚.

原理:攻擊時系統計算敵人座標與子彈座標之差,橫座標滿足擊中條件時再判斷縱座標是否滿足,均滿足則擊殺.

步驟:

開啟魂鬥羅日版:

先弄個金身無敵:

找到這個敵人的橫座標,這裡是034D,把它鎖定起來,嗯,好,這個小兵在原地只能任人宰割了.

跑到這小兵前面,面向他,跳起來先開一槍,找到第一發子彈橫座標,這裡是03C8.

開啟偵錯程式,加入2個03C8的讀斷點:

注意,一個有條件,一個沒有條件.

把有條件的斷點開啟,跑到小兵面前:

開一槍打他,此時偵錯程式彈出:

然後關閉帶條件的斷點,開啟無條件的斷點:

執行幾次後得到如下資料:

 07:E29B:BD 88 03  LDA $0388,X @ $0388 = #$01

 07:E29E:30 09     BMI $E2A9

 07:E2A0:10 19     BPL $E2BB

 07:E2A2:BD 18 04  LDA $0418,X @ $0418 = #$00

 07:E2A5:C9 02     CMP #$02

 07:E2A7:B0 12     BCS $E2BB

 07:E2A9:BD B8 03  LDA $03B8,X @ $03B8 = #$5F子彈縱座標

 07:E2AC:E5 08     SBC $0008 = #$52 與$08(此時$08位敵人縱座標)相減

 07:E2AE:C5 0A     CMP $000A = #$24 結果與$0A比較

 07:E2B0:B0 09     BCS $E2BB 大於就跳過#09位元組

>07:E2B2:BD C8 03  LDA $03C8,X @ $03C8 = #$4E子彈橫座標

 07:E2B5:E5 09     SBC $0009 = #$4A與$09(此時$09位敵人橫座標)相減

 07:E2B7:C5 0B     CMP $000B = #$16 結果與$0B比較

 07:E2B9:90 06     BCC $E2C1 小於就跳過#06位元組

 07:E2BB:CA        DEX  暫存器X減1

 07:E2BC:10 C8     BPL $E286  為正數就跳過#C8位元組

 07:E2BE:A6 83     LDX $0083 = #$0F  讀取$83的資料到暫存器X

 07:E2C0:60        RTS -----------------------程式返回

然後一步一步執行:

結果程式跳到了$E2C1,說明子彈座標與敵人座標滿足擊中條件就跳轉到$E2C1,否則就跳轉到$E2C0程式返回.

接下來修改:

開啟十六進位制編輯器:

跳轉到E2A9:

轉到ROM地址:

修改為4C C1 E2:

回到遊戲,背向這個可伶的小兵,開一槍:

果然不出所料,這個小兵最終還是被幹掉了...悲劇啊...

經過測試,這樣修改後全螢幕的敵人都會被攻擊,不過有優先順序的區分,一發子彈同時只能打一個敵人,面對多個敵人時打死第一個才會輪到第二個...

如果要同時攻擊同螢幕全部敵人,把$E28B改為4C C1 E2:

執行效果如下:

全部敵人被幹掉了....悲劇啊...

另外儲存即可:

修改到此結束,準備睡覺了,好冷的天氣啊......

:如果子彈座標讀斷點找不到全屏擊殺跳轉的話找就以敵人座標作為讀斷點來找即可.

轉載請註明出處:FlameCyclone.ys168.com

相關推薦

[FC][修改教程]

[FC][全屏擊殺修改教程] 時間:2016.11.2  22:22 作者:FlameCyclone 工具:FCEUX_2.2.3,ROM一枚. 原理:攻擊時系統計算敵人座標與子彈座標之差,橫座標滿足擊中條件時再判斷縱座標是否滿足,均滿足則擊殺. 步驟: 開啟魂鬥羅日版

Android去掉標題欄和以及設定修改Android超時休眠時間

預設情況下,Android系統在超過N分鐘沒操作,會自動關屏並進入休眠狀態。         實際上,有些專案要求超時不休眠,如果只是針對單個應用程式,我們可以通過電源管理設定狀態來實現, 而如果要設定所有應用的超時時間,則可以參考以下方法: 方法一、調整程式碼:        Settings.

H5點按鈕,實現瀏覽器模式代碼

btn ie11 class 模式 瀏覽器 kit 點擊 全屏 document <button class="fullBtn">點擊實現全屏</button> $(‘.fullBtn‘).on(‘click‘, function() {

Focusky教程 | 視訊播放

(Focusky動畫演示大師簡稱為“FS軟體”)首先,要使路徑比例跟電腦的顯示屏比例一致,才能保證幀裡的內容能夠全屏播放。 故在設計內容前,可根據電腦顯示屏的比例來選擇合適的顯示比例。如下圖 【圖1▲】 然後, 匯入視訊(或者新增線上視訊、錄屏新增視訊), 將視訊拉大至幀大

【selenium3+JAVA】介面自動化測試教程(三)——瀏覽器的、最大化和設定大小位置

1、瀏覽器全屏 使用程式碼如下: ChromeDriver chrome = new ChromeDriver(); chrome.manage().window().fullscreen(); 如上程式碼會把瀏覽器全屏,效果嘛就是除了網站的內容部分,其他全部

2018年最Java秒系統方案優化 高效能高併發實戰教程

所謂虛擬機器,就是一臺虛擬的計算機。它是一款軟體,用來執行一系列虛擬計算機指令。虛擬機器可以分為系統虛擬機器和程式虛擬機器。Java虛擬機器專門為執行單個計算機程式而設計,在Java虛擬機器中執行的指令我們稱為Java位元組碼指令。一個Java程式(Java位元組碼的集合),通過Java虛擬機器運

BIOS開機畫面LOGO的修改

     2、AMI BIOS全屏開機畫面的修改      與AWARD的BIOS單調的全屏開機畫面不同,AMI BIOS支援全綵的全屏開機畫面,因此可製作出更漂亮的全屏開機畫面。但是,AMI的全屏開機畫面的加入有許多條件制約。從表2中可以看出,有兩個模組和全屏開機畫面有關:一個是Graphic Logo

Qt android 設定系統狀態列為透明,半透明、,設定狀態列顏色,修改程式圖示

實現Qt平臺下,安卓系統狀態列的相關設定(全透明,半透明、全屏,設定狀態列顏色,修改程式圖示,網上文章大多數提供多種方法,但是講述的雲裡霧裡,沒有說清楚,以下是本人自己整理,希望大家相互交流學習) 實驗環境: Qt 5.12 程式語言:qml 和 c++ 執行平臺:android 正

cf修改登錄檔

cf遊戲不能全屏,咱可以修改一下注冊表,試試你就知道了。 regedit,然後按 Enter HKEY_LOCAL_MACHINE------ SYSTEM----- -ControlSet001------- Control------- GraphicsDrivers

微信小程序點圖片

照片 spl on() data 信息 單位 方法 退出 new   作為一個只懂簡單HTML,jQuery,JS的web後臺開發者,最近在學習小程序開發,現在將小程序的點擊全屏功能的相關內容記錄下來。如果有不對的地方或者有更簡單的方法,請留言指教 0_0~   .js 文

如何修改Linux開機啟動logo並使其顯示?

1、製作開機啟動logo的圖片(my_image.png  ==>  logo_linux_clut224.ppm),要求圖片的解析度要和螢幕大小一致。 使用如下命令: pngtopnm m

VideoView雙實現

效果如圖: 實現步驟: 1.給videoview新增ontouch監聽,this是所在的activity: videoView.setOnTouchListener(this); 2.重寫ontouch方法: @Override public boole

VideoJS 網頁直播實現雙

最近接到客戶需求, 要求我們的網頁直播播放器更加符合廣大人民群眾的使用習慣,實現雙擊全屏的效果.目前網頁直播播放器使用了開源的 VideoJS, 它的預設效果是單擊播放區域暫停, 只能通過右下角的最大化按鈕觸發最大化. 要實現雙擊全屏播放的效果, 就要對 Vid

自定義MediaController來實現修改底部佈局作以及實現vedioview半的切換

因為直接使用系統vedioview,底部的MediaController佈局有點不好看,尤其是進度條,不能實現辦半屏與全屏的切換,自己網上看了下別人的資料,整理了下,做以筆記;初學者,勉強才實現這些功能,還有許多地方不明白。 看下效果:                   

C# 雙視窗/顯示和恢復

用控制元件panel1全屏顯示 panel1-事件裡用MouseDoubleClick 遮蓋panel1上的控制元件屬性的Enabled設定為false,避免捕捉不到雙擊 C#程式碼: using System; using System.Collections.Gene

VMware裝Linux系統問題

點擊 錯誤 bsp 出現 ogr 意思 接下來 linux 文件的   在VMware上出裝Linux,有強迫癥的患者總是無法接受它不能全屏的問題,當然網上也有該問題的解決方案,但是搜索出來的答案總是零零散散,讓很多初學者望而卻步!今天筆者根據自己的機遇總結一遍最完備的解決

JS調用命令實現F11

return ima logs key f11全屏 嘗試 ges div 500px <body onload =‘autoSetFull()‘> <button id=‘btn‘>全屏按鈕</button> <div

Android添加啟動畫面

全屏 quest ray class max-width pub title nbsp hello 有的Android軟件需要在啟動的時候顯示一個啟動畫面,可以是一張圖或者一些設置什麽呢,還有一個好處就是,可以趁機在後臺加載數據。創建啟動畫面一般有兩種方式:1、建立一個ac

小米紅米1S 電信/聯通版 專用TWRP2.8.1.1中文版 (觸摸/支持MTP掛載內外置存儲)

red jsb 防止 文化 sdcard article read pop 兩個 轉載請註明出處和鏈接: http://blog.csdn.net/syhost/article/details/39340477 說說中文TWRP的簡史:

解決fragmentTransaction.replace不能

ttr idt ont apk 。。 sso archive log clas 今天遇到個問題,使用fragmentTransaction.replace替換後的內容不能全屏。。 FragmentManager fragmentManager = getSuppor