EMU618社区

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

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

[复制链接]

签到天数: 1885 天

[LV.Master]伴坛终老

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

) X0 U3 V# h/ U, V! q3 n- N1 H当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
: v3 Z8 X" M. A" M3 P4 D  r4 @# Y/ @) }- W* l- O' ]
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧$ }$ H! r' p2 C1 D+ Z% e
/ a" g4 ?3 i- x3 E; Y# o
(一)准备工具:+ m% w: j( N6 @0 @; B1 X
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
3 S! z8 r7 Y$ X
1 X& j- Y) R( z9 q& xARMIPS作者是Kingcom6 O( K" |# b: m+ m
ARMIPS源代码github页面:https://github.com/Kingcom/armips4 {3 E5 X$ I& T+ T
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
' |, v3 N. h8 k, M6 S; L0 }5 E& z- U, M* h( ~6 b: h- C1 }
2.一个将图片转换为二进制bin文件的工具bimbo 1.3& v/ N- \6 Z3 a/ K/ I# t; |5 f

- [& e( e2 K& h4 ]% h. Obimbo 1.3作者是Aleksi Eeben
3 y3 d. E+ W5 w4 H
) j5 t2 W. k3 |% s. ibimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
, D% k5 A9 h6 ~& c0 t1 Y+ R. n. c$ V! N8 a; n
3.一个windows自带的画图或其他图形编辑工具* s9 \0 s- d! {( e% f& e( e, D
* M1 _5 f4 E9 t+ }4 ?) ?+ D% \
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)1 o( n" M+ _: X

+ q! a% {( w) i(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP' Q8 n: z7 T6 ]1 X$ @5 {& o7 N

2 {( ^- a' t/ Z* `; T  U5 ~4 @4 i; W8 ]: m

( y, Y: P$ n  t) W- {. |" W$ f(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin. O* m6 y) R9 G! Y

/ n, m; i7 f6 P- \( W5 X
/ V7 b2 B& P; w( f% x( E( N1 |6 Y3 c8 g! I9 p; @( a
(4)新建一个文本,我起名为16pic.asm,文本内容如下:  \  @/ T  \9 q
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    * U1 |0 w% d& }  ^2 p
  2. .create "16pic_demo.gba",0x08000000% z$ {9 O, o! ^5 x/ H* e  J0 O! [
  3. ;设置为GBA架构; t* A% i- |- ~6 j" I' e
  4. .gba2 O6 D/ s- ]# G/ ]$ C! J
  5. ;设置为ARM模式
    8 v) v" W4 A# r* J6 O
  6. .arm. C3 {7 u$ x% l+ a
  7. ;设置起始地址是0x08000000
    7 J+ p+ \7 k1 G6 P# [2 s
  8. .org 0x08000000
    ( z8 Q  j9 x1 [) ~$ t& }( {  @+ K
  9. ;创建长度为0xC0文件头数据区域
    2 L! y( |  w7 s5 X4 L* d& [" s
  10. .area 0xC03 @8 ?: q$ o; m
  11. ;填充文件头数据' W9 P$ k) e4 c( U; |2 H. a
  12. .fill 0xC0,0x00; j/ ]4 W3 c, h% |3 v4 k
  13. ;区域结束+ i2 R+ `- y) i2 R- a. G
  14. .endarea
      n- v! H; _: j5 S
  15. ;主程序
    + L( X4 k+ e! @4 Q5 r1 F2 n4 ?+ V
  16. main:
    " }6 |! E9 R4 W: h/ b
  17. ;设置屏幕模式3,BG2开启1 V/ o- d5 h  e' r
  18.         mov r0,0x04000000
    ' \. d* c8 `; X) L. \5 U4 V2 F
  19.         mov r1,0x0400
    / L" ^8 p, m& g& k
  20.         add r1,r1,0x3
    $ @, z7 I7 w. R& b6 x' H
  21.         strh r1,[r0]6 x0 U9 {6 t/ ~0 i6 R& Z" R$ _* d! _
  22. ;设置VRAM起始地址
    , E! i7 B/ g  f. M
  23.         mov r0,0x06000000
    3 Q% ~6 k* W0 Q
  24. ;设置图片地址7 W! ?% s" z( O! {# j( ]
  25.         ldr r1,=pic
    * B2 o' U  p: B, _8 t" a! R
  26. ;设置数据长度为0x9600$ |5 F- e/ a2 p
  27.         mov r2,0x9600
    # n: b+ l1 @# w- n6 X' p, \
  28. ;传送图片数据到VRAM7 r% E) K8 P; o2 z( Z) X2 K/ e
  29. loopl:; ^3 H0 D0 a9 ^7 j, z) I
  30.         ldrh r3,[r1],0x2+ P( K" }" V, k. H! y3 Y
  31.         strh r3,[r0],0x2! i# y2 u# B* B, \) @( s
  32.         subs r2,r2,0x1% e1 ~% C, d9 t7 j6 E% P( `  E
  33.         bne loopl% O4 Z' t% m0 I, X. y6 F
  34. ;进入死循环
    * q! \' \' a6 F! }& b2 M5 m& p  A
  35. infin:
    & J$ G* E$ \- t" s
  36.         b infin( E7 }7 Z; k7 a
  37. .pool
    * q1 ^; L% {; G
  38. ;导入图片二进制数据& ^9 `2 i4 {2 [3 [' n5 ?1 q
  39. pic:3 v  ]; ?' h3 f: B5 |% F* g
  40. .incbin "16pic.bin"1 m. R' l& V  H2 V3 H( f6 f
  41. ;在0x08000000地址设置跳转到主程序入口
    $ @. c6 B3 C: w' k0 k2 x5 c) d/ |) ~8 ?
  42. .org 0x08000000
    0 g6 ^" O( _" e, @8 s
  43.         b main% c8 k* b; V( u) O
  44. ;关闭文件) Z- J7 Z$ ]7 i4 C, [
  45. .close
    ( E7 j$ d) |7 s9 Q- B! M
复制代码

4 O0 r& n- @6 M( ]& _保存!8 h4 b; ]* v& D" M( J; B
, t; s6 ~1 v3 ~9 H: _5 d. e
(5)把16pic.asm和16pic.bin复制到armips目录下7 d% A. P) w: Q4 t! P  y

' ^% A) O+ H3 b; F. x(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件- }& s- L2 F3 Z0 u0 v+ I
& n. {2 s' B  P# J7 F
(7)用GBA模拟器打开16pic_demo.gba观看效果8 p2 ~6 _6 {1 c: y% o

# s) K" j( z3 {8 i* P1 S* \5 x% u
" @' \) c9 r2 X' i. m4 s( R- {1 T1 Q2 V
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)( l4 h8 B; r9 V& T

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-3-11 14:31 , Processed in 1.111328 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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