EMU618社区

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

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

[复制链接]

签到天数: 1885 天

[LV.Master]伴坛终老

发表于 2020-2-3 22:16:03 | 显示全部楼层 |阅读模式
- Q2 V! a/ y; ?7 }7 w- n
当你HACK了一个游戏,想给HACK ROM加个介绍或版权声明之类,那么你就需要这篇文档
% d' p8 z5 }" s/ x5 [6 F, P; m/ c+ N( o
这篇文档会说如何创建一个图片GBA ROM,之后请各位动脑子如何加入ROM吧
& O5 _6 @4 O) k3 d7 k$ w
9 W  Z( d- I  \3 l(一)准备工具:
6 X; @( F3 ?2 g+ ~& K, K1.一个汇编工具armips或goldroad,goldroad已经好久没更新了,armips是新出的汇编工具,支持arm和mips汇编,本篇资料以armips为例2 ?) E+ R0 d6 t% L
( r% a- Y0 [" b: E/ Q
ARMIPS作者是Kingcom
7 y  \0 C) M& S- L) @) p2 f' I2 X9 UARMIPS源代码github页面:https://github.com/Kingcom/armips" d/ o, Y  a+ N/ g
ARMIPS Automated builds页面: http://buildbot.orphis.net/armips
& F3 v3 F5 A2 [& P" W. c  |: V" i
/ Z0 a4 e8 b/ O2.一个将图片转换为二进制bin文件的工具bimbo 1.34 `( W) r- e5 D4 Q, k* E1 o
/ ?) s  m- q; D/ [! m
bimbo 1.3作者是Aleksi Eeben
6 g- ]+ h6 w4 V& ]# [) v4 {  C4 e8 {, y1 h$ L# P  T& H
bimbo 1.3下载页面:https://www.gbadev.org/tools.php?showinfo=167$ o7 r: v4 E- |0 T2 ^# e, m

- ~# M" M  o) R+ Z9 J3 v3 R3.一个windows自带的画图或其他图形编辑工具5 m3 [# ?; O, l5 P1 q5 E
- K) Z3 C4 n; \+ e% K4 }& C. k+ a
4.一个windows自带的记事本或其他文本编辑工具(例如Notepad3)1 N# ]5 x1 c' O
; g, }# D& F) ~' \" {
(2)使用画图制作一个单位为像素的240x160大小的图片,另存为16色或256色的BMP, q5 ?- H" G: K. Y3 k& U/ b' q3 s
0 E( E+ A' l8 c! [, N* a# w* u2 ~
: m; j2 i, o6 k. ?+ _$ i" B, Z+ D
6 ?: G$ N" p: \' H% d
(3)使用bimbo 1.3把BMP导出为mode 3的文件,文件名随意,我导出的名字是16pic.bin
& Q- F1 y/ F) X  }
* u! v/ U+ u$ h1 `
( T- q2 H+ I* \
* V- d3 k! p3 e9 f9 q  I(4)新建一个文本,我起名为16pic.asm,文本内容如下:8 j) h( c' b, E& C0 s
  1. ;创建新文件16pic_demo.gba,文件起始地址是0x08000000
    * c- |9 @3 K9 X! b3 Z* C  u" @
  2. .create "16pic_demo.gba",0x08000000
    " S" }0 R+ Q' k  }5 T
  3. ;设置为GBA架构
    ; {- I. w  L& I- {6 `
  4. .gba
    . J  S2 X, U& Y" m& [
  5. ;设置为ARM模式! d$ B1 _" N' V: c: T, i& L
  6. .arm$ w( G- J, T0 v1 I. s( s/ }0 _
  7. ;设置起始地址是0x08000000
    # a4 o8 X) W' X1 h! w0 `6 O3 t+ B8 x% n
  8. .org 0x08000000
    5 b( Y+ v4 w, s0 C
  9. ;创建长度为0xC0文件头数据区域
      o1 J' Z5 `0 h; G
  10. .area 0xC0
    ( Z3 N- J0 a9 O
  11. ;填充文件头数据
    . H/ ]: k$ O& _1 }. e5 ]
  12. .fill 0xC0,0x00% d1 p) O% t. O
  13. ;区域结束
    0 b. y4 m8 ]" G/ p$ y) j
  14. .endarea& f: b0 j$ M% n5 z5 t& U
  15. ;主程序4 Z/ [7 S7 A- u  r! X
  16. main:
    , `  K0 F/ ~" C  G- ?
  17. ;设置屏幕模式3,BG2开启" j. o: }1 G% ?5 i" p3 ^$ p. g: I
  18.         mov r0,0x040000001 Q& g8 V, D. `
  19.         mov r1,0x0400% S# `- S' Y3 C% A. @2 d6 s
  20.         add r1,r1,0x32 X$ U5 ^$ R8 k2 c  d
  21.         strh r1,[r0]
    1 L# _5 G  ^7 K5 H/ j
  22. ;设置VRAM起始地址
    4 y- i! K- \0 |! _6 I9 }- v
  23.         mov r0,0x06000000
    3 M; @$ g; \5 P* a# _6 k) A
  24. ;设置图片地址# S8 J, z" \) ?- X/ n' g
  25.         ldr r1,=pic1 L3 {1 b/ W- @% c1 I( J
  26. ;设置数据长度为0x9600' q% H3 ?! L: y6 f3 [  _; w  {5 g
  27.         mov r2,0x9600$ z5 e5 R: K. {4 Y& m) M3 }
  28. ;传送图片数据到VRAM/ x/ K! D( m. w1 R# @2 l
  29. loopl:
    6 r/ [( H( o! n2 R, r5 s
  30.         ldrh r3,[r1],0x2
    ) K8 q. q" }! f. d& }1 E9 S
  31.         strh r3,[r0],0x2; V& D# t# l1 Y, R
  32.         subs r2,r2,0x1
    " V4 j! [$ |1 E6 }! L: t8 z
  33.         bne loopl
    1 v& W; @& D' X! R% v: r3 Z
  34. ;进入死循环% L% C: C9 @* H' `% r
  35. infin:
    4 E- C( m7 @' _
  36.         b infin  G! p- V5 u9 Y4 R" a& A
  37. .pool" M1 ~# H7 k. h) _2 A
  38. ;导入图片二进制数据' r$ X9 k3 t6 ~# K9 ^$ @  R& U
  39. pic:" `- p+ `/ j- [4 d$ C
  40. .incbin "16pic.bin"
    # S% r( R& n5 k- j5 x
  41. ;在0x08000000地址设置跳转到主程序入口" x) Y  J% C! E% T% k' u: T) t
  42. .org 0x08000000
    7 o: s9 \% s6 E8 P; O3 q
  43.         b main" z# s4 V0 Q5 S) _! s
  44. ;关闭文件5 H* U  p4 h- X) u$ K: |
  45. .close
    8 S' k1 {7 G5 K  ~! D2 P
复制代码
2 S1 J( X" c' F
保存!+ Z+ U- w9 M# x7 z. W: n7 Y
3 h  d* O( p; G" M. {$ L( l+ {, o
(5)把16pic.asm和16pic.bin复制到armips目录下# Z" A! I1 w  p  U6 h* S
. Y( |0 D% T! h$ ^. t3 E3 Q
(6)打开windows的命令提示符,进入armips所在目录,输入armips 16pic.asm,按下Enter键后可看到armips目录下生成的"16pic_demo.gba"文件
  Y$ b6 G. n$ {! q$ I- Y+ M* N2 h  W8 I; ^5 n
(7)用GBA模拟器打开16pic_demo.gba观看效果
5 S. e8 F1 O( [# P; ~9 E( {( p. j* Z7 h# {
' y- I- j4 j" C) g+ D5 Y9 U

$ X& L$ N4 h" m. X; h. J关于GBA各模式资料请看GBA系统参考.CHM(张晓波翻译)5 W6 a/ Q5 E9 }8 c& ]; c  w

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-3-11 14:22 , Processed in 1.114258 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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