Gam Vis Me Bo Sual G Oy Adv UI Sy Vance Ystem E
Total Page:16
File Type:pdf, Size:1020Kb
Technical Report, January 2009 Visual GUI System For Game Boy Advance / Nintendo Ds Bachelor’s Thesis in Computer Engineering Semih Tosun School of Information Science, Computer and Electrical Engineering Halmstad University Visual GUI System For Game Boy Advance / Nintendo Ds School of Information Science, Computer and Electrical Engineering Halmstad University Box 823, S-301 18 Halmstad, Sweden January 2009 ACKNOWLEDGEMENT Let books be your dining table And you shall be full of delights Let them be your mattress And you shall sleep restful nights St. Ephrem (A.D. 303–373) This project is developed, and is still being developed, when one reads this report, in cooperation with Lypson Company about which more information is given in this report. Work of this magnitude could never have been undertaken without the valuable contributions of certain people. First and foremost, I would like to thank Tobias Persson who is a real engineer and software developer in the Lypson Company. I have learnt a lot from him and I am eternally grateful to him for his help. Every time I was faced with an obstacle during the project, Tobias was the one who helped me overcome that obstacle. Furthermore, I would like to thank my supervisor, Nicolina Mansson from Halmstad University, and also another software developer, Michal Lysek from Lypson Company. I could not finish my acknowledgement without thanking the GBA forum (http://forum.gbadev.org). They especially helped me with static building of Lypson Game Engine. Altogether, thanks to everybody who has contributed to this thesis work. I DETAILS First Name, Surname: Semih Tosun University: Halmstad University, Sweden Degree Program: Computer Engineering Title of Thesis: Visual GUI System For Game Boy Advance / Nintendo DS Academic Supervisor: Nicolina Mansson ABSTRACT The purpose of this study is to provide a simple user interface with which everyone can design his/her own game, and play it on Game Boy Advance console. This project helps people develop games without having programming knowledge. Everything is done by means of a user interface and without any programming knowledge. It is magic, isn’t it? Game Boy Advance is a game console developed by Nintendo. In order to market their products, they must also develop games running on their products. Every time they develop a game for the Game Boy Advance console, they have to implement a low level C++ application over and over again. This makes things more complicated. However, if this software is used, everything becomes easier. This project can be seen as an interpreter that interprets the designed game, which is very high level, and converts it to a Game Boy Advance game. If this project is finished successfully, game design for Game Boy Advance will experience a revolution in its history. In brief, it is required to develop a visual, GUI‐based system that allows people to develop games for the Game Boy Advance console. This GUI system is required to implement and use the API (Game Engine) developed by Lypson. II ABBREVIATIONS, SYMBOLS GBA : Game Boy Advance VRAM : Video RAM WRAM : Working RAM OAM : Object Attribute Memory GUI : Graphical User Interface LGE : Lypson Game Engine RGB : Red, Green, Blue GameRevolution : Name of the thesis work. It is a Visual Studio C#.Net application. III TABLE OF CONTENTS ACKNOWLEDGEMENT ........................................................................................................................ I DETAILS ................................................................................................................................................ II ABSTRACT ............................................................................................................................................ II ABBREVIATIONS, SYMBOLS .......................................................................................................... III TABLE OF CONTENTS ...................................................................................................................... IV 1. INTRODUCTION ........................................................................................................................... 1 1.1. BACKGROUND ..................................................................................................................... 1 1.2. GOAL ...................................................................................................................................... 2 1.3. LIMITATIONS ....................................................................................................................... 2 1.4. WHAT IS IN THIS REPORT ................................................................................................. 2 2. MORE INTRO ................................................................................................................................ 3 2.1. LYPSON COMPANY ............................................................................................................ 3 2.1.1. INTRODUCTION ............................................................................................................... 3 2.1.2. ACTIVITIES ....................................................................................................................... 3 2.2. GAME BOY ADVANCE ....................................................................................................... 4 2.2.1. HISTORY ......................................................................................................................... 4 2.2.2. TECHNICAL SPECIFICATIONS .................................................................................... 4 2.3. LYPSON GAME ENGINE ..................................................................................................... 5 2.3.1. WHAT IS LYPSON GAME ENGINE ............................................................................... 5 2.3.2. STATIC BUILDING OF LGE .......................................................................................... 6 3. IMPLEMENTATION ..................................................................................................................... 8 3.1. INTERFACE DESIGN ........................................................................................................... 8 3.1.1. MAIN FORM ................................................................................................................... 8 3.1.2. ROOM CHILD FORM .................................................................................................... 8 3.1.3. BACKGROUND CHILD FORM ..................................................................................... 8 3.1.4. SPRITE CHILD FORM ................................................................................................... 8 3.2. IMAGE TO GBA FORMAT................................................................................................... 9 3.2.1. BITMAPPED FORMAT .................................................................................................. 9 3.2.2. TILE BASED FORMAT ................................................................................................. 10 3.3. DISPLAYING AND MOVING IMAGES ............................................................................ 11 3.4. DISPLAYING TEXT ............................................................................................................ 12 3.5. BUILD PROCESS ................................................................................................................ 13 IV 3.5.1. WHAT IS BATCH FILE? ............................................................................................... 13 3.5.2. CALLING BATCH FILES.............................................................................................. 13 3.6. DOCUMENTING THE PROJECT ....................................................................................... 14 4. RESULTS ...................................................................................................................................... 15 5. CONCLUSION ............................................................................................................................. 17 6. FUTURE WORK .......................................................................................................................... 18 7. REFERENCES .............................................................................................................................. 19 APPENDIX ........................................................................................................................................... 20 APPENDIX A ................................................................................................................................... 20 APPENDIX B.................................................................................................................................... 21 APPENDIX C.................................................................................................................................... 22 V 1. INTRODUCTION 1.1. BACKGROUND The project is a Visual Graphical User Interface (GUI) system that supplies very high level game development to users. It is high level because there is no need to be a programmer in order to design a game in Game Boy Advance (often shortened to GBA). Even a basic user can design his/her game just by dragging and dropping images, objects (sprites) and some other controls. Once a user has designed his/her game, the only thing that