1

Hello

This summer, it will be three full years in which I have attempted countless times to develop games for the Neo Geo. I have got exactly 0 viable results.
Tried ASM. Impossible for a full game.
Tried NeoDev / DATlib. Ran into hundreds of differents issues, issues I'm seemingly too stupid to understand and overcome.
Tried NGDK. Don't understand a thing.

So, now, I'm asking (hopefully for the last time) for help, with the hope that I could finally understand how all that stuff works, and maybe develop my game. I've got ideas, I'm motivated, etc.... but I'm so uncapable of understanding anything that that shit overcomes my motivation and I just end up wanting to do bad stuff.

If someone is willing to explain how to setup NeoDev/Datlib to a guy who takes 15 minutes to understand something you understood in 5 seconds, you'd make that guy happy.

The issue I have now is that after I compile what's inside the Project folder (copied from samples/demo), I get the crosshatch.
Here's my folder: https://ufile.io/ldxg3hhv

Thanks

Edit 1 of many: Got this working. I tried another demo and it worked with it.
Edit 2: Got another problem: installed DATlib. When I do make, I get this:
Error
gcc -Lc:\NeoDev/m68k/lib -m68000 -O3 -Wall -fomit-frame-pointer -ffast-math -fno-builtin -nostartfiles -nodefaultlibs -D__cart__ -Wl,-Tc:\NeoDev/src/system/neocart.x -Xlinker -Map=_output.map c:\NeoDev/tmp/crt0_cart.o c:\NeoDev/tmp/main.o c:\NeoDev/tmp/palettes.o c:\NeoDev/tmp/maps.o -lDATlib -lprocess -lc -lgcc -o test.o
c:\NeoDev/tmp/crt0_cart.o: In function `_irq2_handler':
c:\NeoDev/tmp/crt0_cart.o(.text+0x21c): undefined reference to `_vbl_flag'
c:\NeoDev/tmp/maps.o: In function `streamScroll':
c:\NeoDev/tmp/maps.o(.text+0x8): undefined reference to `streamScroll_Palettes'
c:\NeoDev/tmp/maps.o(.text+0xc): undefined reference to `streamScroll_colorStream'
c:\NeoDev/tmp/maps.o: In function `SNKLogoStrip':
c:\NeoDev/tmp/maps.o(.text+0x22c8): undefined reference to `SNKLogoStrip_Palettes'
c:\NeoDev/tmp/maps.o(.text+0x22cc): undefined reference to `SNKLogoStrip_colorStream'
c:\NeoDev/tmp/maps.o: In function `ffbg_a':
c:\NeoDev/tmp/maps.o(.text+0x16b48): undefined reference to `ffbg_a_Palettes'
c:\NeoDev/tmp/maps.o: In function `ffbg_b':
c:\NeoDev/tmp/maps.o(.text+0x16f18): undefined reference to `ffbg_b_Palettes'
c:\NeoDev/tmp/maps.o: In function `wohd':
c:\NeoDev/tmp/maps.o(.text+0x179c8): undefined reference to `wohd_Palettes'
c:\NeoDev/tmp/maps.o: In function `ffbg_c':
c:\NeoDev/tmp/maps.o(.text+0x1f956): undefined reference to `ffbg_c_Palettes'
c:\NeoDev/tmp/maps.o: In function `terrypict':
c:\NeoDev/tmp/maps.o(.text+0x1fa38): undefined reference to `terrypict_Palettes'
c:\NeoDev/tmp/maps.o: In function `desert':
c:\NeoDev/tmp/maps.o(.text+0x1fe52): undefined reference to `desert_Palettes'
c:\NeoDev/tmp/maps.o: In function `topleft':
c:\NeoDev/tmp/maps.o(.text+0x1ffe8): undefined reference to `topleft_Palettes'
c:\NeoDev/tmp/maps.o: In function `pointer':
c:\NeoDev/tmp/maps.o(.text+0x20012): undefined reference to `pointer_Palettes'
c:\NeoDev/tmp/maps.o: In function `dbgTags':
c:\NeoDev/tmp/maps.o(.text+0x20030): undefined reference to `dbgTags_Palettes'
c:\NeoDev/tmp/maps.o: In function `gradient':
c:\NeoDev/tmp/maps.o(.text+0x2014a): undefined reference to `gradient_Palettes'
c:\NeoDev/tmp/maps.o: In function `tf4layers':
c:\NeoDev/tmp/maps.o(.text+0x201e4): undefined reference to `tf4layers_Palettes'
c:\NeoDev/tmp/maps.o: In function `bmary_spr':
c:\NeoDev/tmp/maps.o(.text+0x221fc): undefined reference to `bmary_spr_Palettes'
make: *** [test.o] Error 1
Edit 3: I was able to finally compile with DATlib. Now it seems like sprites don't appear on screen.
Edit 4: Now they appear, but only color streams work properly. The other sprites appear like this:
Image
000110.png
000210.png
000310.png
avatar

