1

Bonjour everyone! I am working on a Neo Geo homebrew game currently called 'Cosmic Tower' . The idea was to make a fun and simple platform game. You have to reach the top of a number of towers. The game is set in space (hence the name Cosmic Tower), and each successive tower gets harder with more hazards.

I am using the Neo Geo Dev Kit which I downloaded from Sebastian Mihai's web page. Although I understand it's really Jeff Kurtz's kit. So thank you Jeff!

This is an early demo from a few months ago. (The graphics are all rough, I won't bother much with them until I get a good game up and running).



Since this video I have spent a lot of time making a map editor and writing an 8-way scrolling routine. I am new to C and 68000 code so it's taken me a while. I have the scrolling working now. I need to do some optimising and just experimentation in general before I get back to the game though. I'm having fun and taking my time.

Looking forward to chatting to everyone here, and welcome any comments. My internet is hardly working at the moment so excuse me if I am slow to respond sometimes.

2

HI and welcome,

don't take the no replies as disinterest, it's just that we caught your video few weeks ago, so nothing new here for us grin


I have a library in the works that handles graphics conversion, scrolling, animations etc, maybe you could find some use to it.

Infos:
topics/161717-une-nouvelle-librairie-graphique-en-preparation
http://www.neogeofans.com/leforum/showthread.php?t=46638

Demos:



Download:
http://hpman.pagesperso-orange.fr/DATlib.rar

3

Hello

great work, i hope you will find an graphist for your game
I can do nothing for the programming but if you want an Neo Geo CD Test i could help you
avatar
La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/

4

HPMAN wrote :- HI and welcome,

don't take the no replies as disinterest, it's just that we caught your video few weeks ago, so nothing new here for us grin


Thank you, yes someone from here sent me a message and asked me to introduce myself and game here.
I have a library in the works that handles graphics conversion, scrolling, animations etc, maybe you could find some use to it.


Those look great, I'm fine with background animation and the scrolling, although my 68k programing is very beginner-ish so I'll probably ask for optimisation tips at some point. I'm still using a 'mulu' in my scrolling routine for example, and I am never sure if I am doing things the right way.

I'm very interested in the raster effects especially and any tools that make it easier to convert images into the correct palettes etc. Looks like you are doing great work there.

great work, i hope you will find an graphist for your game
I can do nothing for the programming but if you want an Neo Geo CD Test i could help you


Thanks kuk. I'll probably try to finish the game before I worry about the graphics. I may have to re-size them all at some point, and there's always a chance I may not finish the game either.

5

Great job CosmicR !

Can I ask you and HPMAN a scrolling routine in C (no assembly) for NeoGeo?

THX!
RetroIsTheOnlyFuture!

6

Well that's hard to tell, really depends how you handle sprites and screen updates in your code, as well as data format.

Basic idea for horizontal scrolling is:
- determine X position and what needs to be displayed
- load sprites with the tiles data
- align X positions

You want to keep track of what's displayed to avoid rewriting every sprite each frame.

For vertical scrolling, add steps to determine Y position and adjust tile data / sprites position accordingly.

7

Bey wrote :- Great job CosmicR !
Can I ask you and HPMAN a scrolling routine in C (no assembly) for NeoGeo?


Thank you smile

Do you mean in C with assembler functions?. I'd use HPMAN's library if I were you since his is optimised and user friendly. I'd use his if I hadn't spent so long making my own! HPMAN is a genius.

You would need to edit the assembler functions directly to use mine, since it only works with my map size. Plus it's not very good code so it's slower than it should be.

In the video above of Cosmic Tower - before I wrote my scroll routines - I just used WriteSprite. There were no scroll functions in the DevKit and I was a beginner and had no clue how to write my own. I would alternate the set of sprites used and write a screenload of new map each time it got to the end of a screen. This is slow and inefficent though and not to be recommended. When more is happening in the game you could get 'jerks' or slowdown.

8

It's only for a simple NeoPhoenix intro before the emulation section starts, nothing special because there isn't enough space for something special or including external libraries cause Phoenix ROM and Z80 emulator code..

The feeling of intro is something like stars with vertical scrolling, music and some moving text...nothing special.
RetroIsTheOnlyFuture!

9

I just saw that. Looking impressive so far,. Do you think you will be able to get it to run fullspeed?

In that case you could just use 20 sprites with stars on to cover the screen horizontally. Each sprite is 512 pixels (32 characters) high and they wrap around vertically automatically so there will be no gaps. Just move each one up or down vertically (depending on which way you want the starfield to scroll) You could then have a second or even third set of sprites all moving vertically at different speeds to create a parallax effect. No need for any scrolling libraries at all smile

10

Thx CosmicR,
for get NeoPhoenix to run fullspeed there are only two solutions:

1.Hack the PHOENIX original code. I have already made it with some good results but still far from final target (You'll see in the next release)
2.Rewrite in 68K Assembler the C macro Z80 emulator, Ex.

C (some emu macro I use):#define M_POP(Rg) \ R.Rg.D=M_RDSTACK(R.SP.D)+(M_RDSTACK((R.SP.D+1)&65535)<<8); \ R.SP.W.l+=2 #define M_PUSH(Rg) \ R.SP.W.l-=2; \ M_WRSTACK(R.SP.D,R.Rg.D); \ M_WRSTACK((R.SP.D+1)&65535,R.Rg.D>>8) #define M_CALL \ { \ int q; \ q=M_RDMEM_OPCODE_WORD(); \ M_PUSH(PC); \ R.PC.D=q; \ Z80_ICount-=7; \ }


68K ???
RetroIsTheOnlyFuture!

11

Hi CosmicR(ike) !

Welcome to Yaronet's Forum ...Finally, you joined us !

So, it's good to see you here, and to read your posts ... since you arrived here, the other Dev. guys are posting more often...
it's a good point ...
I don't know if informations below can help you or someone else ...but it's a pleasure for me to share them with you

Ps:
Few years ago, Raster/C. Doty (RasterSoft) released few Homebrew Demos ...below two of them use map editor

1/ a tech demo (Arcade Development Project) for a Game concept (work fine on FBA emu/Romset 'neoww2.zip')
: WW2 AES DEMO Source (Big Map: 20x120 tiles /Vertical scrolling background;use TileSet+map to creat Background on One Plane +only one palette->16 colors concerning the TileSet (to creat BG with NeogeoMap! Arghhhhhh sad )

->Tile MAP Editor used:'tUME' (on MS-DOS/screen in *.PCX format). for use it now, Need probably to use DosBox!

OpentUME is a very flexible map editor. It was initially used to create commercial games for the SNES and Genesis.
http://wayback.archive.org/web/20101227180238/http://arcadedev.emuvibes.com/project/ tume PACKs, you can download it from here
http://games.greggman.com/game/tume___the_universal_map_editor/

Files -> ZIP PACK: 'Arcade Development Project.zip' (Unvailable on the net !):
--------------------------------------------------------------------------------
The source code to an early NeoGeo test version of a game. file: ww2.zip
The graphics to an early NeoGeo test version of a game. file: ww2gfx.zip
The roms to an early NeoGeo test version of a game. file: puzzledp.zip
Tume tools is a collection of utilities to work with Tume and PCX files. file: tumetools.zip
Note: Missing in this pack, an iso for Kuk to test this demo on NGCD !
-> attachment file, not yet available ... sorry for that
http://speedy.sh/uzxqF/Arcade-Development-Project.zip

Additional links:
You can still get tUME from the internet archive database here:
http://web.archive.org/web/20070202064352/members.aol.com/opentume/html/download.html
http://dbpedia.org/page/TUME

tUME (the Universal Map Editor) is a tile based map editor originally created and designed by Greg Marquez (aka Richard G. Marquez) and Gregg Tavares for the Commodore Amiga and later ported to MS-DOS by Dan Chang. It was used to create levels, maps, stages and tables for many 8-bit and 16-bit console games for the Nintendo Entertainment System, the Super Nintendo Entertainment System, the Game Boy and the Sega Genesis.

Arcade Development Central (Documents)
http://wayback.archive.org/web/20110101120041/http://arcadedev.emuvibes.com/ (Old) good stuff concerning Homebrew Dev. on various video games system
I found this nice site where you can find old tech.Notes for Neo Geo (and sprites docs as well), Neo Geo CD, CPS-1, IGS, DataEast (16 bit), and lot other systems.

2/ an other tech. demo for an other Game Project, named 'Frog Feast'-files (sources/tools) & tutorials are available here
http://frogfeast.rastersoft.net/NeoGeoCDSrc.html src + Tools + Tuto, To create replacement screens under Mappyor http://frogfeast.rastersoft.net/NeoGeoSrc.html
http://neogeocdworld.info/NGPC/NeoDev-Pocket-LUCHO.zip You will find NeoDev compiler with Charles's Lib (routines.s) + other (too few) demo tests by Pocket Lucho (Spanish dev.)

Note: an important thing, Charles developped his own lib for Neogeo (ASM fonctions->'routines.s'),but also for CPS1 ,IGM/PGM, sega ...with similar syntax (very useful to port a game on consoles with different systems)
->Tile MAP Editor used:'MAPPY' (on WINDOWS/screen in *.BMP format).
For example, here are some assembler functions for MAPs

* void FillTilemap(DWORD Dest, DWORD Width, DWORD Height, DWORD Tile);
* A0 - VRAM Location
* D0 - Width
* D1 - Height
* D2 - Starting sprite #

* void LoadTilemap(DWORD *Source, DWORD Dest, DWORD Width, DWORD Height, DWORD Tile);
* A0 - VRAM Location
* A1 - Map pointer
* D0 - Width
* D1 - Height
* D2 - Starting sprite #

* void SetupTilemap(DWORD y, DWORD Tile);
* D0 - TileY
* D1 - Starting tile number

Rike ...Regards,
Fred / FRONT!

12

BEY (./10) :
Thx CosmicR,
for get NeoPhoenix to run fullspeed there are only two solutions:

1.Hack the PHOENIX original code. I have already made it with some good results but still far from final target (You'll see in the next release)2.Rewrite in 68K Assembler the C macro Z80 emulator, Ex.



Hi Bey. it looks like you are doing well with it so far. I hope you keep going with it.

I can't really advise properly you since I am not that good at 68k myself yet! but it does seem like a good way to speed things up - also you could maybe port other z80 based games much easier in the future with this method.

FRONT (./11) :
Hi CosmicR(ike) !

Welcome to Yaronet's Forum ...Finally, you joined us !

So, it's good to see you here, and to read your posts ... since you arrived here, the other Dev. guys are posting more often...
it's a good point ...I don't know if informations below can help you or someone else ...but it's a pleasure for me to share them with you


Thanks very much Fred/FRONT. I am using my own Map Editor now which I wrote in a language called BlitzMax - it's not that great a map editor but it works and I can change the file format for my needs - which i will probably need to in the future. I will definitely take some time to check out all those links though. Looks like some very useful information there! Thank you again.

I did print the source code out for Frog Feast, and I plan to take a closer look at his sound routines - since my game has no sound at the moment.

Just an update on Cosmic Tower : I am working on adding slopes and curved/uneven surfaces to Cosmic Tower at the moment, but I am writing this for the PC first, before I port it to C for the Neo Geo. It's easier for me to experiment with and debug this way. It's about 80% done now, just have to implement sloped ceilings then I'm finished. I may not use that many slopes in the game but it's nice to have the option if I want to.

13

Looks great - I love platformers! Looking forward to the finished result!