EMU618社区

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

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

[复制链接]

签到天数: 1770 天

[LV.Master]伴坛终老

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

3 e- T8 @, d& c( z当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档& G* t3 v0 c6 ?9 L, Q
. r9 E, e3 ^4 I
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
, z8 h3 }# y- w; g
. v& _; Y2 K# M* ]5 ]1 B(一)准备工具:# q) ]" M8 k  S/ C7 }( P1 E+ Q" Z( @
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
* |% s: S8 q2 b$ u/ f
: K- @# z  }# H9 B" o5 {# FARMIPS作者是Kingcom
1 n) ?: j4 f& Y! aARMIPS源代码github页面:https://github.com/Kingcom/armips/ M+ n4 w+ ?* L' [0 B- T& O4 r2 C
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips( f' n/ Z3 [2 W* K/ A& L
0 V9 ^" D) Q  H& t, R; C
2.一个将图片转换为二进制bin文件的工具bimbo 1.3
- @. P, C" E  D% z( R; P8 S' Q' S+ H0 K; E9 h
bimbo 1.3作者是Aleksi Eeben
) I/ H, b8 X. t  o( }4 W
6 M( d' j' ?8 x& z# T1 gbimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=1679 N/ u3 S4 k  n6 y- x" ]

7 [3 @* w5 [1 q! N) a! y3.一个windows自带的画图或其他图形编辑工具
0 y2 N4 I. m! K. Q) C9 D5 j) ~, V9 ~" F
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)1 J- j8 g4 i) _2 S+ v3 z/ t

  `3 D$ A4 A# _$ c7 U" v8 D. J(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
  Q3 H/ C- @( `
9 ?: Q' `# Y' `! z: ^, T" y
2 S/ p+ M% |! a4 z' B! L0 [* _9 v9 H: x3 T2 F* k
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin+ K/ K: k1 `9 x. [
. K8 G& u4 E9 z' u
! R+ s8 e; a$ |( m

& S! z* Y) ]0 M4 w/ a7 {(4)新建一个文本,我起名为16pic.asm,文本内容如下:
: {- K: E, E! q& q
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
      D0 n2 J6 k; k! ~  L
  2. .create "16pic_demo.gba",0x08000000
    5 X( v* Q4 p6 v) w0 T" K% U" ?
  3. ;设置为GBA架构2 L$ J9 a* G' g$ p
  4. .gba
    4 R+ E2 u" Q3 U! ^2 I
  5. ;设置为ARM模式2 |$ g- Z& U7 a, D) C! ^5 m
  6. .arm
    & J7 @( U& d# a# i* V' P
  7. ;设置起始地址是0x08000000* ^, {0 L& j+ M
  8. .org 0x08000000
    * b6 K  i1 v& @
  9. ;创建长度为0xC0文件头数据区域5 _6 a3 ~7 Q8 a: n" }
  10. .area 0xC0
    6 W) f3 S  R4 w' I- @: C
  11. ;填充文件头数据
    + }5 e: k* M( f" I( S
  12. .fill 0xC0,0x00
    ' G, c9 Y) W$ O5 w! R
  13. ;区域结束
    & u3 ?' X- i3 R8 Z' Q6 S
  14. .endarea% C" O7 t% \  _6 l
  15. ;主程序
    0 @  [; @) d6 {1 j3 X
  16. main:
    3 `$ c, L3 y6 O( Y  o+ N; c1 b& v) N
  17. ;设置屏幕模式3,BG2开启) b/ K; f1 N& T9 I3 m0 |2 j
  18.         mov r0,0x040000006 X- y  b+ Y! |& P8 h3 E& `9 p  |7 B
  19.         mov r1,0x0400
    ( M5 G5 f. E' I- q4 }& X
  20.         add r1,r1,0x3
    ( i! @5 w8 m$ q) l4 Q
  21.         strh r1,[r0]: |- d+ }7 v+ J; S! M+ f
  22. ;设置VRAM起始地址1 v, M/ ]8 u; B0 l+ I* p) T; o$ C
  23.         mov r0,0x06000000  f; ]; ?% t6 Y/ V; U1 ]- [, p
  24. ;设置图片地址
    5 n7 t8 M0 r- @: a8 k, l" _" f7 n
  25.         ldr r1,=pic/ }9 o% [* s& g- d- h0 u
  26. ;设置数据长度为0x9600
    ( N. r0 n& c8 g
  27.         mov r2,0x96008 e* ~' ?' Q" z; ?2 J
  28. ;传送图片数据到VRAM
    2 ^. W7 r3 F* ^# i: L: }
  29. loopl:
    # U. a  S  Y: E* G  {- z
  30.         ldrh r3,[r1],0x2* v- Q0 B8 `- @- }
  31.         strh r3,[r0],0x2$ _. D8 L+ }  d) v. P1 [; x
  32.         subs r2,r2,0x1( q# r- g1 m" `. w3 _2 m3 d
  33.         bne loopl+ h, N- H  i$ U6 Y& Y
  34. ;进入死循环
    1 m- }& ?4 O  [  b3 u; N
  35. infin:
    3 Q9 ~# |  V& e2 z
  36.         b infin
    ) \& w+ r& W; B1 Q$ j9 g$ ~' \/ V
  37. .pool8 X; ]( L- E; M- X9 I+ k* y
  38. ;导入图片二进制数据, u* L1 D8 D3 _4 P5 {/ h
  39. pic:7 ]8 v" {$ d0 n# T7 m# g' S: X1 `$ D
  40. .incbin "16pic.bin"' p* r( @$ D! J3 |, C
  41. ;在0x08000000地址设置跳转到主程序入口
    % [5 o& ^$ {, Z$ M
  42. .org 0x08000000! K7 b: L) R" R! z7 ?
  43.         b main3 y$ s" C6 Z4 Y! }- d
  44. ;关闭文件
    ! R. P5 v$ u9 s
  45. .close
    % ?' S( }" ]$ M8 ?6 a+ R% c; z& I
复制代码

% s- Y, L3 D' B! v1 J8 S保存!
+ c9 h" o- H$ s& n* h; r( y: E" H  {: s# n7 {! D  h- W
(5)把16pic.asm和16pic.bin复制到armips目录下! N6 T& y# X* L' z" U5 ]
+ y5 D( l9 H% s1 u' O2 t+ t' w7 j
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件6 g1 r4 z2 Q' V" y( B

2 H4 q5 U+ Q  f. Z(7)用GBA模拟器打开16pic_demo.gba观看效果
+ j6 u1 L" G# i( j. z1 r4 J0 Y% Q! J; Y. i
1 w( `/ G3 \# g4 E' e1 x* `
6 P$ ]! w1 K0 E; _3 x$ A
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)) x& Z7 v* Y' _2 |0 {' P* W$ K

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-16 15:33 , Processed in 1.081055 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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