EMU618社区

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

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

[复制链接]

签到天数: 2136 天

[LV.Master]伴坛终老

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

' I- c7 E1 w: {1 W; S! b9 a当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档9 n, q: ?1 b' i. a3 L

6 j: n$ n; P7 m/ b这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
3 H$ z, Y$ `7 a1 H. `
  R* |7 e7 H8 j, S, A(一)准备工具:1 }" Y! G5 o( N- H
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例
; `/ _4 x! e( R8 E
/ k2 k; ~) y0 Z; g* zARMIPS作者是Kingcom3 _  Y( w5 ^2 z( D
ARMIPS源代码github页面:https://github.com/Kingcom/armips7 ]* M1 P) b0 B3 I+ `
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips' v% m1 Z: k& v7 X; r
3 A9 I& r. t3 j
2.一个将图片转换为二进制bin文件的工具bimbo 1.36 ~3 j4 r* z) {! t8 h

+ T  y  Y' m& B9 Sbimbo 1.3作者是Aleksi Eeben, M1 x3 O8 F3 R3 @+ @; p
$ M$ z' O2 N/ t0 O" F; H7 f
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167, w# f/ _2 P6 z$ ^6 g: B

" O, {: ?% M( n" ~3.一个windows自带的画图或其他图形编辑工具# X3 a4 O0 V7 P0 B6 k3 N! R, i. p
! J: h/ {: O7 x; L
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)
# D/ b$ A$ i, f2 ^' Q: p0 A/ p0 D  l
/ @8 G2 R5 `  M/ b0 [% S& T" u(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP% g( v* K0 }1 ]

/ J" m* F* V; h- c6 x9 O
/ u* U# ^+ @/ e& Z
  h  {4 X. U/ ^(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
2 v$ [$ [; K+ r7 s* `: C8 ~% W
- `! ~7 N- v1 d. A- x; P5 x
* _0 z  y+ m5 }3 |% C$ o1 Y1 d9 I, Z3 n7 C
(4)新建一个文本,我起名为16pic.asm,文本内容如下:
" A) w, S6 i4 t3 u9 }
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000; g  R% K6 k# j! C$ n+ H
  2. .create "16pic_demo.gba",0x08000000
    2 n+ A0 T) ?$ \$ \8 e$ l& H# J
  3. ;设置为GBA架构
    ' ?" o- j  Y) G! m) B  X
  4. .gba6 e- S, q+ K7 }1 f+ Q* \7 V# n1 X/ M
  5. ;设置为ARM模式
    3 u3 w1 F. G$ T) l; _) i
  6. .arm
    ! D/ S3 |9 @6 k; M/ k, g: q
  7. ;设置起始地址是0x080000003 W; S1 ]/ H0 f' s
  8. .org 0x080000001 \9 Z9 y: ?3 {
  9. ;创建长度为0xC0文件头数据区域
    5 k, }8 d# ^; u7 Z7 ^
  10. .area 0xC0
    / i4 T) u1 V0 v
  11. ;填充文件头数据
    ; T' f. c: S3 ?" J$ _8 \
  12. .fill 0xC0,0x00* t& s: Z, M" l! U0 R2 _* M6 ]
  13. ;区域结束' \# v% V  j+ I5 s' ?& l& ^
  14. .endarea0 ^7 O. c& p8 Y. p: o
  15. ;主程序. I, b4 |3 k5 U) }, T& G
  16. main:) c) h# J2 ?; F5 a
  17. ;设置屏幕模式3,BG2开启4 ^' [7 V8 L8 f& @1 k) w1 ]* t
  18.         mov r0,0x04000000+ D, @  z6 u! K" c( \
  19.         mov r1,0x0400
    0 [* N  {; n5 q: Q* {9 X& o
  20.         add r1,r1,0x35 g' c' Z7 r& c" r9 q9 r/ L: t
  21.         strh r1,[r0]9 e# b5 E! g4 v# m) Q% a& I
  22. ;设置VRAM起始地址( ~! F! ~9 U2 X  B* k
  23.         mov r0,0x06000000
    - p3 C, W# N$ S+ J2 q; B. G  J  l6 S
  24. ;设置图片地址
    " h! }0 x7 V- \+ w
  25.         ldr r1,=pic
    # @# t# N6 S" G- _/ r. N
  26. ;设置数据长度为0x96009 V6 ~" Z0 X* X1 q$ ^" s
  27.         mov r2,0x9600
    ) p6 F/ R9 X6 M! k# S0 l% F) t
  28. ;传送图片数据到VRAM! m5 J6 ~. I$ L& s
  29. loopl:" r; _% j* |# `/ [6 S
  30.         ldrh r3,[r1],0x2. @$ c( }3 O, p- Q
  31.         strh r3,[r0],0x2" p9 ~. G, I! {1 H  K9 q% x% u
  32.         subs r2,r2,0x1
    - o  Z/ U% l2 \* g% b# O, Q; Z
  33.         bne loopl
    / t; p2 Y3 n: H& }5 P% R
  34. ;进入死循环
    1 B* z2 O" s% {# l  k2 p
  35. infin:9 i4 `/ G" a1 h. S, u2 [. A/ }
  36.         b infin
    9 C0 }4 l+ ~3 I; d0 U' u/ x
  37. .pool
    / b, c+ Y% k" ]! v; V+ |3 ?
  38. ;导入图片二进制数据
    8 d. I+ U0 O' ?4 ^: R
  39. pic:3 {. c  F4 R" Y- p' K$ W% Y0 Z
  40. .incbin "16pic.bin"
    # K' O4 p3 r% G2 i* N
  41. ;在0x08000000地址设置跳转到主程序入口  g: J+ K4 f( C, v( {5 o. {8 B
  42. .org 0x08000000: w9 }! ^; \5 e+ Q
  43.         b main4 i  ?4 W, H$ C$ s5 J5 b
  44. ;关闭文件
    1 f3 \! D2 K1 H9 q2 _# |
  45. .close
    . L+ Z& C+ `; ^- t' v
复制代码

' ?6 \# ^$ d. W: u保存!5 E  j3 A7 |4 V" b
" Z  M% p, s) J8 b. e/ v; v
(5)把16pic.asm和16pic.bin复制到armips目录下: g' n9 k( j! _4 _( F

& Q; G8 Z. w1 E! p; u2 C% z(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
& ]1 n' q7 O/ b+ f, F
( G+ m/ T% G. G  a(7)用GBA模拟器打开16pic_demo.gba观看效果# d& W/ J* e  y' f- i
. S) S  V8 G, T# y: }. Q% X& y- w/ p
" n  H/ f* W6 g7 G) e% F6 k

8 a+ b4 H+ d* h. K关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)) A+ c- B/ b7 ]% P5 U7 t

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-11-19 02:53 , Processed in 1.051757 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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