2

Program you trying to compile are located in Project folder, aren't it?
avatar

3

Yes, but this one, I was able to compile. Now my only problem is when I try with datlib
avatar

4

Did you really not forgot to put libDATlib.a file from DATlib\NeoDev\m68k\lib directory to m68k\lib directory of your SDK, and also move DATlib.h and input.h from DATlib\NeoDev\m68k\include to your SDK includes folder by analogical way, and after all to replace old common_crt0_(cart/cd).s and crt0_(cart/cd).s in your project folder with same named files from DATlib\startup headers folder?
avatar

5

I fused the NeoDev folder from the DATlib archive and my existing NeoDev folder, as it said in Libraryreference.pdf. I checkd everything but still have the issue
avatar

6

Don't stress. I like you style. I have been where you are. Some days I still feel exactly I am where you are. I have been meaning to launch MegaShocked.com for years. The goal is to give back by providing tutorials and highlight all the Mega Shockers in the community! I did some work on the site this year but like always I fall back to my game project.

What time zone are you in? I'm EST. I'm thinking PM me. We do Team Viewer and get your shit working right!

I want to say I will launch the site and there is a tutorial there but I can't detract focus on the current project I feel I'm too close to a proof of concept.

Hit me up.

7

Thanks a lot ! I'm in CET zone. I've just installed Teamviewer.
avatar

8

Sent you a PM

9

Sent a few more PM's your way

10

defalt45 (./1):
Tried NGDK. Don't understand a thing.
I would be curious to know what is blocking you, the feedback I got was that the functions were easy to understand

11

Kannagi (./10) :
defalt45 (./1):
Tried NGDK. Don't understand a thing.
I would be curious to know what is blocking you, the feedback I got was that the functions were easy to understand

It's mainly the fact that I'm not familiar at all with IDEs. I usually work with cmd, file explorer and sublime text arranged on my screen, all the stuff in CB fill up at least 2/3 of my screen :/
avatar

12

I would suggest a makefile next time, but in general, a makefile is not very user friendly, I do not propose it on my SDK, I'm surprised because you can not use C:: B for the NGDK !

13

It would be useful to know your experience.

Before trying to make a Neo Geo game, do you have experience in making game on any other platform ? Or even experience in making apps ? Or even programming at school or university ?

I would not recommend Neo Geo platform for dev beginners, as it can be very frustrating. Making a game is very hard, you need to master programming, game design, graphics. With the Neo Geo you also have to master the limitations of the hardware. That's a lot of things.

If you successed to install a C compiler, just go and don't try to be always up to date with the lastest groovy library. Just keep things simple, try to display your first sprite and have fun.

14

totologic (./13) :
It would be useful to know your experience.

Before trying to make a Neo Geo game, do you have experience in making game on any other platform ? Or even experience in making apps ? Or even programming at school or university ?

I would not recommend Neo Geo platform for dev beginners, as it can be very frustrating. Making a game is very hard, you need to master programming, game design, graphics. With the Neo Geo you also have to master the limitations of the hardware. That's a lot of things.

If you successed to install a C compiler, just go and don't try to be always up to date with the lastest groovy library. Just keep things simple, try to display your first sprite and have fun.

Never programmed anything.
I tried NGDK because it seemed simpler at first, but when I fired up CB for the first time I knew this wasn't for me.
avatar

15

This a good starting point for you as beginner:

https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c?status=published

C and SDL is what you need to learn algorithmic basics for games. Follow the steps to tutorials, then try to make a small game with that.

16

Yep
Agree with Totologic
You can use Processing to learn, very simpe dev environment, easy to install, and with lots of tutorials

https://processing.org/
I used it to explain how to code for beginners

17

+1 for Processing

Learning to use Processing can be very useful for futur Neo Geo projects as it can be part of a toolset for prototyping, level building, animation...

18

Ok so I've finally been able to setup everything so it works, with Furrtek's help at RGC without who I wouldn't have been able to identify the cause of the problem. The sprites did not appear because of a shitty C rom size issue. Now it works fine, I've even been able to program a little hitbox thing. Now, I just hope I'll understand how hitboxes and bullets work in shmups...
avatar

19

Excellent boing

Amuse-toi, part sur des algos simples et garde en tête que c'est le gameplay qui fait un jeu, pas la technique.

Sur un shmup les colisions sont assez simples dans le sens ou ce n'est que de la détection (pas de physique derrière).

Des rectangles pour le héro, les ennemis et les tirs volumineux. Assemblage de rectangles pour les boss et le décor. Simples points pour les tirs simples. Il te faut donc juste savoir détecter les superpositions rectangle/rectangle et point/rectangle.

Quand ça se mettra à ramer (trop d'ennemis ou de tirs), les optimisations se font principalement en implémentant des pré-tests. Mais ça va dépendre des situations impliquées par ton game design, donc à voir dans le détail quand ça arrivera.