From acd015bacc5c7e6d822929c2c46a53118b7d98ab Mon Sep 17 00:00:00 2001 From: drift Date: Wed, 25 Jan 2023 13:04:51 +0100 Subject: [PATCH] Relocate wiki from trac --- README.md | 66 +++++++++++++++++++++++++++ wiki/GameBoyAdvanceDevelopment.md | 28 ++++++++++++ wiki/graphics/project_icon.png | Bin 0 -> 1480 bytes wiki/graphics/small_car.png | Bin 0 -> 972 bytes wiki/graphics/two_cars_and_smoke.png | Bin 0 -> 5556 bytes 5 files changed, 94 insertions(+) create mode 100644 README.md create mode 100644 wiki/GameBoyAdvanceDevelopment.md create mode 100644 wiki/graphics/project_icon.png create mode 100644 wiki/graphics/small_car.png create mode 100644 wiki/graphics/two_cars_and_smoke.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..e38b70a --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +![](./wiki/graphics/project_icon.png) + +# The helds project + +**helds** is a project for homebrew development of games, tools and applications related to handheld gaming consoles. At the moment the target is specifically Nintendo's Game Boy Advance, keeping a look to the Nintendo DS. This project was created as a testing ground for the helds developers, being newbies at both game and console development, but wanting to share experiences as they go along. Hopefully some of what is created here can be of interest or use to others. + +All software that is part of this project is released under an open source license (GPL or BSD-style), and should also be easily browsable. Though anything found here should be considered unstable and unfinished. + +Enjoy! (well... currently there isn't much to see.. but still) + +*The helds Developent Team* + +--- + +## News + +### 2005-12-22 (tangstad) - progress rant + +Things are moving abit slow, but will have more time to play around with the code when the holidays hit. Just discovered and fell in love with [Magnatune](https://www.magnatune.com/), the not evil record company, which should be a great source for in-game music for non-commercial projects. Looking at using Tepple's [GSM player for GBA](https://www.pineight.com/gba/gsm/), used also by his great lumines-clone, [luminesweeper](https://www.pineight.com/lu/). + +### 2005-12-05 (tangstad) - two player with smoke + +Working on making the cartest demo into a two player minigame. I've put the plans for chasers on ice and currently thinking about adding rockets. Right now the demo is usable by two players at the same time, one using left/right on d-pad and L-button for acceleration and the other one using B/A for left/right and R-button for acceleration. + +![Two cars with smoke.](./wiki/graphics/two_cars_and_smoke.png) + +### 2005-11-24 (tangstad) - nice car driving + +Added some nice rotating controls with variable speed to the cartest demo, together with better wrapping at the screenborder. Now all that remains is to get started on the flocking/swarming algorithms for the green chasers. + +### 2005-11-23 (tangstad) - rotated sprites + +Been a while since last update, but played around abit today with sprite rotating on the GBA (see [source:gba/cartest](./gba/cartest)). Currently it's a test of a simple car sprite ![sprite from cartest](./wiki/graphics/small_car.png), movable by using the d-pad. It uses a single sprite graphic rotated in 45 degree increments using affine transformations. + +### 2005-11-10 (tangstad) - gba tools used by helds team + +To get an overview over what software and are used by the helds development team when programming Game Boy Advance homebrew, see [GameBoyAdvanceDevelopment](./wiki/GameBoyAdvanceDevelopment.md). + +### 2005-11-09 (tangstad) - img2bin.py image/tile converter + +To learn abit more about sprite layouts I made a simple script to convert images of most kinds to a binary that can easily be included when compiling a GBA rom. It can optionally lay it out as 8x8 tiles and create a BGR palette file. It's a python 2.3 script that just requires PIL, Python Imaging Library. For source code and download see [source:gba/tools/img2bin.py](./gba/tools/img2bin.py). + +### 2005-11-08 (tangstad) - sprite debugging + +Been playing around with GBA programming, just making a simple logo splash screen application with a single sprite. Had some problems debugging it as the linux version of [VisualBoyAdvance](https://vba.ngemu.com/) doesn't include memory map viewers as the windows version does. I just found out that the windows version will happily run through [Wine](https://www.winehq.com/) on linux though, as long as you provide the MFC42.DLL. + +### 2005-11-04 (tangstad) - helds.org domain aquired + +Coincidentally I found that the helds.org domain was available and nice to use for this site. We will still be hosted through [PVV](https://www.pvv.org/), but we now have a nice url available. Still haven't decided whether it should just be a simple redirect to the pvv-site, or use cloaking/frames to show the nice short url in the browser all the time. Currently redirect is used. + +### 2005-11-03 (tangstad) - helds is alive + +The helds project is officially open. Source code will be managed through subversion ([browse source](https://dev.pvv.ntnu.no/projects/helds/browser)) and this wiki will be available for subprojects. We even have a cute logo. Welcome! + +## Current Activities + +- Install a better news/blog-interface for Trac (with rss), if they ever release one +- Flesh out this site +- Add current projects to this site (map-displayer) +- Start development of new stuff +- We really need some pictures here... put some up + +## Contact + +For questions or comments about the helds project, please contact The helds Development Team . + diff --git a/wiki/GameBoyAdvanceDevelopment.md b/wiki/GameBoyAdvanceDevelopment.md new file mode 100644 index 0000000..16a0234 --- /dev/null +++ b/wiki/GameBoyAdvanceDevelopment.md @@ -0,0 +1,28 @@ +This is a list of the software/hardware used by the helds development team, so keep in mind that **this is not a complete (or even extensive) list over software or hardware**. Unless otherwise mentioned, **software listed here is for linux.** + +## Software + +### Compiler + +The easiest way to compile GBA homebrew code is using devkitARM, a toolchain based on GCC. devkitARM is part of [devkitPro](https://devkitpro.org/), which contains libraries and compilers for several portable platforms. We also use libgba, a development library containing memory constants and practical functions. libgba is also part of devkitPro. + +devkitARM and libgba can be downloaded from the [devkitPro project page](https://sourceforge.net/projects/devkitpro) on sourceforge ([link to files](https://sourceforge.net/project/showfiles.php?group_id=114505)). Remember to get the [gba_examples](https://sourceforge.net/project/showfiles.php?group_id=114505&package_id=159894) as they make a good structure for basing new projects. + +See [devkitPro](https://www.devkitpro.org/setup.shtml) site for installation and setup instructions. + +### Emulator +To get instant feedback when developing, you really should have an emulator available. The best one found so far for linux is [Visual Boy Advance](https://vba.ngemu.com/). For better debugging it's possible to use the windows version on linux through [Wine](https://www.winehq.com/). The windows version includes memory viewers and state inspection, making it alot easier to figure out when you've set your OAM entries wrong or placed stuff in the wrong memory area. + +### Image editor + +I know there are lots of tile utilities + +## Hardware + +## Game Boy + +You really need to get the hardware if you want to have fun developing homebrew. Playing around in the emulator is nice, but it can't compare to the real thing. + +## Flash cart / Flash2Advance + +To get your newly compiled homebrew running on a game boy, you can use a flash cart. We're using the Flash2Advance usb linker to connect the game boy to a PC, then use the F2A writable cartridge in the game boy to store the rom. After the rom has been transfered, you can take your game boy with the flashcart and show your new creations to your friends. Great work is being done on [if2a](https://if2a.free.fr/), so you can use the F2A linker on linux, OS X or windows. diff --git a/wiki/graphics/project_icon.png b/wiki/graphics/project_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..31261748d11e56dedd5e2f7ebf096bad04ecc1fe GIT binary patch literal 1480 zcmV;(1vmPMP)WFU8GbZ8({Xk{QrNlj4iWF>9@00k^bL_t(|+U=cBcB?iN zhp&2iGRp?C2&dgg=W0y^wO9XxP}A3|VBNWk}< zqm!6FLb~wdN>>P!)>;bywDJ=s06-uB2m}Cu03Z+m1Ok9S01yZO0%@lx3Ql4&f?gL$h+ZhbGxZ}5XM2=@1`l+ z&v*HhQr|EB-x>=KBC@GOQU7gOAHx=O(qUY&U0(ds_TIm-^!Wwek$o zA&x_}U7Kj|ATUb~)y4i^UHlu%_V11T=!4J)SwtU1q`j$S64WN5Ewm&1{a%YmYufMk z8m4W(P~|h_*_L9$I0!(DysG~PShPU0ER(0Fr%&R5kv+)^o+Ow+ zT;lk(IBIIoaXcQ+oj2EUf|%nBW0cRieqXE9k%uXt6zm`T<`HWgq$!Ttd+c^QW*|oD zi^!iM`VVa3-Gf{c=N=-Cka74F=Bp$#&hRyG{sGR(Z=(S@%H(-(j{}kAmbpPUNSte&jIl%OC@h_x3by%g9mZVpc%)m zi6Z_jh3xw zEus%S@;n?wKR@3t!hSZwM6s%9Rm_hs0wfv5DvClxYblE2ERNa@LVU97239uCNBuOf zda0hvf^Y)K^IVitlIQuSWso?Qr+N{HXD*voG_~UL<(C`z{o9SGt^D9Q{y#?yRe2YP zDHeSh)oNSslD}=8ul++aM*aT!``>dC5h*Xd#)ap2d%InX{jA;TvF3vmMIn!mkKB@A zT8#AtBDpf`7WxZJUHQAFKIL0-{X!=n_DlX7g-ic_2Hyt>TfS(W^uEn5!oRS{C{|ae zy(Z6dqFazOqs<3t69VD@JV=7=Qh?C}(l-v>eCl#Ye0s^>&*1wY@$1g_K>#d$gW%&J zrfpJRPnve}F%B}y1O2uOR4mW)$6VjFecJ%2Dc|~c+gt`)p3QxwW4?n}=0tSuW6G!P z_+51~9dn3{Y-JpJzLFQnlm*mBAf{zQw(VNhRo1Qx?%Lz^5klAYL&{B|mLR|kd{AXbJzlnjt$H#}E z5yVMLOJkVuzoCJb;XFgwMz(qL=55-<0OW7lwCUo-i~s)vl>h-y$0!&Lfgv9P6K5AM z26}?Cz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0Ty878BQ!c=`JOQ=m}1r;B5V#O0}d2e}R? z@HmGG_-|7C|9@k5Wa^pQ_m-+o`7+f)!_g>VkJbto;|r@6@R^h>G+d>>CD!S%_!H?J z%1mq5pS$-!-{0VQf5OyveInNPqI8;d(*jrK87d`q)$U;Y$;xXzclG2XP`G-!`njxg HN@xNAXLnn) literal 0 HcmV?d00001 diff --git a/wiki/graphics/two_cars_and_smoke.png b/wiki/graphics/two_cars_and_smoke.png new file mode 100644 index 0000000000000000000000000000000000000000..0c231d0f7410acc0f9a091fce4a7f5e00835918d GIT binary patch literal 5556 zcmZ`-cTm&K)Bhq!5fr2eN|7eLJanmoAR!QX??oxnrFW%>fPhHoB~k(eDbkx1K|qaw zgc5ovLI_BcKp?aq&u`v&|9EHKo4MV+xt+V)z5DFmU7~@W*3BDtZvX&rQyZjVbj8oE zYCGk%D;jGvuzSU*d_k7}06-J?ZzT~8fnEs!MSwO$lVXzQIuo;u$f%G505BPAYp9uo z%x)Kkds?F-hoZ6ba^iwusHe_fogc>F0t@#%joNXzCMq73KlwOeJ&n1rlRKyNmUY7& z*$?b-$`Ujlt$;^D&~}Fd@>kb;0iCf14Ynhk?;M=R?(?E_D`C} zSkoU~AymnDSI;P?q;|SwSbgAYgBXQM*v`iChw|n(bR>ZQ|{`+Q-2zCt<%s}_30JmmU=Hwe;diCXboOLHjdDn zQfeBOL0>z@nX8SpL+AOk_}-NLbbPhTTb=sALm-KsnM4p??hZ8)gqH{iRW4CDfTyb6 zpGYp*(EBQzmPUmKe}IBlDyy^+Uo?C93=ppv$>agwkw^?Jj0&q1v4k71fJGk7xE6)3 zJE0QT6fC>(;s(5?Uw(;bKhFb?Yx87EGsV-#-?(Mh>mk#FlUS#K3}rsj9sey8obs_0 z@qjM^{Yl&8{BV3NwxWRjoINR5;h`}RlTA&#nAPOfIpbOKWb2KA<+yY_T@AX{NE|%C z7bg&?*5+-kZOR3QTWYqlIy>GMN}`X#N5cH=>O=y|YWm_)gWbA*j)IwgmJ3d6H$SQg zKMu6bHZrpBD8f>&C%LN{-21l9_Cd z0o=heHi>{|RC%%9n0!9G{sQjk+x)dnJ+A8GO*u-o1i;q0f;MElMcW5vO4z_xf6Sk4 z`I4H4EO$jBbb~KlkP^j*$<00&EExC!N#hvJMk;?;{A=0zB@Wsl~lk!swIp%H5Qg)Q1P7+Ot~bPC-{ zs9mFxaOOIe+2xLoX@8TfC+J?elQlxuh4dxd{Vretw&u3A4HG+?dNyiq0%;UMN`uT@ z%PWM7>FZi-5GF$E28v^9aaHsw?J>rW#{`^pZ;#xCqZ!9?8*W-D_dL}VmkyU>Z81}X z1(&-DTet8TyR*N!cTAGk)Lo{}OYhi~TT~QvvX-r1AYZR^_yl3MF<;QJ-VyH8>5M*l z1>vB5-*Ww(n=%;8N~Tt95Q2ke-{Mp$P&F4a8#(l5XPJ*WEeu|03H2!Hr>_E?(#46s zpkn$%?0I(^$^qzB@-f z_%q|fwMNd<>7lOmE$?meP93he%Bs!ND1?bZ7=9yJT=%ozro|5$yH$KCa8`wua6><))|63Y=rM@ z5tR1~sVV(7HHxd~NGd$^!)(zA@%1~xkXs7~Y57T~^ka48^bIU3II>X44W$s{U%RE? z?CIy{7ZufQRpUL|BnVNE2bEVIIynd7&VHqyXjr-48aw1bHUPa6G#CPPd|x_`R#sNl z>x2YVg8LpcS1WppC?0(>zyICbdoj1$Yl!rK8Y`Ed-#5q|XJKKHlb4s5pBH|-yfk<( ze~5s6_90^3@p71YZLWJ7qK;r(t`8-}6bkp}K$o-JkL4|efF5QcKg zUZtrDm$p^lB{j?878TmZ3h~?NS*SZgNi{MmT))oBDu~h6Uz}H||0BAs7Qzv|T}yaM z3pwxfn&;}J0HmJ%#(ErT!tv|#DffOvpKaw^`d&LmJ()Q_?Ezo@p&tCcI%!KN!=`a; zZGbJZ;8mM{|GsFqDay|um#bQgY1qFTHmt=0TAs)sx*^sWh7l0Cg>foU2>j8q{VAYE z21mtzzkT=g`L9Z`1C#YReN_feRK6a>Le}tX#yR3Z?&9QRjml(bpD(I5l#s;<80QPMBg(?axALj;?Y`kl7x8b=6Yn6tY9~WnTZT5VhMl zvW1-Vxj+YXY2{j0c~y4iJpp>%CrlR*9j&tB@R|L~JAUp6+$kuFi}i z-{&p7{%chsD@f(oPEU+|P&rY(p(xqX&z!xH)3t?`v`Pb?8_P=kDKL_c{n$`qBJ*crDKEFVf@D#O$-)+(mXC z0&_A}S#~!(4|%Psws{8D0WE^dJ{LQ)IKC6%;CYJ>{|D}hdJ8(U3qUXFtlPvj zhsTO_s-b6}o_Ou)vv!C~2s?N(ekM|v%B{Jk@(0`jSe)bDxikvKv9Pe@^!Rd(Wzu(_ z?f4h8AD*f<%{TKE*01dyc4D#Ee%pp!d*%Z{YT>ne%yM+JOuaa)FsbbYvum324){d(sZMTKkm2 zO{Q4?^Ar)%A_LSKyuIAG$EC6YcZ)sja2k8r;g8|OD;>2zfs91qoe3C)v&9P7>@H}< zFRlIoK-QOCVue^s@L4dkh=?Z5pjz>tSvMOd=&}B(%#e+ekJa zf(|?-61}?)x-iG1oY4p~U4F?Ah^wD!vqfRI>ne+IkM}}6*f8 z7-nZIyn*7@wtZEnHF0w9kxxjAI?EAyQQ}i`@ZKLhqVZrHTE06Ud5~(|V$JIHcY{_a z6C52K9YXW*TmY-crwn@cic;SE0AA&{w5I{@Ii0<*ZN25awAuFuw|*dgM!*^K4{LCb zAr#epwG0tGPjG5?b(n&A+B#fb=z)<+xqAVbL>0!Q!Sy(egeiNJfAgQ;53z`^S=9bm z{;bq_>CgVV6`dWYL}q5;$&+;{OlYw|-t0tIzobxVqa~UNkkEzO)fnQkv+mrvGVR8_x#!TJ#H${mw3j_C;9bNp*x2I;|WC;wJ;fJdTGdj z?EA#1&QhI8F9}9_^4?e(9hlohWcpEMiQmYUsp>SH!1LZnfy|t_(^@l5#q-gMap9Pl zAMr~Dn~M(XcM7r5#|y4Qq!??7nkJyrl@zDHI5u7r)>j@EuO<1>wA=t#0F!{qYLN#*8j$tyePxT}SM4_jeEnL?)1>A5&8ZI_9wjG8V4?jHNp zC~~fK`;+H8BciaYST!Gx4{$RAOxXo*dJBFvlhzrQw{k@VDYnzGk+Iy9fxz>)OdYe>;NMz@#eLXAcbOiXX;{|!Z! zQLqxV0ba_TPDr5v$r2sO>xnY*5^Fcs6z~VKILcU%?`6qi)zne^Y{rF<4&$dMMzS`r z4U;yM`IeM)x&eaw?0G55Kt`tUmtooAaU>#es;qYF`%_7!+oGQ}O()H!T2!kJ=|)12 z-(?ZF;@(Zk?ImNGblmgGYqyqfSMD`JjWiAWdblH?TOG@O^R2pJf)T(H|HbvC?OO@m zr(Q0{1F(mzDz_o}0o_3(!s6lyu=6P{JjIFN!LP@(w#v9Qu%K$l-hD9!dRFhA^C0za ziXcw!J9NBv|15TePl}qSbEuU-I`J2#Pedu{-EpK)j>J+tWekc3qyfL2MR&(|y!xs` zs7yqWf|`*&XIgbHI_I z(lO{t(f}A|WGrv5))d8lz#GnfdcDmj&0+QyR#5P>*87AK%t^I6N6-GVpvt7 z!Z54AXfn7xRw>KNM}p_S#nZDo5GnuCJ|9LD*v=@> zlE8|SV)0uYzipmNtU6A&;#3|!d?+pHRGX9L91c|hA2lXxJr(bX90-|U--1Z9V*J~8 zyare6rhCiM*vfOMD`aZ4^(s%Vc0@}{%P&#_S8Bb(>0C@G-d|l^{dci}98~-{t8f1q zv`~TVZf`Gi28)Z)OyyU;J|BSHb>Fr$42G)6@=<&Vi@h%p`S#n|i>oXAOsfxOHBB}3 z};f^DBo@`@W7XNf>d=7qJGRnz``}4~W_<9MI`GFRDO#|YaU8jC(1_p+MF;_RY%E_gDigE)Y%fQ*hgvs&k)=%cwvH0|)lOs7`@XCSNWj?K(lS5$) z$z`;vuNTNuv~Z=c{q13nD}kqI-#q9Z89XiI=jtzVxrX|Wf7|>uajO;^er{Kj{Ik2y z7ItOXA$j0Xis$Fen@flTfk@qep)xJpD#y{kjvSlA%C<=gL_!I5<{hbrQ-N%WS2~v%=`}O~jzw0;EaC(Pd73Lg*ycBV6O9efJ%Rv|% z*zQyJ0!MM1`Q#pbJ+X#%<>8jtWm;k$8^TAE&) z{fiaAb>Q^-ckP#ZVt_-*{x>4#n0Fo3#1cp0?&^Zc6m8!p7~)%?cJt z-+8FsRg{#B8{|oUAC*ZE?l1VXk`_1U+Bg$=dZc`DyxLa%jaVmV{!VJRC5d)<=>?`c z@+5)-&6uc%sypI%nUc~x8I?7P4G#||>?|ZBlQbl7{pot%Ya+-`Cm(h|Uo%vc#_kiC zc}{G^T3tsus*gbd@1rKCj)Y)8Tu1<66?z#Qrs&g3!VwQhq|DxQ-@n~P1va#pR*luW z%%Hm{$r&3Pv$-|;HD&NsITd27Uba@$_!`8y$=gL3FiW4hT!rc!;y!bnek|;#EEh=j}$> z&+PWk)o<{OL8DB2XnowNW#TYRpzZcu}M^AH|jZmbkfL@19?F`}J!)h8Y*^!Yb>^^a#DnR3=U}r*!-_ z(`A(p6dPc8YD$mju7ecc4tx4r0O+Ft%b@3KT!Qr_+5XkJsmcz`nzTa f3?j2zza%BoqVwU^9*Ma6aRszB^)zbL9b*0il>Y|d literal 0 HcmV?d00001