EMU618社区

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

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

[复制链接]

签到天数: 1716 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
& w/ a) l, c% S6 m+ H) \1 q
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档6 X5 M4 S6 d2 B

2 J) e( ]% Z$ z2 D这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧6 Q  |2 [& R7 [, v% C

4 _, s0 {4 b5 X2 b, W5 h(一)准备工具:+ S0 R! Z; L! a6 w4 |, K
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
2 I& X3 e# S% x: A
# Z, j' R$ O2 j. ]# u' s4 y5 ~' g9 |ARMIPS作者是Kingcom
3 a% Z, B0 `3 L: t7 X4 W( t  N  v& TARMIPS源代码github页面:https://github.com/Kingcom/armips
5 r* o) t5 ~2 V& g7 XARMIPS Automated builds页面: http://buildbot.orphis.net/armips
- e& T3 t0 j1 k0 j: x" z7 r- M2 ~3 `% e! d
2.一个将图片转换为二进制bin文件的工具bimbo 1.3$ t; j2 i) k, ?, `# B8 K

, K  P4 M8 e5 _  m% A5 Fbimbo 1.3作者是Aleksi Eeben9 U% d2 A# |" v. g1 G0 N" X

6 M* f# S) i/ L$ ibimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167
" g6 L7 \/ J- K8 N* R/ j$ F, S3 ]/ O" e, }! F
3.一个windows自带的画图或其他图形编辑工具
, Z- @9 l( G+ y* O+ w& l/ s% O0 G- T6 s6 r
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3); t) e" P2 O5 M, E( E7 r5 F
  h) K4 g) g- L/ Y
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
3 j* p! t, l6 r
6 V2 P% d# |6 i9 v; h, B
9 w2 |9 |1 R. X7 f; Z2 J  E9 a& G, t8 a9 z7 d: z
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin8 P5 L# B1 d' O; ?4 a/ G4 M) }0 s, R

* A$ i+ u( n1 _- Z6 ?- `0 N! B/ \$ ?
! D' z* ^5 J$ f, P5 z/ w, m
(4)新建一个文本,我起名为16pic.asm,文本内容如下:  p' _" T! M8 `) S+ T
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    4 Q) @; J3 |. g: R2 {' _" i
  2. .create "16pic_demo.gba",0x08000000
    ; C, e. Y: @' c$ Z4 \8 |
  3. ;设置为GBA架构
    & m* S* d. h/ ^% v$ q' d" c
  4. .gba: q  l7 [4 m& b' i0 @9 c
  5. ;设置为ARM模式
    / B6 e3 V# t4 c- |( ^
  6. .arm' k% z/ p4 A2 w% b* Z
  7. ;设置起始地址是0x08000000+ A( |% v8 T' M* E0 W4 R
  8. .org 0x080000001 S* E; N2 P/ g& |3 B
  9. ;创建长度为0xC0文件头数据区域8 m& @# I8 r" Z6 d+ r7 @# O
  10. .area 0xC0! o( r6 n; D4 j1 Y2 {, R% r
  11. ;填充文件头数据* i& v  G) M4 x; {6 i7 N
  12. .fill 0xC0,0x004 y& E$ T! j: B
  13. ;区域结束
    ) S1 Z) ^/ Q4 l) P
  14. .endarea
    : Q) D7 v3 P7 [
  15. ;主程序- o2 V5 D7 n" d. S! H& O
  16. main:% b, }* m1 l9 c
  17. ;设置屏幕模式3,BG2开启
    ; ?. K' |& O% ^: q, J
  18.         mov r0,0x04000000
    9 V3 t) ?% Q& J% F, W/ i; u# |
  19.         mov r1,0x0400  s9 D5 A+ _/ P8 s  q7 M1 @$ U1 @% T) v
  20.         add r1,r1,0x34 l% ]. _. H- F
  21.         strh r1,[r0]; G6 N2 v+ i' C- p5 F' k3 p% G" y& g2 Z/ P
  22. ;设置VRAM起始地址
    7 H) r, `& V, J: h6 t2 o
  23.         mov r0,0x06000000  }% C9 m* c4 U/ g4 M% c# G
  24. ;设置图片地址
    , _9 y+ P1 W; x6 U3 r! a1 ]
  25.         ldr r1,=pic
    8 N7 K3 R- O5 O& Z+ z
  26. ;设置数据长度为0x9600
    , G3 R/ I8 y) L( R: O. H( @0 a
  27.         mov r2,0x9600
    3 |& _/ H$ J% Y! ^. X; L7 J
  28. ;传送图片数据到VRAM
    ( k7 ~# W( x( O+ l$ d
  29. loopl:; O6 _) Q* w0 h9 ]7 j- \8 x
  30.         ldrh r3,[r1],0x2# V3 w( t2 S- X; v
  31.         strh r3,[r0],0x2
    ; u/ ], d/ [4 R' W
  32.         subs r2,r2,0x14 Q  d5 L+ m& _; \
  33.         bne loopl$ L* Z5 e7 i% A! l  e; g6 b/ D( o
  34. ;进入死循环
    3 ~) H7 W/ q) [! `, {9 y* K
  35. infin:
    . d* q* P( f/ @3 |5 V9 I1 ^8 }
  36.         b infin
    " I, E) ^* z! f2 h& O' w3 \
  37. .pool, }1 S2 p, N7 @1 N' {& O
  38. ;导入图片二进制数据
    # P2 k9 H8 z$ |: Q+ _
  39. pic:
    ( `4 [9 s, E3 _/ \( e# r# Y) @
  40. .incbin "16pic.bin"
    # Y; i. o# y& {( j" B; F" ]
  41. ;在0x08000000地址设置跳转到主程序入口: `0 u2 i1 K8 e' G) r7 j+ a
  42. .org 0x08000000
    ) k, D1 c3 D8 O! h
  43.         b main
    / s9 A, {) ~4 A% N+ @6 ^% c. ~
  44. ;关闭文件
    ' |. R# _2 u! E3 O& r1 x- _5 M
  45. .close0 w4 f& ~; U, m8 ~
复制代码
. r" Y, K1 I3 D( H, u7 Z4 {
保存!
8 X/ ~7 G5 C8 y: X) C( T% C
1 R: S/ ]6 J* Y: |: D(5)把16pic.asm和16pic.bin复制到armips目录下* V- h2 e( g; O! K

  z) Y2 W" l9 n% k$ V(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件; G+ s: M) x  J- B0 g* G  Q

1 h! s- x) w2 W, Q$ X6 e2 c! F: o(7)用GBA模拟器打开16pic_demo.gba观看效果
0 c/ p8 X% L2 U- p0 h2 n: h- c9 w

$ I% C& E( g" h- v6 N8 B% T4 I/ T. z2 ^
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
* s$ G& L% x/ |" T( f) u. z) _: t

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-9-23 16:23 , Processed in 1.105469 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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