EMU618社区

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

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

[复制链接]

签到天数: 2160 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
6 {" j, B  P8 e. O4 h: |/ T) P
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档, X" E, t$ a# H* R( b& L, Y

. `* U0 j" A9 O; i+ F. R这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧; L) n; G# s3 q8 u
& J' N6 Q# S* r1 I; w
(一)准备工具:% H5 h: F$ Z! p# y4 Z! M1 k8 s
1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例( p2 D2 O& c/ L$ e6 |5 V7 w+ W

1 e: V, }( }  Z, E* m4 p3 ?9 l) ^ARMIPS作者是Kingcom- v; ^; Q, l# [
ARMIPS源代码github页面:https://github.com/Kingcom/armips$ Y$ R$ ?% W! ~) G& n% h
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips! o8 ^2 }8 q! Y5 [9 j* U( D( P
1 c# A, _; U* h/ ^
2.一个将图片转换为二进制bin文件的工具bimbo 1.30 }& ^; h! i3 I9 B! T
% l0 r. w  H/ J, v. Q
bimbo 1.3作者是Aleksi Eeben+ p. U( `  H* i. z: L
5 m: s: r4 S- Z  J5 j" k; a2 U  \! T' U
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167+ a4 M: d& B$ x% ^

2 d: A6 `) P$ [% K' v! q* D3.一个windows自带的画图或其他图形编辑工具( l6 N  Q8 X1 z" t

. K! {* x  A3 o# J! l8 a+ x/ _+ V4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)6 }5 a' X0 B3 l3 V+ p0 ^2 [3 y

9 w) _' J8 B5 U2 K(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP
# y: M8 U) f. r8 d
; ^6 s, I; G! C( l. |  L. @( _) o
. M4 Y7 B( \: Q3 x  b2 P4 X
1 I2 G+ x& m2 B) Y(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin3 k0 W& P4 K9 p$ \& J

4 k5 [. |' H. g' D
* C/ P  Y5 G: i# _
* R2 L5 L' t; _3 _5 l) P(4)新建一个文本,我起名为16pic.asm,文本内容如下:
! A- {( ]7 }, D  O' P
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    " W. o( R0 C+ L: R0 i$ Q1 k& B1 N6 v
  2. .create "16pic_demo.gba",0x08000000
    ( U/ r% L9 m' w
  3. ;设置为GBA架构
    , v9 i9 Y" R, ^; d
  4. .gba: {: ^/ }9 M4 s
  5. ;设置为ARM模式
    " |# t' T/ _) ^
  6. .arm
    ) m, m4 v' p* g
  7. ;设置起始地址是0x08000000
    4 E; z( S  O6 V( }4 _6 {1 @
  8. .org 0x080000001 [- Z. g7 l: v: o: c
  9. ;创建长度为0xC0文件头数据区域6 k5 g0 c! i2 X1 X$ t% f
  10. .area 0xC04 M" _' k, E6 G& S+ f
  11. ;填充文件头数据0 R' Y9 D" B7 v8 F/ I
  12. .fill 0xC0,0x00
    7 [; ^- q1 S1 I, ]4 C3 Z
  13. ;区域结束" _6 X& X& T  }8 ^2 p9 Y5 M
  14. .endarea
    ( ?+ n9 F% `$ }
  15. ;主程序6 x  d5 J! g4 ^5 C6 T9 l1 D
  16. main:
    ( c7 B. ^, r6 s+ _, F
  17. ;设置屏幕模式3,BG2开启% C& q& e5 H% N6 p3 E3 f
  18.         mov r0,0x040000002 J: B- W9 T7 s  l5 ?+ P
  19.         mov r1,0x0400. W; b( P/ f2 @. l
  20.         add r1,r1,0x36 B$ Y. a8 l! ?
  21.         strh r1,[r0]' e! X+ I3 {3 X/ b
  22. ;设置VRAM起始地址
    5 A9 R* D: P9 b( h% _& m) i
  23.         mov r0,0x06000000. U9 e6 f' X/ D
  24. ;设置图片地址% A% `0 t+ i6 Z5 q- V- \/ V& K8 ^
  25.         ldr r1,=pic
    % A( y5 F" C; N' q& S) t, f, h, x
  26. ;设置数据长度为0x96000 X& _. [* u- Z7 R% }& |1 I7 F" M
  27.         mov r2,0x9600
    ' V9 L: F8 ?# O- [' p
  28. ;传送图片数据到VRAM* |0 t" E- ?2 L- x  T
  29. loopl:
    ! W! [% @$ ~: N4 m$ s
  30.         ldrh r3,[r1],0x2
    ( d$ e: O, o7 ~- `. M
  31.         strh r3,[r0],0x2
    8 E9 X6 y/ H: ^$ t1 z- C
  32.         subs r2,r2,0x1% x4 T) q: {/ n+ v$ ]+ }% X
  33.         bne loopl
    % N1 d# W; C) t8 P2 N8 H
  34. ;进入死循环
    . [3 W$ `8 q0 }' J
  35. infin:
    + H( s% F8 V* A9 X6 m, J# W
  36.         b infin3 O) I. e3 I1 V
  37. .pool+ _$ h  [5 M4 h, p6 S" q
  38. ;导入图片二进制数据9 Y4 \2 T% v& |8 q/ T9 w; R
  39. pic:
    ! p% i& V, _, c' j- q8 E2 g
  40. .incbin "16pic.bin"
    7 B. f2 E2 g5 D2 u2 L& n& Z
  41. ;在0x08000000地址设置跳转到主程序入口
    & o* ~. G' p- Y
  42. .org 0x08000000
    ' `% V; C7 U2 M2 m
  43.         b main
    1 ~$ `. B2 `; D) y
  44. ;关闭文件) G; w5 M: C) z* b$ W: \
  45. .close
    - e2 |: ^: Y$ }
复制代码
3 K2 h. X# Y( _- U
保存!
! [% O8 j: x) f5 Y
9 r0 l0 I3 ?7 v: E$ Y(5)把16pic.asm和16pic.bin复制到armips目录下
7 Y( p& \+ {4 w5 \6 S* p# t* B" F  o; C$ N3 Q
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
* {9 X, T! }1 [
1 n5 o' U8 O) G' j(7)用GBA模拟器打开16pic_demo.gba观看效果+ y. I$ d1 |) G( ~# g* _

! `' S6 r1 C. z/ a1 T2 u( j. ^1 k4 d/ K! F+ H/ _6 r; L
  {6 A6 t4 w- z& L
关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)
2 {( k+ U  Y6 F3 ?# `

本帖子中包含更多资源

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

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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