设为首页收藏本站

 找回密码
 立即注册
搜索
查看: 610|回复: 0

[原创HACK教程] 制作一个图片ROM(GBA篇)

[复制链接]

签到天数: 1934 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式

0 i) I1 e8 X, a; z0 I9 u# |当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
8 n  v. U: j! j" x
0 ~5 {$ K. l! b2 `) t; z这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
" \# Z5 X# {6 ]
2 B& c8 K7 Y1 h7 p: F(一)准备工具:
1 Q7 i1 ~; z! W7 D$ x9 m& ^$ P# c1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
% H0 A6 b: [9 C2 n$ s" M4 @1 J5 m- a
# E; g/ \4 D9 yARMIPS作者是Kingcom, V- g2 k5 d! X7 B  \/ M% U
ARMIPS源代码github页面:https://github.com/Kingcom/armips; }3 R; U- v2 N3 T) F; U( k
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
0 e  u+ |4 ^" Q5 v
8 C# A5 S# }* f1 d2.一个将图片转换为二进制bin文件的工具bimbo 1.39 g0 y* ]) D/ }# l6 E# [$ A

, h4 A# a3 c6 }; u6 B. Z$ T7 z4 S: sbimbo 1.3作者是Aleksi Eeben
9 w; I- ^: @/ K' k( r; a: n
/ Q9 d% k) r( E( d. _bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
- k) q# V% m4 q; R0 [
3 w. a& o$ F0 O: x* @3.一个windows自带的画图或其他图形编辑工具# W4 M! y! m+ d- `* O
0 n3 O$ Y4 e5 l/ C# m! N& D- d
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)1 R6 ]5 x7 w& E+ p9 k. `  P
0 u* @4 |8 S6 {: Z
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
! ]4 U& g# C$ C/ T( b, b( e9 @, }% {7 F3 v( e

2 z4 r0 v0 d. w' ^8 A3 ^
; c# p1 @0 p* ~0 `" c(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin9 M9 |6 t  q1 ^1 E% N4 A, H8 L- U

) f' p& Z2 i* n3 a8 `3 i0 O
% n; }* u( n" ~& S2 G3 t3 K: D# h/ S- M5 ?
(4)新建一个文本,我起名为16pic.asm,文本内容如下:9 z% b9 l! |+ f; L2 f
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    1 H* t0 ~2 d3 \9 B( z- [0 r' F
  2. .create "16pic_demo.gba",0x08000000* O, r) w0 Q+ ^* h
  3. ;设置为GBA架构
    & [& ~5 ]& M6 Z  M. C- q0 c8 P
  4. .gba+ n4 \3 `% T) p8 M! C- M
  5. ;设置为ARM模式: o6 {, n3 x- P
  6. .arm/ c9 `$ |$ h3 O" t& I2 z9 b. u
  7. ;设置起始地址是0x08000000
    ' g; X1 U% b/ R4 D4 `
  8. .org 0x08000000, j* |! F( t% h, b: e
  9. ;创建长度为0xC0文件头数据区域) O/ ~+ ]) S& J
  10. .area 0xC0
    & o( v3 b- u8 x9 X0 x$ ?
  11. ;填充文件头数据
    ( H7 F9 p: I. I+ S" `
  12. .fill 0xC0,0x00
    7 g) T. m* b) ]% Y, L' Q/ q# |
  13. ;区域结束
    # m% \( M6 C# B. n
  14. .endarea: ?: \/ d6 b6 @& e! m' D# t3 D
  15. ;主程序( A/ \3 @# C! n/ L* x' v
  16. main:
    - N7 x2 ~! R" T5 Y5 y, @
  17. ;设置屏幕模式3,BG2开启; \4 g1 M" s" w
  18.         mov r0,0x04000000
      U0 p" E/ A9 T, ?' F( A
  19.         mov r1,0x0400$ S- H- o$ {6 @# b9 D6 a# J
  20.         add r1,r1,0x3
    9 l& P+ i9 d4 t+ z0 b# J
  21.         strh r1,[r0]1 z6 Y  P0 v/ A- F
  22. ;设置VRAM起始地址
    ( p  m! ~" g+ l: I0 g# y
  23.         mov r0,0x06000000; Y/ G8 o' i# o$ L$ J  }5 a& {
  24. ;设置图片地址
    $ a3 j0 l- h4 i- t1 q' h- R* ^$ b
  25.         ldr r1,=pic+ B$ l4 U- {: i2 o  A* K! r
  26. ;设置数据长度为0x96007 l, I8 @) b3 _$ _
  27.         mov r2,0x96000 B! y$ o9 z. _1 u
  28. ;传送图片数据到VRAM1 O0 H( Z3 ]/ k
  29. loopl:8 i* ~6 z' y% m& p6 a
  30.         ldrh r3,[r1],0x2
    4 p0 f: _3 @+ G/ y+ K( g. L
  31.         strh r3,[r0],0x2+ n' I3 k1 q9 \$ W* n
  32.         subs r2,r2,0x1
    7 J* {) q  {' V) ]) {5 ]2 U
  33.         bne loopl. l9 {1 B8 g8 t0 H  g, P
  34. ;进入死循环
    % ~7 m4 D) Z+ U1 R' Y
  35. infin:) j( D/ E$ E! e+ k8 h4 Q! j
  36.         b infin
    ; D; {9 k  G; ^% ?: O- K( E# \
  37. .pool5 Q" y8 g1 _* }8 v/ o! S* |
  38. ;导入图片二进制数据  p  P+ p3 ]$ n
  39. pic:0 h: y- z  Y2 R* u
  40. .incbin "16pic.bin"' I9 y3 Q& d: B* [9 k' A
  41. ;在0x08000000地址设置跳转到主程序入口9 O* O9 {0 ?# B6 ?0 r
  42. .org 0x08000000
    % u# F4 F, m# v- R
  43.         b main% F+ T) }8 I* T6 [; b  H6 ]
  44. ;关闭文件- z, O2 i) c7 N  g1 F0 O
  45. .close9 {1 p& `& L) a" i! U9 A
复制代码

( s, S) D, I9 c, K* H保存!
5 W0 F0 U+ z" S1 X/ e/ y) b. X' ^+ n9 B+ D
( ?) @& U. C, N- g. ]# g5 H: o5 b(5)把16pic.asm和16pic.bin复制到armips目录下* Y- ]; h$ K# A: E5 C- R/ o+ A
" u1 p% j+ \; e/ x; j7 v7 T. W
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件) w0 d" C6 z% a# k" |

5 f+ ?! f  i8 h0 F; _. ?: P(7)用GBA模拟器打开16pic_demo.gba观看效果
7 p3 ~& s5 c9 h, G4 b; `; \' P( o2 V! V6 o0 x

6 y$ z- S8 A' ]  x* b9 L/ M
0 c! u( B/ G6 M, N1 [关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
' z- H$ i6 l) ^% \0 R: T; E" R; s

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2026-4-27 02:24

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表