EMU618社区

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

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

[复制链接]

签到天数: 2164 天

[LV.Master]伴坛终老

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

+ P+ @% J! I* X) y当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档/ T, C3 s- z$ i- e
& ~  ]) y# V$ u* y5 e
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧5 A3 I. Q2 i- J- I
" a5 X+ B' T& [  ?. [3 s$ `3 E9 s/ M
(一)准备工具:
6 l  e' r/ i1 H# c. l1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
+ R3 W2 y5 {* w7 F6 G5 x! G
; P. `; `6 J  F. t8 j! FARMIPS作者是Kingcom
; H! w. o! v1 ZARMIPS源代码github页面:https://github.com/Kingcom/armips
3 @( P. X( n2 g- r- l- T5 oARMIPS Automated builds页面: http://buildbot.orphis.net/armips9 b6 q( V" k; F6 E* I0 L
9 k6 z9 |& d' H) ?
2.一个将图片转换为二进制bin文件的工具bimbo 1.3
3 h9 }2 \7 ~7 q) A- k' `  T$ B, t
bimbo 1.3作者是Aleksi Eeben# D  ]" V4 D- M% |& f( @3 _+ C

1 ]  V/ L6 ^8 ?) B, M+ y( _bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167) R$ Q5 G) [3 R/ F9 n; B1 f( O
4 {9 P# n, R) c9 |- L9 e- R: C
3.一个windows自带的画图或其他图形编辑工具
! T9 E0 Q; O9 e9 q- Z2 H) t" B7 e( N! c1 |
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
) R: }# z" \: o4 }: X* m
/ C% ?6 \% F) @* w" O, \; x(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP; P3 N- x! J7 i( t

2 ~9 g% L: s( L- t4 [4 \5 v. }  {0 y
  D( N) B7 o5 C7 T1 Q2 T% b4 G
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
+ }2 v1 X, }- {" j9 W* r" t* q4 p& F) ^6 L7 J6 S

. l$ f0 V* a! g8 Y6 u) ^8 F" I% k2 j
(4)新建一个文本,我起名为16pic.asm,文本内容如下:
0 `% y' q( G& P! ?' M
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    ! x& q: P7 i; N
  2. .create "16pic_demo.gba",0x080000004 `$ {& N$ r! t
  3. ;设置为GBA架构( ^: X" }$ j1 |8 e( d
  4. .gba
    - @( e: u8 ?# x% c. ]# H
  5. ;设置为ARM模式8 m' N; g4 w; n5 B/ q
  6. .arm; R+ X! m' [% p# O' b$ J! d8 i
  7. ;设置起始地址是0x080000007 F0 X7 K7 d5 h4 |
  8. .org 0x080000002 i& n8 `' I. y3 g( C6 R1 m% A- I
  9. ;创建长度为0xC0文件头数据区域. w/ }2 v8 s  ^/ I8 p  I
  10. .area 0xC0
    * A/ A1 q8 E* [5 {3 [5 @
  11. ;填充文件头数据" M$ i2 z# _. x! M; m
  12. .fill 0xC0,0x00
    % D  v# L' l% b, ^! D- V: y6 D
  13. ;区域结束
    + d; U( [, L. L: h/ _+ {+ D; x) p
  14. .endarea
    1 D/ l; d. }4 W) T7 O0 B
  15. ;主程序. Y& g" }" |- o3 W5 \1 i
  16. main:
    ; B- h; [4 |# J2 ^! j
  17. ;设置屏幕模式3,BG2开启. i5 A& ~' g: X5 n+ E) z
  18.         mov r0,0x040000005 T, U! H6 ?+ T4 D: v# q
  19.         mov r1,0x0400% b. r& @' J: z( }& A; K) ^$ e
  20.         add r1,r1,0x3) R" G7 o: i; B' N% w* u& w6 a; \
  21.         strh r1,[r0]
    8 o; {& \, X) a9 O
  22. ;设置VRAM起始地址
    5 U0 X4 r. {! l/ w9 M+ u/ r# B
  23.         mov r0,0x060000009 Z, i( [  i7 f. V) N; [# }" F
  24. ;设置图片地址% n/ Z- T: f; c* u. ~/ k
  25.         ldr r1,=pic6 t" a# k& ~3 Z) i5 i* t- M- \
  26. ;设置数据长度为0x9600
    7 O. v+ C8 M+ _0 H, C
  27.         mov r2,0x9600
    ) H7 ^( v. E% n1 [4 G+ K/ Q
  28. ;传送图片数据到VRAM
    : ]1 n- M1 t" Y8 Z/ ?
  29. loopl:
    / q6 V: B: `: W
  30.         ldrh r3,[r1],0x2
    . d+ P! I6 g' J% J
  31.         strh r3,[r0],0x2. W( q6 I) f0 J& x
  32.         subs r2,r2,0x1
    0 w) M" O3 Z6 f  e
  33.         bne loopl4 @, W$ v  q8 o, Z8 U  M
  34. ;进入死循环* `& v# e( ]' m  V$ l
  35. infin:
    7 C: O4 [+ @! J4 }% S* c
  36.         b infin) m4 O" K: S5 n* p+ {
  37. .pool
    ) z" y4 x; }+ S/ I3 x! V8 _
  38. ;导入图片二进制数据) k8 D6 L" T, W1 [1 W+ {9 q; m4 a9 t
  39. pic:
    " g- `" e- {; v. M( h/ _4 c
  40. .incbin "16pic.bin": ~- L2 M; b# h" l, e; o
  41. ;在0x08000000地址设置跳转到主程序入口" Q& t  B* m: P4 r* `7 v
  42. .org 0x08000000
    4 F* W1 c. T# L: K
  43.         b main0 T- L6 {: o) @" H' x3 R1 `9 }
  44. ;关闭文件& J  E# O  `; w& F9 E! ~
  45. .close
    / H9 D! n9 H; j0 w* Z! G* ^
复制代码
! Y- i' x7 u$ q$ ?% R1 a* _
保存!
( |4 x5 N3 q. f/ C# e( \
; s- d2 d9 v3 \/ C- f+ n( g% u(5)把16pic.asm和16pic.bin复制到armips目录下' F6 h2 t- I+ U$ E! k- q* ^
2 F& ?) ]- [# }/ {( Z/ z  V4 V
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件( N3 u  N# q# g8 ~) ~9 b. \

; [  w7 ^% P7 K5 \$ U. H(7)用GBA模拟器打开16pic_demo.gba观看效果3 B# g8 N; J/ M8 o6 M

6 Y3 p" v* J  T, A! p* A7 h
* {6 X# y2 y7 q9 Z+ t/ o
7 V3 G: C; t5 G2 e- `  d. }. v关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
4 `+ d/ z6 X! ]7 D, S% p

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-12-18 04:40 , Processed in 1.100586 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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