EMU618社区

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

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

[复制链接]

签到天数: 1773 天

[LV.Master]伴坛终老

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

* W, O; _, N  ^* H: E% _当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
. _6 V8 w  G, x4 I/ e3 f
# n+ o) j! P' j( W. R这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
+ ?9 ?& r3 V& f; y! y
( L7 ~! B2 o: c9 H" b/ d(一)准备工具:
: f/ i  O2 ~! v1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例8 z, w. {" A+ I; C0 o1 ^7 r

7 d& R9 \/ ?! b) xARMIPS作者是Kingcom
; v! ?. T% U' FARMIPS源代码github页面:https://github.com/Kingcom/armips
& `! Y9 x6 v/ v, E+ wARMIPS Automated builds页面: http://buildbot.orphis.net/armips, F8 g% C/ A# ^

" O/ w" m! y- F& j  s2.一个将图片转换为二进制bin文件的工具bimbo 1.3
  V# ~! b  }8 v7 P- V1 X. J& y8 ]
2 d4 n& o% B& Gbimbo 1.3作者是Aleksi Eeben: Z/ D( A9 _! b! E
& k# B8 o9 e& a: G
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167! x0 Z" m* J7 v' F, m. q
7 B9 u9 Q: v: z6 N% S* q# p3 w. K
3.一个windows自带的画图或其他图形编辑工具
: Y, R/ p# t+ J
( u1 B8 k( K1 B6 _4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
1 B$ y1 L0 G$ ~5 \$ X
1 ?; F" }  {' K% W$ L(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
3 A9 k" D' z; d! Q
3 i) Y) G8 a# c4 Z1 y
, a0 B- D2 M2 o/ @! d- P9 q  Q, n% Q9 w+ c
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
9 z+ \( c: H2 [4 m8 |3 L% Q. U
+ k" `# k  I0 y* D) e% G; S/ X0 u5 b) R8 D/ S( n" ?
8 D. t, c& Y9 g+ [8 L
(4)新建一个文本,我起名为16pic.asm,文本内容如下:- c5 g( e1 z4 w* l) x
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000( g) P; [7 N. G; @' ^9 {
  2. .create "16pic_demo.gba",0x08000000
    ; D7 O. r2 g. h1 M9 K& o, x
  3. ;设置为GBA架构0 i* u: M0 b* l; s* m! c( y
  4. .gba
    . j& X2 G& z2 H! s7 R% M+ m
  5. ;设置为ARM模式
    " w& x7 U% h, d. y. d9 q! C
  6. .arm
    9 [! G( O# c% o% [% [
  7. ;设置起始地址是0x08000000
    * H3 K. [% {0 e7 E6 w0 U' Y
  8. .org 0x08000000& Q6 u% D6 i' ?6 A1 @* o0 h
  9. ;创建长度为0xC0文件头数据区域% z; B+ |4 C. {7 ^# a
  10. .area 0xC01 R0 M0 e, r1 F
  11. ;填充文件头数据
    ! F, O8 Y9 w$ C$ D
  12. .fill 0xC0,0x00. c2 f0 P* f: H# V! f2 [
  13. ;区域结束9 r; j3 U3 a5 w! o, a4 Z
  14. .endarea
    ' K3 N. c; ^9 t+ w5 [$ e- Z
  15. ;主程序
    4 s1 a, k+ d6 n; r2 l
  16. main:
    - U! O+ J6 V4 w* t! F
  17. ;设置屏幕模式3,BG2开启8 t. s" l. w7 d" [
  18.         mov r0,0x040000009 n  g8 n" o- h& j* d# _5 S
  19.         mov r1,0x0400# l, ^% c- [) c8 K& O
  20.         add r1,r1,0x3
    4 ]4 ]' J3 Q3 `4 o3 [4 m
  21.         strh r1,[r0]; p. p) e0 L3 O+ b  `  n( w
  22. ;设置VRAM起始地址1 Z: p5 `; }3 y: R1 ^8 p! w
  23.         mov r0,0x06000000! ^4 |( s6 y& `/ Q$ n
  24. ;设置图片地址
    ' B+ G* I' E- ?, E+ X) h$ ?3 p- y
  25.         ldr r1,=pic
    ! `+ E! j) @1 G7 O% C
  26. ;设置数据长度为0x9600
    ) Y2 |$ ~7 [0 _6 J( K2 B7 B
  27.         mov r2,0x9600
    8 s0 B/ |5 G- A3 W( k
  28. ;传送图片数据到VRAM
    ( H3 x" g7 v, s* O1 F3 G6 E
  29. loopl:* V* w0 [, x& _; V" ?5 ^
  30.         ldrh r3,[r1],0x2
    ' j- R, C' l0 T6 l8 h8 @8 F8 k
  31.         strh r3,[r0],0x2' @* a; i- `: W+ n; |
  32.         subs r2,r2,0x1
    . }& q" A( y7 _! G! D5 S, x
  33.         bne loopl
    , g% D- p' g' |
  34. ;进入死循环# d" K4 n+ `( m$ |% Q: f
  35. infin:
    # F0 x$ F9 [9 @) d
  36.         b infin+ @% w6 X; I) |, O+ O/ q
  37. .pool: G* |. n+ L6 g! v3 u0 j" I
  38. ;导入图片二进制数据$ G6 Z7 f/ b# [7 s7 `0 V
  39. pic:: e7 _$ ^! n  i% K, q  f0 f
  40. .incbin "16pic.bin": b  v3 l5 v# b$ f: e( B
  41. ;在0x08000000地址设置跳转到主程序入口
    2 y3 |& ~/ w" n& h0 v
  42. .org 0x08000000. s# N9 V& Z$ D$ h2 i
  43.         b main
    / V2 q& f9 v7 \6 Q* l
  44. ;关闭文件
    & f! R7 p% Z: e
  45. .close
    : y1 A4 _  v) c: I8 i$ r
复制代码
( J8 Z1 N5 i% m3 a( H. M
保存!: f1 N+ C0 ]+ B- X' [2 I, f: e

$ o* r4 ^; K0 H" {! A, e$ G(5)把16pic.asm和16pic.bin复制到armips目录下
% b% i' v* T3 T) s- q
* n9 P/ D' G/ {$ ]& t: m/ S5 }(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
$ s2 _: J1 K7 Q$ e9 `0 W7 x- O
(7)用GBA模拟器打开16pic_demo.gba观看效果
, h9 T+ O$ p& b6 M" N# K
% R8 o$ f1 r" W; O( W' \$ N; \0 x. S, m" @$ D8 K. a

/ t- g) o4 e1 P0 ~' h' x关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
0 i! @5 a6 D- D! t

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-19 01:53 , Processed in 1.089844 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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