Staacks / wifi-game-boy-cartridge

A WiFi cartridge for the original Game Boy.
189 stars 15 forks source link

ASM Compile problems #4

Closed Kameeno closed 1 week ago

Kameeno commented 1 week ago

I'm encountering compilation errors when attempting to build my assembly code on both Windows and Mac using GBDK-2020. The errors seem to be related to missing or improper operators, delimiters, and addressing modes in the main.asm file.

Steps to Reproduce:

Use GBDK-2020 on Windows/Mac.

Run the following compilation command:

lcc -o Example.gb main.asm

The compilation fails with the following errors: main.asm:3: Error: <q> missing or improper operators, terminators, or delimiters main.asm:8: Error: <o> .org in REL area or directive / mnemonic error main.asm:9: Error: <o> .org in REL area or directive / mnemonic error main.asm:10: Error: <o> .org in REL area or directive / mnemonic error main.asm:12: Error: <q> missing or improper operators, terminators, or delimiters main.asm:13: Error: <q> missing or improper operators, terminators, or delimiters main.asm:14: Error: <q> missing or improper operators, terminators, or delimiters main.asm:15: Error: <q> missing or improper operators, terminators, or delimiters main.asm:16: Error: <q> missing or improper operators, terminators, or delimiters main.asm:17: Error: <q> missing or improper operators, terminators, or delimiters main.asm:18: Error: <q> missing or improper operators, terminators, or delimiters main.asm:19: Error: <q> missing or improper operators, terminators, or delimiters main.asm:20: Error: <o> .org in REL area or directive / mnemonic error main.asm:21: Error: <q> missing or improper operators, terminators, or delimiters main.asm:22: Error: <q> missing or improper operators, terminators, or delimiters main.asm:23: Error: <q> missing or improper operators, terminators, or delimiters main.asm:26: Error: <o> .org in REL area or directive / mnemonic error main.asm:29: Error: <a> Invalid Addressing Mode. main.asm:32: Error: <q> missing or improper operators, terminators, or delimiters main.asm:33: Error: <q> missing or improper operators, terminators, or delimiters main.asm:35: Error: <q> missing or improper operators, terminators, or delimiters main.asm:38: Error: <q> missing or improper operators, terminators, or delimiters main.asm:40: Error: <a> Invalid Addressing Mode. main.asm:41: Error: <q> missing or improper operators, terminators, or delimiters main.asm:42: Error: <q> missing or improper operators, terminators, or delimiters main.asm:43: Error: <q> missing or improper operators, terminators, or delimiters main.asm:44: Error: <q> missing or improper operators, terminators, or delimiters main.asm:47: Error: <q> missing or improper operators, terminators, or delimiters main.asm:48: Error: <q> missing or improper operators, terminators, or delimiters main.asm:49: Error: <q> missing or improper operators, terminators, or delimiters main.asm:50: Error: <q> missing or improper operators, terminators, or delimiters main.asm:52: Error: <q> missing or improper operators, terminators, or delimiters main.asm:55: Error: <o> .org in REL area or directive / mnemonic error main.asm:57: Error: <a> Invalid Addressing Mode. main.asm:58: Error: <q> missing or improper operators, terminators, or delimiters main.asm:59: Error: <q> missing or improper operators, terminators, or delimiters main.asm:60: Error: <q> missing or improper operators, terminators, or delimiters main.asm:61: Error: <q> missing or improper operators, terminators, or delimiters main.asm:62: Error: <q> missing or improper operators, terminators, or delimiters main.asm:64: Error: <q> missing or improper operators, terminators, or delimiters main.asm:67: Error: <o> .org in REL area or directive / mnemonic error main.asm:68: Error: <q> missing or improper operators, terminators, or delimiters main.asm:69: Error: <q> missing or improper operators, terminators, or delimiters main.asm:70: Error: <q> missing or improper operators, terminators, or delimiters main.asm:71: Error: <q> missing or improper operators, terminators, or delimiters main.asm:73: Error: <q> missing or improper operators, terminators, or delimiters main.asm:77: Error: <q> missing or improper operators, terminators, or delimiters main.asm:78: Error: <q> missing or improper operators, terminators, or delimiters main.asm:79: Error: <q> missing or improper operators, terminators, or delimiters main.asm:80: Error: <q> missing or improper operators, terminators, or delimiters main.asm:81: Error: <q> missing or improper operators, terminators, or delimiters main.asm:82: Error: <q> missing or improper operators, terminators, or delimiters main.asm:83: Error: <q> missing or improper operators, terminators, or delimiters main.asm:84: Error: <q> missing or improper operators, terminators, or delimiters main.asm:86: Error: <q> missing or improper operators, terminators, or delimiters main.asm:89: Error: <a> Invalid Addressing Mode. main.asm:90: Error: <q> missing or improper operators, terminators, or delimiters main.asm:91: Error: <q> missing or improper operators, terminators, or delimiters main.asm:93: Error: <q> missing or improper operators, terminators, or delimiters main.asm:94: Error: <q> missing or improper operators, terminators, or delimiters main.asm:95: Error: <q> missing or improper operators, terminators, or delimiters main.asm:104: Error: <q> missing or improper operators, terminators, or delimiters main.asm:105: Error: <q> missing or improper operators, terminators, or delimiters main.asm:108: Error: <a> Invalid Addressing Mode. main.asm:109: Error: <q> missing or improper operators, terminators, or delimiters main.asm:110: Error: <q> missing or improper operators, terminators, or delimiters main.asm:113: Error: <q> missing or improper operators, terminators, or delimiters main.asm:114: Error: <q> missing or improper operators, terminators, or delimiters main.asm:117: Error: <r> relocation error main.asm:118: Error: <a> Invalid Addressing Mode. main.asm:119: Error: <q> missing or improper operators, terminators, or delimiters main.asm:120: Error: <a> Invalid Addressing Mode. main.asm:122: Error: <q> missing or improper operators, terminators, or delimiters main.asm:123: Error: <q> missing or improper operators, terminators, or delimiters main.asm:125: Error: <q> missing or improper operators, terminators, or delimiters main.asm:126: Error: <q> missing or improper operators, terminators, or delimiters main.asm:129: Error: <q> missing or improper operators, terminators, or delimiters main.asm:130: Error: <q> missing or improper operators, terminators, or delimiters main.asm:137: Error: <a> Invalid Addressing Mode. main.asm:139: Error: <a> Invalid Addressing Mode. main.asm:143: Error: <q> missing or improper operators, terminators, or delimiters main.asm:146: Error: <q> missing or improper operators, terminators, or delimiters main.asm:147: Error: <q> missing or improper operators, terminators, or delimiters main.asm:150: Error: <q> missing or improper operators, terminators, or delimiters main.asm:153: Error: <q> missing or improper operators, terminators, or delimiters main.asm:154: Error: <q> missing or improper operators, terminators, or delimiters main.asm:155: Error: <q> missing or improper operators, terminators, or delimiters main.asm:158: Error: <q> missing or improper operators, terminators, or delimiters main.asm:159: Error: <q> missing or improper operators, terminators, or delimiters main.asm:162: Error: <q> missing or improper operators, terminators, or delimiters main.asm:163: Error: <q> missing or improper operators, terminators, or delimiters main.asm:164: Error: <q> missing or improper operators, terminators, or delimiters main.asm:165: Error: <q> missing or improper operators, terminators, or delimiters main.asm:174: Error: <q> missing or improper operators, terminators, or delimiters

Environment:

OS: Windows 10 / macOS GBDK-2020

i remember few month ago i compiled it succesfully but now nothing work on my fresh setup..

Kameeno commented 1 week ago

with other compilers i get this error:

error: .\2.tiles\main.asm(117): syntax error, unexpected =, expecting : or :: error: .\2.tiles\main.asm(119) -> .\2.tiles\main.asm::REPT~1(121): syntax error, unexpected =, expecting : or :: error: Assembly aborted (2 errors)!

Kameeno commented 1 week ago

resolved by downgrading rgbasm to v0.5.2 because is the first released for mac os x

Staacks commented 1 week ago

Not entirely sure what happens if you use gbdk for this, but the pure assembly-based ROMs are not supposed to be build with gbdk, but directly with rgbasm. Not sure if the included makefiles work on macOS, but if you have a look at them you can see how each is built. The two ROMs that are based on gbdk ("serial" and "wiki") compile just fine with gbdk.

However, the asm examples are still incompatible with rgbasm, which has changed a lot since I created this project. I get an error. From what I can see, the latest rgbasm 0.8.0 now requires the keyword "DEF" for symbols, which I did not use for 0.5.2.

For now I will just add a note about rgbasm 0.5.2 to the readme.